{"version":3,"file":"static/js/main.9877c43a.js","mappings":"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V,EACA,EACA,EACA,GACA,GACA3jC,EACA,CAAC,GAAI,GAAI,GACT,EACA,EACAA,EACA,CAAC,EAAG,EAAG,GACPqH,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,GACL,EACA,EACA,GACA,GACAA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,GACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,GAAI,IACL,EACAA,EACA,CAAC,IAAK,IACN,GACAA,EACA,CAAC,IAAK,GACN,EACAA,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJ,EACA,EACA,GACAA,EACA,CAAC,IAAK,IACNA,EACA,CAAC,GAAI,MAELsK,KAAMgyB,EAAE,CACR3jC,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJ,EACAA,EACA,CAAC,EAAG,IACJA,EACA,CAAC,EAAG,GACJqH,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,GAAI,IACLA,EACA,CAAC,IAAK,MAENwxF,MAAOl1D,EAAE,CACT,EACA,EACA,EACA,EACA,EACA,GACAt8B,EACA,CAAC,EAAG,GACJ,GACA,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,GAAI,GACL,GACAA,EACA,CAAC,EAAG,GACJ,GACAA,EACA,CAAC,EAAG,KAEJ4pB,KAAM0S,EAAE,CACR3jC,EACA,CAAC,EAAG,KACJA,EACA,CAAC,EAAG,GACJqH,EACA,CAAC,EAAG,GACJA,EACA,CAAC,EAAG,GACJrH,EACA,CAAC,EAAG,MAEJkzJ,KAAMvvH,EAAE,CACR,EACA,EACA,EACA,GACA3jC,EACA,CAAC,EAAG,GAAI,GACRA,EACA,CAAC,GAAI,EAAG,GACRqH,EACA,CAAC,GAAI,IACL,GACA,GACA,GACA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","sources":["../node_modules/bad-words/lib/badwords.js","../node_modules/badwords-list/lib/array.js","../node_modules/badwords-list/lib/index.js","../node_modules/badwords-list/lib/object.js","../node_modules/badwords-list/lib/regexp.js","../node_modules/classnames/index.js","../node_modules/css-unit-converter/index.js","../node_modules/decimal.js-light/decimal.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/eventemitter3/index.js","../node_modules/fast-equals/src/utils.ts","../node_modules/fast-equals/src/comparator.ts","../node_modules/fast-equals/src/index.ts","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_asciiToArray.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_castSlice.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createCaseFirst.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hasUnicode.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToArray.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/_unicodeToArray.js","../node_modules/lodash/constant.js","../node_modules/lodash/debounce.js","../node_modules/lodash/eq.js","../node_modules/lodash/every.js","../node_modules/lodash/find.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/get.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBoolean.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isNaN.js","../node_modules/lodash/isNil.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isString.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/last.js","../node_modules/lodash/map.js","../node_modules/lodash/mapValues.js","../node_modules/lodash/max.js","../node_modules/lodash/memoize.js","../node_modules/lodash/min.js","../node_modules/lodash/noop.js","../node_modules/lodash/now.js","../node_modules/lodash/property.js","../node_modules/lodash/range.js","../node_modules/lodash/some.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/throttle.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/upperFirst.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-animated-numbers/dist/index.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-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/react-transition-group/index.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/react-transition-group/utils/PropTypes.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/reduce-css-calc/dist/index.js","../node_modules/reduce-css-calc/dist/lib/convert.js","../node_modules/reduce-css-calc/dist/lib/reducer.js","../node_modules/reduce-css-calc/dist/lib/stringifier.js","../node_modules/reduce-css-calc/dist/parser.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/index.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/parse.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/stringify.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/unit.js","../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/walk.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.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/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","engine/stage/Stage.enum.ts","engine/stage/useLocalStorageStage.tsx","engine/stage/StageContext.tsx","engine/stage/StageReducer.tsx","engine/stage/StageProvider.tsx","engine/stage/useStage.tsx","engine/user/User.enums.ts","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","data/User.ts","engine/rounds/Round.enums.ts","data/Rounds.ts","engine/userRounds/UserRoundContext.tsx","engine/user/useUser.tsx","engine/rounds/useRounds.tsx","webpack://raise/./src/components/headerBar/HeaderBar.module.scss?2a47","components/shared/logos/RaiseLogo.tsx","webpack://raise/./src/components/shared/button/Button.module.scss?94ab","utils/classNameMaker/index.tsx","components/shared/icons/CheckIcon.tsx","components/shared/button/Button.tsx","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","engine/leaderboard/Leaderboard.definition.ts","engine/leaderboard/LeaderboardContext.tsx","components/headerBar/HeaderBar.tsx","webpack://raise/./src/components/shared/text/Text.module.scss?2255","components/shared/text/Text.tsx","webpack://raise/./src/layouts/IntroWrapper/IntroWrapper.module.scss?1c99","layouts/IntroWrapper/IntroWrapper.tsx","webpack://raise/./src/components/about/About.module.scss?8b9f","components/about/About.tsx","webpack://raise/./src/components/goals/optionCard/OptionCard.module.scss?d0c4","webpack://raise/./src/components/shared/coinAmount/CoinAmount.module.scss?b44a","components/shared/icons/PoundIcon.tsx","components/shared/coinAmount/CoinAmount.tsx","components/goals/optionCard/OptionCard.tsx","webpack://raise/./src/components/goals/goalList/GoalList.module.scss?0c4d","components/goals/goalList/GoalList.tsx","components/goals/personaliseGoal/PersonaliseGoal.module.scss","engine/goal/Goal.defintions.tsx","data/GoalsList.ts","components/goals/personaliseGoal/PersonaliseGoal.tsx","components/goals/selectGoals/SelectGoals.module.scss","webpack://raise/./src/components/goals/goalCard/GoalCard.module.scss?2dcd","components/shared/icons/ArmchairIcon.tsx","components/shared/icons/CarIcon.tsx","components/shared/icons/BriefcaseIcon.tsx","components/shared/icons/ClothesHangerIcon.tsx","components/shared/icons/HouseIcon.tsx","components/shared/icons/PlaneIcon.tsx","components/shared/icons/TrainersIcon.tsx","components/shared/icons/PhoneIcon.tsx","components/shared/icons/TicketIcon.tsx","components/goals/goalCard/GoalCard.tsx","webpack://raise/./src/components/goals/goalCategories/GoalCategories.module.scss?8d6b","components/goals/goalCategories/GoalCategories.tsx","components/goals/selectGoals/SelectGoals.tsx","components/goals/Goals.tsx","components/accounts/Accounts.definitions.ts","components/accounts/Accounts.enums.ts","data/AccountsList.ts","data/FundsList.ts","components/accounts/accountScorer.ts","components/accounts/useAccountSelector.tsx","webpack://raise/./src/components/accounts/Accounts.module.scss?a660","webpack://raise/./src/components/shared/page/Page.module.scss?1a07","components/shared/page/Page.tsx","webpack://raise/./src/components/shared/choices/Choices.module.scss?8ebe","components/shared/choices/Choices.tsx","webpack://raise/./src/components/shared/choices/ChoicesBox.module.scss?678f","components/shared/choices/ShortTermAnimation.tsx","components/shared/choices/LongTermAnimation.tsx","components/shared/choices/ChoicesBox.tsx","components/shared/peopleGraphics/rocketMan/rocketMan.tsx","components/shared/peopleGraphics/jetpackMan/JetPackMan.tsx","components/shared/peopleGraphics/woman/Woman.tsx","components/chance/Chance.enums.ts","data/ChanceCards.ts","components/chance/userChanceGenerator.tsx","webpack://raise/./src/components/investmentRatings/InvestmentRatings.module.scss?c317","components/shared/icons/StarIcon.tsx","components/shared/icons/StarHalfIcon.tsx","components/investmentRatings/InvestmentRatings.tsx","components/accounts/Accounts.tsx","webpack://raise/./src/components/socialResponsibilityStrategy/SocialResponsibilityStrategy.module.scss?8d02","webpack://raise/./src/components/shared/range/Range.module.scss?7087","components/shared/range/Range.tsx","webpack://raise/./src/components/socialResponsibilityStrategy/EsgImageSelector.module.scss?98d8","webpack://raise/./src/components/socialResponsibilityStrategy/EsgImage.module.scss?dc6c","components/socialResponsibilityStrategy/EsgImage.tsx","components/socialResponsibilityStrategy/EsgImageSelector.tsx","components/socialResponsibilityStrategy/SocialResponsibilityStrategy.tsx","webpack://raise/./src/components/risk/Risk.module.scss?33ad","components/shared/peopleGraphics/plantMan/PlantMan.tsx","components/shared/peopleGraphics/laptopMan/laptopMan.tsx","components/shared/peopleGraphics/man/Man.tsx","webpack://raise/./src/components/shared/choiceCard/ChoiceCardLayout.module.scss?28d4","components/shared/choiceCard/ChoiceCardLayout.tsx","webpack://raise/./src/components/shared/choiceCard/ChoiceCard.module.scss?3be3","components/risk/animations/SafeAnimation.tsx","components/risk/animations/BalancedAnimation.tsx","components/risk/animations/RiskyAnimation.tsx","components/shared/choiceCard/ChoiceCard.tsx","components/risk/Risk.tsx","webpack://raise/./src/components/chance/chanceSelection/ChanceSelection.module.scss?bbf0","webpack://raise/./src/components/timeline/timeline.module.scss?605a","components/poundGraphic/poundGraphic.tsx","components/shared/icons/CakeIcon.tsx","components/timeline/Timeline.tsx","webpack://raise/./src/components/chance/chanceSelection/chanceCardBoxes/ChanceCardBoxes.module.scss?27db","components/chance/chanceSelection/chanceCardBoxes/ChanceCardBoxes.tsx","components/chance/chanceIntroduction/ChanceIntroduction.tsx","components/chance/chanceNotFound/ChanceNotFound.tsx","webpack://raise/./src/components/chance/chanceOutcome/ChanceOutcome.module.scss?5cd9","webpack://raise/./src/components/chance/chanceOutcome/shortTermPayment/ShortTermPayment.module.scss?515e","webpack://raise/./src/components/shared/buttonGroup/ButtonGroup.module.scss?eada","components/shared/buttonGroup/ButtonGroup.tsx","webpack://raise/./src/components/shared/animateNumber/animateNumber.module.scss?6b9f","components/shared/animateNumber/animateNumber.tsx","components/chance/chanceOutcome/shortTermPayment/ShortTermPayment.tsx","components/shared/peopleGraphics/manOnStool/ManOnStool.tsx","webpack://raise/./src/components/chance/chanceOutcome/longTermPayment/LongTermPayment.module.scss?78e8","components/chance/chanceOutcome/longTermPayment/LongTermPayment.tsx","webpack://raise/./src/components/chance/chanceOutcome/depositSummary/DepositSummary.module.scss?2af4","components/chance/chanceOutcome/depositSummary/CoinJarAnimation.tsx","components/chance/chanceOutcome/depositSummary/TimePassingAnimation.tsx","components/chance/chanceOutcome/depositSummary/DepositSummary.tsx","components/shared/peopleGraphics/rocketManWithShadow/rocketManWithShadow.tsx","components/shared/peopleGraphics/shrugMan/shrugMan.tsx","components/chance/chanceOutcome/ChanceOutcome.tsx","components/chance/chanceSelection/Popup.tsx","webpack://raise/./src/components/shared/options/OptionsBox.module.scss?78e2","components/shared/options/OptionsBox.tsx","webpack://raise/./src/components/shared/options/OptionsLayout.module.scss?e6d4","components/shared/options/OptionsLayout.tsx","components/chance/extraInfoOptions/ExtraInfoOptions.tsx","components/chance/chanceSelection/ChanceSelection.tsx","webpack://raise/./src/components/chance/chanceOutcome/overdraft/Overdraft.module.scss?7bd1","components/chance/chanceOutcome/overdraft/Overdraft.tsx","components/chance/ChanceCard.tsx","webpack://raise/./src/components/incomeSplit/IncomeSplit.module.scss?b0bf","components/incomeSplit/CoinGraphic.tsx","components/shared/peopleGraphics/threePeople/ThreePeople.tsx","components/shared/peopleGraphics/couple/Couple.tsx","components/incomeSplit/IncomeSplit.tsx","webpack://raise/./src/components/roundIntro/RoundIntro.module.scss?aafa","components/roundIntro/RoundIntro.tsx","data/QuizContent.ts","webpack://raise/./src/components/shared/form/radio/RadioButtonGroup.module.scss?cacd","components/shared/form/radio/RadioButtonGroup.tsx","webpack://raise/./src/components/shared/form/radio/RadioButton.module.scss?65ac","components/shared/form/radio/RadioButton.tsx","webpack://raise/./src/components/quiz/Quiz.module.scss?56f4","webpack://raise/./src/components/quiz/QuizAnswer.module.scss?033e","webpack://raise/./src/components/shared/icons/AnswerIcon.module.scss?12ba","components/shared/icons/CheckRoundedIcon.tsx","components/shared/icons/CrossRoundedIcon.tsx","components/shared/icons/AnswerIcon.tsx","components/quiz/QuizAnswer.tsx","components/shared/icons/badges/OwlBadge.tsx","components/quiz/Quiz.tsx","webpack://raise/./src/components/summary/Summary.module.scss?2cd9","webpack://raise/./src/components/shared/goalsProgress/GoalsProgressCard.module.scss?6b77","webpack://raise/./src/components/shared/achievedGraphic/AchievedGraphic.module.scss?2d0b","components/shared/icons/TickIcon.tsx","components/shared/icons/CrossIcon.tsx","components/shared/achievedGraphic/AchievedGraphic.module.tsx","components/shared/goalsProgress/GoalsProgressCard.tsx","webpack://raise/./src/components/shared/cardList/CardList.module.scss?a3a9","components/shared/cardList/CardList.tsx","components/summary/Progress.tsx","components/summary/CompleteGoal.tsx","components/summary/Summary.tsx","components/playRound/PlayRound.tsx","webpack://raise/./src/components/results/Results.module.scss?35d2","components/shared/peopleGraphics/megaphoneWoman/MegaphoneWoman.tsx","components/shared/icons/badges/CheckBadge .tsx","components/shared/icons/badges/CoinsBadge.tsx","components/shared/icons/badges/GlobeBadge.tsx","components/shared/icons/badges/OwlBadgeBronze.tsx","components/shared/icons/badges/OwlBadgeSilver.tsx","components/shared/icons/badges/OwlBadgeGold.tsx","components/shared/icons/badges/SmileBadge.tsx","components/shared/icons/badges/TreeBadge.tsx","webpack://raise/./src/components/results/AwardsBadge.module.scss?0c41","components/results/AwardsBadge.tsx","components/results/useAwards.ts","webpack://raise/./src/components/results/chart/Chart.module.scss?8f44","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/types.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/react-smooth/es6/setRafTimeout.js","../node_modules/react-smooth/es6/AnimateManager.js","../node_modules/react-smooth/es6/util.js","../node_modules/react-smooth/es6/easing.js","../node_modules/react-smooth/es6/configUpdate.js","../node_modules/react-smooth/es6/Animate.js","../node_modules/react-smooth/es6/AnimateGroupChild.js","../node_modules/react-smooth/es6/AnimateGroup.js","../node_modules/react-smooth/es6/index.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/util/Global.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/d3-shape/src/math.js","../node_modules/d3-shape/src/symbol/circle.js","../node_modules/d3-shape/src/symbol/cross.js","../node_modules/d3-shape/src/symbol/diamond.js","../node_modules/d3-shape/src/symbol/square.js","../node_modules/d3-shape/src/symbol/star.js","../node_modules/d3-shape/src/symbol/triangle.js","../node_modules/d3-shape/src/symbol/wye.js","../node_modules/d3-shape/src/constant.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../node_modules/d3-path/src/path.js","../node_modules/d3-shape/src/path.js","../node_modules/d3-shape/src/symbol/asterisk.js","../node_modules/d3-shape/src/symbol/triangle2.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../node_modules/d3-shape/src/noop.js","../node_modules/d3-shape/src/curve/basis.js","../node_modules/d3-shape/src/curve/basisClosed.js","../node_modules/d3-shape/src/curve/basisOpen.js","../node_modules/d3-shape/src/curve/linearClosed.js","../node_modules/d3-shape/src/curve/linear.js","../node_modules/d3-shape/src/curve/monotone.js","../node_modules/d3-shape/src/curve/natural.js","../node_modules/d3-shape/src/curve/step.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/util/PolarUtils.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/component/Text.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/d3-scale/src/init.js","../node_modules/internmap/src/index.js","../node_modules/d3-scale/src/ordinal.js","../node_modules/d3-scale/src/band.js","../node_modules/d3-array/src/range.js","../node_modules/d3-array/src/ticks.js","../node_modules/d3-array/src/ascending.js","../node_modules/d3-array/src/descending.js","../node_modules/d3-array/src/bisector.js","../node_modules/d3-array/src/number.js","../node_modules/d3-array/src/bisect.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/basis.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/basisClosed.js","../node_modules/d3-interpolate/src/array.js","../node_modules/d3-interpolate/src/date.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/object.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/numberArray.js","../node_modules/d3-interpolate/src/value.js","../node_modules/d3-interpolate/src/round.js","../node_modules/d3-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatRounded.js","../node_modules/d3-format/src/formatTypes.js","../node_modules/d3-format/src/identity.js","../node_modules/d3-format/src/locale.js","../node_modules/d3-format/src/defaultLocale.js","../node_modules/d3-format/src/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-format/src/precisionFixed.js","../node_modules/d3-scale/src/linear.js","../node_modules/d3-scale/src/identity.js","../node_modules/d3-scale/src/nice.js","../node_modules/d3-scale/src/log.js","../node_modules/d3-scale/src/symlog.js","../node_modules/d3-scale/src/pow.js","../node_modules/d3-scale/src/radial.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sort.js","../node_modules/d3-array/src/quickselect.js","../node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/quantile.js","../node_modules/d3-scale/src/quantize.js","../node_modules/d3-scale/src/threshold.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/interval.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/year.js","../node_modules/d3-time/src/ticks.js","../node_modules/d3-time-format/src/locale.js","../node_modules/d3-time-format/src/defaultLocale.js","../node_modules/d3-scale/src/time.js","../node_modules/d3-scale/src/utcTime.js","../node_modules/d3-scale/src/sequential.js","../node_modules/d3-scale/src/sequentialQuantile.js","../node_modules/d3-scale/src/diverging.js","../node_modules/d3-interpolate/src/piecewise.js","../node_modules/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts-scale/es6/util/utils.js","../node_modules/recharts-scale/es6/util/arithmetic.js","../node_modules/recharts-scale/es6/getNiceTickValues.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/util/ChartUtils.js","../node_modules/d3-shape/src/offset/expand.js","../node_modules/d3-shape/src/offset/silhouette.js","../node_modules/d3-shape/src/offset/wiggle.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/util/LogUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/recharts/es6/cartesian/CartesianGrid.js","components/shared/icons/CoinIcon.tsx","webpack://raise/./src/components/results/customToolTip/CustomToolTip.module.scss?a57d","components/results/customToolTip/CustomToolTip.tsx","../node_modules/react-resize-detector/node_modules/tslib/tslib.es6.js","../node_modules/react-resize-detector/node_modules/lodash/isObject.js","../node_modules/react-resize-detector/node_modules/lodash/_root.js","../node_modules/react-resize-detector/node_modules/lodash/_freeGlobal.js","../node_modules/react-resize-detector/node_modules/lodash/now.js","../node_modules/react-resize-detector/node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/node_modules/lodash/_baseTrim.js","../node_modules/react-resize-detector/node_modules/lodash/_Symbol.js","../node_modules/react-resize-detector/node_modules/lodash/_getRawTag.js","../node_modules/react-resize-detector/node_modules/lodash/_objectToString.js","../node_modules/react-resize-detector/node_modules/lodash/_baseGetTag.js","../node_modules/react-resize-detector/node_modules/lodash/isObjectLike.js","../node_modules/react-resize-detector/node_modules/lodash/isSymbol.js","../node_modules/react-resize-detector/node_modules/lodash/toNumber.js","../node_modules/react-resize-detector/node_modules/lodash/debounce.js","../node_modules/react-resize-detector/node_modules/lodash/throttle.js","../node_modules/react-resize-detector/src/utils.ts","../node_modules/react-resize-detector/src/ResizeDetector.tsx","../node_modules/react-resize-detector/src/useResizeDetector.ts","../node_modules/recharts/es6/component/ResponsiveContainer.js","components/results/chart/Chart.tsx","webpack://raise/./src/components/scoreTable/ScoreTable.module.scss?6016","webpack://raise/./src/components/scoreTable/HeaderCell/HeaderCell.module.scss?a61a","components/shared/icons/Medalcon.tsx","components/scoreTable/HeaderCell/HeaderCell.module.tsx","webpack://raise/./src/components/scoreTable/Row/Row.module.scss?8ce2","components/scoreTable/Row/Row.component.tsx","webpack://raise/./src/components/shared/Skeleton/Skeleton.module.scss?c53c","components/shared/Skeleton/Skeleton.module.tsx","webpack://raise/./src/components/scoreTable/Cell/Cell.module.scss?3450","components/scoreTable/Cell/Cell.module.tsx","webpack://raise/./src/components/scoreTable/Rows/Rows.module.scss?864f","components/shared/icons/ArrowDownIcon.tsx","components/shared/icons/ArrowUpIcon.tsx","webpack://raise/./src/components/scoreTable/Tooltip/Tooltip.module.scss?b7d2","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../node_modules/tabbable/src/index.js","../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","components/scoreTable/Tooltip/Tooltip.module.tsx","components/scoreTable/Rows/Rows.component.tsx","components/scoreTable/ScoreTable.tsx","components/results/Results.tsx","webpack://raise/./src/components/game/Game.module.scss?2730","webpack://raise/./src/components/tutorial/tutorial.module.scss?d364","components/tutorial/RoundsGraphic.tsx","components/tutorial/Tutorial.tsx","components/game/Game.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","webpack://raise/./src/layouts/Leaderboard/Leaderboard.module.scss?0380","webpack://raise/./src/components/TopAchievers/TopAchievers.module.scss?fb97","components/shared/icons/HouseResultsIcon.tsx","components/shared/icons/SofaIcon.tsx","components/shared/icons/ClipboardIcon.tsx","webpack://raise/./src/components/TopAchievers/AchieversCard/AchieversCard.module.scss?13c0","components/TopAchievers/AchieversCard/AchieversCard.module.tsx","components/TopAchievers/TopAchievers.module.tsx","webpack://raise/./src/components/endGame/EndGame.module.scss?bc10","components/endGame/EndGame.tsx","webpack://raise/./src/components/shared/barVertical/BarVertical.module.scss?04ba","components/shared/barVertical/BarVertical.tsx","layouts/Leaderboard/Leaderboard.module.tsx","../node_modules/@microsoft/signalr/src/DefaultReconnectPolicy.ts","../node_modules/@microsoft/signalr/src/HeaderNames.ts","../node_modules/@microsoft/signalr/src/HttpClient.ts","../node_modules/@microsoft/signalr/src/AccessTokenHttpClient.ts","../node_modules/@microsoft/signalr/src/Errors.ts","../node_modules/@microsoft/signalr/src/ILogger.ts","../node_modules/@microsoft/signalr/src/Loggers.ts","../node_modules/@microsoft/signalr/src/Utils.ts","../node_modules/@microsoft/signalr/src/FetchHttpClient.ts","../node_modules/@microsoft/signalr/src/DynamicImports.ts","../node_modules/@microsoft/signalr/src/XhrHttpClient.ts","../node_modules/@microsoft/signalr/src/DefaultHttpClient.ts","../node_modules/@microsoft/signalr/src/ITransport.ts","../node_modules/@microsoft/signalr/src/AbortController.ts","../node_modules/@microsoft/signalr/src/LongPollingTransport.ts","../node_modules/@microsoft/signalr/src/ServerSentEventsTransport.ts","../node_modules/@microsoft/signalr/src/WebSocketTransport.ts","../node_modules/@microsoft/signalr/src/HttpConnection.ts","../node_modules/@microsoft/signalr/src/TextMessageFormat.ts","../node_modules/@microsoft/signalr/src/HandshakeProtocol.ts","../node_modules/@microsoft/signalr/src/IHubProtocol.ts","../node_modules/@microsoft/signalr/src/Subject.ts","../node_modules/@microsoft/signalr/src/MessageBuffer.ts","../node_modules/@microsoft/signalr/src/HubConnection.ts","../node_modules/@microsoft/signalr/src/JsonHubProtocol.ts","../node_modules/@microsoft/signalr/src/HubConnectionBuilder.ts","engine/leaderboard/LeaderboardProvider.tsx","engine/user/useLocalStorageUser.tsx","engine/rounds/useLocalStorageRounds.tsx","engine/user/UserReducer.tsx","engine/rounds/progressCalculator.ts","engine/userRounds/UserRoundReducer.ts","engine/rounds/RoundReducer.tsx","engine/userRounds/UserRoundProvider.tsx","webpack://raise/./src/components/welcome/Welcome.module.scss?08ea","webpack://raise/./src/components/shared/spinner/Spinner.module.scss?2ef4","components/shared/spinner/Spinner.module.tsx","components/shared/icons/ExclamationIcon.tsx","components/shared/icons/FilesIcon.tsx","components/shared/icons/PDFIcon.tsx","components/shared/logos/YeLogo.tsx","components/welcome/Welcome.tsx","webpack://raise/./src/components/class/Class.module.scss?7a22","components/shared/icons/ArrowLeftIcon.tsx","../node_modules/@babel/runtime/helpers/esm/extends.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/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","../node_modules/react-select/dist/useAsync-ba7c6b77.esm.js","../node_modules/react-select/async/dist/react-select-async.esm.js","components/class/Class.tsx","engine/leaderboard/LeaderboardProviderStub.tsx","App.tsx","index.tsx"],"sourcesContent":["const localList = require('./lang.json').words;\nconst baseList = require('badwords-list').array;\n\nclass Filter {\n\n /**\n * Filter constructor.\n * @constructor\n * @param {object} options - Filter instance options\n * @param {boolean} options.emptyList - Instantiate filter with no blacklist\n * @param {array} options.list - Instantiate filter with custom list\n * @param {string} options.placeHolder - Character used to replace profane words.\n * @param {string} options.regex - Regular expression used to sanitize words before comparing them to blacklist.\n * @param {string} options.replaceRegex - Regular expression used to replace profane words with placeHolder.\n * @param {string} options.splitRegex - Regular expression used to split a string into words.\n */\n constructor(options = {}) {\n Object.assign(this, {\n list: options.emptyList && [] || Array.prototype.concat.apply(localList, [baseList, options.list || []]),\n exclude: options.exclude || [],\n splitRegex: options.splitRegex || /\\b/,\n placeHolder: options.placeHolder || '*',\n regex: options.regex || /[^a-zA-Z0-9|\\$|\\@]|\\^/g,\n replaceRegex: options.replaceRegex || /\\w/g\n })\n }\n\n /**\n * Determine if a string contains profane language.\n * @param {string} string - String to evaluate for profanity.\n */\n isProfane(string) {\n return this.list\n .filter((word) => {\n const wordExp = new RegExp(`\\\\b${word.replace(/(\\W)/g, '\\\\$1')}\\\\b`, 'gi');\n return !this.exclude.includes(word.toLowerCase()) && wordExp.test(string);\n })\n .length > 0 || false;\n }\n\n /**\n * Replace a word with placeHolder characters;\n * @param {string} string - String to replace.\n */\n replaceWord(string) {\n return string\n .replace(this.regex, '')\n .replace(this.replaceRegex, this.placeHolder);\n }\n\n /**\n * Evaluate a string for profanity and return an edited version.\n * @param {string} string - Sentence to filter.\n */\n clean(string) {\n return string.split(this.splitRegex).map((word) => {\n return this.isProfane(word) ? this.replaceWord(word) : word;\n }).join(this.splitRegex.exec(string)[0]);\n }\n\n /**\n * Add word(s) to blacklist filter / remove words from whitelist filter\n * @param {...string} word - Word(s) to add to blacklist\n */\n addWords() {\n let words = Array.from(arguments);\n\n this.list.push(...words);\n\n words\n .map(word => word.toLowerCase())\n .forEach((word) => {\n if (this.exclude.includes(word)) {\n this.exclude.splice(this.exclude.indexOf(word), 1);\n }\n });\n }\n\n /**\n * Add words to whitelist filter\n * @param {...string} word - Word(s) to add to whitelist.\n */\n removeWords() {\n this.exclude.push(...Array.from(arguments).map(word => word.toLowerCase()));\n }\n}\n\nmodule.exports = Filter;","module.exports = [\"4r5e\", \"5h1t\", \"5hit\", \"a55\", \"anal\", \"anus\", \"ar5e\", \"arrse\", \"arse\", \"ass\", \"ass-fucker\", \"asses\", \"assfucker\", \"assfukka\", \"asshole\", \"assholes\", \"asswhole\", \"a_s_s\", \"b!tch\", \"b00bs\", \"b17ch\", \"b1tch\", \"ballbag\", \"balls\", \"ballsack\", \"bastard\", \"beastial\", \"beastiality\", \"bellend\", \"bestial\", \"bestiality\", \"bi+ch\", \"biatch\", \"bitch\", \"bitcher\", \"bitchers\", \"bitches\", \"bitchin\", \"bitching\", \"bloody\", \"blow job\", \"blowjob\", \"blowjobs\", \"boiolas\", \"bollock\", \"bollok\", \"boner\", \"boob\", \"boobs\", \"booobs\", \"boooobs\", \"booooobs\", \"booooooobs\", \"breasts\", \"buceta\", \"bugger\", \"bum\", \"bunny fucker\", \"butt\", \"butthole\", \"buttmuch\", \"buttplug\", \"c0ck\", \"c0cksucker\", \"carpet muncher\", \"cawk\", \"chink\", \"cipa\", \"cl1t\", \"clit\", \"clitoris\", \"clits\", \"cnut\", \"cock\", \"cock-sucker\", \"cockface\", \"cockhead\", \"cockmunch\", \"cockmuncher\", \"cocks\", \"cocksuck\", \"cocksucked\", \"cocksucker\", \"cocksucking\", \"cocksucks\", \"cocksuka\", \"cocksukka\", \"cok\", \"cokmuncher\", \"coksucka\", \"coon\", \"cox\", \"crap\", \"cum\", \"cummer\", \"cumming\", \"cums\", \"cumshot\", \"cunilingus\", \"cunillingus\", \"cunnilingus\", \"cunt\", \"cuntlick\", \"cuntlicker\", \"cuntlicking\", \"cunts\", \"cyalis\", \"cyberfuc\", \"cyberfuck\", \"cyberfucked\", \"cyberfucker\", \"cyberfuckers\", \"cyberfucking\", \"d1ck\", \"damn\", \"dick\", \"dickhead\", \"dildo\", \"dildos\", \"dink\", \"dinks\", \"dirsa\", \"dlck\", \"dog-fucker\", \"doggin\", \"dogging\", \"donkeyribber\", \"doosh\", \"duche\", \"dyke\", \"ejaculate\", \"ejaculated\", \"ejaculates\", \"ejaculating\", \"ejaculatings\", \"ejaculation\", \"ejakulate\", \"f u c k\", \"f u c k e r\", \"f4nny\", \"fag\", \"fagging\", \"faggitt\", \"faggot\", \"faggs\", \"fagot\", \"fagots\", \"fags\", \"fanny\", \"fannyflaps\", \"fannyfucker\", \"fanyy\", \"fatass\", \"fcuk\", \"fcuker\", \"fcuking\", \"feck\", \"fecker\", \"felching\", \"fellate\", \"fellatio\", \"fingerfuck\", \"fingerfucked\", \"fingerfucker\", \"fingerfuckers\", \"fingerfucking\", \"fingerfucks\", \"fistfuck\", \"fistfucked\", \"fistfucker\", \"fistfuckers\", \"fistfucking\", \"fistfuckings\", \"fistfucks\", \"flange\", \"fook\", \"fooker\", \"fuck\", \"fucka\", \"fucked\", \"fucker\", \"fuckers\", \"fuckhead\", \"fuckheads\", \"fuckin\", \"fucking\", \"fuckings\", \"fuckingshitmotherfucker\", \"fuckme\", \"fucks\", \"fuckwhit\", \"fuckwit\", \"fudge packer\", \"fudgepacker\", \"fuk\", \"fuker\", \"fukker\", \"fukkin\", \"fuks\", \"fukwhit\", \"fukwit\", \"fux\", \"fux0r\", \"f_u_c_k\", \"gangbang\", \"gangbanged\", \"gangbangs\", \"gaylord\", \"gaysex\", \"goatse\", \"God\", \"god-dam\", \"god-damned\", \"goddamn\", \"goddamned\", \"hardcoresex\", \"hell\", \"heshe\", \"hoar\", \"hoare\", \"hoer\", \"homo\", \"hore\", \"horniest\", \"horny\", \"hotsex\", \"jack-off\", \"jackoff\", \"jap\", \"jerk-off\", \"jism\", \"jiz\", \"jizm\", \"jizz\", \"kawk\", \"knob\", \"knobead\", \"knobed\", \"knobend\", \"knobhead\", \"knobjocky\", \"knobjokey\", \"kock\", \"kondum\", \"kondums\", \"kum\", \"kummer\", \"kumming\", \"kums\", \"kunilingus\", \"l3i+ch\", \"l3itch\", \"labia\", \"lust\", \"lusting\", \"m0f0\", \"m0fo\", \"m45terbate\", \"ma5terb8\", \"ma5terbate\", \"masochist\", \"master-bate\", \"masterb8\", \"masterbat*\", \"masterbat3\", \"masterbate\", \"masterbation\", \"masterbations\", \"masturbate\", \"mo-fo\", \"mof0\", \"mofo\", \"mothafuck\", \"mothafucka\", \"mothafuckas\", \"mothafuckaz\", \"mothafucked\", \"mothafucker\", \"mothafuckers\", \"mothafuckin\", \"mothafucking\", \"mothafuckings\", \"mothafucks\", \"mother fucker\", \"motherfuck\", \"motherfucked\", \"motherfucker\", \"motherfuckers\", \"motherfuckin\", \"motherfucking\", \"motherfuckings\", \"motherfuckka\", \"motherfucks\", \"muff\", \"mutha\", \"muthafecker\", \"muthafuckker\", \"muther\", \"mutherfucker\", \"n1gga\", \"n1gger\", \"nazi\", \"nigg3r\", \"nigg4h\", \"nigga\", \"niggah\", \"niggas\", \"niggaz\", \"nigger\", \"niggers\", \"nob\", \"nob jokey\", \"nobhead\", \"nobjocky\", \"nobjokey\", \"numbnuts\", \"nutsack\", \"orgasim\", \"orgasims\", \"orgasm\", \"orgasms\", \"p0rn\", \"pawn\", \"pecker\", \"penis\", \"penisfucker\", \"phonesex\", \"phuck\", \"phuk\", \"phuked\", \"phuking\", \"phukked\", \"phukking\", \"phuks\", \"phuq\", \"pigfucker\", \"pimpis\", \"piss\", \"pissed\", \"pisser\", \"pissers\", \"pisses\", \"pissflaps\", \"pissin\", \"pissing\", \"pissoff\", \"poop\", \"porn\", \"porno\", \"pornography\", \"pornos\", \"prick\", \"pricks\", \"pron\", \"pube\", \"pusse\", \"pussi\", \"pussies\", \"pussy\", \"pussys\", \"rectum\", \"retard\", \"rimjaw\", \"rimming\", \"s hit\", \"s.o.b.\", \"sadist\", \"schlong\", \"screwing\", \"scroat\", \"scrote\", \"scrotum\", \"semen\", \"sex\", \"sh!+\", \"sh!t\", \"sh1t\", \"shag\", \"shagger\", \"shaggin\", \"shagging\", \"shemale\", \"shi+\", \"shit\", \"shitdick\", \"shite\", \"shited\", \"shitey\", \"shitfuck\", \"shitfull\", \"shithead\", \"shiting\", \"shitings\", \"shits\", \"shitted\", \"shitter\", \"shitters\", \"shitting\", \"shittings\", \"shitty\", \"skank\", \"slut\", \"sluts\", \"smegma\", \"smut\", \"snatch\", \"son-of-a-bitch\", \"spac\", \"spunk\", \"s_h_i_t\", \"t1tt1e5\", \"t1tties\", \"teets\", \"teez\", \"testical\", \"testicle\", \"tit\", \"titfuck\", \"tits\", \"titt\", \"tittie5\", \"tittiefucker\", \"titties\", \"tittyfuck\", \"tittywank\", \"titwank\", \"tosser\", \"turd\", \"tw4t\", \"twat\", \"twathead\", \"twatty\", \"twunt\", \"twunter\", \"v14gra\", \"v1gra\", \"vagina\", \"viagra\", \"vulva\", \"w00se\", \"wang\", \"wank\", \"wanker\", \"wanky\", \"whoar\", \"whore\", \"willies\", \"willy\", \"xrated\", \"xxx\"];","module.exports = {\n object: require('./object'),\n array: require('./array'),\n regex: require('./regexp')\n};","module.exports = {\"4r5e\": 1, \"5h1t\": 1, \"5hit\": 1, \"a55\": 1, \"anal\": 1, \"anus\": 1, \"ar5e\": 1, \"arrse\": 1, \"arse\": 1, \"ass\": 1, \"ass-fucker\": 1, \"asses\": 1, \"assfucker\": 1, \"assfukka\": 1, \"asshole\": 1, \"assholes\": 1, \"asswhole\": 1, \"a_s_s\": 1, \"b!tch\": 1, \"b00bs\": 1, \"b17ch\": 1, \"b1tch\": 1, \"ballbag\": 1, \"balls\": 1, \"ballsack\": 1, \"bastard\": 1, \"beastial\": 1, \"beastiality\": 1, \"bellend\": 1, \"bestial\": 1, \"bestiality\": 1, \"bi+ch\": 1, \"biatch\": 1, \"bitch\": 1, \"bitcher\": 1, \"bitchers\": 1, \"bitches\": 1, \"bitchin\": 1, \"bitching\": 1, \"bloody\": 1, \"blow job\": 1, \"blowjob\": 1, \"blowjobs\": 1, \"boiolas\": 1, \"bollock\": 1, \"bollok\": 1, \"boner\": 1, \"boob\": 1, \"boobs\": 1, \"booobs\": 1, \"boooobs\": 1, \"booooobs\": 1, \"booooooobs\": 1, \"breasts\": 1, \"buceta\": 1, \"bugger\": 1, \"bum\": 1, \"bunny fucker\": 1, \"butt\": 1, \"butthole\": 1, \"buttmuch\": 1, \"buttplug\": 1, \"c0ck\": 1, \"c0cksucker\": 1, \"carpet muncher\": 1, \"cawk\": 1, \"chink\": 1, \"cipa\": 1, \"cl1t\": 1, \"clit\": 1, \"clitoris\": 1, \"clits\": 1, \"cnut\": 1, \"cock\": 1, \"cock-sucker\": 1, \"cockface\": 1, \"cockhead\": 1, \"cockmunch\": 1, \"cockmuncher\": 1, \"cocks\": 1, \"cocksuck\": 1, \"cocksucked\": 1, \"cocksucker\": 1, \"cocksucking\": 1, \"cocksucks\": 1, \"cocksuka\": 1, \"cocksukka\": 1, \"cok\": 1, \"cokmuncher\": 1, \"coksucka\": 1, \"coon\": 1, \"cox\": 1, \"crap\": 1, \"cum\": 1, \"cummer\": 1, \"cumming\": 1, \"cums\": 1, \"cumshot\": 1, \"cunilingus\": 1, \"cunillingus\": 1, \"cunnilingus\": 1, \"cunt\": 1, \"cuntlick\": 1, \"cuntlicker\": 1, \"cuntlicking\": 1, \"cunts\": 1, \"cyalis\": 1, \"cyberfuc\": 1, \"cyberfuck\": 1, \"cyberfucked\": 1, \"cyberfucker\": 1, \"cyberfuckers\": 1, \"cyberfucking\": 1, \"d1ck\": 1, \"damn\": 1, \"dick\": 1, \"dickhead\": 1, \"dildo\": 1, \"dildos\": 1, \"dink\": 1, \"dinks\": 1, \"dirsa\": 1, \"dlck\": 1, \"dog-fucker\": 1, \"doggin\": 1, \"dogging\": 1, \"donkeyribber\": 1, \"doosh\": 1, \"duche\": 1, \"dyke\": 1, \"ejaculate\": 1, \"ejaculated\": 1, \"ejaculates\": 1, \"ejaculating\": 1, \"ejaculatings\": 1, \"ejaculation\": 1, \"ejakulate\": 1, \"f u c k\": 1, \"f u c k e r\": 1, \"f4nny\": 1, \"fag\": 1, \"fagging\": 1, \"faggitt\": 1, \"faggot\": 1, \"faggs\": 1, \"fagot\": 1, \"fagots\": 1, \"fags\": 1, \"fanny\": 1, \"fannyflaps\": 1, \"fannyfucker\": 1, \"fanyy\": 1, \"fatass\": 1, \"fcuk\": 1, \"fcuker\": 1, \"fcuking\": 1, \"feck\": 1, \"fecker\": 1, \"felching\": 1, \"fellate\": 1, \"fellatio\": 1, \"fingerfuck\": 1, \"fingerfucked\": 1, \"fingerfucker\": 1, \"fingerfuckers\": 1, \"fingerfucking\": 1, \"fingerfucks\": 1, \"fistfuck\": 1, \"fistfucked\": 1, \"fistfucker\": 1, \"fistfuckers\": 1, \"fistfucking\": 1, \"fistfuckings\": 1, \"fistfucks\": 1, \"flange\": 1, \"fook\": 1, \"fooker\": 1, \"fuck\": 1, \"fucka\": 1, \"fucked\": 1, \"fucker\": 1, \"fuckers\": 1, \"fuckhead\": 1, \"fuckheads\": 1, \"fuckin\": 1, \"fucking\": 1, \"fuckings\": 1, \"fuckingshitmotherfucker\": 1, \"fuckme\": 1, \"fucks\": 1, \"fuckwhit\": 1, \"fuckwit\": 1, \"fudge packer\": 1, \"fudgepacker\": 1, \"fuk\": 1, \"fuker\": 1, \"fukker\": 1, \"fukkin\": 1, \"fuks\": 1, \"fukwhit\": 1, \"fukwit\": 1, \"fux\": 1, \"fux0r\": 1, \"f_u_c_k\": 1, \"gangbang\": 1, \"gangbanged\": 1, \"gangbangs\": 1, \"gaylord\": 1, \"gaysex\": 1, \"goatse\": 1, \"God\": 1, \"god-dam\": 1, \"god-damned\": 1, \"goddamn\": 1, \"goddamned\": 1, \"hardcoresex\": 1, \"hell\": 1, \"heshe\": 1, \"hoar\": 1, \"hoare\": 1, \"hoer\": 1, \"homo\": 1, \"hore\": 1, \"horniest\": 1, \"horny\": 1, \"hotsex\": 1, \"jack-off\": 1, \"jackoff\": 1, \"jap\": 1, \"jerk-off\": 1, \"jism\": 1, \"jiz\": 1, \"jizm\": 1, \"jizz\": 1, \"kawk\": 1, \"knob\": 1, \"knobead\": 1, \"knobed\": 1, \"knobend\": 1, \"knobhead\": 1, \"knobjocky\": 1, \"knobjokey\": 1, \"kock\": 1, \"kondum\": 1, \"kondums\": 1, \"kum\": 1, \"kummer\": 1, \"kumming\": 1, \"kums\": 1, \"kunilingus\": 1, \"l3i+ch\": 1, \"l3itch\": 1, \"labia\": 1, \"lust\": 1, \"lusting\": 1, \"m0f0\": 1, \"m0fo\": 1, \"m45terbate\": 1, \"ma5terb8\": 1, \"ma5terbate\": 1, \"masochist\": 1, \"master-bate\": 1, \"masterb8\": 1, \"masterbat*\": 1, \"masterbat3\": 1, \"masterbate\": 1, \"masterbation\": 1, \"masterbations\": 1, \"masturbate\": 1, \"mo-fo\": 1, \"mof0\": 1, \"mofo\": 1, \"mothafuck\": 1, \"mothafucka\": 1, \"mothafuckas\": 1, \"mothafuckaz\": 1, \"mothafucked\": 1, \"mothafucker\": 1, \"mothafuckers\": 1, \"mothafuckin\": 1, \"mothafucking\": 1, \"mothafuckings\": 1, \"mothafucks\": 1, \"mother fucker\": 1, \"motherfuck\": 1, \"motherfucked\": 1, \"motherfucker\": 1, \"motherfuckers\": 1, \"motherfuckin\": 1, \"motherfucking\": 1, \"motherfuckings\": 1, \"motherfuckka\": 1, \"motherfucks\": 1, \"muff\": 1, \"mutha\": 1, \"muthafecker\": 1, \"muthafuckker\": 1, \"muther\": 1, \"mutherfucker\": 1, \"n1gga\": 1, \"n1gger\": 1, \"nazi\": 1, \"nigg3r\": 1, \"nigg4h\": 1, \"nigga\": 1, \"niggah\": 1, \"niggas\": 1, \"niggaz\": 1, \"nigger\": 1, \"niggers\": 1, \"nob\": 1, \"nob jokey\": 1, \"nobhead\": 1, \"nobjocky\": 1, \"nobjokey\": 1, \"numbnuts\": 1, \"nutsack\": 1, \"orgasim\": 1, \"orgasims\": 1, \"orgasm\": 1, \"orgasms\": 1, \"p0rn\": 1, \"pawn\": 1, \"pecker\": 1, \"penis\": 1, \"penisfucker\": 1, \"phonesex\": 1, \"phuck\": 1, \"phuk\": 1, \"phuked\": 1, \"phuking\": 1, \"phukked\": 1, \"phukking\": 1, \"phuks\": 1, \"phuq\": 1, \"pigfucker\": 1, \"pimpis\": 1, \"piss\": 1, \"pissed\": 1, \"pisser\": 1, \"pissers\": 1, \"pisses\": 1, \"pissflaps\": 1, \"pissin\": 1, \"pissing\": 1, \"pissoff\": 1, \"poop\": 1, \"porn\": 1, \"porno\": 1, \"pornography\": 1, \"pornos\": 1, \"prick\": 1, \"pricks\": 1, \"pron\": 1, \"pube\": 1, \"pusse\": 1, \"pussi\": 1, \"pussies\": 1, \"pussy\": 1, \"pussys\": 1, \"rectum\": 1, \"retard\": 1, \"rimjaw\": 1, \"rimming\": 1, \"s hit\": 1, \"s.o.b.\": 1, \"sadist\": 1, \"schlong\": 1, \"screwing\": 1, \"scroat\": 1, \"scrote\": 1, \"scrotum\": 1, \"semen\": 1, \"sex\": 1, \"sh!+\": 1, \"sh!t\": 1, \"sh1t\": 1, \"shag\": 1, \"shagger\": 1, \"shaggin\": 1, \"shagging\": 1, \"shemale\": 1, \"shi+\": 1, \"shit\": 1, \"shitdick\": 1, \"shite\": 1, \"shited\": 1, \"shitey\": 1, \"shitfuck\": 1, \"shitfull\": 1, \"shithead\": 1, \"shiting\": 1, \"shitings\": 1, \"shits\": 1, \"shitted\": 1, \"shitter\": 1, \"shitters\": 1, \"shitting\": 1, \"shittings\": 1, \"shitty\": 1, \"skank\": 1, \"slut\": 1, \"sluts\": 1, \"smegma\": 1, \"smut\": 1, \"snatch\": 1, \"son-of-a-bitch\": 1, \"spac\": 1, \"spunk\": 1, \"s_h_i_t\": 1, \"t1tt1e5\": 1, \"t1tties\": 1, \"teets\": 1, \"teez\": 1, \"testical\": 1, \"testicle\": 1, \"tit\": 1, \"titfuck\": 1, \"tits\": 1, \"titt\": 1, \"tittie5\": 1, \"tittiefucker\": 1, \"titties\": 1, \"tittyfuck\": 1, \"tittywank\": 1, \"titwank\": 1, \"tosser\": 1, \"turd\": 1, \"tw4t\": 1, \"twat\": 1, \"twathead\": 1, \"twatty\": 1, \"twunt\": 1, \"twunter\": 1, \"v14gra\": 1, \"v1gra\": 1, \"vagina\": 1, \"viagra\": 1, \"vulva\": 1, \"w00se\": 1, \"wang\": 1, \"wank\": 1, \"wanker\": 1, \"wanky\": 1, \"whoar\": 1, \"whore\": 1, \"willies\": 1, \"willy\": 1, \"xrated\": 1, \"xxx\": 1};","module.exports = /\\b(4r5e|5h1t|5hit|a55|anal|anus|ar5e|arrse|arse|ass|ass-fucker|asses|assfucker|assfukka|asshole|assholes|asswhole|a_s_s|b!tch|b00bs|b17ch|b1tch|ballbag|balls|ballsack|bastard|beastial|beastiality|bellend|bestial|bestiality|bi\\+ch|biatch|bitch|bitcher|bitchers|bitches|bitchin|bitching|bloody|blow job|blowjob|blowjobs|boiolas|bollock|bollok|boner|boob|boobs|booobs|boooobs|booooobs|booooooobs|breasts|buceta|bugger|bum|bunny fucker|butt|butthole|buttmuch|buttplug|c0ck|c0cksucker|carpet muncher|cawk|chink|cipa|cl1t|clit|clitoris|clits|cnut|cock|cock-sucker|cockface|cockhead|cockmunch|cockmuncher|cocks|cocksuck|cocksucked|cocksucker|cocksucking|cocksucks|cocksuka|cocksukka|cok|cokmuncher|coksucka|coon|cox|crap|cum|cummer|cumming|cums|cumshot|cunilingus|cunillingus|cunnilingus|cunt|cuntlick|cuntlicker|cuntlicking|cunts|cyalis|cyberfuc|cyberfuck|cyberfucked|cyberfucker|cyberfuckers|cyberfucking|d1ck|damn|dick|dickhead|dildo|dildos|dink|dinks|dirsa|dlck|dog-fucker|doggin|dogging|donkeyribber|doosh|duche|dyke|ejaculate|ejaculated|ejaculates|ejaculating|ejaculatings|ejaculation|ejakulate|f u c k|f u c k e r|f4nny|fag|fagging|faggitt|faggot|faggs|fagot|fagots|fags|fanny|fannyflaps|fannyfucker|fanyy|fatass|fcuk|fcuker|fcuking|feck|fecker|felching|fellate|fellatio|fingerfuck|fingerfucked|fingerfucker|fingerfuckers|fingerfucking|fingerfucks|fistfuck|fistfucked|fistfucker|fistfuckers|fistfucking|fistfuckings|fistfucks|flange|fook|fooker|fuck|fucka|fucked|fucker|fuckers|fuckhead|fuckheads|fuckin|fucking|fuckings|fuckingshitmotherfucker|fuckme|fucks|fuckwhit|fuckwit|fudge packer|fudgepacker|fuk|fuker|fukker|fukkin|fuks|fukwhit|fukwit|fux|fux0r|f_u_c_k|gangbang|gangbanged|gangbangs|gaylord|gaysex|goatse|God|god-dam|god-damned|goddamn|goddamned|hardcoresex|hell|heshe|hoar|hoare|hoer|homo|hore|horniest|horny|hotsex|jack-off|jackoff|jap|jerk-off|jism|jiz|jizm|jizz|kawk|knob|knobead|knobed|knobend|knobhead|knobjocky|knobjokey|kock|kondum|kondums|kum|kummer|kumming|kums|kunilingus|l3i\\+ch|l3itch|labia|lust|lusting|m0f0|m0fo|m45terbate|ma5terb8|ma5terbate|masochist|master-bate|masterb8|masterbat*|masterbat3|masterbate|masterbation|masterbations|masturbate|mo-fo|mof0|mofo|mothafuck|mothafucka|mothafuckas|mothafuckaz|mothafucked|mothafucker|mothafuckers|mothafuckin|mothafucking|mothafuckings|mothafucks|mother fucker|motherfuck|motherfucked|motherfucker|motherfuckers|motherfuckin|motherfucking|motherfuckings|motherfuckka|motherfucks|muff|mutha|muthafecker|muthafuckker|muther|mutherfucker|n1gga|n1gger|nazi|nigg3r|nigg4h|nigga|niggah|niggas|niggaz|nigger|niggers|nob|nob jokey|nobhead|nobjocky|nobjokey|numbnuts|nutsack|orgasim|orgasims|orgasm|orgasms|p0rn|pawn|pecker|penis|penisfucker|phonesex|phuck|phuk|phuked|phuking|phukked|phukking|phuks|phuq|pigfucker|pimpis|piss|pissed|pisser|pissers|pisses|pissflaps|pissin|pissing|pissoff|poop|porn|porno|pornography|pornos|prick|pricks|pron|pube|pusse|pussi|pussies|pussy|pussys|rectum|retard|rimjaw|rimming|s hit|s.o.b.|sadist|schlong|screwing|scroat|scrote|scrotum|semen|sex|sh!\\+|sh!t|sh1t|shag|shagger|shaggin|shagging|shemale|shi\\+|shit|shitdick|shite|shited|shitey|shitfuck|shitfull|shithead|shiting|shitings|shits|shitted|shitter|shitters|shitting|shittings|shitty|skank|slut|sluts|smegma|smut|snatch|son-of-a-bitch|spac|spunk|s_h_i_t|t1tt1e5|t1tties|teets|teez|testical|testicle|tit|titfuck|tits|titt|tittie5|tittiefucker|titties|tittyfuck|tittywank|titwank|tosser|turd|tw4t|twat|twathead|twatty|twunt|twunter|v14gra|v1gra|vagina|viagra|vulva|w00se|wang|wank|wanker|wanky|whoar|whore|willies|willy|xrated|xxx)\\b/gi;","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","const HAS_WEAKSET_SUPPORT = typeof WeakSet === 'function';\n\nconst { keys } = Object;\n\ntype Cache = {\n add: (value: any) => void;\n has: (value: any) => boolean;\n};\n\nexport type EqualityComparator = (a: any, b: any, meta?: any) => boolean;\n\n/**\n * are the values passed strictly equal or both NaN\n *\n * @param a the value to compare against\n * @param b the value to test\n * @returns are the values equal by the SameValueZero principle\n */\nexport function sameValueZeroEqual(a: any, b: any) {\n return a === b || (a !== a && b !== b);\n}\n\n/**\n * is the value a plain object\n *\n * @param value the value to test\n * @returns is the value a plain object\n */\nexport function isPlainObject(value: any) {\n return value.constructor === Object || value.constructor == null;\n}\n\n/**\n * is the value promise-like (meaning it is thenable)\n *\n * @param value the value to test\n * @returns is the value promise-like\n */\nexport function isPromiseLike(value: any) {\n return !!value && typeof value.then === 'function';\n}\n\n/**\n * is the value passed a react element\n *\n * @param value the value to test\n * @returns is the value a react element\n */\nexport function isReactElement(value: any) {\n return !!(value && value.$$typeof);\n}\n\n/**\n * in cases where WeakSet is not supported, creates a new custom\n * object that mimics the necessary API aspects for cache purposes\n *\n * @returns the new cache object\n */\nexport function getNewCacheFallback(): Cache {\n const values: any[] = [];\n\n return {\n add(value: any) {\n values.push(value);\n },\n\n has(value: any) {\n return values.indexOf(value) !== -1;\n },\n };\n}\n\n/**\n * get a new cache object to prevent circular references\n *\n * @returns the new cache object\n */\nexport const getNewCache = ((canUseWeakMap: boolean) => {\n if (canUseWeakMap) {\n return function _getNewCache(): Cache {\n return new WeakSet();\n };\n }\n\n return getNewCacheFallback;\n})(HAS_WEAKSET_SUPPORT);\n\n/**\n * create a custom isEqual handler specific to circular objects\n *\n * @param [isEqual] the isEqual comparator to use instead of isDeepEqual\n * @returns the method to create the `isEqual` function\n */\nexport function createCircularEqualCreator(isEqual?: EqualityComparator) {\n return function createCircularEqual(comparator: EqualityComparator) {\n const _comparator = isEqual || comparator;\n\n return function circularEqual(\n a: any,\n b: any,\n cache: Cache = getNewCache(),\n ) {\n const isCacheableA = !!a && typeof a === 'object';\n const isCacheableB = !!b && typeof b === 'object';\n\n if (isCacheableA || isCacheableB) {\n const hasA = isCacheableA && cache.has(a);\n const hasB = isCacheableB && cache.has(b);\n\n if (hasA || hasB) {\n return hasA && hasB;\n }\n\n if (isCacheableA) {\n cache.add(a);\n }\n\n if (isCacheableB) {\n cache.add(b);\n }\n }\n\n return _comparator(a, b, cache);\n };\n };\n}\n\n/**\n * are the arrays equal in value\n *\n * @param a the array to test\n * @param b the array to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the arrays equal\n */\nexport function areArraysEqual(\n a: any[],\n b: any[],\n isEqual: EqualityComparator,\n meta: any,\n) {\n let index = a.length;\n\n if (b.length !== index) {\n return false;\n }\n\n while (index-- > 0) {\n if (!isEqual(a[index], b[index], meta)) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * are the maps equal in value\n *\n * @param a the map to test\n * @param b the map to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta map to pass through\n * @returns are the maps equal\n */\nexport function areMapsEqual(\n a: Map,\n b: Map,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue, aKey) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue, bKey) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch =\n isEqual(aKey, bKey, meta) && isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n\ntype Dictionary = {\n [key: string]: Type;\n [index: number]: Type;\n};\n\nconst OWNER = '_owner';\n\nconst hasOwnProperty = Function.prototype.bind.call(\n Function.prototype.call,\n Object.prototype.hasOwnProperty,\n);\n\n/**\n * are the objects equal in value\n *\n * @param a the object to test\n * @param b the object to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta object to pass through\n * @returns are the objects equal\n */\nexport function areObjectsEqual(\n a: Dictionary,\n b: Dictionary,\n isEqual: EqualityComparator,\n meta: any,\n) {\n const keysA = keys(a);\n\n let index = keysA.length;\n\n if (keys(b).length !== index) {\n return false;\n }\n\n if (index) {\n let key: string;\n\n while (index-- > 0) {\n key = keysA[index];\n\n if (key === OWNER) {\n const reactElementA = isReactElement(a);\n const reactElementB = isReactElement(b);\n\n if (\n (reactElementA || reactElementB) &&\n reactElementA !== reactElementB\n ) {\n return false;\n }\n }\n\n if (!hasOwnProperty(b, key) || !isEqual(a[key], b[key], meta)) {\n return false;\n }\n }\n }\n\n return true;\n}\n\n/**\n * are the regExps equal in value\n *\n * @param a the regExp to test\n * @param b the regExp to test agains\n * @returns are the regExps equal\n */\nexport function areRegExpsEqual(a: RegExp, b: RegExp) {\n return (\n a.source === b.source &&\n a.global === b.global &&\n a.ignoreCase === b.ignoreCase &&\n a.multiline === b.multiline &&\n a.unicode === b.unicode &&\n a.sticky === b.sticky &&\n a.lastIndex === b.lastIndex\n );\n}\n\n/**\n * are the sets equal in value\n *\n * @param a the set to test\n * @param b the set to test against\n * @param isEqual the comparator to determine equality\n * @param meta the meta set to pass through\n * @returns are the sets equal\n */\nexport function areSetsEqual(\n a: Set,\n b: Set,\n isEqual: EqualityComparator,\n meta: any,\n) {\n let isValueEqual = a.size === b.size;\n\n if (isValueEqual && a.size) {\n const matchedIndices: Record = {};\n\n a.forEach((aValue) => {\n if (isValueEqual) {\n let hasMatch = false;\n let matchIndex = 0;\n\n b.forEach((bValue) => {\n if (!hasMatch && !matchedIndices[matchIndex]) {\n hasMatch = isEqual(aValue, bValue, meta);\n\n if (hasMatch) {\n matchedIndices[matchIndex] = true;\n }\n }\n\n matchIndex++;\n });\n\n isValueEqual = hasMatch;\n }\n });\n }\n\n return isValueEqual;\n}\n","import {\n EqualityComparator,\n areArraysEqual,\n areMapsEqual,\n areObjectsEqual,\n areRegExpsEqual,\n areSetsEqual,\n isPlainObject,\n isPromiseLike,\n sameValueZeroEqual,\n} from './utils';\n\nconst HAS_MAP_SUPPORT = typeof Map === 'function';\nconst HAS_SET_SUPPORT = typeof Set === 'function';\n\ntype EqualityComparatorCreator = (fn: EqualityComparator) => EqualityComparator;\n\nexport function createComparator(createIsEqual?: EqualityComparatorCreator) {\n const isEqual: EqualityComparator =\n /* eslint-disable no-use-before-define */\n typeof createIsEqual === 'function'\n ? createIsEqual(comparator)\n : comparator;\n /* eslint-enable */\n\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n *\n * @param a the value to test against\n * @param b the value to test\n * @param [meta] an optional meta object that is passed through to all equality test calls\n * @returns are a and b equivalent in value\n */\n function comparator(a: any, b: any, meta?: any) {\n if (a === b) {\n return true;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n if (isPlainObject(a) && isPlainObject(b)) {\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n let aShape = Array.isArray(a);\n let bShape = Array.isArray(b);\n\n if (aShape || bShape) {\n return aShape === bShape && areArraysEqual(a, b, isEqual, meta);\n }\n\n aShape = a instanceof Date;\n bShape = b instanceof Date;\n\n if (aShape || bShape) {\n return (\n aShape === bShape && sameValueZeroEqual(a.getTime(), b.getTime())\n );\n }\n\n aShape = a instanceof RegExp;\n bShape = b instanceof RegExp;\n\n if (aShape || bShape) {\n return aShape === bShape && areRegExpsEqual(a, b);\n }\n\n if (isPromiseLike(a) || isPromiseLike(b)) {\n return a === b;\n }\n\n if (HAS_MAP_SUPPORT) {\n aShape = a instanceof Map;\n bShape = b instanceof Map;\n\n if (aShape || bShape) {\n return aShape === bShape && areMapsEqual(a, b, isEqual, meta);\n }\n }\n\n if (HAS_SET_SUPPORT) {\n aShape = a instanceof Set;\n bShape = b instanceof Set;\n\n if (aShape || bShape) {\n return aShape === bShape && areSetsEqual(a, b, isEqual, meta);\n }\n }\n\n return areObjectsEqual(a, b, isEqual, meta);\n }\n\n return a !== a && b !== b;\n }\n\n return comparator;\n}\n","import { createComparator } from './comparator';\nimport { createCircularEqualCreator, sameValueZeroEqual } from './utils';\n\nexport { createComparator as createCustomEqual, sameValueZeroEqual };\n\nexport const deepEqual = createComparator();\nexport const shallowEqual = createComparator(() => sameValueZeroEqual);\n\nexport const circularDeepEqual = createComparator(createCircularEqualCreator());\nexport const circularShallowEqual = createComparator(\n createCircularEqualCreator(sameValueZeroEqual),\n);\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\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","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t(require(\"react\"),require(\"react-dom\"));else if(\"function\"==typeof define&&define.amd)define([\"react\",\"react-dom\"],t);else{var n=\"object\"==typeof exports?t(require(\"react\"),require(\"react-dom\")):t(e.react,e[\"react-dom\"]);for(var s in n)(\"object\"==typeof exports?exports:e)[s]=n[s]}}(self,(function(e,t){return(()=>{\"use strict\";var n={297:t=>{t.exports=e},268:e=>{e.exports=t}},s={};function r(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={exports:{}};return n[e](i,i.exports,r),i.exports}r.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},r.d=(e,t)=>{for(var n in t)r.o(t,n)&&!r.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r.r=e=>{\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})};var i={};return(()=>{r.r(i),r.d(i,{default:()=>es});var e=r(297),t=r.n(e);let n=_();const s=e=>g(e,n);let o=_();s.write=e=>g(e,o);let a=_();s.onStart=e=>g(e,a);let u=_();s.onFrame=e=>g(e,u);let l=_();s.onFinish=e=>g(e,l);let c=[];s.setTimeout=(e,t)=>{let n=s.now()+t,r=()=>{let e=c.findIndex((e=>e.cancel==r));~e&&c.splice(e,1),f-=~e?1:0},i={time:n,handler:e,cancel:r};return c.splice(d(n),0,i),f+=1,y(),i};let d=e=>~(~c.findIndex((t=>t.time>e))||~c.length);s.cancel=e=>{a.delete(e),u.delete(e),n.delete(e),o.delete(e),l.delete(e)},s.sync=e=>{m=!0,s.batchedUpdates(e),m=!1},s.throttle=e=>{let t;function n(){try{e(...t)}finally{t=null}}function r(...e){t=e,s.onStart(n)}return r.handler=e,r.cancel=()=>{a.delete(n),t=null},r};let h=\"undefined\"!=typeof window?window.requestAnimationFrame:()=>{};s.use=e=>h=e,s.now=\"undefined\"!=typeof performance?()=>performance.now():Date.now,s.batchedUpdates=e=>e(),s.catch=console.error,s.frameLoop=\"always\",s.advance=()=>{\"demand\"!==s.frameLoop?console.warn(\"Cannot call the manual advancement of rafz whilst frameLoop is not set as demand\"):b()};let p=-1,f=0,m=!1;function g(e,t){m?(t.delete(e),e(0)):(t.add(e),y())}function y(){p<0&&(p=0,\"demand\"!==s.frameLoop&&h(v))}function v(){~p&&(h(v),s.batchedUpdates(b))}function b(){let e=p;p=s.now();let t=d(p);t&&(w(c.splice(0,t),(e=>e.handler())),f-=t),a.flush(),n.flush(e?Math.min(64,p-e):16.667),u.flush(),o.flush(),l.flush(),f||(p=-1)}function _(){let e=new Set,t=e;return{add(n){f+=t!=e||e.has(n)?0:1,e.add(n)},delete:n=>(f-=t==e&&e.has(n)?1:0,e.delete(n)),flush(n){t.size&&(e=new Set,f-=t.size,w(t,(t=>t(n)&&e.add(t))),f+=e.size,t=e)}}}function w(e,t){e.forEach((e=>{try{t(e)}catch(e){s.catch(e)}}))}function k(){}const P={arr:Array.isArray,obj:e=>!!e&&\"Object\"===e.constructor.name,fun:e=>\"function\"==typeof e,str:e=>\"string\"==typeof e,num:e=>\"number\"==typeof e,und:e=>void 0===e};function S(e,t){if(P.arr(e)){if(!P.arr(t)||e.length!==t.length)return!1;for(let n=0;ne.forEach(t);function V(e,t,n){if(P.arr(e))for(let s=0;sP.und(e)?[]:P.arr(e)?e:[e];function C(e,t){if(e.size){const n=Array.from(e);e.clear(),x(n,t)}}const A=(e,...t)=>C(e,(e=>e(...t))),I=()=>\"undefined\"==typeof window||!window.navigator||/ServerSideRendering|^Deno\\//.test(window.navigator.userAgent);let j,R,M=null,E=!1,q=k;var N=Object.freeze({__proto__:null,get createStringInterpolator(){return j},get to(){return R},get colors(){return M},get skipAnimation(){return E},get willAdvance(){return q},assign:e=>{e.to&&(R=e.to),e.now&&(s.now=e.now),void 0!==e.colors&&(M=e.colors),null!=e.skipAnimation&&(E=e.skipAnimation),e.createStringInterpolator&&(j=e.createStringInterpolator),e.requestAnimationFrame&&s.use(e.requestAnimationFrame),e.batchedUpdates&&(s.batchedUpdates=e.batchedUpdates),e.willAdvance&&(q=e.willAdvance),e.frameLoop&&(s.frameLoop=e.frameLoop)}});const T=new Set;let z=[],$=[],F=0;const U={get idle(){return!T.size&&!z.length},start(e){F>e.priority?(T.add(e),s.onStart(D)):(L(e),s(W))},advance:W,sort(e){if(F)s.onFrame((()=>U.sort(e)));else{const t=z.indexOf(e);~t&&(z.splice(t,1),Q(e))}},clear(){z=[],T.clear()}};function D(){T.forEach(L),T.clear(),s(W)}function L(e){z.includes(e)||Q(e)}function Q(e){z.splice(function(t,n){const s=t.findIndex((t=>t.priority>e.priority));return s<0?t.length:s}(z),0,e)}function W(e){const t=$;for(let n=0;n0}const G=\"[-+]?\\\\d*\\\\.?\\\\d+\",B=G+\"%\";function Y(...e){return\"\\\\(\\\\s*(\"+e.join(\")\\\\s*,\\\\s*(\")+\")\\\\s*\\\\)\"}const Z=new RegExp(\"rgb\"+Y(G,G,G)),H=new RegExp(\"rgba\"+Y(G,G,G,G)),J=new RegExp(\"hsl\"+Y(G,B,B)),X=new RegExp(\"hsla\"+Y(G,B,B,G)),K=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,ee=/^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,te=/^#([0-9a-fA-F]{6})$/,ne=/^#([0-9a-fA-F]{8})$/;function se(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function re(e,t,n){const s=n<.5?n*(1+t):n+t-n*t,r=2*n-s,i=se(r,s,e+1/3),o=se(r,s,e),a=se(r,s,e-1/3);return Math.round(255*i)<<24|Math.round(255*o)<<16|Math.round(255*a)<<8}function ie(e){const t=parseInt(e,10);return t<0?0:t>255?255:t}function oe(e){return(parseFloat(e)%360+360)%360/360}function ae(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function ue(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function le(e){let t=function(e){let t;return\"number\"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=te.exec(e))?parseInt(t[1]+\"ff\",16)>>>0:M&&void 0!==M[e]?M[e]:(t=Z.exec(e))?(ie(t[1])<<24|ie(t[2])<<16|ie(t[3])<<8|255)>>>0:(t=H.exec(e))?(ie(t[1])<<24|ie(t[2])<<16|ie(t[3])<<8|ae(t[4]))>>>0:(t=K.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+\"ff\",16)>>>0:(t=ne.exec(e))?parseInt(t[1],16)>>>0:(t=ee.exec(e))?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=J.exec(e))?(255|re(oe(t[1]),ue(t[2]),ue(t[3])))>>>0:(t=X.exec(e))?(re(oe(t[1]),ue(t[2]),ue(t[3]))|ae(t[4]))>>>0:null}(e);return null===t?e:(t=t||0,`rgba(${(4278190080&t)>>>24}, ${(16711680&t)>>>16}, ${(65280&t)>>>8}, ${(255&t)/255})`)}const ce=(e,t,n)=>{if(P.fun(e))return e;if(P.arr(e))return ce({range:e,output:t,extrapolate:n});if(P.str(e.output[0]))return j(e);const s=e,r=s.output,i=s.range||[0,1],o=s.extrapolateLeft||s.extrapolate||\"extend\",a=s.extrapolateRight||s.extrapolate||\"extend\",u=s.easing||(e=>e);return e=>{const t=function(e,t){for(var n=1;n=e);++n);return n-1}(e,i);return function(e,t,n,s,r,i,o,a,u){let l=u?u(e):e;if(ln){if(\"identity\"===a)return l;\"clamp\"===a&&(l=n)}return s===r?s:t===n?e<=t?s:r:(t===-1/0?l=-l:n===1/0?l-=t:l=(l-t)/(n-t),l=i(l),s===-1/0?l=-l:r===1/0?l+=s:l=l*(r-s)+s,l)}(e,i[t],i[t+1],r[t],r[t+1],u,o,a,s.map)}};function de(){return(de=Object.assign||function(e){for(var t=1;tBoolean(e&&e[he]),me=e=>e&&e[he]?e[he]():e,ge=e=>e[pe]||null;function ye(e,t){let n=e[pe];n&&n.forEach((e=>{!function(e,t){e.eventObserved?e.eventObserved(t):e(t)}(e,t)}))}class ve{constructor(e){if(this[he]=void 0,this[pe]=void 0,!e&&!(e=this.get))throw Error(\"Unknown getter\");be(this,e)}}const be=(e,t)=>ke(e,he,t);function _e(e,t){if(e[he]){let n=e[pe];n||ke(e,pe,n=new Set),n.has(t)||(n.add(t),e.observerAdded&&e.observerAdded(n.size,t))}return t}function we(e,t){let n=e[pe];if(n&&n.has(t)){const s=n.size-1;s?n.delete(t):e[pe]=null,e.observerRemoved&&e.observerRemoved(s,t)}}const ke=(e,t,n)=>Object.defineProperty(e,t,{value:n,writable:!0,configurable:!0}),Pe=/[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,Se=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi,xe=new RegExp(`(${Pe.source})(%|[a-z]+)`,\"i\"),Ve=/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi,Oe=/var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/,Ce=e=>{const[t,n]=Ae(e);if(!t||I())return e;const s=window.getComputedStyle(document.documentElement).getPropertyValue(t);if(s)return s.trim();if(n&&n.startsWith(\"--\")){return window.getComputedStyle(document.documentElement).getPropertyValue(n)||e}return n&&Oe.test(n)?Ce(n):n||e},Ae=e=>{const t=Oe.exec(e);if(!t)return[,];const[,n,s]=t;return[n,s]};let Ie;const je=(e,t,n,s,r)=>`rgba(${Math.round(t)}, ${Math.round(n)}, ${Math.round(s)}, ${r})`,Re=e=>{Ie||(Ie=M?new RegExp(`(${Object.keys(M).join(\"|\")})(?!\\\\w)`,\"g\"):/^\\b$/);const t=e.output.map((e=>me(e).replace(Oe,Ce).replace(Se,le).replace(Ie,le))),n=t.map((e=>e.match(Pe).map(Number))),s=n[0].map(((e,t)=>n.map((e=>{if(!(t in e))throw Error('The arity of each \"output\" value must be equal');return e[t]})))).map((t=>ce(de({},e,{output:t}))));return e=>{var n;const r=!xe.test(t[0])&&(null==(n=t.find((e=>xe.test(e))))?void 0:n.replace(Pe,\"\"));let i=0;return t[0].replace(Pe,(()=>`${s[i++](e)}${r||\"\"}`)).replace(Ve,je)}},Me=\"react-spring: \",Ee=e=>{const t=e;let n=!1;if(\"function\"!=typeof t)throw new TypeError(`${Me}once requires a function parameter`);return(...e)=>{n||(t(...e),n=!0)}},qe=Ee(console.warn),Ne=Ee(console.warn);function Te(e){return P.str(e)&&(\"#\"==e[0]||/\\d/.test(e)||!I()&&Oe.test(e)||e in(M||{}))}const ze=\"undefined\"!=typeof window&&window.document&&window.document.createElement?e.useLayoutEffect:e.useEffect;function $e(){const t=(0,e.useState)()[1],n=(()=>{const t=(0,e.useRef)(!1);return ze((()=>(t.current=!0,()=>{t.current=!1})),[]),t})();return()=>{n.current&&t(Math.random())}}const Fe=t=>(0,e.useEffect)(t,Ue),Ue=[];function De(t){const n=(0,e.useRef)();return(0,e.useEffect)((()=>{n.current=t})),n.current}const Le=Symbol.for(\"Animated:node\"),Qe=e=>e&&e[Le],We=(e,t)=>{return n=e,s=Le,r=t,Object.defineProperty(n,s,{value:r,writable:!0,configurable:!0});var n,s,r},Ge=e=>e&&e[Le]&&e[Le].getPayload();class Be{constructor(){this.payload=void 0,We(this,this)}getPayload(){return this.payload||[]}}class Ye extends Be{constructor(e){super(),this.done=!0,this.elapsedTime=void 0,this.lastPosition=void 0,this.lastVelocity=void 0,this.v0=void 0,this.durationProgress=0,this._value=e,P.num(this._value)&&(this.lastPosition=this._value)}static create(e){return new Ye(e)}getPayload(){return[this]}getValue(){return this._value}setValue(e,t){return P.num(e)&&(this.lastPosition=e,t&&(e=Math.round(e/t)*t,this.done&&(this.lastPosition=e))),this._value!==e&&(this._value=e,!0)}reset(){const{done:e}=this;this.done=!1,P.num(this._value)&&(this.elapsedTime=0,this.durationProgress=0,this.lastPosition=this._value,e&&(this.lastVelocity=null),this.v0=null)}}class Ze extends Ye{constructor(e){super(0),this._string=null,this._toString=void 0,this._toString=ce({output:[e,e]})}static create(e){return new Ze(e)}getValue(){let e=this._string;return null==e?this._string=this._toString(this._value):e}setValue(e){if(P.str(e)){if(e==this._string)return!1;this._string=e,this._value=1}else{if(!super.setValue(e))return!1;this._string=null}return!0}reset(e){e&&(this._toString=ce({output:[this.getValue(),e]})),this._value=0,super.reset()}}const He={dependencies:null};class Je extends Be{constructor(e){super(),this.source=e,this.setValue(e)}getValue(e){const t={};return V(this.source,((n,s)=>{var r;(r=n)&&r[Le]===r?t[s]=n.getValue(e):fe(n)?t[s]=me(n):e||(t[s]=n)})),t}setValue(e){this.source=e,this.payload=this._makePayload(e)}reset(){this.payload&&x(this.payload,(e=>e.reset()))}_makePayload(e){if(e){const t=new Set;return V(e,this._addToPayload,t),Array.from(t)}}_addToPayload(e){He.dependencies&&fe(e)&&He.dependencies.add(e);const t=Ge(e);t&&x(t,(e=>this.add(e)))}}class Xe extends Je{constructor(e){super(e)}static create(e){return new Xe(e)}getValue(){return this.source.map((e=>e.getValue()))}setValue(e){const t=this.getPayload();return e.length==t.length?t.map(((t,n)=>t.setValue(e[n]))).some(Boolean):(super.setValue(e.map(Ke)),!0)}}function Ke(e){return(Te(e)?Ze:Ye).create(e)}function et(e){const t=Qe(e);return t?t.constructor:P.arr(e)?Xe:Te(e)?Ze:Ye}function tt(){return(tt=Object.assign||function(e){for(var t=1;t{const r=!P.fun(t)||t.prototype&&t.prototype.isReactComponent;return(0,e.forwardRef)(((i,o)=>{const a=(0,e.useRef)(null),u=r&&(0,e.useCallback)((e=>{a.current=function(e,t){return e&&(P.fun(e)?e(t):e.current=t),t}(o,e)}),[o]),[l,c]=function(e,t){const n=new Set;return He.dependencies=n,e.style&&(e=tt({},e,{style:t.createAnimatedStyle(e.style)})),e=new Je(e),He.dependencies=null,[e,n]}(i,n),d=$e(),h=()=>{const e=a.current;r&&!e||!1===(!!e&&n.applyAnimatedValues(e,l.getValue(!0)))&&d()},p=new st(h,c),f=(0,e.useRef)();ze((()=>(f.current=p,x(c,(e=>_e(e,p))),()=>{f.current&&(x(f.current.deps,(e=>we(e,f.current))),s.cancel(f.current.update))}))),(0,e.useEffect)(h,[]),Fe((()=>()=>{const e=f.current;x(e.deps,(t=>we(t,e)))}));const m=n.getComponentProps(l.getValue());return e.createElement(t,tt({},m,{ref:u}))}))};class st{constructor(e,t){this.update=e,this.deps=t}eventObserved(e){\"change\"==e.type&&s.write(this.update)}}const rt=Symbol.for(\"AnimatedComponent\"),it=e=>P.str(e)?e:e&&P.str(e.displayName)?e.displayName:P.fun(e)&&e.name||null;function ot(){return(ot=Object.assign||function(e){for(var t=1;t!0===e||!!(t&&e&&(P.fun(e)?e(t):O(e).includes(t))),lt=(e,t)=>P.obj(e)?t&&e[t]:e,ct=(e,t)=>!0===e.default?e[t]:e.default?e.default[t]:void 0,dt=e=>e,ht=(e,t=dt)=>{let n=pt;e.default&&!0!==e.default&&(e=e.default,n=Object.keys(e));const s={};for(const r of n){const n=t(e[r],r);P.und(n)||(s[r]=n)}return s},pt=[\"config\",\"onProps\",\"onStart\",\"onChange\",\"onPause\",\"onResume\",\"onRest\"],ft={config:1,from:1,to:1,ref:1,loop:1,reset:1,pause:1,cancel:1,reverse:1,immediate:1,default:1,delay:1,onProps:1,onStart:1,onChange:1,onPause:1,onResume:1,onRest:1,onResolve:1,items:1,trail:1,sort:1,expires:1,initial:1,enter:1,update:1,leave:1,children:1,onDestroyed:1,keys:1,callId:1,parentId:1};function mt(e){const t=function(e){const t={};let n=0;if(V(e,((e,s)=>{ft[s]||(t[s]=e,n++)})),n)return t}(e);if(t){const n={to:t};return V(e,((e,s)=>s in t||(n[s]=e))),n}return ot({},e)}function gt(e){return e=me(e),P.arr(e)?e.map(gt):Te(e)?N.createStringInterpolator({range:[0,1],output:[e,e]})(1):e}function yt(e){for(const t in e)return!0;return!1}function vt(e){return P.fun(e)||P.arr(e)&&P.obj(e[0])}function bt(e,t){var n;null==(n=e.ref)||n.delete(e),null==t||t.delete(e)}function _t(e,t){var n;t&&e.ref!==t&&(null==(n=e.ref)||n.delete(e),t.add(e),e.ref=t)}Math.PI,Math.PI;const wt=ot({},{tension:170,friction:26},{mass:1,damping:1,easing:e=>e,clamp:!1});class kt{constructor(){this.tension=void 0,this.friction=void 0,this.frequency=void 0,this.damping=void 0,this.mass=void 0,this.velocity=0,this.restVelocity=void 0,this.precision=void 0,this.progress=void 0,this.duration=void 0,this.easing=void 0,this.clamp=void 0,this.bounce=void 0,this.decay=void 0,this.round=void 0,Object.assign(this,wt)}}function Pt(e,t){if(P.und(t.decay)){const n=!P.und(t.tension)||!P.und(t.friction);!n&&P.und(t.frequency)&&P.und(t.damping)&&P.und(t.mass)||(e.duration=void 0,e.decay=void 0),n&&(e.frequency=void 0)}else e.duration=void 0}const St=[];class xt{constructor(){this.changed=!1,this.values=St,this.toValues=null,this.fromValues=St,this.to=void 0,this.from=void 0,this.config=new kt,this.immediate=!1}}function Vt(e,{key:t,props:n,defaultProps:r,state:i,actions:o}){return new Promise(((a,u)=>{var l;let c,d,h=ut(null!=(l=n.cancel)?l:null==r?void 0:r.cancel,t);if(h)m();else{P.und(n.pause)||(i.paused=ut(n.pause,t));let e=null==r?void 0:r.pause;!0!==e&&(e=i.paused||ut(e,t)),c=at(n.delay||0,t),e?(i.resumeQueue.add(f),o.pause()):(o.resume(),f())}function p(){i.resumeQueue.add(f),i.timeouts.delete(d),d.cancel(),c=d.time-s.now()}function f(){c>0&&!N.skipAnimation?(i.delayed=!0,d=s.setTimeout(m,c),i.pauseQueue.add(p),i.timeouts.add(d)):m()}function m(){i.delayed&&(i.delayed=!1),i.pauseQueue.delete(p),i.timeouts.delete(d),e<=(i.cancelId||0)&&(h=!0);try{o.start(ot({},n,{callId:e,cancel:h}),a)}catch(e){u(e)}}}))}const Ot=(e,t)=>1==t.length?t[0]:t.some((e=>e.cancelled))?It(e.get()):t.every((e=>e.noop))?Ct(e.get()):At(e.get(),t.every((e=>e.finished))),Ct=e=>({value:e,noop:!0,finished:!0,cancelled:!1}),At=(e,t,n=!1)=>({value:e,finished:t,cancelled:n}),It=e=>({value:e,cancelled:!0,finished:!1});function jt(e,t,n,r){const{callId:i,parentId:o,onRest:a}=t,{asyncTo:u,promise:l}=n;return o||e!==u||t.reset?n.promise=(async()=>{n.asyncId=i,n.asyncTo=e;const c=ht(t,((e,t)=>\"onRest\"===t?void 0:e));let d,h;const p=new Promise(((e,t)=>(d=e,h=t))),f=e=>{const t=i<=(n.cancelId||0)&&It(r)||i!==n.asyncId&&At(r,!1);if(t)throw e.result=t,h(e),e},m=(e,t)=>{const s=new Mt,o=new Et;return(async()=>{if(N.skipAnimation)throw Rt(n),o.result=At(r,!1),h(o),o;f(s);const a=P.obj(e)?ot({},e):ot({},t,{to:e});a.parentId=i,V(c,((e,t)=>{P.und(a[t])&&(a[t]=e)}));const u=await r.start(a);return f(s),n.paused&&await new Promise((e=>{n.resumeQueue.add(e)})),u})()};let g;if(N.skipAnimation)return Rt(n),At(r,!1);try{let t;t=P.arr(e)?(async e=>{for(const t of e)await m(t)})(e):Promise.resolve(e(m,r.stop.bind(r))),await Promise.all([t.then(d),p]),g=At(r.get(),!0,!1)}catch(e){if(e instanceof Mt)g=e.result;else{if(!(e instanceof Et))throw e;g=e.result}}finally{i==n.asyncId&&(n.asyncId=o,n.asyncTo=o?u:void 0,n.promise=o?l:void 0)}return P.fun(a)&&s.batchedUpdates((()=>{a(g,r,r.item)})),g})():l}function Rt(e,t){C(e.timeouts,(e=>e.cancel())),e.pauseQueue.clear(),e.resumeQueue.clear(),e.asyncId=e.asyncTo=e.promise=void 0,t&&(e.cancelId=t)}class Mt extends Error{constructor(){super(\"An async animation has been interrupted. You see this error because you forgot to use `await` or `.catch(...)` on its returned promise.\"),this.result=void 0}}class Et extends Error{constructor(){super(\"SkipAnimationSignal\"),this.result=void 0}}const qt=e=>e instanceof Tt;let Nt=1;class Tt extends ve{constructor(...e){super(...e),this.id=Nt++,this.key=void 0,this._priority=0}get priority(){return this._priority}set priority(e){this._priority!=e&&(this._priority=e,this._onPriorityChange(e))}get(){const e=Qe(this);return e&&e.getValue()}to(...e){return N.to(this,e)}interpolate(...e){return qe(`${Me}The \"interpolate\" function is deprecated in v9 (use \"to\" instead)`),N.to(this,e)}toJSON(){return this.get()}observerAdded(e){1==e&&this._attach()}observerRemoved(e){0==e&&this._detach()}_attach(){}_detach(){}_onChange(e,t=!1){ye(this,{type:\"change\",parent:this,value:e,idle:t})}_onPriorityChange(e){this.idle||U.sort(this),ye(this,{type:\"priority\",parent:this,priority:e})}}const zt=Symbol.for(\"SpringPhase\"),$t=e=>(1&e[zt])>0,Ft=e=>(2&e[zt])>0,Ut=e=>(4&e[zt])>0,Dt=(e,t)=>t?e[zt]|=3:e[zt]&=-3,Lt=(e,t)=>t?e[zt]|=4:e[zt]&=-5;class Qt extends Tt{constructor(e,t){if(super(),this.key=void 0,this.animation=new xt,this.queue=void 0,this.defaultProps={},this._state={paused:!1,delayed:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._pendingCalls=new Set,this._lastCallId=0,this._lastToId=0,this._memoizedDuration=0,!P.und(e)||!P.und(t)){const n=P.obj(e)?ot({},e):ot({},t,{from:e});P.und(n.default)&&(n.default=!0),this.start(n)}}get idle(){return!(Ft(this)||this._state.asyncTo)||Ut(this)}get goal(){return me(this.animation.to)}get velocity(){const e=Qe(this);return e instanceof Ye?e.lastVelocity||0:e.getPayload().map((e=>e.lastVelocity||0))}get hasAnimated(){return $t(this)}get isAnimating(){return Ft(this)}get isPaused(){return Ut(this)}get isDelayed(){return this._state.delayed}advance(e){let t=!0,n=!1;const s=this.animation;let{config:r,toValues:i}=s;const o=Ge(s.to);!o&&fe(s.to)&&(i=O(me(s.to))),s.values.forEach(((a,u)=>{if(a.done)return;const l=a.constructor==Ze?1:o?o[u].lastPosition:i[u];let c=s.immediate,d=l;if(!c){if(d=a.lastPosition,r.tension<=0)return void(a.done=!0);let t=a.elapsedTime+=e;const n=s.fromValues[u],i=null!=a.v0?a.v0:a.v0=P.arr(r.velocity)?r.velocity[u]:r.velocity;let o;if(P.und(r.duration))if(r.decay){const e=!0===r.decay?.998:r.decay,s=Math.exp(-(1-e)*t);d=n+i/(1-e)*(1-s),c=Math.abs(a.lastPosition-d)<.1,o=i*s}else{o=null==a.lastVelocity?i:a.lastVelocity;const t=r.precision||(n==l?.005:Math.min(1,.001*Math.abs(l-n))),s=r.restVelocity||t/10,u=r.clamp?0:r.bounce,h=!P.und(u),p=n==l?a.v0>0:ns,f||(c=Math.abs(l-d)<=t,!c));++e)h&&(m=d==l||d>l==p,m&&(o=-o*u,d=l)),o+=(1e-6*-r.tension*(d-l)+.001*-r.friction*o)/r.mass*g,d+=o*g}else{let s=1;r.duration>0&&(this._memoizedDuration!==r.duration&&(this._memoizedDuration=r.duration,a.durationProgress>0&&(a.elapsedTime=r.duration*a.durationProgress,t=a.elapsedTime+=e)),s=(r.progress||0)+t/this._memoizedDuration,s=s>1?1:s<0?0:s,a.durationProgress=s),d=n+r.easing(s)*(l-n),o=(d-a.lastPosition)/e,c=1==s}a.lastVelocity=o,Number.isNaN(d)&&(console.warn(\"Got NaN while animating:\",this),c=!0)}o&&!o[u].done&&(c=!1),c?a.done=!0:t=!1,a.setValue(d,r.round)&&(n=!0)}));const a=Qe(this),u=a.getValue();if(t){const e=me(s.to);u===e&&!n||r.decay?n&&r.decay&&this._onChange(u):(a.setValue(e),this._onChange(e)),this._stop()}else n&&this._onChange(u)}set(e){return s.batchedUpdates((()=>{this._stop(),this._focus(e),this._set(e)})),this}pause(){this._update({pause:!0})}resume(){this._update({pause:!1})}finish(){if(Ft(this)){const{to:e,config:t}=this.animation;s.batchedUpdates((()=>{this._onStart(),t.decay||this._set(e,!1),this._stop()}))}return this}update(e){return(this.queue||(this.queue=[])).push(e),this}start(e,t){let n;return P.und(e)?(n=this.queue||[],this.queue=[]):n=[P.obj(e)?e:ot({},t,{to:e})],Promise.all(n.map((e=>this._update(e)))).then((e=>Ot(this,e)))}stop(e){const{to:t}=this.animation;return this._focus(this.get()),Rt(this._state,e&&this._lastCallId),s.batchedUpdates((()=>this._stop(t,e))),this}reset(){this._update({reset:!0})}eventObserved(e){\"change\"==e.type?this._start():\"priority\"==e.type&&(this.priority=e.priority+1)}_prepareNode(e){const t=this.key||\"\";let{to:n,from:s}=e;n=P.obj(n)?n[t]:n,(null==n||vt(n))&&(n=void 0),s=P.obj(s)?s[t]:s,null==s&&(s=void 0);const r={to:n,from:s};return $t(this)||(e.reverse&&([n,s]=[s,n]),s=me(s),P.und(s)?Qe(this)||this._set(n):this._set(s)),r}_update(e,t){let n=ot({},e);const{key:s,defaultProps:r}=this;n.default&&Object.assign(r,ht(n,((e,t)=>/^on/.test(t)?lt(e,s):e))),Jt(this,n,\"onProps\"),Xt(this,\"onProps\",n,this);const i=this._prepareNode(n);if(Object.isFrozen(this))throw Error(\"Cannot animate a `SpringValue` object that is frozen. Did you forget to pass your component to `animated(...)` before animating its props?\");const o=this._state;return Vt(++this._lastCallId,{key:s,props:n,defaultProps:r,state:o,actions:{pause:()=>{Ut(this)||(Lt(this,!0),A(o.pauseQueue),Xt(this,\"onPause\",At(this,Wt(this,this.animation.to)),this))},resume:()=>{Ut(this)&&(Lt(this,!1),Ft(this)&&this._resume(),A(o.resumeQueue),Xt(this,\"onResume\",At(this,Wt(this,this.animation.to)),this))},start:this._merge.bind(this,i)}}).then((e=>{if(n.loop&&e.finished&&(!t||!e.noop)){const e=Gt(n);if(e)return this._update(e,!0)}return e}))}_merge(e,t,n){if(t.cancel)return this.stop(!0),n(It(this));const r=!P.und(e.to),i=!P.und(e.from);if(r||i){if(!(t.callId>this._lastToId))return n(It(this));this._lastToId=t.callId}const{key:o,defaultProps:a,animation:u}=this,{to:l,from:c}=u;let{to:d=l,from:h=c}=e;!i||r||t.default&&!P.und(d)||(d=h),t.reverse&&([d,h]=[h,d]);const p=!S(h,c);p&&(u.from=h),h=me(h);const f=!S(d,l);f&&this._focus(d);const m=vt(t.to),{config:g}=u,{decay:y,velocity:v}=g;(r||i)&&(g.velocity=0),t.config&&!m&&function(e,t,n){n&&(Pt(n=ot({},n),t),t=ot({},n,t)),Pt(e,t),Object.assign(e,t);for(const t in wt)null==e[t]&&(e[t]=wt[t]);let{mass:s,frequency:r,damping:i}=e;P.und(r)||(r<.01&&(r=.01),i<0&&(i=0),e.tension=Math.pow(2*Math.PI/r,2)*s,e.friction=4*Math.PI*i*s/r)}(g,at(t.config,o),t.config!==a.config?at(a.config,o):void 0);let b=Qe(this);if(!b||P.und(d))return n(At(this,!0));const _=P.und(t.reset)?i&&!t.default:!P.und(h)&&ut(t.reset,o),w=_?h:this.get(),k=gt(d),V=P.num(k)||P.arr(k)||Te(k),C=!m&&(!V||ut(a.immediate||t.immediate,o));if(f){const e=et(d);if(e!==b.constructor){if(!C)throw Error(`Cannot animate between ${b.constructor.name} and ${e.name}, as the \"to\" prop suggests`);b=this._set(k)}}const I=b.constructor;let j=fe(d),R=!1;if(!j){const e=_||!$t(this)&&p;(f||e)&&(R=S(gt(w),k),j=!R),(S(u.immediate,C)||C)&&S(g.decay,y)&&S(g.velocity,v)||(j=!0)}if(R&&Ft(this)&&(u.changed&&!_?j=!0:j||this._stop(l)),!m&&((j||fe(l))&&(u.values=b.getPayload(),u.toValues=fe(d)?null:I==Ze?[1]:O(k)),u.immediate!=C&&(u.immediate=C,C||_||this._set(l)),j)){const{onRest:e}=u;x(Ht,(e=>Jt(this,t,e)));const r=At(this,Wt(this,l));A(this._pendingCalls,r),this._pendingCalls.add(n),u.changed&&s.batchedUpdates((()=>{u.changed=!_,null==e||e(r,this),_?at(a.onRest,r):null==u.onStart||u.onStart(r,this)}))}_&&this._set(w),m?n(jt(t.to,t,this._state,this)):j?this._start():Ft(this)&&!f?this._pendingCalls.add(n):n(Ct(w))}_focus(e){const t=this.animation;e!==t.to&&(ge(this)&&this._detach(),t.to=e,ge(this)&&this._attach())}_attach(){let e=0;const{to:t}=this.animation;fe(t)&&(_e(t,this),qt(t)&&(e=t.priority+1)),this.priority=e}_detach(){const{to:e}=this.animation;fe(e)&&we(e,this)}_set(e,t=!0){const n=me(e);if(!P.und(n)){const e=Qe(this);if(!e||!S(n,e.getValue())){const r=et(n);e&&e.constructor==r?e.setValue(n):We(this,r.create(n)),e&&s.batchedUpdates((()=>{this._onChange(n,t)}))}}return Qe(this)}_onStart(){const e=this.animation;e.changed||(e.changed=!0,Xt(this,\"onStart\",At(this,Wt(this,e.to)),this))}_onChange(e,t){t||(this._onStart(),at(this.animation.onChange,e,this)),at(this.defaultProps.onChange,e,this),super._onChange(e,t)}_start(){const e=this.animation;Qe(this).reset(me(e.to)),e.immediate||(e.fromValues=e.values.map((e=>e.lastPosition))),Ft(this)||(Dt(this,!0),Ut(this)||this._resume())}_resume(){N.skipAnimation?this.finish():U.start(this)}_stop(e,t){if(Ft(this)){Dt(this,!1);const n=this.animation;x(n.values,(e=>{e.done=!0})),n.toValues&&(n.onChange=n.onPause=n.onResume=void 0),ye(this,{type:\"idle\",parent:this});const s=t?It(this.get()):At(this.get(),Wt(this,null!=e?e:n.to));A(this._pendingCalls,s),n.changed&&(n.changed=!1,Xt(this,\"onRest\",s,this))}}}function Wt(e,t){const n=gt(t);return S(gt(e.get()),n)}function Gt(e,t=e.loop,n=e.to){let s=at(t);if(s){const r=!0!==s&&mt(s),i=(r||e).reverse,o=!r||r.reset;return Bt(ot({},e,{loop:t,default:!1,pause:void 0,to:!i||vt(n)?n:void 0,from:o?e.from:void 0,reset:o},r))}}function Bt(e){const{to:t,from:n}=e=mt(e),s=new Set;return P.obj(t)&&Zt(t,s),P.obj(n)&&Zt(n,s),e.keys=s.size?Array.from(s):null,e}function Yt(e){const t=Bt(e);return P.und(t.default)&&(t.default=ht(t)),t}function Zt(e,t){V(e,((e,n)=>null!=e&&t.add(n)))}const Ht=[\"onStart\",\"onRest\",\"onChange\",\"onPause\",\"onResume\"];function Jt(e,t,n){e.animation[n]=t[n]!==ct(t,n)?lt(t[n],e.key):void 0}function Xt(e,t,...n){var s,r,i,o;null==(s=(r=e.animation)[t])||s.call(r,...n),null==(i=(o=e.defaultProps)[t])||i.call(o,...n)}const Kt=[\"onStart\",\"onChange\",\"onRest\"];let en=1;class tn{constructor(e,t){this.id=en++,this.springs={},this.queue=[],this.ref=void 0,this._flush=void 0,this._initialProps=void 0,this._lastAsyncId=0,this._active=new Set,this._changed=new Set,this._started=!1,this._item=void 0,this._state={paused:!1,pauseQueue:new Set,resumeQueue:new Set,timeouts:new Set},this._events={onStart:new Map,onChange:new Map,onRest:new Map},this._onFrame=this._onFrame.bind(this),t&&(this._flush=t),e&&this.start(ot({default:!0},e))}get idle(){return!this._state.asyncTo&&Object.values(this.springs).every((e=>e.idle&&!e.isDelayed&&!e.isPaused))}get item(){return this._item}set item(e){this._item=e}get(){const e={};return this.each(((t,n)=>e[n]=t.get())),e}set(e){for(const t in e){const n=e[t];P.und(n)||this.springs[t].set(n)}}update(e){return e&&this.queue.push(Bt(e)),this}start(e){let{queue:t}=this;return e?t=O(e).map(Bt):this.queue=[],this._flush?this._flush(this,t):(ln(this,t),nn(this,t))}stop(e,t){if(e!==!!e&&(t=e),t){const n=this.springs;x(O(t),(t=>n[t].stop(!!e)))}else Rt(this._state,this._lastAsyncId),this.each((t=>t.stop(!!e)));return this}pause(e){if(P.und(e))this.start({pause:!0});else{const t=this.springs;x(O(e),(e=>t[e].pause()))}return this}resume(e){if(P.und(e))this.start({pause:!1});else{const t=this.springs;x(O(e),(e=>t[e].resume()))}return this}each(e){V(this.springs,e)}_onFrame(){const{onStart:e,onChange:t,onRest:n}=this._events,s=this._active.size>0,r=this._changed.size>0;(s&&!this._started||r&&!this._started)&&(this._started=!0,C(e,(([e,t])=>{t.value=this.get(),e(t,this,this._item)})));const i=!s&&this._started,o=r||i&&n.size?this.get():null;r&&t.size&&C(t,(([e,t])=>{t.value=o,e(t,this,this._item)})),i&&(this._started=!1,C(n,(([e,t])=>{t.value=o,e(t,this,this._item)})))}eventObserved(e){if(\"change\"==e.type)this._changed.add(e.parent),e.idle||this._active.add(e.parent);else{if(\"idle\"!=e.type)return;this._active.delete(e.parent)}s.onFrame(this._onFrame)}}function nn(e,t){return Promise.all(t.map((t=>sn(e,t)))).then((t=>Ot(e,t)))}async function sn(e,t,n){const{keys:r,to:i,from:o,loop:a,onRest:u,onResolve:l}=t,c=P.obj(t.default)&&t.default;a&&(t.loop=!1),!1===i&&(t.to=null),!1===o&&(t.from=null);const d=P.arr(i)||P.fun(i)?i:void 0;d?(t.to=void 0,t.onRest=void 0,c&&(c.onRest=void 0)):x(Kt,(n=>{const s=t[n];if(P.fun(s)){const r=e._events[n];t[n]=({finished:e,cancelled:t})=>{const n=r.get(s);n?(e||(n.finished=!1),t&&(n.cancelled=!0)):r.set(s,{value:null,finished:e||!1,cancelled:t||!1})},c&&(c[n]=t[n])}}));const h=e._state;t.pause===!h.paused?(h.paused=t.pause,A(t.pause?h.pauseQueue:h.resumeQueue)):h.paused&&(t.pause=!0);const p=(r||Object.keys(e.springs)).map((n=>e.springs[n].start(t))),f=!0===t.cancel||!0===ct(t,\"cancel\");(d||f&&h.asyncId)&&p.push(Vt(++e._lastAsyncId,{props:t,state:h,actions:{pause:k,resume:k,start(t,n){f?(Rt(h,e._lastAsyncId),n(It(e))):(t.onRest=u,n(jt(d,t,h,e)))}}})),h.paused&&await new Promise((e=>{h.resumeQueue.add(e)}));const m=Ot(e,await Promise.all(p));if(a&&m.finished&&(!n||!m.noop)){const n=Gt(t,a,i);if(n)return ln(e,[n]),sn(e,n,!0)}return l&&s.batchedUpdates((()=>l(m,e,e.item))),m}function rn(e,t){const n=ot({},e.springs);return t&&x(O(t),(e=>{P.und(e.keys)&&(e=Bt(e)),P.obj(e.to)||(e=ot({},e,{to:void 0})),un(n,e,(e=>an(e)))})),on(e,n),n}function on(e,t){V(t,((t,n)=>{e.springs[n]||(e.springs[n]=t,_e(t,e))}))}function an(e,t){const n=new Qt;return n.key=e,t&&_e(n,t),n}function un(e,t,n){t.keys&&x(t.keys,(s=>{(e[s]||(e[s]=n(s)))._prepareNode(t)}))}function ln(e,t){x(t,(t=>{un(e.springs,t,(t=>an(t,e)))}))}function cn(e,t){if(null==e)return{};var n,s,r={},i=Object.keys(e);for(s=0;s=0||(r[n]=e[n]);return r}const dn=[\"children\"],hn=t=>{let{children:n}=t,s=cn(t,dn);const r=(0,e.useContext)(pn),i=s.pause||!!r.pause,o=s.immediate||!!r.immediate;s=function(t,n){const[s]=(0,e.useState)((()=>({inputs:n,result:t()}))),r=(0,e.useRef)(),i=r.current;let o=i;return o?Boolean(n&&o.inputs&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;n{r.current=o,i==s&&(s.inputs=s.result=void 0)}),[o]),o.result}((()=>({pause:i,immediate:o})),[i,o]);const{Provider:a}=pn;return e.createElement(a,{value:s},n)},pn=(fn=hn,mn={},Object.assign(fn,e.createContext(mn)),fn.Provider._context=fn,fn.Consumer._context=fn,fn);var fn,mn;hn.Provider=pn.Provider,hn.Consumer=pn.Consumer;const gn=()=>{const e=[],t=function(t){Ne(`${Me}Directly calling start instead of using the api object is deprecated in v9 (use \".start\" instead), this will be removed in later 0.X.0 versions`);const s=[];return x(e,((e,r)=>{if(P.und(t))s.push(e.start());else{const i=n(t,e,r);i&&s.push(e.start(i))}})),s};t.current=e,t.add=function(t){e.includes(t)||e.push(t)},t.delete=function(t){const n=e.indexOf(t);~n&&e.splice(n,1)},t.pause=function(){return x(e,(e=>e.pause(...arguments))),this},t.resume=function(){return x(e,(e=>e.resume(...arguments))),this},t.set=function(t){x(e,(e=>e.set(t)))},t.start=function(t){const n=[];return x(e,((e,s)=>{if(P.und(t))n.push(e.start());else{const r=this._getProps(t,e,s);r&&n.push(e.start(r))}})),n},t.stop=function(){return x(e,(e=>e.stop(...arguments))),this},t.update=function(t){return x(e,((e,n)=>e.update(this._getProps(t,e,n)))),this};const n=function(e,t,n){return P.fun(e)?e(n,t):e};return t._getProps=n,t};function yn(t,n,s){const r=P.fun(n)&&n;r&&!s&&(s=[]);const i=(0,e.useMemo)((()=>r||3==arguments.length?gn():void 0),[]),o=(0,e.useRef)(0),a=$e(),u=(0,e.useMemo)((()=>({ctrls:[],queue:[],flush(e,t){const n=rn(e,t);return o.current>0&&!u.queue.length&&!Object.keys(n).some((t=>!e.springs[t]))?nn(e,t):new Promise((s=>{on(e,n),u.queue.push((()=>{s(nn(e,t))})),a()}))}})),[]),l=(0,e.useRef)([...u.ctrls]),c=[],d=De(t)||0;function h(e,t){for(let s=e;s{x(l.current.slice(t,d),(e=>{bt(e,i),e.stop(!0)})),l.current.length=t,h(d,t)}),[t]),(0,e.useMemo)((()=>{h(0,Math.min(d,t))}),s);const p=l.current.map(((e,t)=>rn(e,c[t]))),f=(0,e.useContext)(hn),m=De(f),g=f!==m&&yt(f);ze((()=>{o.current++,u.ctrls=l.current;const{queue:e}=u;e.length&&(u.queue=[],x(e,(e=>e()))),x(l.current,((e,t)=>{null==i||i.add(e),g&&e.start({default:f});const n=c[t];n&&(_t(e,n.ref),e.ref?e.queue.push(n):e.start(n))}))})),Fe((()=>()=>{x(u.ctrls,(e=>e.stop(!0)))}));const y=p.map((e=>ot({},e)));return i?[y,i]:y}let vn;!function(e){e.MOUNT=\"mount\",e.ENTER=\"enter\",e.UPDATE=\"update\",e.LEAVE=\"leave\"}(vn||(vn={}));const bn=[\"children\"];function _n(e){let{children:t}=e;return t(function(e,t){const n=P.fun(e),[[s],r]=yn(1,n?e:[e],n?t||[]:t);return n||2==arguments.length?[s,r]:s}(cn(e,bn)))}class wn extends Tt{constructor(e,t){super(),this.key=void 0,this.idle=!0,this.calc=void 0,this._active=new Set,this.source=e,this.calc=ce(...t);const n=this._get(),s=et(n);We(this,s.create(n))}advance(e){const t=this._get();S(t,this.get())||(Qe(this).setValue(t),this._onChange(t,this.idle)),!this.idle&&Pn(this._active)&&Sn(this)}_get(){const e=P.arr(this.source)?this.source.map(me):O(me(this.source));return this.calc(...e)}_start(){this.idle&&!Pn(this._active)&&(this.idle=!1,x(Ge(this),(e=>{e.done=!1})),N.skipAnimation?(s.batchedUpdates((()=>this.advance())),Sn(this)):U.start(this))}_attach(){let e=1;x(O(this.source),(t=>{fe(t)&&_e(t,this),qt(t)&&(t.idle||this._active.add(t),e=Math.max(e,t.priority+1))})),this.priority=e,this._start()}_detach(){x(O(this.source),(e=>{fe(e)&&we(e,this)})),this._active.clear(),Sn(this)}eventObserved(e){\"change\"==e.type?e.idle?this.advance():(this._active.add(e.parent),this._start()):\"idle\"==e.type?this._active.delete(e.parent):\"priority\"==e.type&&(this.priority=O(this.source).reduce(((e,t)=>Math.max(e,(qt(t)?t.priority:0)+1)),0))}}function kn(e){return!1!==e.idle}function Pn(e){return!e.size||Array.from(e).every(kn)}function Sn(e){e.idle||(e.idle=!0,x(Ge(e),(e=>{e.done=!0})),ye(e,{type:\"idle\",parent:e}))}N.assign({createStringInterpolator:Re,to:(e,t)=>new wn(e,t)}),U.advance;var xn=r(268);function Vn(e,t){if(null==e)return{};var n,s,r={},i=Object.keys(e);for(s=0;s=0||(r[n]=e[n]);return r}const On=[\"style\",\"children\",\"scrollTop\",\"scrollLeft\"],Cn=/^--/;function An(e,t){return null==t||\"boolean\"==typeof t||\"\"===t?\"\":\"number\"!=typeof t||0===t||Cn.test(e)||jn.hasOwnProperty(e)&&jn[e]?(\"\"+t).trim():t+\"px\"}const In={};let jn={animationIterationCount:!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,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,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0};const Rn=[\"Webkit\",\"Ms\",\"Moz\",\"O\"];jn=Object.keys(jn).reduce(((e,t)=>(Rn.forEach((n=>e[((e,t)=>e+t.charAt(0).toUpperCase()+t.substring(1))(n,t)]=e[t])),e)),jn);const Mn=[\"x\",\"y\",\"z\"],En=/^(matrix|translate|scale|rotate|skew)/,qn=/^(translate)/,Nn=/^(rotate|skew)/,Tn=(e,t)=>P.num(e)&&0!==e?e+t:e,zn=(e,t)=>P.arr(e)?e.every((e=>zn(e,t))):P.num(e)?e===t:parseFloat(e)===t;class $n extends Je{constructor(e){let{x:t,y:n,z:s}=e,r=Vn(e,Mn);const i=[],o=[];(t||n||s)&&(i.push([t||0,n||0,s||0]),o.push((e=>[`translate3d(${e.map((e=>Tn(e,\"px\"))).join(\",\")})`,zn(e,0)]))),V(r,((e,t)=>{if(\"transform\"===t)i.push([e||\"\"]),o.push((e=>[e,\"\"===e]));else if(En.test(t)){if(delete r[t],P.und(e))return;const n=qn.test(t)?\"px\":Nn.test(t)?\"deg\":\"\";i.push(O(e)),o.push(\"rotate3d\"===t?([e,t,s,r])=>[`rotate3d(${e},${t},${s},${Tn(r,n)})`,zn(r,0)]:e=>[`${t}(${e.map((e=>Tn(e,n))).join(\",\")})`,zn(e,t.startsWith(\"scale\")?1:0)])}})),i.length&&(r.transform=new Fn(i,o)),super(r)}}class Fn extends ve{constructor(e,t){super(),this._value=null,this.inputs=e,this.transforms=t}get(){return this._value||(this._value=this._get())}_get(){let e=\"\",t=!0;return x(this.inputs,((n,s)=>{const r=me(n[0]),[i,o]=this.transforms[s](P.arr(r)?r:n.map(me));e+=\" \"+i,t=t&&o})),t?\"none\":e}observerAdded(e){1==e&&x(this.inputs,(e=>x(e,(e=>fe(e)&&_e(e,this)))))}observerRemoved(e){0==e&&x(this.inputs,(e=>x(e,(e=>fe(e)&&we(e,this)))))}eventObserved(e){\"change\"==e.type&&(this._value=null),ye(this,e)}}const Un=[\"scrollTop\",\"scrollLeft\"];N.assign({batchedUpdates:xn.unstable_batchedUpdates,createStringInterpolator:Re,colors:{transparent:0,aliceblue:4042850303,antiquewhite:4209760255,aqua:16777215,aquamarine:2147472639,azure:4043309055,beige:4126530815,bisque:4293182719,black:255,blanchedalmond:4293643775,blue:65535,blueviolet:2318131967,brown:2771004159,burlywood:3736635391,burntsienna:3934150143,cadetblue:1604231423,chartreuse:2147418367,chocolate:3530104575,coral:4286533887,cornflowerblue:1687547391,cornsilk:4294499583,crimson:3692313855,cyan:16777215,darkblue:35839,darkcyan:9145343,darkgoldenrod:3095792639,darkgray:2846468607,darkgreen:6553855,darkgrey:2846468607,darkkhaki:3182914559,darkmagenta:2332068863,darkolivegreen:1433087999,darkorange:4287365375,darkorchid:2570243327,darkred:2332033279,darksalmon:3918953215,darkseagreen:2411499519,darkslateblue:1211993087,darkslategray:793726975,darkslategrey:793726975,darkturquoise:13554175,darkviolet:2483082239,deeppink:4279538687,deepskyblue:12582911,dimgray:1768516095,dimgrey:1768516095,dodgerblue:512819199,firebrick:2988581631,floralwhite:4294635775,forestgreen:579543807,fuchsia:4278255615,gainsboro:3705462015,ghostwhite:4177068031,gold:4292280575,goldenrod:3668254975,gray:2155905279,green:8388863,greenyellow:2919182335,grey:2155905279,honeydew:4043305215,hotpink:4285117695,indianred:3445382399,indigo:1258324735,ivory:4294963455,khaki:4041641215,lavender:3873897215,lavenderblush:4293981695,lawngreen:2096890111,lemonchiffon:4294626815,lightblue:2916673279,lightcoral:4034953471,lightcyan:3774873599,lightgoldenrodyellow:4210742015,lightgray:3553874943,lightgreen:2431553791,lightgrey:3553874943,lightpink:4290167295,lightsalmon:4288707327,lightseagreen:548580095,lightskyblue:2278488831,lightslategray:2005441023,lightslategrey:2005441023,lightsteelblue:2965692159,lightyellow:4294959359,lime:16711935,limegreen:852308735,linen:4210091775,magenta:4278255615,maroon:2147483903,mediumaquamarine:1724754687,mediumblue:52735,mediumorchid:3126187007,mediumpurple:2473647103,mediumseagreen:1018393087,mediumslateblue:2070474495,mediumspringgreen:16423679,mediumturquoise:1221709055,mediumvioletred:3340076543,midnightblue:421097727,mintcream:4127193855,mistyrose:4293190143,moccasin:4293178879,navajowhite:4292783615,navy:33023,oldlace:4260751103,olive:2155872511,olivedrab:1804477439,orange:4289003775,orangered:4282712319,orchid:3664828159,palegoldenrod:4008225535,palegreen:2566625535,paleturquoise:2951671551,palevioletred:3681588223,papayawhip:4293907967,peachpuff:4292524543,peru:3448061951,pink:4290825215,plum:3718307327,powderblue:2967529215,purple:2147516671,rebeccapurple:1714657791,red:4278190335,rosybrown:3163525119,royalblue:1097458175,saddlebrown:2336560127,salmon:4202722047,sandybrown:4104413439,seagreen:780883967,seashell:4294307583,sienna:2689740287,silver:3233857791,skyblue:2278484991,slateblue:1784335871,slategray:1887473919,slategrey:1887473919,snow:4294638335,springgreen:16744447,steelblue:1182971135,tan:3535047935,teal:8421631,thistle:3636451583,tomato:4284696575,turquoise:1088475391,violet:4001558271,wheat:4125012991,white:4294967295,whitesmoke:4126537215,yellow:4294902015,yellowgreen:2597139199}});const Dn=((e,{applyAnimatedValues:t=(()=>!1),createAnimatedStyle:n=(e=>new Je(e)),getComponentProps:s=(e=>e)}={})=>{const r={applyAnimatedValues:t,createAnimatedStyle:n,getComponentProps:s},i=e=>{const t=it(e)||\"Anonymous\";return(e=P.str(e)?i[e]||(i[e]=nt(e,r)):e[rt]||(e[rt]=nt(e,r))).displayName=`Animated(${t})`,e};return V(e,((t,n)=>{P.arr(e)&&(n=it(t)),i[n]=i(t)})),{animated:i}})([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"title\",\"tr\",\"track\",\"u\",\"ul\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"],{applyAnimatedValues:function(e,t){if(!e.nodeType||!e.setAttribute)return!1;const n=\"filter\"===e.nodeName||e.parentNode&&\"filter\"===e.parentNode.nodeName,s=t,{style:r,children:i,scrollTop:o,scrollLeft:a}=s,u=Vn(s,On),l=Object.values(u),c=Object.keys(u).map((t=>n||e.hasAttribute(t)?t:In[t]||(In[t]=t.replace(/([A-Z])/g,(e=>\"-\"+e.toLowerCase())))));void 0!==i&&(e.textContent=i);for(let t in r)if(r.hasOwnProperty(t)){const n=An(t,r[t]);Cn.test(t)?e.style.setProperty(t,n):e.style[t]=n}c.forEach(((t,n)=>{e.setAttribute(t,l[n])})),void 0!==o&&(e.scrollTop=o),void 0!==a&&(e.scrollLeft=a)},createAnimatedStyle:e=>new $n(e),getComponentProps:e=>Vn(e,Un)}).animated;function Ln(){return(Ln=Object.assign||function(e){for(var t=1;t=e}));e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=i),null==(n=r.get(t.target))||n.forEach((function(e){e(i,t)}))}))}),e);s=i.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:i,elements:r},Wn.set(t,n)}return n}(n),o=i.id,a=i.observer,u=i.elements,l=u.get(e)||[];return u.has(e)||u.set(e,l),l.push(t),a.observe(e),function(){l.splice(l.indexOf(t),1),0===l.length&&(u.delete(e),a.unobserve(e)),0===u.size&&(a.disconnect(),Wn.delete(o))}}var Zn=[\"children\",\"as\",\"tag\",\"triggerOnce\",\"threshold\",\"root\",\"rootMargin\",\"onChange\",\"skip\",\"trackVisibility\",\"delay\",\"initialInView\",\"fallbackInView\"];function Hn(e){return\"function\"!=typeof e.children}var Jn=function(t){var n,s;function r(e){var n;return(n=t.call(this,e)||this).node=null,n._unobserveCb=null,n.handleNode=function(e){n.node&&(n.unobserve(),e||n.props.triggerOnce||n.props.skip||n.setState({inView:!!n.props.initialInView,entry:void 0})),n.node=e||null,n.observeNode()},n.handleChange=function(e,t){e&&n.props.triggerOnce&&n.unobserve(),Hn(n.props)||n.setState({inView:e,entry:t}),n.props.onChange&&n.props.onChange(e,t)},n.state={inView:!!e.initialInView,entry:void 0},n}s=t,(n=r).prototype=Object.create(s.prototype),n.prototype.constructor=n,Qn(n,s);var i=r.prototype;return i.componentDidUpdate=function(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())},i.componentWillUnmount=function(){this.unobserve(),this.node=null},i.observeNode=function(){if(this.node&&!this.props.skip){var e=this.props,t=e.threshold,n=e.root,s=e.rootMargin,r=e.trackVisibility,i=e.delay,o=e.fallbackInView;this._unobserveCb=Yn(this.node,this.handleChange,{threshold:t,root:n,rootMargin:s,trackVisibility:r,delay:i},o)}},i.unobserve=function(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)},i.render=function(){if(!Hn(this.props)){var t=this.state,n=t.inView,s=t.entry;return this.props.children({inView:n,entry:s,ref:this.handleNode})}var r=this.props,i=r.children,o=r.as,a=r.tag,u=function(e,t){if(null==e)return{};var n,s,r={},i=Object.keys(e);for(s=0;s=0||(r[n]=e[n]);return r}(r,Zn);return e.createElement(o||a||\"div\",Ln({ref:this.handleNode},u),i)},r}(e.Component);Jn.displayName=\"InView\",Jn.defaultProps={threshold:0,triggerOnce:!1,initialInView:!1};const Xn=[0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9],Kn=({animateToNumber:n,fontStyle:s,configs:r,includeComma:i,locale:o})=>{const{ref:a,inView:u}=function(t){var n=void 0===t?{}:t,s=n.threshold,r=n.delay,i=n.trackVisibility,o=n.rootMargin,a=n.root,u=n.triggerOnce,l=n.skip,c=n.initialInView,d=n.fallbackInView,h=e.useRef(),p=e.useState({inView:!!c}),f=p[0],m=p[1],g=e.useCallback((function(e){void 0!==h.current&&(h.current(),h.current=void 0),l||e&&(h.current=Yn(e,(function(e,t){m({inView:e,entry:t}),t.isIntersecting&&u&&h.current&&(h.current(),h.current=void 0)}),{root:a,rootMargin:o,threshold:s,trackVisibility:i,delay:r},d))}),[Array.isArray(s)?s.toString():s,a,o,u,l,i,d,r]);(0,e.useEffect)((function(){h.current||!f.entry||u||l||m({inView:!!c})}));var y=[g,f.inView,f.entry];return y.ref=y[0],y.inView=y[1],y.entry=y[2],y}({triggerOnce:!0}),l=t().useRef(0),c=i?Math.abs(n).toLocaleString(o||\"en-US\"):String(Math.abs(n)),d=Array.from(c,Number).map(((e,t)=>isNaN(e)?c[t]:e)),[h,p]=t().useState(0),f=t().useRef(null),m=(e,t,n)=>{return\"function\"==typeof e?e(t,n):e?e[(s=0,r=e.length-1,s=Math.ceil(s),r=Math.floor(r),Math.floor(Math.random()*(r-s+1))+s)]:void 0;var s,r};return t().useEffect((()=>{var e,t;const n=null===(e=f.current.getClientRects())||void 0===e||null===(t=e[0])||void 0===t?void 0:t.height;n&&p(n)}),[n,s]),t().createElement(t().Fragment,null,0!==h&&t().createElement(\"div\",{ref:a,style:{display:\"flex\",flexDirection:\"row\"},className:\"animated-container\"},u&&n<0&&t().createElement(\"div\",{style:s},\"-\"),u&&d.map(((e,n)=>\"string\"==typeof e?t().createElement(\"div\",{key:n,style:{...s}},e):t().createElement(\"div\",{key:n,style:{height:h,overflow:\"hidden\"}},t().createElement(_n,{key:\"\"+l.current++,from:{transform:\"translateY(0px)\"},to:{transform:`translateY(${h*d[n]*-1-20*h})`},config:m(r,e,n)},(e=>Xn.map(((n,r)=>t().createElement(Dn.div,{key:r,style:{...s,...e}},n))))))))),t().createElement(\"div\",{ref:f,style:{position:\"absolute\",top:-9999,...s}},0))},es=t().memo(Kn,((e,t)=>e.animateToNumber===t.animateToNumber&&e.fontStyle===t.fontStyle&&e.includeComma===t.includeComma))})(),i})()}));","/**\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\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n * \n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0>>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","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// 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\tid: moduleId,\n\t\tloaded: false,\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// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","export enum StageActionKind {\n Next = 'NEXT',\n Prev = 'PREV',\n Reset = 'RESET',\n}\n\nexport enum Stage {\n about = 'about',\n goals = 'goals',\n tutorial = 'tutorial',\n rounds = 'rounds',\n results = 'results',\n}\n","import { Stage } from './Stage.enum';\n\nexport function useLocalStorageStage() {\n const fromStorage = localStorage.getItem('stage');\n let current = Stage.tutorial;\n if (fromStorage) {\n current = fromStorage as Stage;\n }\n\n const setCurrent = (stage: Stage) => localStorage.setItem('stage', stage);\n return {\n current,\n setCurrent,\n };\n}\n","import React from 'react';\nimport { Stage, StageActionKind } from './Stage.enum';\n\nexport const StageContext = React.createContext<\n [Stage, React.Dispatch<{ type: StageActionKind; payload?: unknown }>]\n>([Stage.about, () => null]);\n","import { useLocalStorageStage } from './useLocalStorageStage';\nimport { StageAction } from './Stage.definitions';\nimport { Stage } from './Stage.enum';\n\nexport function StageReducer(state: Stage, action: StageAction): Stage {\n const { setCurrent } = useLocalStorageStage();\n\n switch (action.type) {\n case 'PREV': {\n const prev = prevStage(state);\n setCurrent(prev);\n return prev;\n }\n case 'NEXT': {\n const next = nextStage(state);\n setCurrent(next);\n return next;\n }\n case 'RESET': {\n localStorage.clear();\n setCurrent(Stage.about);\n return Stage.about;\n }\n default: {\n throw new Error(`Unsupported action type: ${action.type}`);\n }\n }\n}\n\nfunction nextStage(state: Stage): Stage {\n switch (state) {\n case Stage.tutorial:\n return Stage.about;\n case Stage.about:\n return Stage.goals;\n case Stage.goals:\n return Stage.rounds;\n case Stage.rounds:\n return Stage.results;\n default:\n return state;\n }\n}\n\nfunction prevStage(state: Stage): Stage {\n switch (state) {\n case Stage.about:\n return Stage.tutorial;\n case Stage.goals:\n return Stage.tutorial;\n case Stage.rounds:\n return Stage.goals;\n case Stage.results:\n return Stage.rounds;\n default:\n return state;\n }\n}\n","import React from 'react';\nimport { useLocalStorageStage } from './useLocalStorageStage';\nimport { StageContext } from './StageContext';\nimport { StageReducer } from './StageReducer';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function StageProvider(props: any) {\n const { current } = useLocalStorageStage();\n const [state, dispatch] = React.useReducer(StageReducer, current);\n const value = React.useMemo(() => [state, dispatch], [state]);\n return ;\n}\n","import React from 'react';\nimport { StageContext } from './StageContext';\nimport { StageActionKind } from './Stage.enum';\n\nexport function useStage() {\n const context = React.useContext(StageContext);\n if (!context) {\n throw new Error('useStage must be within a StageProvider');\n }\n const [state, dispatch] = context;\n const next = () => {\n dispatch({ type: StageActionKind.Next });\n };\n const prev = () => {\n dispatch({ type: StageActionKind.Prev });\n };\n const reset = () => {\n dispatch({ type: StageActionKind.Reset });\n };\n\n return {\n state,\n dispatch,\n next,\n prev,\n reset,\n };\n}\n","export enum UserActionKind {\n AboutCompleted = 'ABOUT_COMPLETED',\n GoalsSelected = 'GOALS_SELECTED',\n GoalCompleted = 'GOAL_COMPLETED',\n PersonaliseGoal = 'PERSONALISE_GOAL',\n CompletedRound = 'COMPLETED_ROUND',\n NewMilestone = 'NEW_MILESTONE',\n Reset = 'RESET_USER',\n JoinClass = 'JOIN_CLASS',\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase();\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","import { User } from 'engine/user/User.definitions';\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nexport const DefaultUser: () => User = () => ({\r\n id: uuidv4(),\r\n roundInPlay: 1,\r\n completedRounds: [],\r\n});\r\n","export enum RoundStage {\n intro = 'intro',\n split = 'split',\n esg = 'esg',\n risk = 'risk',\n showAccounts = 'showAccounts',\n chance = 'chance',\n quiz = 'quiz',\n summary = 'summary',\n complete = 'complete',\n}\n\nexport enum RoundActionKind {\n StartRound = 'START_ROUND',\n EsgSelected = 'ESG_SELECTED',\n StrategySelected = 'STRATEGY_SELECTED',\n RiskSelected = 'RISK_SELECTED',\n AccountsSelected = 'ACCOUNTS_SELECTED',\n CompleteGoal = 'COMPLETE_GOAL',\n ShowChance = 'SHOW_CHANCE',\n ChanceDecision = 'CHANCE_DECISION',\n DrawNextChance = 'DRAW_NEXT_CHANCE',\n CompletedChances = 'COMPLETED_CHANCES',\n CompleteQuiz = 'COMPLETE_QUIZ',\n CompleteRound = 'COMPLETE_ROUND',\n Reset = 'RESET_ROUND',\n}\n","import { Milestone } from 'engine/milestone/Milestone.definition';\r\nimport { Round } from 'engine/rounds/Round.definitions';\r\nimport { RoundStage } from 'engine/rounds/Round.enums';\r\n\r\nconst initialMilestone: Milestone = {\r\n age: 18,\r\n environmentScore: 0,\r\n governanceScore: 0,\r\n investmentBalance: 0,\r\n savingsBalance: 0,\r\n socialScore: 0,\r\n year: 0,\r\n savingsRate: 0,\r\n investmentRate: 0,\r\n};\r\n\r\nexport const RoundOne: Round = Object.freeze({\r\n number: 1,\r\n monthlyPounds: 40,\r\n totalChanceCards: 4,\r\n advanceYears: [1, 2, 3, 3],\r\n content: {\r\n subTitle: 'Starting out!',\r\n images: [\r\n { description: 'You are 18 years old', src: '/images/round/18th-birthday-cake.png' },\r\n {\r\n description: 'Your part-time job pays £200 per month',\r\n src: '/images/round/bar-interior.png',\r\n },\r\n {\r\n description: 'You spend £160 per month',\r\n src: '/images/round/shopping-centre.png',\r\n },\r\n ],\r\n },\r\n milestones: [initialMilestone],\r\n selectEsg: true,\r\n strategy: {},\r\n chanceResults: [],\r\n stage: RoundStage.intro,\r\n});\r\n\r\nexport const RoundTwo: Round = Object.freeze({\r\n number: 2,\r\n monthlyPounds: 500,\r\n totalChanceCards: 4,\r\n advanceYears: [2, 2, 2, 5],\r\n content: {\r\n subTitle: 'Getting started!',\r\n images: [\r\n {\r\n description: 'You are now 27 years old',\r\n src: '/images/round/27th-birthday-cake.png',\r\n },\r\n {\r\n description: `You've made some good career moves. You now earn £2500 per month.`,\r\n src: '/images/round/work-desk.png',\r\n },\r\n {\r\n description: 'Your living expenses have increased to £2000 per month',\r\n src: '/images/round/apartment-interior.png',\r\n },\r\n ],\r\n },\r\n stage: RoundStage.intro,\r\n strategy: {},\r\n chanceResults: [],\r\n selectEsg: false,\r\n milestones: [],\r\n});\r\n\r\nexport const RoundThree: Round = Object.freeze({\r\n number: 3,\r\n monthlyPounds: 1000,\r\n totalChanceCards: 3,\r\n advanceYears: [5, 10, 5],\r\n content: {\r\n subTitle: 'Unstoppable!',\r\n images: [\r\n {\r\n description: 'You are now 38 years old',\r\n src: '/images/round/38th-birthday-cake.png',\r\n },\r\n {\r\n description: 'You have changed jobs. You now earn £5000 per month',\r\n src: '/images/round/meeting-room.png',\r\n },\r\n {\r\n description: 'Your living expenses are now £4000 per month',\r\n src: '/images/round/home-interior.png',\r\n },\r\n ],\r\n },\r\n stage: RoundStage.intro,\r\n strategy: {},\r\n chanceResults: [],\r\n selectEsg: false,\r\n milestones: [],\r\n});\r\n","import { DefaultUser } from 'data/User';\nimport React from 'react';\nimport { User } from '../user/User.definitions';\nimport { UserActionKind } from '../user/User.enums';\nimport { RoundOne, RoundThree, RoundTwo } from 'data/Rounds';\nimport { Round } from 'engine/rounds/Round.definitions';\nimport { RoundActionKind } from 'engine/rounds/Round.enums';\n\nconst defaultRounds = [{ ...RoundOne }, { ...RoundTwo }, { ...RoundThree }];\n\nexport const UserRoundContext = React.createContext<\n [\n { user: User; rounds: Round[] },\n React.Dispatch<{ type: UserActionKind | RoundActionKind; payload?: unknown }>,\n ]\n>([{ user: DefaultUser(), rounds: defaultRounds }, () => null]);\n","import React from 'react';\nimport { Round } from '../rounds/Round.definitions';\nimport { IGoal } from 'engine/goal/Goal.defintions';\nimport { UserActionKind } from './User.enums';\nimport { UserRoundContext } from '../userRounds/UserRoundContext';\n\nexport function useUser() {\n const context = React.useContext(UserRoundContext);\n if (!context) {\n throw new Error('useUser must be within a UserProvider');\n }\n const [{ user }, dispatch] = context;\n\n const completedProfile = (name: string) =>\n dispatch({ type: UserActionKind.AboutCompleted, payload: name });\n\n const selectedGoals = (goals: Map) =>\n dispatch({ type: UserActionKind.GoalsSelected, payload: goals });\n\n const completedGoal = (goal: IGoal) =>\n dispatch({ type: UserActionKind.GoalCompleted, payload: goal });\n\n const userCompletedRound = (completedRound: Round) =>\n dispatch({ type: UserActionKind.CompletedRound, payload: completedRound });\n\n const currentMilestone = user?.completedRounds?.slice(-1)[0]?.milestones.slice(-1)[0] || [];\n\n const milestoneHistory = user?.completedRounds\n ?.map((r) =>\n r.milestones.map((m) => ({\n Year: Number(new Date().getFullYear()) + m.year,\n Savings: m.savingsBalance,\n Investment: m.investmentBalance,\n s_rate: m.savingsRate,\n i_rate: m.investmentRate,\n })),\n )\n .flat();\n\n const risksTaken = user?.completedRounds?.map(\n (cr) =>\n `Short term risk: ${cr.strategy.shortTermRisk}. Long term risk: ${cr.strategy.longTermRisk}.`,\n );\n\n const roundInPlay = user.roundInPlay;\n\n const joinClass = (classRef: string) =>\n dispatch({ type: UserActionKind.JoinClass, payload: classRef });\n\n return {\n user,\n dispatch,\n completedProfile,\n selectedGoals,\n completedGoal,\n userCompletedRound,\n currentMilestone,\n milestoneHistory,\n risksTaken,\n roundInPlay,\n joinClass,\n };\n}\n","import { TQuestion } from 'components/quiz/Quiz.definition';\nimport React from 'react';\nimport { Account } from '../../components/accounts/Accounts.definitions';\nimport { Chance } from '../../components/chance/Chance.definitions';\nimport { Round } from './Round.definitions';\nimport { RoundActionKind, RoundStage } from './Round.enums';\nimport { IGoal } from 'engine/goal/Goal.defintions';\nimport { UserRoundContext } from 'engine/userRounds/UserRoundContext';\n\nexport function useRounds() {\n const context = React.useContext(UserRoundContext);\n if (!context) {\n throw new Error('useRounds must be within a UserRoundsProvider');\n }\n const [{ rounds }, dispatch] = context;\n\n const startRound = (roundNumber: number) => {\n dispatch({\n type: RoundActionKind.StartRound,\n payload: { roundNumber },\n });\n };\n\n const splitCompleted = (roundNumber: number, save: number, invest: number) => {\n dispatch({\n type: RoundActionKind.StrategySelected,\n payload: { roundNumber, save, invest },\n });\n };\n\n const riskCompleted = (roundNumber: number, shortTerm: number, longTerm: number) => {\n dispatch({\n type: RoundActionKind.RiskSelected,\n payload: {\n roundNumber,\n shortTerm,\n longTerm,\n },\n });\n };\n\n const esgCompleted = (\n roundNumber: number,\n environment: number,\n social: number,\n governance: number,\n ) => {\n dispatch({\n type: RoundActionKind.EsgSelected,\n payload: {\n roundNumber,\n environment,\n social,\n governance,\n },\n });\n };\n\n const accountsSelected = (\n savingsAccount: Account,\n investmentAccount: Account,\n roundNumber: number,\n chanceCard: Chance,\n ) => {\n dispatch({\n type: RoundActionKind.AccountsSelected,\n payload: {\n savingsAccount,\n investmentAccount,\n roundNumber,\n chanceCard,\n },\n });\n };\n\n const showChanceDecision = (roundNumber: number) => {\n dispatch({\n type: RoundActionKind.ShowChance,\n payload: { roundNumber },\n });\n };\n const chanceDecision = (roundNumber: number, chance: Chance) => {\n dispatch({\n type: RoundActionKind.ChanceDecision,\n payload: { roundNumber, chance },\n });\n };\n\n const drawNextChance = (roundNumber: number, chance: Chance) => {\n dispatch({\n type: RoundActionKind.DrawNextChance,\n payload: { roundNumber, chance },\n });\n };\n\n const completeQuiz = (roundNumber: number, quizData: Map) =>\n dispatch({\n type: RoundActionKind.CompleteQuiz,\n payload: { roundNumber, quizData },\n });\n\n const completeGoal = (goal: IGoal, round: number) =>\n dispatch({\n type: RoundActionKind.CompleteGoal,\n payload: { goal, round },\n });\n const completeRound = (roundNumber: number) =>\n dispatch({\n type: RoundActionKind.CompleteRound,\n payload: { roundNumber },\n });\n\n const completedChances = (roundNumber: number) => {\n dispatch({\n type: RoundActionKind.CompletedChances,\n payload: { roundNumber },\n });\n };\n\n const reset = () => {\n dispatch({ type: RoundActionKind.Reset, payload: { roundNumber: 1 } });\n };\n\n const previousChances = rounds.map((round) => round.chanceResults.map((cr) => cr.id)).flat();\n\n const currentMilestone = rounds\n .filter((f) => f.milestones.length > 0)\n ?.slice(-1)[0]\n .milestones.slice(-1)[0];\n\n const getCurrentRound = () => {\n rounds.sort((a, b) => a.number - b.number);\n return rounds.find((f) => f.stage !== RoundStage.complete) || rounds[0];\n };\n\n const currentRound: Round = getCurrentRound();\n\n return {\n rounds,\n dispatch,\n reset,\n currentMilestone,\n startRound,\n splitCompleted,\n riskCompleted,\n esgCompleted,\n accountsSelected,\n previousChances,\n showChanceDecision,\n chanceDecision,\n drawNextChance,\n completeQuiz,\n completeRound,\n completeGoal,\n completedChances,\n currentRound,\n };\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"HeaderBar_wrapper__p+IUa\",\"raiseLogo\":\"HeaderBar_raiseLogo__vuIV6\"};","// import styles from './RaiseLogo.module.scss';\n// import { ClassNameMaker } from 'utils';\n\nexport type TRaiseLogoProps = {\n appearance?: 'dark' | 'light';\n};\n\nexport function RaiseLogo({ appearance = 'dark' }: TRaiseLogoProps) {\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n","// extracted by mini-css-extract-plugin\nexport default {\"wrapper\":\"Button_wrapper__ysf31\",\"button-small\":\"Button_button-small__Q0C7o\",\"button-regular\":\"Button_button-regular__nXQd2\",\"button-large\":\"Button_button-large__cjxAO\",\"_button\":\"Button__button__kI2Y0\",\"_button--disabled\":\"Button__button--disabled__yo4Pf\",\"hidden\":\"Button_hidden__9JY1f\",\"primary\":\"Button_primary__c9haR Button__button__kI2Y0\",\"primary--disabled\":\"Button_primary--disabled__8gLS2\",\"icon\":\"Button_icon__cwXIl\",\"showIcon\":\"Button_showIcon__0XAXZ\",\"secondary\":\"Button_secondary__ZUWAd Button__button__kI2Y0\",\"secondary--disabled\":\"Button_secondary--disabled__OdUSt\",\"dark\":\"Button_dark__ACE8z Button__button__kI2Y0\",\"dark--disabled\":\"Button_dark--disabled__Lt3mk\",\"light\":\"Button_light__jwHcx Button__button__kI2Y0\",\"fitContent\":\"Button_fitContent__aP6Wf\",\"fullWidth\":\"Button_fullWidth__ZKkcv\",\"spacingAbove-1\":\"Button_spacingAbove-1__eN32B\",\"spacingAbove-2\":\"Button_spacingAbove-2__qZtKS\",\"spacingAbove-3\":\"Button_spacingAbove-3__RmeLH\",\"spacingAbove-4\":\"Button_spacingAbove-4__9lzsZ\",\"spacingAbove-5\":\"Button_spacingAbove-5__5aBsp\",\"spacingAbove-6\":\"Button_spacingAbove-6__KtPoM\",\"spacingAbove-7\":\"Button_spacingAbove-7__9aYGF\",\"spacingAbove-8\":\"Button_spacingAbove-8__H9vOZ\",\"spacingAbove-9\":\"Button_spacingAbove-9__TCHeT\",\"spacingAbove-10\":\"Button_spacingAbove-10__RQCOV\",\"spacingBelow-1\":\"Button_spacingBelow-1__klNKD\",\"spacingBelow-2\":\"Button_spacingBelow-2__nYa-Q\",\"spacingBelow-3\":\"Button_spacingBelow-3__xnONm\",\"spacingBelow-4\":\"Button_spacingBelow-4__3qeVp\",\"spacingBelow-5\":\"Button_spacingBelow-5__0ZeXT\",\"spacingBelow-6\":\"Button_spacingBelow-6__ZwUhN\",\"spacingBelow-7\":\"Button_spacingBelow-7__tZ3AK\",\"spacingBelow-8\":\"Button_spacingBelow-8__-TRqk\",\"spacingBelow-9\":\"Button_spacingBelow-9__RlcaS\",\"spacingBelow-10\":\"Button_spacingBelow-10__iqozS\"};","// helper function to concat a list of functions that return styles\ntype ClassNameInput = string | undefined;\n\nfunction ClassNameMaker(listOfClasses: ClassNameInput[]) {\n return listOfClasses.filter(x => x).join(\" \");\n}\n\nexport default ClassNameMaker;\n","export function CheckIcon() {\n return (\n \n \n \n );\n}\n","import styles from './Button.module.scss';\nimport { ClassNameMaker } from 'utils';\nimport { SpacingIntervals } from '../types';\nimport { CheckIcon } from '../icons/CheckIcon';\n\ntype TButtonProps = {\n onClick?: () => void;\n onDisabledClick?: () => void;\n label: string;\n appearance?: 'primary' | 'secondary' | 'dark' | 'light';\n width?: 'fitContent' | 'fullWidth' | 'standard'; //fitContent sizes to content, standard has a minimum width set\n disabled?: boolean;\n icon?: 'tick' | '';\n size?: 'small' | 'regular' | 'large';\n hidden?: boolean;\n spacingAbove?: SpacingIntervals;\n spacingBelow?: SpacingIntervals;\n testId?: string;\n};\n\nexport function Button({\n onClick,\n onDisabledClick,\n label,\n hidden = false,\n disabled = false,\n appearance = 'dark', //dark means dark button background i.e.blue\n width = 'standard',\n size = 'regular',\n spacingAbove,\n spacingBelow,\n testId,\n icon,\n}: TButtonProps) {\n const className = ClassNameMaker([\n styles[appearance],\n styles[`spacingAbove-${spacingAbove}`],\n styles[`spacingBelow-${spacingBelow}`],\n styles[`button-${size}`],\n styles[width],\n hidden ? styles['hidden'] : '',\n disabled ? styles[`${appearance}--disabled`] : '',\n disabled ? styles[`_button--disabled`] : '',\n ]);\n let showIcon;\n switch (icon) {\n case 'tick':\n showIcon = ;\n break;\n }\n return (\n
\n {\n if (!disabled) onClick?.();\n else onDisabledClick?.();\n }}\n data-testid={testId}\n >\n {icon ?
{showIcon}
: ''}\n\n {label}\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// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n // Treating this as a full URL will strip any trailing spaces so we need to\n // pre-encode them since they might be part of a matching splat param from\n // an ancestor route\n href = href.replace(/ $/, \"%20\");\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\nexport type PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n let decoded = decodePath(pathname);\n matches = matchRouteBranch(branches[i], decoded);\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:[\\w-]+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:([\\w-]+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = (value || \"\").replace(/%2F/g, \"/\");\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(\n /\\/:([\\w-]+)(\\?)?/g,\n (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n }\n );\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction decodePath(value: string) {\n try {\n return value\n .split(\"/\")\n .map((v) => decodeURIComponent(v).replace(/\\//g, \"%2F\"))\n .join(\"/\");\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n getResolveToMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the future config for the router\n */\n get future(): FutureConfig;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n unstable_flushSync: boolean;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location, {\n initialHydration: true,\n });\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>,\n { flushSync }: { flushSync?: boolean } = {}\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n future.v7_relativeSplatPath,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n flushSync,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n initialHydration?: boolean;\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n flushSync?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n let flushSync = (opts && opts.flushSync) === true;\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\n );\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches }, { flushSync });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace, flushSync }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(\n location,\n {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n // If we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let flushSync = (opts && opts.unstable_flushSync) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n future.v7_relativeSplatPath,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath }),\n { flushSync }\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n updateFetcherState(key, getDoneFetcher(result.data));\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get future() {\n return future;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n v7_throwAbortReason: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n v7_throwAbortReason: false,\n ...(opts ? opts.future : null),\n };\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n future.v7_relativeSplatPath,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n throwStaticHandlerAbortedError(request, isRouteRequest, future);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: isRouteErrorResponse(error) ? error.status : 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction throwStaticHandlerAbortedError(\n request: Request,\n isRouteRequest: boolean,\n future: StaticHandlerFutureConfig\n) {\n if (future.v7_throwAbortReason && request.signal.reason !== undefined) {\n throw request.signal.reason;\n }\n\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted: ${request.method} ${request.url}`);\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getResolveToMatches(contextualMatches, v7_relativeSplatPath),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n let { route } = match;\n if (route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n v7_relativeSplatPath: boolean,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n\n try {\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n if (result.body == null) {\n data = null;\n } else {\n data = await result.json();\n }\n } else {\n data = await result.text();\n }\n } catch (e) {\n return { type: ResultType.error, error: e };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_flushSync?: boolean;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n future: {\n v7_relativeSplatPath: boolean;\n };\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getResolveToMatches as getResolveToMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"],\n future?: RemixRouter[\"future\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n\n let remainingPathname = pathname;\n if (parentPathnameBase !== \"/\") {\n // Determine the remaining pathname by removing the # of URL segments the\n // parentPathnameBase has, instead of removing based on character count.\n // This is because we can't guarantee that incoming/outgoing encodings/\n // decodings will match exactly.\n // We decode paths before matching on a per-segment basis with\n // decodeURIComponent(), but we re-encode pathnames via `new URL()` so they\n // match what `window.location.pathname` would reflect. Those don't 100%\n // align when it comes to encoded URI characters such as % and &.\n //\n // So we may end up with:\n // pathname: \"/descendant/a%25b/match\"\n // parentPathnameBase: \"/descendant/a%b\"\n //\n // And the direct substring removal approach won't work :/\n let parentSegments = parentPathnameBase.replace(/^\\//, \"\").split(\"/\");\n let segments = pathname.replace(/^\\//, \"\").split(\"/\");\n remainingPathname = \"/\" + segments.slice(parentSegments.length).join(\"/\");\n }\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined ||\n matches[matches.length - 1].route.lazy !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState,\n future\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

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

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

Unexpected Application Error!

\n

{message}

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