{"version":3,"file":"static/js/main.6b1079a2.js","mappings":"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,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,KAAO,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ,WAAW,MAAQ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","sources":["api/index.js","helpers/global.state.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","helpers/sessions.ts","helpers/storage.ts","../node_modules/i18next/dist/esm/i18next.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","i18n/english.js","i18n.js","i18n/spanish.js","pages/Process/Loader.tsx","../node_modules/@emotion/sheet/dist/emotion-sheet.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/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/material/Box/boxClasses.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/system/createBox/createBox.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/system/cssVars/createGetCssVar.js","../node_modules/@mui/system/cssVars/prepareTypographyVars.js","../node_modules/@mui/system/cssVars/cssVarsParser.js","../node_modules/@mui/system/cssVars/prepareCssVars.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createThemeNoVars.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createColorScheme.js","../node_modules/@mui/material/styles/shouldSkipGeneratingVar.js","../node_modules/@mui/material/styles/excludeVariablesFromRoot.js","../node_modules/@mui/material/styles/createGetSelector.js","../node_modules/@mui/material/styles/stringifyTheme.js","../node_modules/@mui/material/styles/createThemeWithVars.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/system/cssVars/getColorSchemeSelector.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/styles/identifier.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/breakpoints/breakpoints.js","../node_modules/@mui/utils/esm/clamp/clamp.js","../node_modules/@mui/system/colorManipulator/colorManipulator.js","../node_modules/@mui/system/createTheme/createSpacing.js","../node_modules/@mui/system/createBreakpoints/createBreakpoints.js","../node_modules/@mui/system/createTheme/shape.js","../node_modules/@mui/system/createTheme/applyStyles.js","../node_modules/@mui/system/createTheme/createTheme.js","../node_modules/@mui/system/cssContainerQueries/cssContainerQueries.js","../node_modules/@mui/system/merge/merge.js","../node_modules/@mui/system/spacing/spacing.js","../node_modules/@mui/system/memoize/memoize.js","../node_modules/@mui/system/style/style.js","../node_modules/@mui/system/compose/compose.js","../node_modules/@mui/system/borders/borders.js","../node_modules/@mui/system/cssGrid/cssGrid.js","../node_modules/@mui/system/palette/palette.js","../node_modules/@mui/system/sizing/sizing.js","../node_modules/@mui/system/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/system/styleFunctionSx/extendSxProp.js","../node_modules/@mui/system/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/system/useThemeWithoutDefault/useThemeWithoutDefault.js","../node_modules/@mui/system/useTheme/useTheme.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/deepmerge/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/aria-hidden/dist/es2015/index.js","../node_modules/classnames/index.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-device-detect/dist/lib.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-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/get-nonce/dist/es2015/index.js","../node_modules/react-style-singleton/dist/es2015/singleton.js","../node_modules/react-style-singleton/dist/es2015/component.js","../node_modules/react-style-singleton/dist/es2015/hook.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/use-callback-ref/dist/es2015/assignRef.js","../node_modules/use-callback-ref/dist/es2015/useMergeRef.js","../node_modules/use-callback-ref/dist/es2015/useRef.js","../node_modules/use-sidecar/dist/es2015/exports.js","../node_modules/use-sidecar/dist/es2015/medium.js","../node_modules/void-elements/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@radix-ui/react-id/src/id.tsx","../node_modules/@radix-ui/react-use-callback-ref/src/useCallbackRef.tsx","../node_modules/@radix-ui/react-use-controllable-state/src/useControllableState.tsx","../node_modules/@radix-ui/react-use-escape-keydown/src/useEscapeKeydown.tsx","../node_modules/@radix-ui/react-use-layout-effect/src/useLayoutEffect.tsx","../node_modules/@radix-ui/react-compose-refs/src/composeRefs.tsx","../node_modules/@radix-ui/react-slot/src/Slot.tsx","../node_modules/@radix-ui/react-primitive/src/Primitive.tsx","../node_modules/@radix-ui/react-visually-hidden/src/VisuallyHidden.tsx","../node_modules/@radix-ui/react-accessible-icon/src/AccessibleIcon.tsx","../node_modules/@radix-ui/react-context/src/createContext.tsx","../node_modules/@radix-ui/primitive/src/primitive.tsx","../node_modules/@radix-ui/react-dismissable-layer/src/DismissableLayer.tsx","../node_modules/@radix-ui/react-focus-scope/src/FocusScope.tsx","../node_modules/@radix-ui/react-portal/src/Portal.tsx","../node_modules/@radix-ui/react-presence/src/Presence.tsx","../node_modules/@radix-ui/react-presence/src/useStateMachine.tsx","../node_modules/@radix-ui/react-focus-guards/src/FocusGuards.tsx","../node_modules/react-remove-scroll-bar/dist/es2015/constants.js","../node_modules/react-remove-scroll/dist/es2015/medium.js","../node_modules/react-remove-scroll/dist/es2015/UI.js","../node_modules/react-remove-scroll-bar/dist/es2015/utils.js","../node_modules/react-remove-scroll-bar/dist/es2015/component.js","../node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js","../node_modules/react-remove-scroll/dist/es2015/handleScroll.js","../node_modules/react-remove-scroll/dist/es2015/SideEffect.js","../node_modules/react-remove-scroll/dist/es2015/sidecar.js","../node_modules/react-remove-scroll/dist/es2015/Combination.js","../node_modules/@radix-ui/react-dialog/src/Dialog.tsx","../node_modules/@radix-ui/react-alert-dialog/src/AlertDialog.tsx","../node_modules/@radix-ui/themes/src/props/as-child.prop.ts","../node_modules/@radix-ui/themes/src/props/width.props.ts","../node_modules/@radix-ui/themes/src/props/height.props.ts","../node_modules/@radix-ui/themes/src/components/dialog.props.ts","../node_modules/@radix-ui/themes/src/props/color.prop.ts","../node_modules/@radix-ui/themes/src/props/high-contrast.prop.ts","../node_modules/@radix-ui/themes/src/props/leading-trim.prop.ts","../node_modules/@radix-ui/themes/src/props/text-align.prop.ts","../node_modules/@radix-ui/themes/src/props/text-wrap.prop.ts","../node_modules/@radix-ui/themes/src/props/truncate.prop.ts","../node_modules/@radix-ui/themes/src/props/weight.prop.ts","../node_modules/@radix-ui/themes/src/components/heading.props.ts","../node_modules/@radix-ui/themes/src/props/prop-def.ts","../node_modules/@radix-ui/themes/src/helpers/has-own-property.ts","../node_modules/@radix-ui/themes/src/helpers/is-responsive-object.ts","../node_modules/@radix-ui/themes/src/helpers/get-responsive-styles.ts","../node_modules/@radix-ui/themes/src/helpers/merge-styles.ts","../node_modules/@radix-ui/themes/src/helpers/extract-props.ts","../node_modules/@radix-ui/themes/src/props/margin.props.ts","../node_modules/@radix-ui/themes/src/components/heading.tsx","../node_modules/@radix-ui/themes/src/components/text.props.ts","../node_modules/@radix-ui/themes/src/components/text.tsx","../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.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/@radix-ui/react-arrow/src/Arrow.tsx","../node_modules/@radix-ui/react-use-size/src/useSize.tsx","../node_modules/@radix-ui/react-popper/src/Popper.tsx","../node_modules/@radix-ui/react-tooltip/src/Tooltip.tsx","../node_modules/@radix-ui/react-direction/src/Direction.tsx","../node_modules/@radix-ui/themes/src/helpers/get-matching-gray-color.ts","../node_modules/@radix-ui/themes/src/props/radius.prop.ts","../node_modules/@radix-ui/themes/src/components/theme.props.ts","../node_modules/@radix-ui/themes/src/components/theme.tsx","../node_modules/@radix-ui/themes/src/helpers/require-react-element.ts","../node_modules/@radix-ui/themes/src/components/alert-dialog.tsx","../node_modules/@radix-ui/react-avatar/src/Avatar.tsx","../node_modules/@radix-ui/themes/src/components/avatar.props.ts","../node_modules/@radix-ui/themes/src/helpers/get-subtree.ts","../node_modules/@radix-ui/themes/src/components/avatar.tsx","../node_modules/@radix-ui/themes/src/components/badge.props.ts","../node_modules/@radix-ui/themes/src/components/badge.tsx","../node_modules/@radix-ui/themes/src/components/blockquote.props.ts","../node_modules/@radix-ui/themes/src/components/blockquote.tsx","../node_modules/@radix-ui/themes/src/components/box.props.ts","../node_modules/@radix-ui/themes/src/props/padding.props.ts","../node_modules/@radix-ui/themes/src/props/layout.props.ts","../node_modules/@radix-ui/themes/src/components/box.tsx","../node_modules/@radix-ui/themes/src/components/base-button.props.ts","../node_modules/@radix-ui/themes/src/props/gap.props.ts","../node_modules/@radix-ui/themes/src/components/flex.props.ts","../node_modules/@radix-ui/themes/src/components/flex.tsx","../node_modules/@radix-ui/themes/src/components/spinner.props.ts","../node_modules/@radix-ui/themes/src/helpers/inert.ts","../node_modules/@radix-ui/themes/src/components/spinner.tsx","../node_modules/@radix-ui/themes/src/components/callout.props.ts","../node_modules/@radix-ui/themes/src/helpers/map-prop-values.ts","../node_modules/@radix-ui/themes/src/components/base-button.tsx","../node_modules/@radix-ui/themes/src/components/button.tsx","../node_modules/@radix-ui/themes/src/components/callout.tsx","../node_modules/@radix-ui/themes/src/components/card.props.ts","../node_modules/@radix-ui/themes/src/components/card.tsx","../node_modules/@radix-ui/react-use-previous/src/usePrevious.tsx","../node_modules/@radix-ui/react-checkbox/src/Checkbox.tsx","../node_modules/@radix-ui/react-collection/src/Collection.tsx","../node_modules/@radix-ui/react-roving-focus/src/RovingFocusGroup.tsx","../node_modules/@radix-ui/themes/src/components/checkbox-group.primitive.tsx","../node_modules/@radix-ui/themes/src/components/grid.props.ts","../node_modules/@radix-ui/themes/src/components/checkbox-cards.props.ts","../node_modules/@radix-ui/themes/src/components/base-checkbox.props.ts","../node_modules/@radix-ui/themes/src/components/grid.tsx","../node_modules/@radix-ui/themes/src/components/icons.tsx","../node_modules/@radix-ui/themes/src/components/checkbox-cards.tsx","../node_modules/@radix-ui/themes/src/components/checkbox-group.props.ts","../node_modules/@radix-ui/themes/src/components/checkbox-group.tsx","../node_modules/@radix-ui/themes/src/components/checkbox.tsx","../node_modules/@radix-ui/themes/src/components/code.props.ts","../node_modules/@radix-ui/themes/src/components/code.tsx","../node_modules/@radix-ui/themes/src/components/container.props.ts","../node_modules/@radix-ui/themes/src/components/container.tsx","../node_modules/@radix-ui/react-menu/src/Menu.tsx","../node_modules/@radix-ui/react-context-menu/src/ContextMenu.tsx","../node_modules/@radix-ui/number/src/number.ts","../node_modules/@radix-ui/react-scroll-area/src/ScrollArea.tsx","../node_modules/@radix-ui/react-scroll-area/src/useStateMachine.ts","../node_modules/@radix-ui/themes/src/components/scroll-area.props.ts","../node_modules/@radix-ui/themes/src/helpers/get-margin-styles.ts","../node_modules/@radix-ui/themes/src/components/scroll-area.tsx","../node_modules/@radix-ui/themes/src/helpers/extract-margin-props.ts","../node_modules/@radix-ui/themes/src/components/base-menu.props.ts","../node_modules/@radix-ui/themes/src/components/context-menu.tsx","../node_modules/@radix-ui/themes/src/components/data-list.props.ts","../node_modules/@radix-ui/themes/src/components/data-list.tsx","../node_modules/@radix-ui/themes/src/components/dialog.tsx","../node_modules/@radix-ui/react-dropdown-menu/src/DropdownMenu.tsx","../node_modules/@radix-ui/themes/src/components/dropdown-menu.tsx","../node_modules/@radix-ui/themes/src/components/em.props.ts","../node_modules/@radix-ui/themes/src/components/em.tsx","../node_modules/@radix-ui/react-hover-card/src/HoverCard.tsx","../node_modules/@radix-ui/themes/src/components/hover-card.props.ts","../node_modules/@radix-ui/themes/src/components/hover-card.tsx","../node_modules/@radix-ui/themes/src/components/icon-button.tsx","../node_modules/@radix-ui/themes/src/components/inset.props.ts","../node_modules/@radix-ui/themes/src/components/inset.tsx","../node_modules/@radix-ui/themes/src/components/kbd.props.ts","../node_modules/@radix-ui/themes/src/components/kbd.tsx","../node_modules/@radix-ui/themes/src/components/link.props.ts","../node_modules/@radix-ui/themes/src/components/link.tsx","../node_modules/@radix-ui/react-popover/src/Popover.tsx","../node_modules/@radix-ui/themes/src/components/popover.props.ts","../node_modules/@radix-ui/themes/src/components/popover.tsx","../node_modules/@radix-ui/react-progress/src/Progress.tsx","../node_modules/@radix-ui/themes/src/components/progress.props.ts","../node_modules/@radix-ui/themes/src/components/progress.tsx","../node_modules/@radix-ui/themes/src/components/quote.props.ts","../node_modules/@radix-ui/themes/src/components/quote.tsx","../node_modules/@radix-ui/react-radio-group/src/Radio.tsx","../node_modules/@radix-ui/react-radio-group/src/RadioGroup.tsx","../node_modules/@radix-ui/themes/src/components/radio-cards.props.ts","../node_modules/@radix-ui/themes/src/components/radio-cards.tsx","../node_modules/@radix-ui/themes/src/components/radio-group.props.ts","../node_modules/@radix-ui/themes/src/components/radio-group.tsx","../node_modules/@radix-ui/themes/src/components/base-radio.props.ts","../node_modules/@radix-ui/themes/src/components/radio.tsx","../node_modules/@radix-ui/themes/src/components/reset.tsx","../node_modules/@radix-ui/react-toggle/src/Toggle.tsx","../node_modules/@radix-ui/react-toggle-group/src/ToggleGroup.tsx","../node_modules/@radix-ui/themes/src/components/segmented-control.props.ts","../node_modules/@radix-ui/themes/src/components/segmented-control.tsx","../node_modules/@radix-ui/themes/src/components/section.props.ts","../node_modules/@radix-ui/themes/src/components/section.tsx","../node_modules/@radix-ui/react-select/src/Select.tsx","../node_modules/@radix-ui/themes/src/components/select.props.ts","../node_modules/@radix-ui/themes/src/components/select.tsx","../node_modules/@radix-ui/themes/src/components/separator.props.ts","../node_modules/@radix-ui/themes/src/components/separator.tsx","../node_modules/@radix-ui/themes/src/components/skeleton.props.ts","../node_modules/@radix-ui/themes/src/components/skeleton.tsx","../node_modules/@radix-ui/react-slider/src/Slider.tsx","../node_modules/@radix-ui/themes/src/components/slider.props.ts","../node_modules/@radix-ui/themes/src/components/slider.tsx","../node_modules/@radix-ui/themes/src/components/strong.props.ts","../node_modules/@radix-ui/themes/src/components/strong.tsx","../node_modules/@radix-ui/react-switch/src/Switch.tsx","../node_modules/@radix-ui/themes/src/components/switch.props.ts","../node_modules/@radix-ui/themes/src/components/switch.tsx","../node_modules/@radix-ui/react-navigation-menu/src/NavigationMenu.tsx","../node_modules/@radix-ui/themes/src/components/base-tab-list.props.ts","../node_modules/@radix-ui/themes/src/components/tab-nav.tsx","../node_modules/@radix-ui/themes/src/components/table.props.ts","../node_modules/@radix-ui/themes/src/components/table.tsx","../node_modules/@radix-ui/react-tabs/src/Tabs.tsx","../node_modules/@radix-ui/themes/src/components/tabs.props.ts","../node_modules/@radix-ui/themes/src/components/tabs.tsx","../node_modules/@radix-ui/themes/src/components/text-area.props.ts","../node_modules/@radix-ui/themes/src/components/text-area.tsx","../node_modules/@radix-ui/themes/src/components/text-field.props.ts","../node_modules/@radix-ui/themes/src/components/text-field.tsx","../node_modules/@radix-ui/themes/src/components/theme-panel.tsx","../node_modules/@radix-ui/themes/src/components/tooltip.props.ts","../node_modules/@radix-ui/themes/src/components/tooltip.tsx","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/html-parse-stringify/src/parse.js","../node_modules/html-parse-stringify/src/stringify.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","App.tsx","routes/paths.ts","routes/merchant.routes.tsx","api/loaders.js","routes/index.tsx","index.tsx"],"sourcesContent":["import axios from 'axios';\n\nexport const instance = axios.create({\n baseURL: process.env.REACT_APP_BASE_PATH,\n timeout: 30000,\n headers: { Authorization: process.env.REACT_APP_TOKEN }\n});\n\nconst catchError = (e) => {\n console.error('Unexpected error: ', e.response);\n return e.response;\n};\n\nexport default {\n get: async (url, params = {}) => {\n return await instance\n .get(url, params)\n .then((data) => data);\n },\n\n get_one: (url, params) => {\n return instance\n .get(url, params)\n .then((data) => data)\n .catch(catchError);\n },\n\n put: (url, data, config) => {\n return instance\n .put(url, data, config)\n .then((data) => data)\n .catch(catchError);\n },\n patch: (url, ...params) => {\n return instance\n .patch(url, ...params)\n .then((data) => data)\n .catch(catchError);\n },\n post: (url, ...params) => {\n return instance.post(url, ...params).then((d) => d);\n },\n\n delete: (url, params) => {\n return instance\n .delete(url, params)\n .then((data) => data)\n .catch(catchError);\n },\n};\n","import { browserName } from 'react-device-detect';\n\nexport const isDevelop = (): boolean => {\n return process.env.REACT_APP_DEVELOPMENT === 'true';\n};\n\nexport const isCoinbaseWallet = (): boolean => {\n return window.ethereum?.isCoinbaseWallet || window.ethereum?.isCoinbaseBrowser || false;\n}; \n\nexport const isMetamask = (): boolean => {\n return window.ethereum?.isMetaMask ?? false;\n};\n\nexport const isMobile = (): boolean => {\n const userAgent = navigator.userAgent;\n // Detecta dispositivos móviles\n return (/android/i.test(userAgent) || /iPhone|iPad|iPod/i.test(userAgent)); \n};\n\nexport const isBrave = (): boolean => {\n return browserName === 'Brave' || browserName === 'brave';\n};","var 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()).\n\nvar getRandomValues;\nvar 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 if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\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 //\n // Note to future-self: No, you can't remove the `toLowerCase()` call.\n // REF: https://github.com/uuidjs/uuid/pull/677#issuecomment-1757351351\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}\nfunction stringify(arr, offset = 0) {\n var uuid = unsafeStringify(arr, offset);\n // 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 if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n offset = offset || 0;\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;","import { v4 as uuidv4 } from 'uuid';\n\nimport { getItemSession, getItemStorage, setItemSession, setItemStorage } from './storage';\n\nexport const getDeviceId = () => {\n const id = getItemStorage('device_id');\n if(!id){\n return setDeviceId();\n }\n return id;\n};\n\nexport const setDeviceId = () => {\n const id = uuidv4();\n setItemStorage('device_id', id);\n return id;\n};\n\nexport const setSessionId = (id: string) => {\n setItemSession('session_id', id);\n return;\n};\n\nexport const getSessionId = () => {\n return getItemSession('session_id');\n};","\nexport const setItemStorage = (key: string, value: string | number): void => {\n localStorage.setItem(key, value.toString());\n};\n\nexport const getItemStorage = (key: string): string | null => {\n return localStorage.getItem(key);\n};\n\nexport const removeItemStorage = (key: string): void => {\n localStorage.removeItem(key);\n};\n\nexport const setItemSession = (key: string, value: string | number) => {\n sessionStorage.setItem(key, value.toString());\n};\n\nexport const getItemSession = (key: string) => {\n return sessionStorage.getItem(key);\n};","const consoleLogger = {\n type: 'logger',\n log(args) {\n this.output('log', args);\n },\n warn(args) {\n this.output('warn', args);\n },\n error(args) {\n this.output('error', args);\n },\n output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\nclass Logger {\n constructor(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.init(concreteLogger, options);\n }\n init(concreteLogger) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return this.forward(args, 'log', '', true);\n }\n warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return this.forward(args, 'warn', '', true);\n }\n error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return this.forward(args, 'error', '');\n }\n deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = `${prefix}${this.prefix} ${args[0]}`;\n return this.logger[lvl](args);\n }\n create(moduleName) {\n return new Logger(this.logger, {\n ...{\n prefix: `${this.prefix}:${moduleName}:`\n },\n ...this.options\n });\n }\n clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n}\nvar baseLogger = new Logger();\n\nclass EventEmitter {\n constructor() {\n this.observers = {};\n }\n on(events, listener) {\n events.split(' ').forEach(event => {\n if (!this.observers[event]) this.observers[event] = new Map();\n const numListeners = this.observers[event].get(listener) || 0;\n this.observers[event].set(listener, numListeners + 1);\n });\n return this;\n }\n off(event, listener) {\n if (!this.observers[event]) return;\n if (!listener) {\n delete this.observers[event];\n return;\n }\n this.observers[event].delete(listener);\n }\n emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (this.observers[event]) {\n const cloned = Array.from(this.observers[event].entries());\n cloned.forEach(_ref => {\n let [observer, numTimesAdded] = _ref;\n for (let i = 0; i < numTimesAdded; i++) {\n observer(...args);\n }\n });\n }\n if (this.observers['*']) {\n const cloned = Array.from(this.observers['*'].entries());\n cloned.forEach(_ref2 => {\n let [observer, numTimesAdded] = _ref2;\n for (let i = 0; i < numTimesAdded; i++) {\n observer.apply(observer, [event, ...args]);\n }\n });\n }\n }\n}\n\nconst defer = () => {\n let res;\n let rej;\n const promise = new Promise((resolve, reject) => {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n};\nconst makeString = object => {\n if (object == null) return '';\n return '' + object;\n};\nconst copy = (a, s, t) => {\n a.forEach(m => {\n if (s[m]) t[m] = s[m];\n });\n};\nconst lastOfPathSeparatorRegExp = /###/g;\nconst cleanKey = key => key && key.indexOf('###') > -1 ? key.replace(lastOfPathSeparatorRegExp, '.') : key;\nconst canNotTraverseDeeper = object => !object || typeof object === 'string';\nconst getLastOfPath = (object, path, Empty) => {\n const stack = typeof path !== 'string' ? path : path.split('.');\n let stackIndex = 0;\n while (stackIndex < stack.length - 1) {\n if (canNotTraverseDeeper(object)) return {};\n const key = cleanKey(stack[stackIndex]);\n if (!object[key] && Empty) object[key] = new Empty();\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n ++stackIndex;\n }\n if (canNotTraverseDeeper(object)) return {};\n return {\n obj: object,\n k: cleanKey(stack[stackIndex])\n };\n};\nconst setPath = (object, path, newValue) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n if (obj !== undefined || path.length === 1) {\n obj[k] = newValue;\n return;\n }\n let e = path[path.length - 1];\n let p = path.slice(0, path.length - 1);\n let last = getLastOfPath(object, p, Object);\n while (last.obj === undefined && p.length) {\n e = `${p[p.length - 1]}.${e}`;\n p = p.slice(0, p.length - 1);\n last = getLastOfPath(object, p, Object);\n if (last && last.obj && typeof last.obj[`${last.k}.${e}`] !== 'undefined') {\n last.obj = undefined;\n }\n }\n last.obj[`${last.k}.${e}`] = newValue;\n};\nconst pushPath = (object, path, newValue, concat) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path, Object);\n obj[k] = obj[k] || [];\n obj[k].push(newValue);\n};\nconst getPath = (object, path) => {\n const {\n obj,\n k\n } = getLastOfPath(object, path);\n if (!obj) return undefined;\n return obj[k];\n};\nconst getPathWithDefaults = (data, defaultData, key) => {\n const value = getPath(data, key);\n if (value !== undefined) {\n return value;\n }\n return getPath(defaultData, key);\n};\nconst deepExtend = (target, source, overwrite) => {\n for (const prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n return target;\n};\nconst regexEscape = str => str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nconst escape = data => {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, s => _entityMap[s]);\n }\n return data;\n};\nclass RegExpCache {\n constructor(capacity) {\n this.capacity = capacity;\n this.regExpMap = new Map();\n this.regExpQueue = [];\n }\n getRegExp(pattern) {\n const regExpFromCache = this.regExpMap.get(pattern);\n if (regExpFromCache !== undefined) {\n return regExpFromCache;\n }\n const regExpNew = new RegExp(pattern);\n if (this.regExpQueue.length === this.capacity) {\n this.regExpMap.delete(this.regExpQueue.shift());\n }\n this.regExpMap.set(pattern, regExpNew);\n this.regExpQueue.push(pattern);\n return regExpNew;\n }\n}\nconst chars = [' ', ',', '?', '!', ';'];\nconst looksLikeObjectPathRegExpCache = new RegExpCache(20);\nconst looksLikeObjectPath = (key, nsSeparator, keySeparator) => {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n const possibleChars = chars.filter(c => nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0);\n if (possibleChars.length === 0) return true;\n const r = looksLikeObjectPathRegExpCache.getRegExp(`(${possibleChars.map(c => c === '?' ? '\\\\?' : c).join('|')})`);\n let matched = !r.test(key);\n if (!matched) {\n const ki = key.indexOf(keySeparator);\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n return matched;\n};\nconst deepFind = function (obj, path) {\n let keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n const tokens = path.split(keySeparator);\n let current = obj;\n for (let i = 0; i < tokens.length;) {\n if (!current || typeof current !== 'object') {\n return undefined;\n }\n let next;\n let nextPath = '';\n for (let j = i; j < tokens.length; ++j) {\n if (j !== i) {\n nextPath += keySeparator;\n }\n nextPath += tokens[j];\n next = current[nextPath];\n if (next !== undefined) {\n if (['string', 'number', 'boolean'].indexOf(typeof next) > -1 && j < tokens.length - 1) {\n continue;\n }\n i += j - i + 1;\n break;\n }\n }\n current = next;\n }\n return current;\n};\nconst getCleanedCode = code => {\n if (code && code.indexOf('_') > 0) return code.replace('_', '-');\n return code;\n};\n\nclass ResourceStore extends EventEmitter {\n constructor(data) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n super();\n this.data = data || {};\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n if (this.options.ignoreJSONStructure === undefined) {\n this.options.ignoreJSONStructure = true;\n }\n }\n addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n removeNamespaces(ns) {\n const index = this.options.ns.indexOf(ns);\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n getResource(lng, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n let path;\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n } else {\n path = [lng, ns];\n if (key) {\n if (Array.isArray(key)) {\n path.push(...key);\n } else if (typeof key === 'string' && keySeparator) {\n path.push(...key.split(keySeparator));\n } else {\n path.push(key);\n }\n }\n }\n const result = getPath(this.data, path);\n if (!result && !ns && !key && lng.indexOf('.') > -1) {\n lng = path[0];\n ns = path[1];\n key = path.slice(2).join('.');\n }\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n addResource(lng, ns, key, value) {\n let options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n addResources(lng, ns, resources) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n for (const m in resources) {\n if (typeof resources[m] === 'string' || Array.isArray(resources[m])) this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n addResourceBundle(lng, ns, resources, deep, overwrite) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false,\n skipCopy: false\n };\n let path = [lng, ns];\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n this.addNamespaces(ns);\n let pack = getPath(this.data, path) || {};\n if (!options.skipCopy) resources = JSON.parse(JSON.stringify(resources));\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = {\n ...pack,\n ...resources\n };\n }\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return {\n ...{},\n ...this.getResource(lng, ns)\n };\n return this.getResource(lng, ns);\n }\n getDataByLanguage(lng) {\n return this.data[lng];\n }\n hasLanguageSomeTranslations(lng) {\n const data = this.getDataByLanguage(lng);\n const n = data && Object.keys(data) || [];\n return !!n.find(v => data[v] && Object.keys(data[v]).length > 0);\n }\n toJSON() {\n return this.data;\n }\n}\n\nvar postProcessor = {\n processors: {},\n addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle(processors, value, key, options, translator) {\n processors.forEach(processor => {\n if (this.processors[processor]) value = this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nconst checkedLoadedFor = {};\nclass Translator extends EventEmitter {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super();\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, this);\n this.options = options;\n if (this.options.keySeparator === undefined) {\n this.options.keySeparator = '.';\n }\n this.logger = baseLogger.create('translator');\n }\n changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n exists(key) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n if (key === undefined || key === null) {\n return false;\n }\n const resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n extractFromKey(key, options) {\n let nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n let namespaces = options.ns || this.options.defaultNS || [];\n const wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n const seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n const m = key.match(this.interpolator.nestingRegexp);\n if (m && m.length > 0) {\n return {\n key,\n namespaces\n };\n }\n const parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key,\n namespaces\n };\n }\n translate(keys, options, lastKey) {\n if (typeof options !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n if (typeof options === 'object') options = {\n ...options\n };\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n const returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n const keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n const {\n key,\n namespaces\n } = this.extractFromKey(keys[keys.length - 1], options);\n const namespace = namespaces[namespaces.length - 1];\n const lng = options.lng || this.language;\n const appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n const nsSeparator = options.nsSeparator || this.options.nsSeparator;\n if (returnDetails) {\n return {\n res: `${namespace}${nsSeparator}${key}`,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return `${namespace}${nsSeparator}${key}`;\n }\n if (returnDetails) {\n return {\n res: key,\n usedKey: key,\n exactUsedKey: key,\n usedLng: lng,\n usedNS: namespace,\n usedParams: this.getUsedParamsDetails(options)\n };\n }\n return key;\n }\n const resolved = this.resolve(keys, options);\n let res = resolved && resolved.res;\n const resUsedKey = resolved && resolved.usedKey || key;\n const resExactUsedKey = resolved && resolved.exactUsedKey || key;\n const resType = Object.prototype.toString.apply(res);\n const noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n const joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n const handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n const handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && Array.isArray(res))) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n const r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, {\n ...options,\n ns: namespaces\n }) : `key '${key} (${this.language})' returned an object instead of string.`;\n if (returnDetails) {\n resolved.res = r;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return r;\n }\n if (keySeparator) {\n const resTypeIsArray = Array.isArray(res);\n const copy = resTypeIsArray ? [] : {};\n const newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n for (const m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n const deepKey = `${newKeyToUse}${keySeparator}${m}`;\n copy[m] = this.translate(deepKey, {\n ...options,\n ...{\n joinArrays: false,\n ns: namespaces\n }\n });\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && Array.isArray(res)) {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n let usedDefault = false;\n let usedKey = false;\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const hasDefaultValue = Translator.hasDefaultValue(options);\n const defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n const defaultValueSuffixOrdinalFallback = options.ordinal && needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, {\n ordinal: false\n }) : '';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const defaultValue = needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] || options[`defaultValue${defaultValueSuffix}`] || options[`defaultValue${defaultValueSuffixOrdinalFallback}`] || options.defaultValue;\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n const missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n const resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n const updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n if (keySeparator) {\n const fk = this.resolve(key, {\n ...options,\n keySeparator: false\n });\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n let lngs = [];\n const fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (let i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n const send = (l, k, specificDefaultValue) => {\n const defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n if (this.options.missingKeyHandler) {\n this.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (this.backendConnector && this.backendConnector.saveMissing) {\n this.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n this.emit('missingKey', l, namespace, k, res);\n };\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(language => {\n const suffixes = this.pluralResolver.getSuffixes(language, options);\n if (needsZeroSuffixLookup && options[`defaultValue${this.options.pluralSeparator}zero`] && suffixes.indexOf(`${this.options.pluralSeparator}zero`) < 0) {\n suffixes.push(`${this.options.pluralSeparator}zero`);\n }\n suffixes.forEach(suffix => {\n send([language], key + suffix, options[`defaultValue${suffix}`] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = `${namespace}:${key}`;\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${namespace}:${key}` : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n if (returnDetails) {\n resolved.res = res;\n resolved.usedParams = this.getUsedParamsDetails(options);\n return resolved;\n }\n return res;\n }\n extendTranslation(res, key, options, resolved, lastKey) {\n var _this = this;\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, {\n ...this.options.interpolation.defaultVariables,\n ...options\n }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init({\n ...options,\n ...{\n interpolation: {\n ...this.options.interpolation,\n ...options.interpolation\n }\n }\n });\n const skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n let nestBef;\n if (skipOnVariables) {\n const nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n let data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n res = this.interpolator.interpolate(res, data, options.lng || this.language || resolved.usedLng, options);\n if (skipOnVariables) {\n const na = res.match(this.interpolator.nestingRegexp);\n const nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n if (!options.lng && this.options.compatibilityAPI !== 'v1' && resolved && resolved.res) options.lng = this.language || resolved.usedLng;\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this.logger.warn(`It seems you are nesting recursively key: ${args[0]} in key: ${key[0]}`);\n return null;\n }\n return _this.translate(...args, key);\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n const postProcess = options.postProcess || this.options.postProcess;\n const postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? {\n i18nResolved: {\n ...resolved,\n usedParams: this.getUsedParamsDetails(options)\n },\n ...options\n } : options, this);\n }\n return res;\n }\n resolve(keys) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let found;\n let usedKey;\n let exactUsedKey;\n let usedLng;\n let usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(k => {\n if (this.isValidLookup(found)) return;\n const extracted = this.extractFromKey(k, options);\n const key = extracted.key;\n usedKey = key;\n let namespaces = extracted.namespaces;\n if (this.options.fallbackNS) namespaces = namespaces.concat(this.options.fallbackNS);\n const needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n const needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && this.pluralResolver.shouldUseIntlApi();\n const needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n const codes = options.lngs ? options.lngs : this.languageUtils.toResolveHierarchy(options.lng || this.language, options.fallbackLng);\n namespaces.forEach(ns => {\n if (this.isValidLookup(found)) return;\n usedNS = ns;\n if (!checkedLoadedFor[`${codes[0]}-${ns}`] && this.utils && this.utils.hasLoadedNamespace && !this.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[`${codes[0]}-${ns}`] = true;\n this.logger.warn(`key \"${usedKey}\" for languages \"${codes.join(', ')}\" won't get resolved as namespace \"${usedNS}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n codes.forEach(code => {\n if (this.isValidLookup(found)) return;\n usedLng = code;\n const finalKeys = [key];\n if (this.i18nFormat && this.i18nFormat.addLookupKeys) {\n this.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n let pluralSuffix;\n if (needsPluralHandling) pluralSuffix = this.pluralResolver.getSuffix(code, options.count, options);\n const zeroSuffix = `${this.options.pluralSeparator}zero`;\n const ordinalPrefix = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(key + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n if (needsContextHandling) {\n const contextKey = `${key}${this.options.contextSeparator}${options.context}`;\n finalKeys.push(contextKey);\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n if (options.ordinal && pluralSuffix.indexOf(ordinalPrefix) === 0) {\n finalKeys.push(contextKey + pluralSuffix.replace(ordinalPrefix, this.options.pluralSeparator));\n }\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n let possibleKey;\n while (possibleKey = finalKeys.pop()) {\n if (!this.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = this.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey,\n exactUsedKey,\n usedLng,\n usedNS\n };\n }\n isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n getResource(code, ns, key) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n getUsedParamsDetails() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const optionsKeys = ['defaultValue', 'ordinal', 'context', 'replace', 'lng', 'lngs', 'fallbackLng', 'ns', 'keySeparator', 'nsSeparator', 'returnObjects', 'returnDetails', 'joinArrays', 'postProcess', 'interpolation'];\n const useOptionsReplaceForData = options.replace && typeof options.replace !== 'string';\n let data = useOptionsReplaceForData ? options.replace : options;\n if (useOptionsReplaceForData && typeof options.count !== 'undefined') {\n data.count = options.count;\n }\n if (this.options.interpolation.defaultVariables) {\n data = {\n ...this.options.interpolation.defaultVariables,\n ...data\n };\n }\n if (!useOptionsReplaceForData) {\n data = {\n ...data\n };\n for (const key of optionsKeys) {\n delete data[key];\n }\n }\n return data;\n }\n static hasDefaultValue(options) {\n const prefix = 'defaultValue';\n for (const option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n return false;\n }\n}\n\nconst capitalize = string => string.charAt(0).toUpperCase() + string.slice(1);\nclass LanguageUtil {\n constructor(options) {\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n getScriptPartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return null;\n const p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n getLanguagePartFromCode(code) {\n code = getCleanedCode(code);\n if (!code || code.indexOf('-') < 0) return code;\n const p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n const specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n let p = code.split('-');\n if (this.options.lowerCaseLng) {\n p = p.map(part => part.toLowerCase());\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n return p.join('-');\n }\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n getBestMatchFromCodes(codes) {\n if (!codes) return null;\n let found;\n codes.forEach(code => {\n if (found) return;\n const cleanedLng = this.formatLanguageCode(code);\n if (!this.options.supportedLngs || this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n if (!found && this.options.supportedLngs) {\n codes.forEach(code => {\n if (found) return;\n const lngOnly = this.getLanguagePartFromCode(code);\n if (this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = this.options.supportedLngs.find(supportedLng => {\n if (supportedLng === lngOnly) return supportedLng;\n if (supportedLng.indexOf('-') < 0 && lngOnly.indexOf('-') < 0) return;\n if (supportedLng.indexOf('-') > 0 && lngOnly.indexOf('-') < 0 && supportedLng.substring(0, supportedLng.indexOf('-')) === lngOnly) return supportedLng;\n if (supportedLng.indexOf(lngOnly) === 0 && lngOnly.length > 1) return supportedLng;\n });\n });\n }\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Array.isArray(fallbacks)) return fallbacks;\n if (!code) return fallbacks.default || [];\n let found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks.default;\n return found || [];\n }\n toResolveHierarchy(code, fallbackCode) {\n const fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n const codes = [];\n const addCode = c => {\n if (!c) return;\n if (this.isSupportedCode(c)) {\n codes.push(c);\n } else {\n this.logger.warn(`rejecting language code not found in supportedLngs: ${c}`);\n }\n };\n if (typeof code === 'string' && (code.indexOf('-') > -1 || code.indexOf('_') > -1)) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n fallbackCodes.forEach(fc => {\n if (codes.indexOf(fc) < 0) addCode(this.formatLanguageCode(fc));\n });\n return codes;\n }\n}\n\nlet sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nlet _rulesPluralsTypes = {\n 1: n => Number(n > 1),\n 2: n => Number(n != 1),\n 3: n => 0,\n 4: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 5: n => Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5),\n 6: n => Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2),\n 7: n => Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 8: n => Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3),\n 9: n => Number(n >= 2),\n 10: n => Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4),\n 11: n => Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3),\n 12: n => Number(n % 10 != 1 || n % 100 == 11),\n 13: n => Number(n !== 0),\n 14: n => Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3),\n 15: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2),\n 16: n => Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2),\n 17: n => Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1),\n 18: n => Number(n == 0 ? 0 : n == 1 ? 1 : 2),\n 19: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3),\n 20: n => Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2),\n 21: n => Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0),\n 22: n => Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3)\n};\nconst nonIntlVersions = ['v1', 'v2', 'v3'];\nconst intlVersions = ['v4'];\nconst suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\nconst createRules = () => {\n const rules = {};\n sets.forEach(set => {\n set.lngs.forEach(l => {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n};\nclass PluralResolver {\n constructor(languageUtils) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n if ((!this.options.compatibilityJSON || intlVersions.includes(this.options.compatibilityJSON)) && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n this.rules = createRules();\n this.pluralRulesCache = {};\n }\n addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n clearCache() {\n this.pluralRulesCache = {};\n }\n getRule(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.shouldUseIntlApi()) {\n try {\n const cleanedCode = getCleanedCode(code === 'dev' ? 'en' : code);\n const type = options.ordinal ? 'ordinal' : 'cardinal';\n const cacheKey = JSON.stringify({\n cleanedCode,\n type\n });\n if (cacheKey in this.pluralRulesCache) {\n return this.pluralRulesCache[cacheKey];\n }\n const rule = new Intl.PluralRules(cleanedCode, {\n type\n });\n this.pluralRulesCache[cacheKey] = rule;\n return rule;\n } catch (err) {\n return;\n }\n }\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n needsPlural(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n return rule && rule.numbers.length > 1;\n }\n getPluralFormsOfKey(code, key) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(suffix => `${key}${suffix}`);\n }\n getSuffixes(code) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const rule = this.getRule(code, options);\n if (!rule) {\n return [];\n }\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort((pluralCategory1, pluralCategory2) => suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2]).map(pluralCategory => `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${pluralCategory}`);\n }\n return rule.numbers.map(number => this.getSuffix(code, number, options));\n }\n getSuffix(code, count) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const rule = this.getRule(code, options);\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return `${this.options.prepend}${options.ordinal ? `ordinal${this.options.prepend}` : ''}${rule.select(count)}`;\n }\n return this.getSuffixRetroCompatible(rule, count);\n }\n this.logger.warn(`no plural rule found for: ${code}`);\n return '';\n }\n getSuffixRetroCompatible(rule, count) {\n const idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n let suffix = rule.numbers[idx];\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n const returnSuffix = () => this.options.prepend && suffix.toString() ? this.options.prepend + suffix.toString() : suffix.toString();\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return `_plural_${suffix.toString()}`;\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n shouldUseIntlApi() {\n return !nonIntlVersions.includes(this.options.compatibilityJSON);\n }\n}\n\nconst deepFindWithDefaults = function (data, defaultData, key) {\n let keySeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '.';\n let ignoreJSONStructure = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : true;\n let path = getPathWithDefaults(data, defaultData, key);\n if (!path && ignoreJSONStructure && typeof key === 'string') {\n path = deepFind(data, key, keySeparator);\n if (path === undefined) path = deepFind(defaultData, key, keySeparator);\n }\n return path;\n};\nconst regexSafe = val => val.replace(/\\$/g, '$$$$');\nclass Interpolator {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n this.format = options.interpolation && options.interpolation.format || (value => value);\n this.init(options);\n }\n init() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n const {\n escape: escape$1,\n escapeValue,\n useRawValueToEscape,\n prefix,\n prefixEscaped,\n suffix,\n suffixEscaped,\n formatSeparator,\n unescapeSuffix,\n unescapePrefix,\n nestingPrefix,\n nestingPrefixEscaped,\n nestingSuffix,\n nestingSuffixEscaped,\n nestingOptionsSeparator,\n maxReplaces,\n alwaysFormat\n } = options.interpolation;\n this.escape = escape$1 !== undefined ? escape$1 : escape;\n this.escapeValue = escapeValue !== undefined ? escapeValue : true;\n this.useRawValueToEscape = useRawValueToEscape !== undefined ? useRawValueToEscape : false;\n this.prefix = prefix ? regexEscape(prefix) : prefixEscaped || '{{';\n this.suffix = suffix ? regexEscape(suffix) : suffixEscaped || '}}';\n this.formatSeparator = formatSeparator || ',';\n this.unescapePrefix = unescapeSuffix ? '' : unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : unescapeSuffix || '';\n this.nestingPrefix = nestingPrefix ? regexEscape(nestingPrefix) : nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = nestingSuffix ? regexEscape(nestingSuffix) : nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = nestingOptionsSeparator || ',';\n this.maxReplaces = maxReplaces || 1000;\n this.alwaysFormat = alwaysFormat !== undefined ? alwaysFormat : false;\n this.resetRegExp();\n }\n reset() {\n if (this.options) this.init(this.options);\n }\n resetRegExp() {\n const getOrResetRegExp = (existingRegExp, pattern) => {\n if (existingRegExp && existingRegExp.source === pattern) {\n existingRegExp.lastIndex = 0;\n return existingRegExp;\n }\n return new RegExp(pattern, 'g');\n };\n this.regexp = getOrResetRegExp(this.regexp, `${this.prefix}(.+?)${this.suffix}`);\n this.regexpUnescape = getOrResetRegExp(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`);\n this.nestingRegexp = getOrResetRegExp(this.nestingRegexp, `${this.nestingPrefix}(.+?)${this.nestingSuffix}`);\n }\n interpolate(str, data, lng, options) {\n let match;\n let value;\n let replaces;\n const defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n const handleFormat = key => {\n if (key.indexOf(this.formatSeparator) < 0) {\n const path = deepFindWithDefaults(data, defaultData, key, this.options.keySeparator, this.options.ignoreJSONStructure);\n return this.alwaysFormat ? this.format(path, undefined, lng, {\n ...options,\n ...data,\n interpolationkey: key\n }) : path;\n }\n const p = key.split(this.formatSeparator);\n const k = p.shift().trim();\n const f = p.join(this.formatSeparator).trim();\n return this.format(deepFindWithDefaults(data, defaultData, k, this.options.keySeparator, this.options.ignoreJSONStructure), f, lng, {\n ...options,\n ...data,\n interpolationkey: k\n });\n };\n this.resetRegExp();\n const missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n const skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n const todos = [{\n regex: this.regexpUnescape,\n safeValue: val => regexSafe(val)\n }, {\n regex: this.regexp,\n safeValue: val => this.escapeValue ? regexSafe(this.escape(val)) : regexSafe(val)\n }];\n todos.forEach(todo => {\n replaces = 0;\n while (match = todo.regex.exec(str)) {\n const matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n const temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && Object.prototype.hasOwnProperty.call(options, matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n this.logger.warn(`missed to pass in variable ${matchedVar} for interpolating ${str}`);\n value = '';\n }\n } else if (typeof value !== 'string' && !this.useRawValueToEscape) {\n value = makeString(value);\n }\n const safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n replaces++;\n if (replaces >= this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n nest(str, fc) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let match;\n let value;\n let clonedOptions;\n const handleHasOptions = (key, inheritedOptions) => {\n const sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n const c = key.split(new RegExp(`${sep}[ ]*{`));\n let optionsString = `{${c[1]}`;\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n const matchedSingleQuotes = optionsString.match(/'/g);\n const matchedDoubleQuotes = optionsString.match(/\"/g);\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = {\n ...inheritedOptions,\n ...clonedOptions\n };\n } catch (e) {\n this.logger.warn(`failed parsing options string in nesting for key ${key}`, e);\n return `${key}${sep}${optionsString}`;\n }\n if (clonedOptions.defaultValue && clonedOptions.defaultValue.indexOf(this.prefix) > -1) delete clonedOptions.defaultValue;\n return key;\n };\n while (match = this.nestingRegexp.exec(str)) {\n let formatters = [];\n clonedOptions = {\n ...options\n };\n clonedOptions = clonedOptions.replace && typeof clonedOptions.replace !== 'string' ? clonedOptions.replace : clonedOptions;\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n let doReduce = false;\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n const r = match[1].split(this.formatSeparator).map(elem => elem.trim());\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n if (!value) {\n this.logger.warn(`missed to resolve ${match[1]} for nesting ${str}`);\n value = '';\n }\n if (doReduce) {\n value = formatters.reduce((v, f) => this.format(v, f, options.lng, {\n ...options,\n interpolationkey: match[1].trim()\n }), value.trim());\n }\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n return str;\n }\n}\n\nconst parseFormatStr = formatStr => {\n let formatName = formatStr.toLowerCase().trim();\n const formatOptions = {};\n if (formatStr.indexOf('(') > -1) {\n const p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n const optStr = p[1].substring(0, p[1].length - 1);\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n const opts = optStr.split(';');\n opts.forEach(opt => {\n if (opt) {\n const [key, ...rest] = opt.split(':');\n const val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n const trimmedKey = key.trim();\n if (!formatOptions[trimmedKey]) formatOptions[trimmedKey] = val;\n if (val === 'false') formatOptions[trimmedKey] = false;\n if (val === 'true') formatOptions[trimmedKey] = true;\n if (!isNaN(val)) formatOptions[trimmedKey] = parseInt(val, 10);\n }\n });\n }\n }\n return {\n formatName,\n formatOptions\n };\n};\nconst createCachedFormatter = fn => {\n const cache = {};\n return (val, lng, options) => {\n let optForCache = options;\n if (options && options.interpolationkey && options.formatParams && options.formatParams[options.interpolationkey] && options[options.interpolationkey]) {\n optForCache = {\n ...optForCache,\n [options.interpolationkey]: undefined\n };\n }\n const key = lng + JSON.stringify(optForCache);\n let formatter = cache[key];\n if (!formatter) {\n formatter = fn(getCleanedCode(lng), options);\n cache[key] = formatter;\n }\n return formatter(val);\n };\n};\nclass Formatter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n currency: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.NumberFormat(lng, {\n ...opt,\n style: 'currency'\n });\n return val => formatter.format(val);\n }),\n datetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.DateTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n }),\n relativetime: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.RelativeTimeFormat(lng, {\n ...opt\n });\n return val => formatter.format(val, opt.range || 'day');\n }),\n list: createCachedFormatter((lng, opt) => {\n const formatter = new Intl.ListFormat(lng, {\n ...opt\n });\n return val => formatter.format(val);\n })\n };\n this.init(options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n const iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n format(value, format, lng) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n const formats = format.split(this.formatSeparator);\n if (formats.length > 1 && formats[0].indexOf('(') > 1 && formats[0].indexOf(')') < 0 && formats.find(f => f.indexOf(')') > -1)) {\n const lastIndex = formats.findIndex(f => f.indexOf(')') > -1);\n formats[0] = [formats[0], ...formats.splice(1, lastIndex)].join(this.formatSeparator);\n }\n const result = formats.reduce((mem, f) => {\n const {\n formatName,\n formatOptions\n } = parseFormatStr(f);\n if (this.formats[formatName]) {\n let formatted = mem;\n try {\n const valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n const l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = this.formats[formatName](mem, l, {\n ...formatOptions,\n ...options,\n ...valOptions\n });\n } catch (error) {\n this.logger.warn(error);\n }\n return formatted;\n } else {\n this.logger.warn(`there was no format function for ${formatName}`);\n }\n return mem;\n }, value);\n return result;\n }\n}\n\nconst removePending = (q, name) => {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n};\nclass Connector extends EventEmitter {\n constructor(backend, store, services) {\n let options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n super();\n this.backend = backend;\n this.store = store;\n this.services = services;\n this.languageUtils = services.languageUtils;\n this.options = options;\n this.logger = baseLogger.create('backendConnector');\n this.waitingReads = [];\n this.maxParallelReads = options.maxParallelReads || 10;\n this.readingCalls = 0;\n this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n this.state = {};\n this.queue = [];\n if (this.backend && this.backend.init) {\n this.backend.init(services, options.backend, options);\n }\n }\n queueLoad(languages, namespaces, options, callback) {\n const toLoad = {};\n const pending = {};\n const toLoadLanguages = {};\n const toLoadNamespaces = {};\n languages.forEach(lng => {\n let hasAllNamespaces = true;\n namespaces.forEach(ns => {\n const name = `${lng}|${ns}`;\n if (!options.reload && this.store.hasResourceBundle(lng, ns)) {\n this.state[name] = 2;\n } else if (this.state[name] < 0) ; else if (this.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n this.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback\n });\n }\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n loaded(name, err, data) {\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n if (!err && data) {\n this.store.addResourceBundle(lng, ns, data, undefined, undefined, {\n skipCopy: true\n });\n }\n this.state[name] = err ? -1 : 2;\n if (err && data) this.state[name] = 0;\n const loaded = {};\n this.queue.forEach(q => {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(l => {\n if (!loaded[l]) loaded[l] = {};\n const loadedKeys = q.loaded[l];\n if (loadedKeys.length) {\n loadedKeys.forEach(n => {\n if (loaded[l][n] === undefined) loaded[l][n] = true;\n });\n }\n });\n q.done = true;\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(q => !q.done);\n }\n read(lng, ns, fcName) {\n let tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n let wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n let callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng,\n ns,\n fcName,\n tried,\n wait,\n callback\n });\n return;\n }\n this.readingCalls++;\n const resolver = (err, data) => {\n this.readingCalls--;\n if (this.waitingReads.length > 0) {\n const next = this.waitingReads.shift();\n this.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n if (err && data && tried < this.maxRetries) {\n setTimeout(() => {\n this.read.call(this, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n callback(err, data);\n };\n const fc = this.backend[fcName].bind(this.backend);\n if (fc.length === 2) {\n try {\n const r = fc(lng, ns);\n if (r && typeof r.then === 'function') {\n r.then(data => resolver(null, data)).catch(resolver);\n } else {\n resolver(null, r);\n }\n } catch (err) {\n resolver(err);\n }\n return;\n }\n return fc(lng, ns, resolver);\n }\n prepareLoading(languages, namespaces) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n let callback = arguments.length > 3 ? arguments[3] : undefined;\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n const toLoad = this.queueLoad(languages, namespaces, options, callback);\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n toLoad.toLoad.forEach(name => {\n this.loadOne(name);\n });\n }\n load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n loadOne(name) {\n let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n const s = name.split('|');\n const lng = s[0];\n const ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, (err, data) => {\n if (err) this.logger.warn(`${prefix}loading namespace ${ns} for language ${lng} failed`, err);\n if (!err && data) this.logger.log(`${prefix}loaded namespace ${ns} for language ${lng}`, data);\n this.loaded(name, err, data);\n });\n }\n saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n let options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n let clb = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : () => {};\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(`did not save key \"${key}\" as the namespace \"${namespace}\" was not yet loaded`, 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n if (key === undefined || key === null || key === '') return;\n if (this.backend && this.backend.create) {\n const opts = {\n ...options,\n isUpdate\n };\n const fc = this.backend.create.bind(this.backend);\n if (fc.length < 6) {\n try {\n let r;\n if (fc.length === 5) {\n r = fc(languages, namespace, key, fallbackValue, opts);\n } else {\n r = fc(languages, namespace, key, fallbackValue);\n }\n if (r && typeof r.then === 'function') {\n r.then(data => clb(null, data)).catch(clb);\n } else {\n clb(null, r);\n }\n } catch (err) {\n clb(err);\n }\n } else {\n fc(languages, namespace, key, fallbackValue, clb, opts);\n }\n }\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n}\n\nconst get = () => ({\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: false,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: args => {\n let ret = {};\n if (typeof args[1] === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n if (typeof args[2] === 'object' || typeof args[3] === 'object') {\n const options = args[3] || args[2];\n Object.keys(options).forEach(key => {\n ret[key] = options[key];\n });\n }\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: value => value,\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n});\nconst transformOptions = options => {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n return options;\n};\n\nconst noop = () => {};\nconst bindMemberFunctions = inst => {\n const mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(mem => {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n};\nclass I18n extends EventEmitter {\n constructor() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n super();\n this.options = transformOptions(options);\n this.services = {};\n this.logger = baseLogger;\n this.modules = {\n external: []\n };\n bindMemberFunctions(this);\n if (callback && !this.isInitialized && !options.isClone) {\n if (!this.options.initImmediate) {\n this.init(options, callback);\n return this;\n }\n setTimeout(() => {\n this.init(options, callback);\n }, 0);\n }\n }\n init() {\n var _this = this;\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n this.isInitializing = true;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n const defOpts = get();\n this.options = {\n ...defOpts,\n ...this.options,\n ...transformOptions(options)\n };\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = {\n ...defOpts.interpolation,\n ...this.options.interpolation\n };\n }\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n const createClassOnDemand = ClassOrObject => {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n };\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n let formatter;\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n const lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n const s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n _this.emit(event, ...args);\n });\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n if (s.languageDetector.init) s.languageDetector.init(s, this.options.detection, this.options);\n }\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n _this.emit(event, ...args);\n });\n this.modules.external.forEach(m => {\n if (m.init) m.init(this);\n });\n }\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n const codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n const storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(fcName => {\n this[fcName] = function () {\n return _this.store[fcName](...arguments);\n };\n });\n const storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(fcName => {\n this[fcName] = function () {\n _this.store[fcName](...arguments);\n return _this;\n };\n });\n const deferred = defer();\n const load = () => {\n const finish = (err, t) => {\n this.isInitializing = false;\n if (this.isInitialized && !this.initializedStoreOnce) this.logger.warn('init: i18next is already initialized. You should call init just once!');\n this.isInitialized = true;\n if (!this.options.isClone) this.logger.log('initialized', this.options);\n this.emit('initialized', this.options);\n deferred.resolve(t);\n callback(err, t);\n };\n if (this.languages && this.options.compatibilityAPI !== 'v1' && !this.isInitialized) return finish(null, this.t.bind(this));\n this.changeLanguage(this.options.lng, finish);\n };\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n return deferred;\n }\n loadResources(language) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n let usedCallback = callback;\n const usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();\n const toLoad = [];\n const append = lng => {\n if (!lng) return;\n if (lng === 'cimode') return;\n const lngs = this.services.languageUtils.toResolveHierarchy(lng);\n lngs.forEach(l => {\n if (l === 'cimode') return;\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n if (!usedLng) {\n const fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(l => append(l));\n } else {\n append(usedLng);\n }\n if (this.options.preload) {\n this.options.preload.forEach(l => append(l));\n }\n this.services.backendConnector.load(toLoad, this.options.ns, e => {\n if (!e && !this.resolvedLanguage && this.language) this.setResolvedLanguage(this.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n reloadResources(lngs, ns, callback) {\n const deferred = defer();\n if (typeof lngs === 'function') {\n callback = lngs;\n lngs = undefined;\n }\n if (typeof ns === 'function') {\n callback = ns;\n ns = undefined;\n }\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, err => {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n return this;\n }\n setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n for (let li = 0; li < this.languages.length; li++) {\n const lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n changeLanguage(lng, callback) {\n var _this2 = this;\n this.isLanguageChangingTo = lng;\n const deferred = defer();\n this.emit('languageChanging', lng);\n const setLngProps = l => {\n this.language = l;\n this.languages = this.services.languageUtils.toResolveHierarchy(l);\n this.resolvedLanguage = undefined;\n this.setResolvedLanguage(l);\n };\n const done = (err, l) => {\n if (l) {\n setLngProps(l);\n this.translator.changeLanguage(l);\n this.isLanguageChangingTo = undefined;\n this.emit('languageChanged', l);\n this.logger.log('languageChanged', l);\n } else {\n this.isLanguageChangingTo = undefined;\n }\n deferred.resolve(function () {\n return _this2.t(...arguments);\n });\n if (callback) callback(err, function () {\n return _this2.t(...arguments);\n });\n };\n const setLng = lngs => {\n if (!lng && !lngs && this.services.languageDetector) lngs = [];\n const l = typeof lngs === 'string' ? lngs : this.services.languageUtils.getBestMatchFromCodes(lngs);\n if (l) {\n if (!this.language) {\n setLngProps(l);\n }\n if (!this.translator.language) this.translator.changeLanguage(l);\n if (this.services.languageDetector && this.services.languageDetector.cacheUserLanguage) this.services.languageDetector.cacheUserLanguage(l);\n }\n this.loadResources(l, err => {\n done(err, l);\n });\n };\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n if (this.services.languageDetector.detect.length === 0) {\n this.services.languageDetector.detect().then(setLng);\n } else {\n this.services.languageDetector.detect(setLng);\n }\n } else {\n setLng(lng);\n }\n return deferred;\n }\n getFixedT(lng, ns, keyPrefix) {\n var _this3 = this;\n const fixedT = function (key, opts) {\n let options;\n if (typeof opts !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n options = _this3.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = {\n ...opts\n };\n }\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n if (options.keyPrefix !== '') options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n const keySeparator = _this3.options.keySeparator || '.';\n let resultKey;\n if (options.keyPrefix && Array.isArray(key)) {\n resultKey = key.map(k => `${options.keyPrefix}${keySeparator}${k}`);\n } else {\n resultKey = options.keyPrefix ? `${options.keyPrefix}${keySeparator}${key}` : key;\n }\n return _this3.t(resultKey, options);\n };\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n t() {\n return this.translator && this.translator.translate(...arguments);\n }\n exists() {\n return this.translator && this.translator.exists(...arguments);\n }\n setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n hasLoadedNamespace(ns) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n const lng = options.lng || this.resolvedLanguage || this.languages[0];\n const fallbackLng = this.options ? this.options.fallbackLng : false;\n const lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n const loadNotPending = (l, n) => {\n const loadState = this.services.backendConnector.state[`${l}|${n}`];\n return loadState === -1 || loadState === 0 || loadState === 2;\n };\n if (options.precheck) {\n const preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n loadNamespaces(ns, callback) {\n const deferred = defer();\n if (!this.options.ns) {\n if (callback) callback();\n return Promise.resolve();\n }\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(n => {\n if (this.options.ns.indexOf(n) < 0) this.options.ns.push(n);\n });\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n loadLanguages(lngs, callback) {\n const deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n const preloaded = this.options.preload || [];\n const newLngs = lngs.filter(lng => preloaded.indexOf(lng) < 0 && this.services.languageUtils.isSupportedCode(lng));\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(err => {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n const rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n const languageUtils = this.services && this.services.languageUtils || new LanguageUtil(get());\n return rtlLngs.indexOf(languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n static createInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n }\n cloneInstance() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n const forkResourceStore = options.forkResourceStore;\n if (forkResourceStore) delete options.forkResourceStore;\n const mergedOptions = {\n ...this.options,\n ...options,\n ...{\n isClone: true\n }\n };\n const clone = new I18n(mergedOptions);\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n const membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(m => {\n clone[m] = this[m];\n });\n clone.services = {\n ...this.services\n };\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n if (forkResourceStore) {\n clone.store = new ResourceStore(this.store.data, mergedOptions);\n clone.services.resourceStore = clone.store;\n }\n clone.translator = new Translator(clone.services, mergedOptions);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n clone.emit(event, ...args);\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = mergedOptions;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n}\nconst instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nconst createInstance = instance.createInstance;\nconst dir = instance.dir;\nconst init = instance.init;\nconst loadResources = instance.loadResources;\nconst reloadResources = instance.reloadResources;\nconst use = instance.use;\nconst changeLanguage = instance.changeLanguage;\nconst getFixedT = instance.getFixedT;\nconst t = instance.t;\nconst exists = instance.exists;\nconst setDefaultNamespace = instance.setDefaultNamespace;\nconst hasLoadedNamespace = instance.hasLoadedNamespace;\nconst loadNamespaces = instance.loadNamespaces;\nconst loadLanguages = instance.loadLanguages;\n\nexport { changeLanguage, createInstance, instance as default, dir, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = (name, val, options) => {\n const opt = options || {};\n opt.path = opt.path || '/';\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n };\n}\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services || {\n languageUtils: {}\n }; // this way the language detector can be used without i18next\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect(detectionOrder) {\n if (!detectionOrder) detectionOrder = this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.map(d => this.options.convertDetectedLanguage(d));\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n\n cacheUserLanguage(lng, caches) {\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","export default {\n translation: {\n 'Moneda': 'Payment Method',\n 'Seleccioná una moneda': 'Select a payment method',\n 'Seleccionar moneda': 'Select payment method',\n 'Red': 'Network',\n 'Seleccioná una red': 'Select a network',\n 'Seleccionar red': 'Select network',\n '% extra charge': '% Additional Charge',\n 'Wallet': 'Wallet',\n 'Seleccioná una wallet': 'Select a wallet',\n 'Seleccionar wallet': 'Select wallet',\n 'disclaimers': {\n 'ripio': '* Maximum refund of 20,000 pesos per month per Ripio user.'\n },\n 'Conectado a': 'Connected to',\n 'Desconectar': 'Disconnect',\n 'Conversión': 'Conversion',\n 'Monto': 'Amount',\n 'El email ingresado no es válido.': 'The entered email is not valid.',\n 'Ir a pagar': 'Go to pay',\n 'Conectar Wallet': 'Connect Wallet',\n 'Pagar': 'Pay',\n 'Wallet default de tu dispositivo': 'Default wallet of your device',\n 'Transferí desde una wallet': 'Pay Manually',\n 'Enviando...': 'Sending...',\n 'Aguardando confirmación del pago.': 'Awaiting payment confirmation.',\n 'Este proceso puede tardar unos segundos.': 'This process may take a few seconds.',\n 'Cancelar': 'Cancel',\n 'Pagar con Crypto': 'Pay with Crypto',\n 'Continuar': 'Continue',\n 'Pago expirado': 'Payment expired',\n 'Nuevo pago': 'New payment',\n '¿Tenés algún problema?': 'Do you have any issues?',\n '¿No ves el pago aprobado? Compartinos el hash de la transacción.': 'Don’t see the payment approved? Share the transaction hash with us.',\n 'Chateá con nosotros.': 'Chat with us.',\n 'Envianos tu consulta': 'Send us your query',\n 'Pagaste': 'You paid',\n 'El pago fue realizado con éxito': 'The payment was successfully completed',\n 'a': 'to',\n 'Compartí tu experiencia en': 'Share your experience on',\n 'El monto ingresado no es válido.': 'The entered amount is not valid.',\n 'Enviá el monto exacto a la dirección indicada aquí abajo.': 'Send the exact amount to the address below.',\n 'copiado al portapapeles': 'copied to clipboard',\n 'Products': 'Products',\n 'cart': {\n 'add': 'Add to cart',\n 'drawer': {\n 'title': 'Cart'\n }\n },\n 'static': {\n 'order_not_found': {\n 'title': 'The order was not created.',\n 'subtitle': 'Let the cashier know you are ready to pay.',\n 'button': 'Done'\n }\n },\n 'actions': {\n 'Cerrar': 'Close'\n },\n 'process':{\n 'payment':{\n 'steps':{\n '1': '1. Scan the QR code from your cell phone camera.',\n '2': '2. Confirm the transaction from your wallet.',\n '3': '3. Please return to this screen to verify payment confirmation.'\n }\n }\n }\n }\n};","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport { initReactI18next } from 'react-i18next';\n\nimport english from './i18n/english';\nimport spanish from './i18n/spanish';\n\nconst resources = {\n en: english,\n es: spanish\n};\n\ni18n\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n detection: {\n order: ['navigator', 'htmlTag', 'localStorage', 'cookie'], // Prioridades de detección\n },\n fallbackLng: 'es',\n whitelist: ['en', 'es'],\n debug: true,\n resources,\n interpolation: {\n escapeValue: false\n }\n });\n\nexport default i18n;","export default {\n translation: {\n 'Moneda': 'Método de pago',\n 'Seleccioná una moneda': 'Seleccioná un método de pago',\n 'Seleccionar moneda': 'Seleccionar método de pago',\n 'Red': 'Red',\n 'Seleccioná una red': 'Seleccioná una red',\n 'Seleccionar red': 'Seleccionar red',\n '% extra charge': '% Cargo extra',\n 'Wallet': 'Wallet',\n 'Seleccioná una wallet': 'Seleccioná una wallet',\n 'Seleccionar wallet': 'Seleccionar wallet',\n 'disclaimers': {\n 'ripio': '* Tope de reintegro de 20.000 pesos mensuales por usuario de Ripio.'\n },\n 'Conectado a': 'Conectado a',\n 'Desconectar': 'Desconectar',\n 'Conversión': 'Conversión',\n 'Monto': 'Monto',\n 'El email ingresado no es válido.': 'El email ingresado no es válido.',\n 'Ir a pagar': 'Ir a pagar',\n 'Conectar Wallet': 'Conectar Wallet',\n 'Pagar': 'Pagar',\n 'Wallet default de tu dispositivo': 'Wallet default de tu dispositivo',\n 'Transferí desde una wallet': 'Transferí desde una wallet',\n 'Enviando...': 'Enviando...',\n 'Aguardando confirmación del pago.': 'Aguardando confirmación del pago.',\n 'Este proceso puede tardar unos segundos.': 'Este proceso puede tardar unos segundos.',\n 'Cancelar': 'Cancelar',\n 'Pagar con Crypto':'Pagar con Crypto',\n 'Continuar': 'Continuar',\n 'Pago expirado': 'Pago expirado',\n 'Nuevo pago': 'Nuevo pago',\n '¿Tenés algún problema?': '¿Tenés algún problema?',\n '¿No ves el pago aprobado? Compartinos el hash de la transacción.': '¿No ves el pago aprobado? Compartinos el hash de la transacción.',\n 'Chateá con nosotros.': 'Chateá con nosotros.',\n 'Envianos tu consulta': 'Envianos tu consulta',\n 'Pagaste': 'Pagaste',\n 'El pago fue realizado con éxito': 'El pago fue realizado con éxito',\n 'a': 'a',\n 'Compartí tu experiencia en': 'Compartí tu experiencia en',\n 'El monto ingresado no es válido.': 'El monto ingresado no es válido.',\n 'Enviá el monto exacto a la dirección indicada aquí abajo.': 'Enviá el monto exacto a la dirección indicada aquí abajo.',\n 'copiado al portapapeles': 'copiado al portapapeles',\n 'Products': 'Productos',\n 'cart': {\n 'add': 'Agregar al carrito',\n 'drawer': {\n 'title': 'Mi carrito'\n }\n },\n 'static': {\n 'order_not_found': {\n 'title': 'No se creó la orden.',\n 'subtitle': 'Avisale al cajero que estas listo para pagar.',\n 'button': 'Ya le avisé'\n }\n },\n 'actions': {\n 'Cerrar': 'Cerrar'\n },\n 'process':{\n 'payment':{\n 'steps':{\n '1': '1. Escaneá el QR desde la cámara de tu celular.',\n '2': '2. Confirmá la transacción desde tu wallet.',\n '3': '3. Volvé a esta pantalla para verificar la confirmación del pago.'\n }\n }\n }\n }\n};","import { Flex } from '@radix-ui/themes';\nimport Lottie from 'lottie-react';\n\nimport LoaderAnimation from '@/assets/Icons/FlatIcons/LoaderAnimation.json';\n\nconst Loader = () => {\n return (\n \n \n \n );\n};\n\nexport default Loader;","var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\n\nvar isDevelopment = false;\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n // eslint-disable-next-line prefer-spread\n styles.push.apply(styles, args);\n } else {\n var templateStringsArr = args[0];\n\n styles.push(templateStringsArr[0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], templateStringsArr[i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n var newStyled = createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n }));\n return newStyled.apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/react';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\nimport '@emotion/utils';\nimport 'react';\nimport '@emotion/is-prop-valid';\n\nvar tags = ['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', 'marquee', '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', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\n// bind it to avoid mutating the original function\nvar newStyled = createStyled.bind(null);\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nconst boxClasses = generateUtilityClasses('MuiBox', ['root']);\nexport default boxClasses;","'use client';\n\nimport { createBox } from '@mui/system';\nimport PropTypes from 'prop-types';\nimport { unstable_ClassNameGenerator as ClassNameGenerator } from \"../className/index.js\";\nimport { createTheme } from \"../styles/index.js\";\nimport THEME_ID from \"../styles/identifier.js\";\nimport boxClasses from \"./boxClasses.js\";\nconst defaultTheme = createTheme();\nconst Box = createBox({\n themeId: THEME_ID,\n defaultTheme,\n defaultClassName: boxClasses.root,\n generateClassName: ClassNameGenerator.generate\n});\nprocess.env.NODE_ENV !== \"production\" ? Box.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Box;","'use client';\n\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport styled from '@mui/styled-engine';\nimport styleFunctionSx, { extendSxProp } from \"../styleFunctionSx/index.js\";\nimport useTheme from \"../useTheme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createBox(options = {}) {\n const {\n themeId,\n defaultTheme,\n defaultClassName = 'MuiBox-root',\n generateClassName\n } = options;\n const BoxRoot = styled('div', {\n shouldForwardProp: prop => prop !== 'theme' && prop !== 'sx' && prop !== 'as'\n })(styleFunctionSx);\n const Box = /*#__PURE__*/React.forwardRef(function Box(inProps, ref) {\n const theme = useTheme(defaultTheme);\n const {\n className,\n component = 'div',\n ...other\n } = extendSxProp(inProps);\n return /*#__PURE__*/_jsx(BoxRoot, {\n as: component,\n ref: ref,\n className: clsx(className, generateClassName ? generateClassName(defaultClassName) : defaultClassName),\n theme: themeId ? theme[themeId] || theme : theme,\n ...other\n });\n });\n return Box;\n}","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport { darken, getContrastRatio, lighten } from '@mui/system/colorManipulator';\nimport common from \"../colors/common.js\";\nimport grey from \"../colors/grey.js\";\nimport purple from \"../colors/purple.js\";\nimport red from \"../colors/red.js\";\nimport orange from \"../colors/orange.js\";\nimport blue from \"../colors/blue.js\";\nimport lightBlue from \"../colors/lightBlue.js\";\nimport green from \"../colors/green.js\";\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2,\n ...other\n } = palette;\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = {\n ...color\n };\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge({\n // A collection of common colors.\n common: {\n ...common\n },\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset,\n // The light and dark mode object.\n ...modes[mode]\n }, other);\n return paletteOutput;\n}","/**\n * The benefit of this function is to help developers get CSS var from theme without specifying the whole variable\n * and they does not need to remember the prefix (defined once).\n */\nexport default function createGetCssVar(prefix = '') {\n function appendVar(...vars) {\n if (!vars.length) {\n return '';\n }\n const value = vars[0];\n if (typeof value === 'string' && !value.match(/(#|\\(|\\)|(-?(\\d*\\.)?\\d+)(px|em|%|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc))|^(-?(\\d*\\.)?\\d+)$|(\\d+ \\d+ \\d+)/)) {\n return `, var(--${prefix ? `${prefix}-` : ''}${value}${appendVar(...vars.slice(1))})`;\n }\n return `, ${value}`;\n }\n\n // AdditionalVars makes `getCssVar` less strict, so it can be use like this `getCssVar('non-mui-variable')` without type error.\n const getCssVar = (field, ...fallbacks) => {\n return `var(--${prefix ? `${prefix}-` : ''}${field}${appendVar(...fallbacks)})`;\n };\n return getCssVar;\n}","export default function prepareTypographyVars(typography) {\n const vars = {};\n const entries = Object.entries(typography);\n entries.forEach(entry => {\n const [key, value] = entry;\n if (typeof value === 'object') {\n vars[key] = `${value.fontStyle ? `${value.fontStyle} ` : ''}${value.fontVariant ? `${value.fontVariant} ` : ''}${value.fontWeight ? `${value.fontWeight} ` : ''}${value.fontStretch ? `${value.fontStretch} ` : ''}${value.fontSize || ''}${value.lineHeight ? `/${value.lineHeight} ` : ''}${value.fontFamily || ''}`;\n }\n });\n return vars;\n}","/**\n * This function create an object from keys, value and then assign to target\n *\n * @param {Object} obj : the target object to be assigned\n * @param {string[]} keys\n * @param {string | number} value\n *\n * @example\n * const source = {}\n * assignNestedKeys(source, ['palette', 'primary'], 'var(--palette-primary)')\n * console.log(source) // { palette: { primary: 'var(--palette-primary)' } }\n *\n * @example\n * const source = { palette: { primary: 'var(--palette-primary)' } }\n * assignNestedKeys(source, ['palette', 'secondary'], 'var(--palette-secondary)')\n * console.log(source) // { palette: { primary: 'var(--palette-primary)', secondary: 'var(--palette-secondary)' } }\n */\nexport const assignNestedKeys = (obj, keys, value, arrayKeys = []) => {\n let temp = obj;\n keys.forEach((k, index) => {\n if (index === keys.length - 1) {\n if (Array.isArray(temp)) {\n temp[Number(k)] = value;\n } else if (temp && typeof temp === 'object') {\n temp[k] = value;\n }\n } else if (temp && typeof temp === 'object') {\n if (!temp[k]) {\n temp[k] = arrayKeys.includes(k) ? [] : {};\n }\n temp = temp[k];\n }\n });\n};\n\n/**\n *\n * @param {Object} obj : source object\n * @param {Function} callback : a function that will be called when\n * - the deepest key in source object is reached\n * - the value of the deepest key is NOT `undefined` | `null`\n *\n * @example\n * walkObjectDeep({ palette: { primary: { main: '#000000' } } }, console.log)\n * // ['palette', 'primary', 'main'] '#000000'\n */\nexport const walkObjectDeep = (obj, callback, shouldSkipPaths) => {\n function recurse(object, parentKeys = [], arrayKeys = []) {\n Object.entries(object).forEach(([key, value]) => {\n if (!shouldSkipPaths || shouldSkipPaths && !shouldSkipPaths([...parentKeys, key])) {\n if (value !== undefined && value !== null) {\n if (typeof value === 'object' && Object.keys(value).length > 0) {\n recurse(value, [...parentKeys, key], Array.isArray(value) ? [...arrayKeys, key] : arrayKeys);\n } else {\n callback([...parentKeys, key], value, arrayKeys);\n }\n }\n }\n });\n }\n recurse(obj);\n};\nconst getCssValue = (keys, value) => {\n if (typeof value === 'number') {\n if (['lineHeight', 'fontWeight', 'opacity', 'zIndex'].some(prop => keys.includes(prop))) {\n // CSS property that are unitless\n return value;\n }\n const lastKey = keys[keys.length - 1];\n if (lastKey.toLowerCase().includes('opacity')) {\n // opacity values are unitless\n return value;\n }\n return `${value}px`;\n }\n return value;\n};\n\n/**\n * a function that parse theme and return { css, vars }\n *\n * @param {Object} theme\n * @param {{\n * prefix?: string,\n * shouldSkipGeneratingVar?: (objectPathKeys: Array, value: string | number) => boolean\n * }} options.\n * `prefix`: The prefix of the generated CSS variables. This function does not change the value.\n *\n * @returns {{ css: Object, vars: Object }} `css` is the stylesheet, `vars` is an object to get css variable (same structure as theme).\n *\n * @example\n * const { css, vars } = parser({\n * fontSize: 12,\n * lineHeight: 1.2,\n * palette: { primary: { 500: 'var(--color)' } }\n * }, { prefix: 'foo' })\n *\n * console.log(css) // { '--foo-fontSize': '12px', '--foo-lineHeight': 1.2, '--foo-palette-primary-500': 'var(--color)' }\n * console.log(vars) // { fontSize: 'var(--foo-fontSize)', lineHeight: 'var(--foo-lineHeight)', palette: { primary: { 500: 'var(--foo-palette-primary-500)' } } }\n */\nexport default function cssVarsParser(theme, options) {\n const {\n prefix,\n shouldSkipGeneratingVar\n } = options || {};\n const css = {};\n const vars = {};\n const varsWithDefaults = {};\n walkObjectDeep(theme, (keys, value, arrayKeys) => {\n if (typeof value === 'string' || typeof value === 'number') {\n if (!shouldSkipGeneratingVar || !shouldSkipGeneratingVar(keys, value)) {\n // only create css & var if `shouldSkipGeneratingVar` return false\n const cssVar = `--${prefix ? `${prefix}-` : ''}${keys.join('-')}`;\n const resolvedValue = getCssValue(keys, value);\n Object.assign(css, {\n [cssVar]: resolvedValue\n });\n assignNestedKeys(vars, keys, `var(${cssVar})`, arrayKeys);\n assignNestedKeys(varsWithDefaults, keys, `var(${cssVar}, ${resolvedValue})`, arrayKeys);\n }\n }\n }, keys => keys[0] === 'vars' // skip 'vars/*' paths\n );\n return {\n css,\n vars,\n varsWithDefaults\n };\n}","import deepmerge from '@mui/utils/deepmerge';\nimport cssVarsParser from \"./cssVarsParser.js\";\nfunction prepareCssVars(theme, parserConfig = {}) {\n const {\n getSelector = defaultGetSelector,\n disableCssColorScheme,\n colorSchemeSelector: selector\n } = parserConfig;\n // @ts-ignore - ignore components do not exist\n const {\n colorSchemes = {},\n components,\n defaultColorScheme = 'light',\n ...otherTheme\n } = theme;\n const {\n vars: rootVars,\n css: rootCss,\n varsWithDefaults: rootVarsWithDefaults\n } = cssVarsParser(otherTheme, parserConfig);\n let themeVars = rootVarsWithDefaults;\n const colorSchemesMap = {};\n const {\n [defaultColorScheme]: defaultScheme,\n ...otherColorSchemes\n } = colorSchemes;\n Object.entries(otherColorSchemes || {}).forEach(([key, scheme]) => {\n const {\n vars,\n css,\n varsWithDefaults\n } = cssVarsParser(scheme, parserConfig);\n themeVars = deepmerge(themeVars, varsWithDefaults);\n colorSchemesMap[key] = {\n css,\n vars\n };\n });\n if (defaultScheme) {\n // default color scheme vars should be merged last to set as default\n const {\n css,\n vars,\n varsWithDefaults\n } = cssVarsParser(defaultScheme, parserConfig);\n themeVars = deepmerge(themeVars, varsWithDefaults);\n colorSchemesMap[defaultColorScheme] = {\n css,\n vars\n };\n }\n function defaultGetSelector(colorScheme, cssObject) {\n let rule = selector;\n if (selector === 'class') {\n rule = '.%s';\n }\n if (selector === 'data') {\n rule = '[data-%s]';\n }\n if (selector?.startsWith('data-') && !selector.includes('%s')) {\n // 'data-joy-color-scheme' -> '[data-joy-color-scheme=\"%s\"]'\n rule = `[${selector}=\"%s\"]`;\n }\n if (colorScheme) {\n if (rule === 'media') {\n if (theme.defaultColorScheme === colorScheme) {\n return ':root';\n }\n const mode = colorSchemes[colorScheme]?.palette?.mode || colorScheme;\n return {\n [`@media (prefers-color-scheme: ${mode})`]: {\n ':root': cssObject\n }\n };\n }\n if (rule) {\n if (theme.defaultColorScheme === colorScheme) {\n return `:root, ${rule.replace('%s', String(colorScheme))}`;\n }\n return rule.replace('%s', String(colorScheme));\n }\n }\n return ':root';\n }\n const generateThemeVars = () => {\n let vars = {\n ...rootVars\n };\n Object.entries(colorSchemesMap).forEach(([, {\n vars: schemeVars\n }]) => {\n vars = deepmerge(vars, schemeVars);\n });\n return vars;\n };\n const generateStyleSheets = () => {\n const stylesheets = [];\n const colorScheme = theme.defaultColorScheme || 'light';\n function insertStyleSheet(key, css) {\n if (Object.keys(css).length) {\n stylesheets.push(typeof key === 'string' ? {\n [key]: {\n ...css\n }\n } : key);\n }\n }\n insertStyleSheet(getSelector(undefined, {\n ...rootCss\n }), rootCss);\n const {\n [colorScheme]: defaultSchemeVal,\n ...other\n } = colorSchemesMap;\n if (defaultSchemeVal) {\n // default color scheme has to come before other color schemes\n const {\n css\n } = defaultSchemeVal;\n const cssColorSheme = colorSchemes[colorScheme]?.palette?.mode;\n const finalCss = !disableCssColorScheme && cssColorSheme ? {\n colorScheme: cssColorSheme,\n ...css\n } : {\n ...css\n };\n insertStyleSheet(getSelector(colorScheme, {\n ...finalCss\n }), finalCss);\n }\n Object.entries(other).forEach(([key, {\n css\n }]) => {\n const cssColorSheme = colorSchemes[key]?.palette?.mode;\n const finalCss = !disableCssColorScheme && cssColorSheme ? {\n colorScheme: cssColorSheme,\n ...css\n } : {\n ...css\n };\n insertStyleSheet(getSelector(key, {\n ...finalCss\n }), finalCss);\n });\n return stylesheets;\n };\n return {\n vars: themeVars,\n generateThemeVars,\n generateStyleSheets\n };\n}\nexport default prepareCssVars;","import deepmerge from '@mui/utils/deepmerge';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2,\n ...other\n } = typeof typography === 'function' ? typography(palette) : typography;\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => ({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight,\n // The letter spacing was designed for the Roboto font-family. Using the same letter-spacing\n // across font-families can cause issues with the kerning.\n ...(fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}),\n ...casing,\n ...allVariants\n });\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps),\n // TODO v6: Remove handling of 'inherit' variant from the theme as it is already handled in Material UI's Typography component. Also, remember to remove the associated types.\n inherit: {\n fontFamily: 'inherit',\n fontWeight: 'inherit',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n letterSpacing: 'inherit'\n }\n };\n return deepmerge({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold,\n ...variants\n }, other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport systemCreateTheme from '@mui/system/createTheme';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nimport createMixins from \"./createMixins.js\";\nimport createPalette from \"./createPalette.js\";\nimport createTypography from \"./createTypography.js\";\nimport shadows from \"./shadows.js\";\nimport createTransitions from \"./createTransitions.js\";\nimport zIndex from \"./zIndex.js\";\nfunction createThemeNoVars(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput,\n mixins: mixinsInput = {},\n spacing: spacingInput,\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {},\n shape: shapeInput,\n ...other\n } = options;\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(20));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: {\n ...zIndex\n }\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n // TODO v6: Refactor to use globalStateClassesMapping from @mui/utils once `readOnly` state class is used in Rating component.\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in\n for (key in node) {\n const child = node[key];\n if (stateClasses.includes(key) && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.startsWith('Mui')) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...other?.unstable_sxConfig\n };\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createThemeNoVars(...args);\n}\nexport default createThemeNoVars;","export default function createMixins(breakpoints, mixins) {\n return {\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n },\n ...mixins\n };\n}","import createPalette from \"./createPalette.js\";\nimport getOverlayAlpha from \"./getOverlayAlpha.js\";\nconst defaultDarkOverlays = [...Array(25)].map((_, index) => {\n if (index === 0) {\n return 'none';\n }\n const overlay = getOverlayAlpha(index);\n return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;\n});\nexport function getOpacity(mode) {\n return {\n inputPlaceholder: mode === 'dark' ? 0.5 : 0.42,\n inputUnderline: mode === 'dark' ? 0.7 : 0.42,\n switchTrackDisabled: mode === 'dark' ? 0.2 : 0.12,\n switchTrack: mode === 'dark' ? 0.3 : 0.38\n };\n}\nexport function getOverlays(mode) {\n return mode === 'dark' ? defaultDarkOverlays : [];\n}\nexport default function createColorScheme(options) {\n const {\n palette: paletteInput = {\n mode: 'light'\n },\n // need to cast to avoid module augmentation test\n opacity,\n overlays,\n ...rest\n } = options;\n const palette = createPalette(paletteInput);\n return {\n palette,\n opacity: {\n ...getOpacity(palette.mode),\n ...opacity\n },\n overlays: overlays || getOverlays(palette.mode),\n ...rest\n };\n}","export default function shouldSkipGeneratingVar(keys) {\n return !!keys[0].match(/(cssVarPrefix|colorSchemeSelector|typography|mixins|breakpoints|direction|transitions)/) || !!keys[0].match(/sxConfig$/) ||\n // ends with sxConfig\n keys[0] === 'palette' && !!keys[1]?.match(/(mode|contrastThreshold|tonalOffset)/);\n}","/**\n * @internal These variables should not appear in the :root stylesheet when the `defaultColorScheme=\"dark\"`\n */\nconst excludeVariablesFromRoot = cssVarPrefix => [...[...Array(25)].map((_, index) => `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}overlays-${index}`), `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkBg`, `--${cssVarPrefix ? `${cssVarPrefix}-` : ''}palette-AppBar-darkColor`];\nexport default excludeVariablesFromRoot;","import excludeVariablesFromRoot from \"./excludeVariablesFromRoot.js\";\nexport default theme => (colorScheme, css) => {\n const selector = theme.colorSchemeSelector;\n let rule = selector;\n if (selector === 'class') {\n rule = '.%s';\n }\n if (selector === 'data') {\n rule = '[data-%s]';\n }\n if (selector?.startsWith('data-') && !selector.includes('%s')) {\n // 'data-mui-color-scheme' -> '[data-mui-color-scheme=\"%s\"]'\n rule = `[${selector}=\"%s\"]`;\n }\n if (theme.defaultColorScheme === colorScheme) {\n if (colorScheme === 'dark') {\n const excludedVariables = {};\n excludeVariablesFromRoot(theme.cssVarPrefix).forEach(cssVar => {\n excludedVariables[cssVar] = css[cssVar];\n delete css[cssVar];\n });\n if (rule === 'media') {\n return {\n ':root': css,\n [`@media (prefers-color-scheme: dark)`]: {\n ':root': excludedVariables\n }\n };\n }\n if (rule) {\n return {\n [rule.replace('%s', colorScheme)]: excludedVariables,\n [`:root, ${rule.replace('%s', colorScheme)}`]: css\n };\n }\n return {\n ':root': {\n ...css,\n ...excludedVariables\n }\n };\n }\n if (rule && rule !== 'media') {\n return `:root, ${rule.replace('%s', String(colorScheme))}`;\n }\n } else if (colorScheme) {\n if (rule === 'media') {\n return {\n [`@media (prefers-color-scheme: ${String(colorScheme)})`]: {\n ':root': css\n }\n };\n }\n if (rule) {\n return rule.replace('%s', String(colorScheme));\n }\n }\n return ':root';\n};","/* eslint-disable import/prefer-default-export */\nimport { isPlainObject } from '@mui/utils/deepmerge';\nfunction isSerializable(val) {\n return isPlainObject(val) || typeof val === 'undefined' || typeof val === 'string' || typeof val === 'boolean' || typeof val === 'number' || Array.isArray(val);\n}\n\n/**\n * `baseTheme` usually comes from `createTheme` or `extendTheme`.\n *\n * This function is intended to be used with zero-runtime CSS-in-JS like Pigment CSS\n * For example, in a Next.js project:\n *\n * ```js\n * // next.config.js\n * const { extendTheme } = require('@mui/material/styles');\n *\n * const theme = extendTheme();\n * // `.toRuntimeSource` is Pigment CSS specific to create a theme that is available at runtime.\n * theme.toRuntimeSource = stringifyTheme;\n *\n * module.exports = withPigment({\n * theme,\n * });\n * ```\n */\nexport function stringifyTheme(baseTheme = {}) {\n const serializableTheme = {\n ...baseTheme\n };\n function serializeTheme(object) {\n const array = Object.entries(object);\n // eslint-disable-next-line no-plusplus\n for (let index = 0; index < array.length; index++) {\n const [key, value] = array[index];\n if (!isSerializable(value) || key.startsWith('unstable_')) {\n delete object[key];\n } else if (isPlainObject(value)) {\n object[key] = {\n ...value\n };\n serializeTheme(object[key]);\n }\n }\n }\n serializeTheme(serializableTheme);\n return `import { unstable_createBreakpoints as createBreakpoints, createTransitions } from '@mui/material/styles';\n\nconst theme = ${JSON.stringify(serializableTheme, null, 2)};\n\ntheme.breakpoints = createBreakpoints(theme.breakpoints || {});\ntheme.transitions = createTransitions(theme.transitions || {});\n\nexport default theme;`;\n}","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\nimport deepmerge from '@mui/utils/deepmerge';\nimport { unstable_createGetCssVar as systemCreateGetCssVar, createSpacing } from '@mui/system';\nimport { createUnarySpacing } from '@mui/system/spacing';\nimport { prepareCssVars, prepareTypographyVars, createGetColorSchemeSelector } from '@mui/system/cssVars';\nimport styleFunctionSx, { unstable_defaultSxConfig as defaultSxConfig } from '@mui/system/styleFunctionSx';\nimport { private_safeColorChannel as safeColorChannel, private_safeAlpha as safeAlpha, private_safeDarken as safeDarken, private_safeLighten as safeLighten, private_safeEmphasize as safeEmphasize, hslToRgb } from '@mui/system/colorManipulator';\nimport createThemeNoVars from \"./createThemeNoVars.js\";\nimport createColorScheme, { getOpacity, getOverlays } from \"./createColorScheme.js\";\nimport defaultShouldSkipGeneratingVar from \"./shouldSkipGeneratingVar.js\";\nimport defaultGetSelector from \"./createGetSelector.js\";\nimport { stringifyTheme } from \"./stringifyTheme.js\";\nfunction assignNode(obj, keys) {\n keys.forEach(k => {\n if (!obj[k]) {\n obj[k] = {};\n }\n });\n}\nfunction setColor(obj, key, defaultValue) {\n if (!obj[key] && defaultValue) {\n obj[key] = defaultValue;\n }\n}\nfunction toRgb(color) {\n if (!color || !color.startsWith('hsl')) {\n return color;\n }\n return hslToRgb(color);\n}\nfunction setColorChannel(obj, key) {\n if (!(`${key}Channel` in obj)) {\n // custom channel token is not provided, generate one.\n // if channel token can't be generated, show a warning.\n obj[`${key}Channel`] = safeColorChannel(toRgb(obj[key]), `MUI: Can't create \\`palette.${key}Channel\\` because \\`palette.${key}\\` is not one of these formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` + '\\n' + `To suppress this warning, you need to explicitly provide the \\`palette.${key}Channel\\` as a string (in rgb format, for example \"12 12 12\") or undefined if you want to remove the channel token.`);\n }\n}\nfunction getSpacingVal(spacingInput) {\n if (typeof spacingInput === 'number') {\n return `${spacingInput}px`;\n }\n if (typeof spacingInput === 'string' || typeof spacingInput === 'function' || Array.isArray(spacingInput)) {\n return spacingInput;\n }\n return '8px';\n}\nconst silent = fn => {\n try {\n return fn();\n } catch (error) {\n // ignore error\n }\n return undefined;\n};\nexport const createGetCssVar = (cssVarPrefix = 'mui') => systemCreateGetCssVar(cssVarPrefix);\nfunction attachColorScheme(colorSchemes, scheme, restTheme, colorScheme) {\n if (!scheme) {\n return undefined;\n }\n scheme = scheme === true ? {} : scheme;\n const mode = colorScheme === 'dark' ? 'dark' : 'light';\n if (!restTheme) {\n colorSchemes[colorScheme] = createColorScheme({\n ...scheme,\n palette: {\n mode,\n ...scheme?.palette\n }\n });\n return undefined;\n }\n const {\n palette,\n ...muiTheme\n } = createThemeNoVars({\n ...restTheme,\n palette: {\n mode,\n ...scheme?.palette\n }\n });\n colorSchemes[colorScheme] = {\n ...scheme,\n palette,\n opacity: {\n ...getOpacity(mode),\n ...scheme?.opacity\n },\n overlays: scheme?.overlays || getOverlays(mode)\n };\n return muiTheme;\n}\n\n/**\n * A default `createThemeWithVars` comes with a single color scheme, either `light` or `dark` based on the `defaultColorScheme`.\n * This is better suited for apps that only need a single color scheme.\n *\n * To enable built-in `light` and `dark` color schemes, either:\n * 1. provide a `colorSchemeSelector` to define how the color schemes will change.\n * 2. provide `colorSchemes.dark` will set `colorSchemeSelector: 'media'` by default.\n */\nexport default function createThemeWithVars(options = {}, ...args) {\n const {\n colorSchemes: colorSchemesInput = {\n light: true\n },\n defaultColorScheme: defaultColorSchemeInput,\n disableCssColorScheme = false,\n cssVarPrefix = 'mui',\n shouldSkipGeneratingVar = defaultShouldSkipGeneratingVar,\n colorSchemeSelector: selector = colorSchemesInput.light && colorSchemesInput.dark ? 'media' : undefined,\n ...input\n } = options;\n const firstColorScheme = Object.keys(colorSchemesInput)[0];\n const defaultColorScheme = defaultColorSchemeInput || (colorSchemesInput.light && firstColorScheme !== 'light' ? 'light' : firstColorScheme);\n const getCssVar = createGetCssVar(cssVarPrefix);\n const {\n [defaultColorScheme]: defaultSchemeInput,\n light: builtInLight,\n dark: builtInDark,\n ...customColorSchemes\n } = colorSchemesInput;\n const colorSchemes = {\n ...customColorSchemes\n };\n let defaultScheme = defaultSchemeInput;\n\n // For built-in light and dark color schemes, ensure that the value is valid if they are the default color scheme.\n if (defaultColorScheme === 'dark' && !('dark' in colorSchemesInput) || defaultColorScheme === 'light' && !('light' in colorSchemesInput)) {\n defaultScheme = true;\n }\n if (!defaultScheme) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The \\`colorSchemes.${defaultColorScheme}\\` option is either missing or invalid.` : _formatMuiErrorMessage(21, defaultColorScheme));\n }\n\n // Create the palette for the default color scheme, either `light`, `dark`, or custom color scheme.\n const muiTheme = attachColorScheme(colorSchemes, defaultScheme, input, defaultColorScheme);\n if (builtInLight && !colorSchemes.light) {\n attachColorScheme(colorSchemes, builtInLight, undefined, 'light');\n }\n if (builtInDark && !colorSchemes.dark) {\n attachColorScheme(colorSchemes, builtInDark, undefined, 'dark');\n }\n let theme = {\n defaultColorScheme,\n ...muiTheme,\n cssVarPrefix,\n colorSchemeSelector: selector,\n getCssVar,\n colorSchemes,\n font: {\n ...prepareTypographyVars(muiTheme.typography),\n ...muiTheme.font\n },\n spacing: getSpacingVal(input.spacing)\n };\n Object.keys(theme.colorSchemes).forEach(key => {\n const palette = theme.colorSchemes[key].palette;\n const setCssVarColor = cssVar => {\n const tokens = cssVar.split('-');\n const color = tokens[1];\n const colorToken = tokens[2];\n return getCssVar(cssVar, palette[color][colorToken]);\n };\n\n // attach black & white channels to common node\n if (palette.mode === 'light') {\n setColor(palette.common, 'background', '#fff');\n setColor(palette.common, 'onBackground', '#000');\n }\n if (palette.mode === 'dark') {\n setColor(palette.common, 'background', '#000');\n setColor(palette.common, 'onBackground', '#fff');\n }\n\n // assign component variables\n assignNode(palette, ['Alert', 'AppBar', 'Avatar', 'Button', 'Chip', 'FilledInput', 'LinearProgress', 'Skeleton', 'Slider', 'SnackbarContent', 'SpeedDialAction', 'StepConnector', 'StepContent', 'Switch', 'TableCell', 'Tooltip']);\n if (palette.mode === 'light') {\n setColor(palette.Alert, 'errorColor', safeDarken(palette.error.light, 0.6));\n setColor(palette.Alert, 'infoColor', safeDarken(palette.info.light, 0.6));\n setColor(palette.Alert, 'successColor', safeDarken(palette.success.light, 0.6));\n setColor(palette.Alert, 'warningColor', safeDarken(palette.warning.light, 0.6));\n setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-main'));\n setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.main)));\n setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.main)));\n setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.main)));\n setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.main)));\n setColor(palette.Alert, 'errorStandardBg', safeLighten(palette.error.light, 0.9));\n setColor(palette.Alert, 'infoStandardBg', safeLighten(palette.info.light, 0.9));\n setColor(palette.Alert, 'successStandardBg', safeLighten(palette.success.light, 0.9));\n setColor(palette.Alert, 'warningStandardBg', safeLighten(palette.warning.light, 0.9));\n setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));\n setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-100'));\n setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-400'));\n setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-300'));\n setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-A100'));\n setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-400'));\n setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-700'));\n setColor(palette.FilledInput, 'bg', 'rgba(0, 0, 0, 0.06)');\n setColor(palette.FilledInput, 'hoverBg', 'rgba(0, 0, 0, 0.09)');\n setColor(palette.FilledInput, 'disabledBg', 'rgba(0, 0, 0, 0.12)');\n setColor(palette.LinearProgress, 'primaryBg', safeLighten(palette.primary.main, 0.62));\n setColor(palette.LinearProgress, 'secondaryBg', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.LinearProgress, 'errorBg', safeLighten(palette.error.main, 0.62));\n setColor(palette.LinearProgress, 'infoBg', safeLighten(palette.info.main, 0.62));\n setColor(palette.LinearProgress, 'successBg', safeLighten(palette.success.main, 0.62));\n setColor(palette.LinearProgress, 'warningBg', safeLighten(palette.warning.main, 0.62));\n setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.11)`);\n setColor(palette.Slider, 'primaryTrack', safeLighten(palette.primary.main, 0.62));\n setColor(palette.Slider, 'secondaryTrack', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.Slider, 'errorTrack', safeLighten(palette.error.main, 0.62));\n setColor(palette.Slider, 'infoTrack', safeLighten(palette.info.main, 0.62));\n setColor(palette.Slider, 'successTrack', safeLighten(palette.success.main, 0.62));\n setColor(palette.Slider, 'warningTrack', safeLighten(palette.warning.main, 0.62));\n const snackbarContentBackground = safeEmphasize(palette.background.default, 0.8);\n setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);\n setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));\n setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));\n setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-400'));\n setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-400'));\n setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-common-white'));\n setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-100'));\n setColor(palette.Switch, 'primaryDisabledColor', safeLighten(palette.primary.main, 0.62));\n setColor(palette.Switch, 'secondaryDisabledColor', safeLighten(palette.secondary.main, 0.62));\n setColor(palette.Switch, 'errorDisabledColor', safeLighten(palette.error.main, 0.62));\n setColor(palette.Switch, 'infoDisabledColor', safeLighten(palette.info.main, 0.62));\n setColor(palette.Switch, 'successDisabledColor', safeLighten(palette.success.main, 0.62));\n setColor(palette.Switch, 'warningDisabledColor', safeLighten(palette.warning.main, 0.62));\n setColor(palette.TableCell, 'border', safeLighten(safeAlpha(palette.divider, 1), 0.88));\n setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));\n }\n if (palette.mode === 'dark') {\n setColor(palette.Alert, 'errorColor', safeLighten(palette.error.light, 0.6));\n setColor(palette.Alert, 'infoColor', safeLighten(palette.info.light, 0.6));\n setColor(palette.Alert, 'successColor', safeLighten(palette.success.light, 0.6));\n setColor(palette.Alert, 'warningColor', safeLighten(palette.warning.light, 0.6));\n setColor(palette.Alert, 'errorFilledBg', setCssVarColor('palette-error-dark'));\n setColor(palette.Alert, 'infoFilledBg', setCssVarColor('palette-info-dark'));\n setColor(palette.Alert, 'successFilledBg', setCssVarColor('palette-success-dark'));\n setColor(palette.Alert, 'warningFilledBg', setCssVarColor('palette-warning-dark'));\n setColor(palette.Alert, 'errorFilledColor', silent(() => palette.getContrastText(palette.error.dark)));\n setColor(palette.Alert, 'infoFilledColor', silent(() => palette.getContrastText(palette.info.dark)));\n setColor(palette.Alert, 'successFilledColor', silent(() => palette.getContrastText(palette.success.dark)));\n setColor(palette.Alert, 'warningFilledColor', silent(() => palette.getContrastText(palette.warning.dark)));\n setColor(palette.Alert, 'errorStandardBg', safeDarken(palette.error.light, 0.9));\n setColor(palette.Alert, 'infoStandardBg', safeDarken(palette.info.light, 0.9));\n setColor(palette.Alert, 'successStandardBg', safeDarken(palette.success.light, 0.9));\n setColor(palette.Alert, 'warningStandardBg', safeDarken(palette.warning.light, 0.9));\n setColor(palette.Alert, 'errorIconColor', setCssVarColor('palette-error-main'));\n setColor(palette.Alert, 'infoIconColor', setCssVarColor('palette-info-main'));\n setColor(palette.Alert, 'successIconColor', setCssVarColor('palette-success-main'));\n setColor(palette.Alert, 'warningIconColor', setCssVarColor('palette-warning-main'));\n setColor(palette.AppBar, 'defaultBg', setCssVarColor('palette-grey-900'));\n setColor(palette.AppBar, 'darkBg', setCssVarColor('palette-background-paper')); // specific for dark mode\n setColor(palette.AppBar, 'darkColor', setCssVarColor('palette-text-primary')); // specific for dark mode\n setColor(palette.Avatar, 'defaultBg', setCssVarColor('palette-grey-600'));\n setColor(palette.Button, 'inheritContainedBg', setCssVarColor('palette-grey-800'));\n setColor(palette.Button, 'inheritContainedHoverBg', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultBorder', setCssVarColor('palette-grey-700'));\n setColor(palette.Chip, 'defaultAvatarColor', setCssVarColor('palette-grey-300'));\n setColor(palette.Chip, 'defaultIconColor', setCssVarColor('palette-grey-300'));\n setColor(palette.FilledInput, 'bg', 'rgba(255, 255, 255, 0.09)');\n setColor(palette.FilledInput, 'hoverBg', 'rgba(255, 255, 255, 0.13)');\n setColor(palette.FilledInput, 'disabledBg', 'rgba(255, 255, 255, 0.12)');\n setColor(palette.LinearProgress, 'primaryBg', safeDarken(palette.primary.main, 0.5));\n setColor(palette.LinearProgress, 'secondaryBg', safeDarken(palette.secondary.main, 0.5));\n setColor(palette.LinearProgress, 'errorBg', safeDarken(palette.error.main, 0.5));\n setColor(palette.LinearProgress, 'infoBg', safeDarken(palette.info.main, 0.5));\n setColor(palette.LinearProgress, 'successBg', safeDarken(palette.success.main, 0.5));\n setColor(palette.LinearProgress, 'warningBg', safeDarken(palette.warning.main, 0.5));\n setColor(palette.Skeleton, 'bg', `rgba(${setCssVarColor('palette-text-primaryChannel')} / 0.13)`);\n setColor(palette.Slider, 'primaryTrack', safeDarken(palette.primary.main, 0.5));\n setColor(palette.Slider, 'secondaryTrack', safeDarken(palette.secondary.main, 0.5));\n setColor(palette.Slider, 'errorTrack', safeDarken(palette.error.main, 0.5));\n setColor(palette.Slider, 'infoTrack', safeDarken(palette.info.main, 0.5));\n setColor(palette.Slider, 'successTrack', safeDarken(palette.success.main, 0.5));\n setColor(palette.Slider, 'warningTrack', safeDarken(palette.warning.main, 0.5));\n const snackbarContentBackground = safeEmphasize(palette.background.default, 0.98);\n setColor(palette.SnackbarContent, 'bg', snackbarContentBackground);\n setColor(palette.SnackbarContent, 'color', silent(() => palette.getContrastText(snackbarContentBackground)));\n setColor(palette.SpeedDialAction, 'fabHoverBg', safeEmphasize(palette.background.paper, 0.15));\n setColor(palette.StepConnector, 'border', setCssVarColor('palette-grey-600'));\n setColor(palette.StepContent, 'border', setCssVarColor('palette-grey-600'));\n setColor(palette.Switch, 'defaultColor', setCssVarColor('palette-grey-300'));\n setColor(palette.Switch, 'defaultDisabledColor', setCssVarColor('palette-grey-600'));\n setColor(palette.Switch, 'primaryDisabledColor', safeDarken(palette.primary.main, 0.55));\n setColor(palette.Switch, 'secondaryDisabledColor', safeDarken(palette.secondary.main, 0.55));\n setColor(palette.Switch, 'errorDisabledColor', safeDarken(palette.error.main, 0.55));\n setColor(palette.Switch, 'infoDisabledColor', safeDarken(palette.info.main, 0.55));\n setColor(palette.Switch, 'successDisabledColor', safeDarken(palette.success.main, 0.55));\n setColor(palette.Switch, 'warningDisabledColor', safeDarken(palette.warning.main, 0.55));\n setColor(palette.TableCell, 'border', safeDarken(safeAlpha(palette.divider, 1), 0.68));\n setColor(palette.Tooltip, 'bg', safeAlpha(palette.grey[700], 0.92));\n }\n\n // MUI X - DataGrid needs this token.\n setColorChannel(palette.background, 'default');\n\n // added for consistency with the `background.default` token\n setColorChannel(palette.background, 'paper');\n setColorChannel(palette.common, 'background');\n setColorChannel(palette.common, 'onBackground');\n setColorChannel(palette, 'divider');\n Object.keys(palette).forEach(color => {\n const colors = palette[color];\n\n // The default palettes (primary, secondary, error, info, success, and warning) errors are handled by the above `createTheme(...)`.\n\n if (colors && typeof colors === 'object') {\n // Silent the error for custom palettes.\n if (colors.main) {\n setColor(palette[color], 'mainChannel', safeColorChannel(toRgb(colors.main)));\n }\n if (colors.light) {\n setColor(palette[color], 'lightChannel', safeColorChannel(toRgb(colors.light)));\n }\n if (colors.dark) {\n setColor(palette[color], 'darkChannel', safeColorChannel(toRgb(colors.dark)));\n }\n if (colors.contrastText) {\n setColor(palette[color], 'contrastTextChannel', safeColorChannel(toRgb(colors.contrastText)));\n }\n if (color === 'text') {\n // Text colors: text.primary, text.secondary\n setColorChannel(palette[color], 'primary');\n setColorChannel(palette[color], 'secondary');\n }\n if (color === 'action') {\n // Action colors: action.active, action.selected\n if (colors.active) {\n setColorChannel(palette[color], 'active');\n }\n if (colors.selected) {\n setColorChannel(palette[color], 'selected');\n }\n }\n }\n });\n });\n theme = args.reduce((acc, argument) => deepmerge(acc, argument), theme);\n const parserConfig = {\n prefix: cssVarPrefix,\n disableCssColorScheme,\n shouldSkipGeneratingVar,\n getSelector: defaultGetSelector(theme)\n };\n const {\n vars,\n generateThemeVars,\n generateStyleSheets\n } = prepareCssVars(theme, parserConfig);\n theme.vars = vars;\n Object.entries(theme.colorSchemes[theme.defaultColorScheme]).forEach(([key, value]) => {\n theme[key] = value;\n });\n theme.generateThemeVars = generateThemeVars;\n theme.generateStyleSheets = generateStyleSheets;\n theme.generateSpacing = function generateSpacing() {\n return createSpacing(input.spacing, createUnarySpacing(this));\n };\n theme.getColorSchemeSelector = createGetColorSchemeSelector(selector);\n theme.spacing = theme.generateSpacing();\n theme.shouldSkipGeneratingVar = shouldSkipGeneratingVar;\n theme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...input?.unstable_sxConfig\n };\n theme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n theme.toRuntimeSource = stringifyTheme; // for Pigment CSS integration\n\n return theme;\n}","import createPalette from \"./createPalette.js\";\nimport createThemeWithVars from \"./createThemeWithVars.js\";\nimport createThemeNoVars from \"./createThemeNoVars.js\";\nexport { createMuiTheme } from \"./createThemeNoVars.js\";\n// eslint-disable-next-line consistent-return\nfunction attachColorScheme(theme, scheme, colorScheme) {\n if (!theme.colorSchemes) {\n return undefined;\n }\n if (colorScheme) {\n theme.colorSchemes[scheme] = {\n ...(colorScheme !== true && colorScheme),\n palette: createPalette({\n ...(colorScheme === true ? {} : colorScheme.palette),\n mode: scheme\n }) // cast type to skip module augmentation test\n };\n }\n}\n\n/**\n * Generate a theme base on the options received.\n * @param options Takes an incomplete theme object and adds the missing parts.\n * @param args Deep merge the arguments with the about to be returned theme.\n * @returns A complete, ready-to-use theme object.\n */\nexport default function createTheme(options = {},\n// cast type to skip module augmentation test\n...args) {\n const {\n palette,\n cssVariables = false,\n colorSchemes: initialColorSchemes = !palette ? {\n light: true\n } : undefined,\n defaultColorScheme: initialDefaultColorScheme = palette?.mode,\n ...rest\n } = options;\n const defaultColorSchemeInput = initialDefaultColorScheme || 'light';\n const defaultScheme = initialColorSchemes?.[defaultColorSchemeInput];\n const colorSchemesInput = {\n ...initialColorSchemes,\n ...(palette ? {\n [defaultColorSchemeInput]: {\n ...(typeof defaultScheme !== 'boolean' && defaultScheme),\n palette\n }\n } : undefined)\n };\n if (cssVariables === false) {\n if (!('colorSchemes' in options)) {\n // Behaves exactly as v5\n return createThemeNoVars(options, ...args);\n }\n let paletteOptions = palette;\n if (!('palette' in options)) {\n if (colorSchemesInput[defaultColorSchemeInput]) {\n if (colorSchemesInput[defaultColorSchemeInput] !== true) {\n paletteOptions = colorSchemesInput[defaultColorSchemeInput].palette;\n } else if (defaultColorSchemeInput === 'dark') {\n // @ts-ignore to prevent the module augmentation test from failing\n paletteOptions = {\n mode: 'dark'\n };\n }\n }\n }\n const theme = createThemeNoVars({\n ...options,\n palette: paletteOptions\n }, ...args);\n theme.defaultColorScheme = defaultColorSchemeInput;\n theme.colorSchemes = colorSchemesInput;\n if (theme.palette.mode === 'light') {\n theme.colorSchemes.light = {\n ...(colorSchemesInput.light !== true && colorSchemesInput.light),\n palette: theme.palette\n };\n attachColorScheme(theme, 'dark', colorSchemesInput.dark);\n }\n if (theme.palette.mode === 'dark') {\n theme.colorSchemes.dark = {\n ...(colorSchemesInput.dark !== true && colorSchemesInput.dark),\n palette: theme.palette\n };\n attachColorScheme(theme, 'light', colorSchemesInput.light);\n }\n return theme;\n }\n if (!palette && !('light' in colorSchemesInput) && defaultColorSchemeInput === 'light') {\n colorSchemesInput.light = true;\n }\n return createThemeWithVars({\n ...rest,\n colorSchemes: colorSchemesInput,\n defaultColorScheme: defaultColorSchemeInput,\n ...(typeof cssVariables !== 'boolean' && cssVariables)\n }, ...args);\n}","/* eslint-disable import/prefer-default-export */\nexport function createGetColorSchemeSelector(selector) {\n return function getColorSchemeSelector(colorScheme) {\n if (selector === 'media') {\n if (process.env.NODE_ENV !== 'production') {\n if (colorScheme !== 'light' && colorScheme !== 'dark') {\n console.error(`MUI: @media (prefers-color-scheme) supports only 'light' or 'dark', but receive '${colorScheme}'.`);\n }\n }\n return `@media (prefers-color-scheme: ${colorScheme})`;\n }\n if (selector) {\n if (selector.startsWith('data-') && !selector.includes('%s')) {\n return `[${selector}=\"${colorScheme}\"] &`;\n }\n if (selector === 'class') {\n return `.${colorScheme} &`;\n }\n if (selector === 'data') {\n return `[data-${colorScheme}] &`;\n }\n return `${selector.replace('%s', colorScheme)} &`;\n }\n return '&';\n };\n}","// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.desmos.com/calculator/vbrp3ggqet\n return Math.min(Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10), 3000);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = {\n ...easing,\n ...inputTransitions.easing\n };\n const mergedDuration = {\n ...duration,\n ...inputTransitions.duration\n };\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0,\n ...other\n } = options;\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n const isNumber = value => !Number.isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (typeof options !== 'object') {\n console.error(['MUI: Secong argument of transition.create must be an object.', \"Arguments should be either `create('prop1', options)` or `create(['prop1', 'prop2'], options)`\"].join('\\n'));\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return {\n getAutoHeightDuration,\n create,\n ...inputTransitions,\n easing: mergedEasing,\n duration: mergedDuration\n };\n}","// Inspired by https://github.com/material-components/material-components-ios/blob/bca36107405594d5b7b16265a5b0ed698f85a5ee/components/Elevation/src/UIColor%2BMaterialElevation.m#L61\nexport default function getOverlayAlpha(elevation) {\n let alphaValue;\n if (elevation < 1) {\n alphaValue = 5.11916 * elevation ** 2;\n } else {\n alphaValue = 4.5 * Math.log(elevation + 1) + 2;\n }\n return Math.round(alphaValue * 10) / 1000;\n}","export default '$$material';","/**\n * @mui/styled-engine v6.1.1\n *\n * @license MIT\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/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from \"./StyledEngineProvider/index.js\";\nexport { default as GlobalStyles } from \"./GlobalStyles/index.js\";","import PropTypes from 'prop-types';\nimport deepmerge from '@mui/utils/deepmerge';\nimport merge from \"../merge/index.js\";\nimport { isCqShorthand, getContainerQuery } from \"../cssContainerQueries/index.js\";\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nconst defaultContainerQueries = {\n containerQueries: containerName => ({\n up: key => {\n let result = typeof key === 'number' ? key : values[key] || key;\n if (typeof result === 'number') {\n result = `${result}px`;\n }\n return containerName ? `@container ${containerName} (min-width:${result})` : `@container (min-width:${result})`;\n }\n })\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n if (isCqShorthand(themeBreakpoints.keys, breakpoint)) {\n const containerKey = getContainerQuery(theme.containerQueries ? theme : defaultContainerQueries, breakpoint);\n if (containerKey) {\n acc[containerKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n }\n }\n // key is breakpoint\n else if (Object.keys(themeBreakpoints.values || values).includes(breakpoint)) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction({\n theme,\n ...props[key]\n });\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? {\n ...styleFunction.propTypes,\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n } : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n const breakpointsInOrder = breakpointsInput.keys?.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","function clamp(val, min = Number.MIN_SAFE_INTEGER, max = Number.MAX_SAFE_INTEGER) {\n return Math.max(min, Math.min(val, max));\n}\nexport default clamp;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/* eslint-disable @typescript-eslint/naming-convention */\nimport clamp from '@mui/utils/clamp';\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clampWrapper(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return clamp(value, min, max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (!['rgb', 'rgba', 'hsl', 'hsla', 'color'].includes(type)) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (!['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].includes(colorSpace)) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.includes('hsl') && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.includes('rgb')) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.includes('hsl')) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.includes('color')) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.startsWith('#')) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clampWrapper(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.includes('hsl')) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.includes('rgb') || color.type.includes('color')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clampWrapper(coefficient);\n if (color.type.includes('hsl')) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.includes('rgb')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.includes('color')) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return emphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Blend a transparent overlay color with a background color, resulting in a single\n * RGB color.\n * @param {string} background - CSS color\n * @param {string} overlay - CSS color\n * @param {number} opacity - Opacity multiplier in the range 0 - 1\n * @param {number} [gamma=1.0] - Gamma correction factor. For gamma-correct blending, 2.2 is usual.\n */\nexport function blend(background, overlay, opacity, gamma = 1.0) {\n const blendChannel = (b, o) => Math.round((b ** (1 / gamma) * (1 - opacity) + o ** (1 / gamma) * opacity) ** gamma);\n const backgroundColor = decomposeColor(background);\n const overlayColor = decomposeColor(overlay);\n const rgb = [blendChannel(backgroundColor.values[0], overlayColor.values[0]), blendChannel(backgroundColor.values[1], overlayColor.values[1]), blendChannel(backgroundColor.values[2], overlayColor.values[2])];\n return recomposeColor({\n type: 'rgb',\n values: rgb\n });\n}","import { createUnarySpacing } from \"../spacing/index.js\";\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n\nexport default function createSpacing(spacingInput = 8,\n// Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n// Smaller components, such as icons, can align to a 4dp grid.\n// https://m2.material.io/design/layout/understanding-layout.html\ntransform = createUnarySpacing({\n spacing: spacingInput\n})) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return {\n ...acc,\n [obj.key]: obj.val\n };\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n unit = 'px',\n step = 5,\n ...other\n } = breakpoints;\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return {\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit,\n ...other\n };\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","/**\n * A universal utility to style components with multiple color modes. Always use it from the theme object.\n * It works with:\n * - [Basic theme](https://mui.com/material-ui/customization/dark-mode/)\n * - [CSS theme variables](https://mui.com/material-ui/customization/css-theme-variables/overview/)\n * - Zero-runtime engine\n *\n * Tips: Use an array over object spread and place `theme.applyStyles()` last.\n *\n * ✅ [{ background: '#e5e5e5' }, theme.applyStyles('dark', { background: '#1c1c1c' })]\n *\n * 🚫 { background: '#e5e5e5', ...theme.applyStyles('dark', { background: '#1c1c1c' })}\n *\n * @example\n * 1. using with `styled`:\n * ```jsx\n * const Component = styled('div')(({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]);\n * ```\n *\n * @example\n * 2. using with `sx` prop:\n * ```jsx\n * [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ]}\n * />\n * ```\n *\n * @example\n * 3. theming a component:\n * ```jsx\n * extendTheme({\n * components: {\n * MuiButton: {\n * styleOverrides: {\n * root: ({ theme }) => [\n * { background: '#e5e5e5' },\n * theme.applyStyles('dark', {\n * background: '#1c1c1c',\n * color: '#fff',\n * }),\n * ],\n * },\n * }\n * }\n * })\n *```\n */\nexport default function applyStyles(key, styles) {\n // @ts-expect-error this is 'any' type\n const theme = this;\n if (theme.vars) {\n if (!theme.colorSchemes?.[key] || typeof theme.getColorSchemeSelector !== 'function') {\n return {};\n }\n // If CssVarsProvider is used as a provider, returns '*:where({selector}) &'\n let selector = theme.getColorSchemeSelector(key);\n if (selector === '&') {\n return styles;\n }\n if (selector.includes('data-') || selector.includes('.')) {\n // '*' is required as a workaround for Emotion issue (https://github.com/emotion-js/emotion/issues/2836)\n selector = `*:where(${selector.replace(/\\s*&$/, '')}) &`;\n }\n return {\n [selector]: styles\n };\n }\n if (theme.palette.mode === key) {\n return styles;\n }\n return {};\n}","import deepmerge from '@mui/utils/deepmerge';\nimport createBreakpoints from \"../createBreakpoints/createBreakpoints.js\";\nimport cssContainerQueries from \"../cssContainerQueries/index.js\";\nimport shape from \"./shape.js\";\nimport createSpacing from \"./createSpacing.js\";\nimport styleFunctionSx from \"../styleFunctionSx/styleFunctionSx.js\";\nimport defaultSxConfig from \"../styleFunctionSx/defaultSxConfig.js\";\nimport applyStyles from \"./applyStyles.js\";\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {},\n ...other\n } = options;\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: {\n mode: 'light',\n ...paletteInput\n },\n spacing,\n shape: {\n ...shape,\n ...shapeInput\n }\n }, other);\n muiTheme = cssContainerQueries(muiTheme);\n muiTheme.applyStyles = applyStyles;\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = {\n ...defaultSxConfig,\n ...other?.unstable_sxConfig\n };\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n/**\n * For using in `sx` prop to sort the breakpoint from low to high.\n * Note: this function does not work and will not support multiple units.\n * e.g. input: { '@container (min-width:300px)': '1rem', '@container (min-width:40rem)': '2rem' }\n * output: { '@container (min-width:40rem)': '2rem', '@container (min-width:300px)': '1rem' } // since 40 < 300 eventhough 40rem > 300px\n */\nexport function sortContainerQueries(theme, css) {\n if (!theme.containerQueries) {\n return css;\n }\n const sorted = Object.keys(css).filter(key => key.startsWith('@container')).sort((a, b) => {\n const regex = /min-width:\\s*([0-9.]+)/;\n return +(a.match(regex)?.[1] || 0) - +(b.match(regex)?.[1] || 0);\n });\n if (!sorted.length) {\n return css;\n }\n return sorted.reduce((acc, key) => {\n const value = css[key];\n delete acc[key];\n acc[key] = value;\n return acc;\n }, {\n ...css\n });\n}\nexport function isCqShorthand(breakpointKeys, value) {\n return value === '@' || value.startsWith('@') && (breakpointKeys.some(key => value.startsWith(`@${key}`)) || !!value.match(/^@\\d/));\n}\nexport function getContainerQuery(theme, shorthand) {\n const matches = shorthand.match(/^@([^/]+)?\\/?(.+)?$/);\n if (!matches) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The provided shorthand ${`(${shorthand})`} is invalid. The format should be \\`@\\` or \\`@/\\`.\nFor example, \\`@sm\\` or \\`@600\\` or \\`@40rem/sidebar\\`.` : _formatMuiErrorMessage(18, `(${shorthand})`));\n }\n return null;\n }\n const [, containerQuery, containerName] = matches;\n const value = Number.isNaN(+containerQuery) ? containerQuery || 0 : +containerQuery;\n return theme.containerQueries(containerName).up(value);\n}\nexport default function cssContainerQueries(themeInput) {\n const toContainerQuery = (mediaQuery, name) => mediaQuery.replace('@media', name ? `@container ${name}` : '@container');\n function attachCq(node, name) {\n node.up = (...args) => toContainerQuery(themeInput.breakpoints.up(...args), name);\n node.down = (...args) => toContainerQuery(themeInput.breakpoints.down(...args), name);\n node.between = (...args) => toContainerQuery(themeInput.breakpoints.between(...args), name);\n node.only = (...args) => toContainerQuery(themeInput.breakpoints.only(...args), name);\n node.not = (...args) => {\n const result = toContainerQuery(themeInput.breakpoints.not(...args), name);\n if (result.includes('not all and')) {\n // `@container` does not work with `not all and`, so need to invert the logic\n return result.replace('not all and ', '').replace('min-width:', 'width<').replace('max-width:', 'width>').replace('and', 'or');\n }\n return result;\n };\n }\n const node = {};\n const containerQueries = name => {\n attachCq(node, name);\n return node;\n };\n attachCq(containerQueries);\n return {\n ...themeInput,\n containerQueries\n };\n}","import deepmerge from '@mui/utils/deepmerge';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\nexport default merge;","import responsivePropType from \"../responsivePropType/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nimport { getPath } from \"../style/index.js\";\nimport merge from \"../merge/index.js\";\nimport memoize from \"../memoize/index.js\";\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n const themeSpacing = getPath(theme, themeKey, true) ?? defaultValue;\n if (typeof themeSpacing === 'number' || typeof themeSpacing === 'string') {\n return val => {\n if (typeof val === 'string') {\n return val;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof val !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${val}.`);\n }\n }\n if (typeof themeSpacing === 'string') {\n return `calc(${val} * ${themeSpacing})`;\n }\n return themeSpacing * val;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return val => {\n if (typeof val === 'string') {\n return val;\n }\n const abs = Math.abs(val);\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n const transformed = themeSpacing[abs];\n if (val >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n return transformer(propValue);\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (!keys.includes(prop)) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport responsivePropType from \"../responsivePropType/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from \"../merge/index.js\";\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from \"../responsivePropType/index.js\";\nimport style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { createUnaryUnit, getValue } from \"../spacing/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nfunction createBorderStyle(prop, transform) {\n return style({\n prop,\n themeKey: 'borders',\n transform\n });\n}\nexport const border = createBorderStyle('border', borderTransform);\nexport const borderTop = createBorderStyle('borderTop', borderTransform);\nexport const borderRight = createBorderStyle('borderRight', borderTransform);\nexport const borderBottom = createBorderStyle('borderBottom', borderTransform);\nexport const borderLeft = createBorderStyle('borderLeft', borderTransform);\nexport const borderColor = createBorderStyle('borderColor');\nexport const borderTopColor = createBorderStyle('borderTopColor');\nexport const borderRightColor = createBorderStyle('borderRightColor');\nexport const borderBottomColor = createBorderStyle('borderBottomColor');\nexport const borderLeftColor = createBorderStyle('borderLeftColor');\nexport const outline = createBorderStyle('outline', borderTransform);\nexport const outlineColor = createBorderStyle('outlineColor');\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius, outline, outlineColor);\nexport default borders;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { createUnaryUnit, getValue } from \"../spacing/index.js\";\nimport { handleBreakpoints } from \"../breakpoints/index.js\";\nimport responsivePropType from \"../responsivePropType/index.js\";\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from \"../style/index.js\";\nimport compose from \"../compose/index.js\";\nimport { handleBreakpoints, values as breakpointsValues } from \"../breakpoints/index.js\";\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n const breakpoint = props.theme?.breakpoints?.values?.[propValue] || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (props.theme?.breakpoints?.unit !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from \"../spacing/index.js\";\nimport { borderRadius, borderTransform } from \"../borders/index.js\";\nimport { gap, rowGap, columnGap } from \"../cssGrid/index.js\";\nimport { paletteTransform } from \"../palette/index.js\";\nimport { maxWidth, sizingTransform } from \"../sizing/index.js\";\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n outline: {\n themeKey: 'borders',\n transform: borderTransform\n },\n outlineColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n font: {\n themeKey: 'font'\n },\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import { isPlainObject } from '@mui/utils/deepmerge';\nimport defaultSxConfig from \"./defaultSxConfig.js\";\nconst splitProps = props => {\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = props?.theme?.unstable_sxConfig ?? defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx,\n ...other\n } = props;\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return {\n ...systemProps,\n ...result\n };\n };\n } else {\n finalSx = {\n ...systemProps,\n ...inSx\n };\n }\n return {\n ...otherProps,\n sx: finalSx\n };\n}","import capitalize from '@mui/utils/capitalize';\nimport merge from \"../merge/index.js\";\nimport { getPath, getStyleValue as getValue } from \"../style/index.js\";\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from \"../breakpoints/index.js\";\nimport { sortContainerQueries } from \"../cssContainerQueries/index.js\";\nimport defaultSxConfig from \"./defaultSxConfig.js\";\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n const config = theme.unstable_sxConfig ?? defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return sortContainerQueries(theme, removeUnusedBreakpoints(breakpointsKeys, css));\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","'use client';\n\nimport createTheme from \"../createTheme/index.js\";\nimport useThemeWithoutDefault from \"../useThemeWithoutDefault/index.js\";\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"@mui/utils/formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","// https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\nexport function isPlainObject(item) {\n if (typeof item !== 'object' || item === null) {\n return false;\n }\n const prototype = Object.getPrototypeOf(item);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in item) && !(Symbol.iterator in item);\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? {\n ...target\n } : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n if (isPlainObject(source[key]) &&\n // Avoid prototype pollution\n Object.prototype.hasOwnProperty.call(target, key) && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/internal-babel-macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe if we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from \"../ClassNameGenerator/index.js\";\nexport const globalStateClasses = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClasses[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}\nexport function isGlobalState(slot) {\n return globalStateClasses[slot] !== undefined;\n}","import generateUtilityClass from \"../generateUtilityClass/index.js\";\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\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: unknown;\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 // We keep the raw Response for redirects so we can return it verbatim\n response: Response;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: unknown;\n statusCode?: number;\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\ntype DataFunctionReturnValue = Promise | DataFunctionValue;\n\n/**\n * Route loader function signature\n */\nexport type LoaderFunction = {\n (\n args: LoaderFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\n} & { hydrate?: boolean };\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (\n args: ActionFunctionArgs,\n handlerCtx?: unknown\n ): DataFunctionReturnValue;\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 actionStatus?: number;\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\nexport interface DataStrategyMatch\n extends AgnosticRouteMatch {\n shouldLoad: boolean;\n resolve: (\n handlerOverride?: (\n handler: (ctx?: unknown) => DataFunctionReturnValue\n ) => DataFunctionReturnValue\n ) => Promise;\n}\n\nexport interface DataStrategyFunctionArgs\n extends DataFunctionArgs {\n matches: DataStrategyMatch[];\n fetcherKey: string | null;\n}\n\n/**\n * Result from a loader or action called via dataStrategy\n */\nexport interface DataStrategyResult {\n type: \"data\" | \"error\";\n result: unknown; // data, Error, Response, DeferredData, DataWithResponseInit\n}\n\nexport interface DataStrategyFunction {\n (args: DataStrategyFunctionArgs): Promise>;\n}\n\nexport interface AgnosticPatchRoutesOnNavigationFunction<\n M extends AgnosticRouteMatch = AgnosticRouteMatch\n> {\n (opts: {\n path: string;\n matches: M[];\n patch: (routeId: string | null, children: AgnosticRouteObject[]) => void;\n }): void | Promise;\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 | boolean;\n action?: ActionFunction | boolean;\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: string[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, String(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 return matchRoutesImpl(routes, locationArg, basename, false);\n}\n\nexport function matchRoutesImpl<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename: string,\n allowPartial: boolean\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(\n branches[i],\n decoded,\n allowPartial\n );\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 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 allowPartial = false\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 let route = meta.route;\n\n if (\n !match &&\n end &&\n allowPartial &&\n !routesMeta[routesMeta.length - 1].route.index\n ) {\n match = matchPath(\n {\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end: false,\n },\n remainingPathname\n );\n }\n\n if (!match) {\n return null;\n }\n\n Object.assign(matchedParams, match.params);\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\nexport function 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 === pathMatches.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 class DataWithResponseInit {\n type: string = \"DataWithResponseInit\";\n data: D;\n init: ResponseInit | null;\n\n constructor(data: D, init?: ResponseInit) {\n this.data = data;\n this.init = init || null;\n }\n}\n\n/**\n * Create \"responses\" that contain `status`/`headers` without forcing\n * serialization into an actual `Response` - used by Remix single fetch\n */\nexport function data(data: D, init?: number | ResponseInit) {\n return new DataWithResponseInit(\n data,\n typeof init === \"number\" ? { status: init } : init\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\n/**\n * A redirect response that will perform a `history.replaceState` instead of a\n * `history.pushState` for client-side navigation redirects.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const replace: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Replace\", \"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 AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DataStrategyMatch,\n AgnosticRouteObject,\n DataResult,\n DataStrategyFunction,\n DataStrategyFunctionArgs,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n DataStrategyResult,\n ImmutableRouteKey,\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 AgnosticPatchRoutesOnNavigationFunction,\n DataWithResponseInit,\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 matchRoutesImpl,\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 * Patch additional children routes into an existing parent route\n * @param routeId The parent route id or a callback function accepting `patch`\n * to perform batch patching\n * @param children The additional children routes\n */\n patchRoutes(routeId: string | null, children: AgnosticRouteObject[]): 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 v7_skipActionErrorRevalidation: 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 unstable_patchRoutesOnNavigation?: AgnosticPatchRoutesOnNavigationFunction;\n unstable_dataStrategy?: DataStrategyFunction;\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?: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: {\n routeId?: string;\n requestContext?: unknown;\n unstable_dataStrategy?: DataStrategyFunction;\n }\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\ntype PendingActionResult = [string, SuccessResult | ErrorResult];\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\n /**\n * Tuple for the returned or thrown value from the current action. The routeId\n * is the action route for success and the bubbled boundary route for errors.\n */\n pendingActionResult?: PendingActionResult;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * Route matches which may have been updated from fog of war discovery\n */\n matches?: RouterState[\"matches\"];\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\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 let dataStrategyImpl = init.unstable_dataStrategy || defaultDataStrategy;\n let patchRoutesOnNavigationImpl = init.unstable_patchRoutesOnNavigation;\n\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 v7_skipActionErrorRevalidation: 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 // FIFO queue of previously discovered routes to prevent re-calling on\n // subsequent navigations to the same path\n let discoveredRoutesMaxSize = 1000;\n let discoveredRoutes = 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 && !patchRoutesOnNavigationImpl) {\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 // In SPA apps, if the user provided a patchRoutesOnNavigation implementation and\n // our initial match is a splat route, clear them out so we run through lazy\n // discovery on hydration in case there's a more accurate lazy route match.\n // In SSR apps (with `hydrationData`), we expect that the server will send\n // up the proper matched routes so we don't want to run lazy discovery on\n // initial hydration and want to hydrate into the splat route.\n if (initialMatches && !init.hydrationData) {\n let fogOfWar = checkFogOfWar(\n initialMatches,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active) {\n initialMatches = null;\n }\n }\n\n let initialized: boolean;\n if (!initialMatches) {\n initialized = false;\n initialMatches = [];\n\n // If partial hydration and fog of war is enabled, we will be running\n // `patchRoutesOnNavigation` during hydration so include any partial matches as\n // the initial matches so we can properly render `HydrateFallback`'s\n if (future.v7_partialHydration) {\n let fogOfWar = checkFogOfWar(\n null,\n dataRoutes,\n init.history.location.pathname\n );\n if (fogOfWar.active && fogOfWar.matches) {\n initialMatches = fogOfWar.matches;\n }\n }\n } else if (initialMatches.some((m) => m.route.lazy)) {\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 (!initialMatches.some((m) => m.route.loader)) {\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 let isRouteInitialized = (m: AgnosticDataRouteMatch) => {\n // No loader, nothing to initialize\n if (!m.route.loader) {\n return true;\n }\n // Explicitly opting-in to running on hydration\n if (\n typeof m.route.loader === \"function\" &&\n m.route.loader.hydrate === true\n ) {\n return false;\n }\n // Otherwise, initialized if hydrated with data or an error\n return (\n (loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined)\n );\n };\n\n // If errors exist, don't consider routes below the boundary\n if (errors) {\n let idx = initialMatches.findIndex(\n (m) => errors![m.route.id] !== undefined\n );\n initialized = initialMatches.slice(0, idx + 1).every(isRouteInitialized);\n } else {\n initialized = initialMatches.every(isRouteInitialized);\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: Set = new Set();\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 // Map of pending patchRoutesOnNavigation() promises (keyed by path/matches) so\n // that we only kick them off once for a given combo\n let pendingPatchRoutes = new Map<\n string,\n ReturnType\n >();\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 unblockBlockerHistoryUpdate: (() => void) | undefined = undefined;\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 (unblockBlockerHistoryUpdate) {\n unblockBlockerHistoryUpdate();\n unblockBlockerHistoryUpdate = undefined;\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 let nextHistoryUpdatePromise = new Promise((resolve) => {\n unblockBlockerHistoryUpdate = resolve;\n });\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, after the url\n // restoration is also complete. See:\n // https://github.com/remix-run/react-router/issues/11613\n nextHistoryUpdatePromise.then(() => 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 // Commit any in-flight routes at the end of the HMR revalidation \"navigation\"\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 }\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 {\n overrideNavigation: state.navigation,\n // Proxy through any rending view transition\n enableViewTransition: pendingViewTransitionEnabled === true,\n }\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 let fogOfWar = checkFogOfWar(matches, routesToUse, location.pathname);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\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 pendingActionResult: PendingActionResult | 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 pendingActionResult = [\n findNearestBoundary(matches).route.id,\n { type: ResultType.error, error: 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 actionResult = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n fogOfWar.active,\n { replace: opts.replace, flushSync }\n );\n\n if (actionResult.shortCircuited) {\n return;\n }\n\n // If we received a 404 from handleAction, it's because we couldn't lazily\n // discover the destination route so we don't want to call loaders\n if (actionResult.pendingActionResult) {\n let [routeId, result] = actionResult.pendingActionResult;\n if (\n isErrorResult(result) &&\n isRouteErrorResponse(result.error) &&\n result.error.status === 404\n ) {\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches: actionResult.matches,\n loaderData: {},\n errors: {\n [routeId]: result.error,\n },\n });\n return;\n }\n }\n\n matches = actionResult.matches || matches;\n pendingActionResult = actionResult.pendingActionResult;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n flushSync = false;\n // No need to do fog of war matching again on loader execution\n fogOfWar.active = false;\n\n // Create a GET request for the loaders\n request = createClientSideRequest(\n init.history,\n request.url,\n request.signal\n );\n }\n\n // Call loaders\n let {\n shortCircuited,\n matches: updatedMatches,\n loaderData,\n errors,\n } = await handleLoaders(\n request,\n location,\n matches,\n fogOfWar.active,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n opts && opts.initialHydration === true,\n flushSync,\n pendingActionResult\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: updatedMatches || matches,\n ...getActionDataForCommit(pendingActionResult),\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 isFogOfWar: boolean,\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 if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n pendingActionResult: [\n boundaryId,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else if (!discoverResult.matches) {\n let { notFoundMatches, error, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n pendingActionResult: [\n route.id,\n {\n type: ResultType.error,\n error,\n },\n ],\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 let results = await callDataStrategy(\n \"action\",\n state,\n request,\n [actionMatch],\n matches,\n null\n );\n result = results[actionMatch.route.id];\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 let location = normalizeRedirectLocation(\n result.response.headers.get(\"Location\")!,\n new URL(request.url),\n basename\n );\n replace = location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(request, result, true, {\n submission,\n replace,\n });\n return { shortCircuited: true };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\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 to the current location are REPLACE\n // navigations, but if the action threw an error that'll be rendered in\n // an errorElement, we fall back to PUSH so that the user can use the\n // back button to get back to the pre-submission form location to try\n // again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n matches,\n pendingActionResult: [boundaryMatch.route.id, result],\n };\n }\n\n return {\n matches,\n pendingActionResult: [actionMatch.route.id, result],\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 isFogOfWar: boolean,\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n initialHydration?: boolean,\n flushSync?: boolean,\n pendingActionResult?: PendingActionResult\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 // 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 it's not a \"navigation\"\n let shouldUpdateNavigationState =\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration);\n\n // When fog of war is enabled, we enter our `loading` state earlier so we\n // can discover new routes during the `loading` state. We skip this if\n // we've already run actions since we would have done our matching already.\n // If the children() function threw then, we want to proceed with the\n // partial matches it discovered.\n if (isFogOfWar) {\n if (shouldUpdateNavigationState) {\n let actionData = getUpdatedActionData(pendingActionResult);\n updateState(\n {\n navigation: loadingNavigation,\n ...(actionData !== undefined ? { actionData } : {}),\n },\n {\n flushSync,\n }\n );\n }\n\n let discoverResult = await discoverRoutes(\n matches,\n location.pathname,\n request.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return { shortCircuited: true };\n } else if (discoverResult.type === \"error\") {\n let { boundaryId, error } = handleDiscoverRouteError(\n location.pathname,\n discoverResult\n );\n return {\n matches: discoverResult.partialMatches,\n loaderData: {},\n errors: {\n [boundaryId]: error,\n },\n };\n } else if (!discoverResult.matches) {\n let { error, notFoundMatches, route } = handleNavigational404(\n location.pathname\n );\n return {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n };\n } else {\n matches = discoverResult.matches;\n }\n }\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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionResult\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? { [pendingActionResult[0]]: pendingActionResult[1].error }\n : null,\n ...getActionDataForCommit(pendingActionResult),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n },\n { flushSync }\n );\n return { shortCircuited: true };\n }\n\n if (shouldUpdateNavigationState) {\n let updates: Partial = {};\n if (!isFogOfWar) {\n // Only update navigation/actionNData if we didn't already do it above\n updates.navigation = loadingNavigation;\n let actionData = getUpdatedActionData(pendingActionResult);\n if (actionData !== undefined) {\n updates.actionData = actionData;\n }\n }\n if (revalidatingFetchers.length > 0) {\n updates.fetchers = getUpdatedRevalidatingFetchers(revalidatingFetchers);\n }\n updateState(updates, { flushSync });\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 { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\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(loaderResults);\n if (redirect) {\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\n return { shortCircuited: true };\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\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 fetchRedirectIds.add(redirect.key);\n await startRedirectNavigation(request, redirect.result, true, {\n replace,\n });\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 pendingActionResult,\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 // During partial hydration, preserve SSR errors for routes that don't re-run\n if (future.v7_partialHydration && initialHydration && state.errors) {\n Object.entries(state.errors)\n .filter(([id]) => !matchesToLoad.some((m) => m.route.id === id))\n .forEach(([routeId, error]) => {\n errors = Object.assign(errors || {}, { [routeId]: error });\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 matches,\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getUpdatedActionData(\n pendingActionResult: PendingActionResult | undefined\n ): Record | null | undefined {\n if (pendingActionResult && !isErrorResult(pendingActionResult[1])) {\n // This is cast to `any` currently because `RouteData`uses any and it\n // would be a breaking change to use any.\n // TODO: v7 - change `RouteData` to use `unknown` instead of `any`\n return {\n [pendingActionResult[0]]: pendingActionResult[1].data as any,\n };\n } else if (state.actionData) {\n if (Object.keys(state.actionData).length === 0) {\n return null;\n } else {\n return state.actionData;\n }\n }\n }\n\n function getUpdatedRevalidatingFetchers(\n revalidatingFetchers: RevalidatingFetcher[]\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 return new Map(state.fetchers);\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 let fogOfWar = checkFogOfWar(matches, routesToUse, normalizedPath);\n if (fogOfWar.active && fogOfWar.matches) {\n matches = fogOfWar.matches;\n }\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 fogOfWar.active,\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 fogOfWar.active,\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 isFogOfWar: boolean,\n flushSync: boolean,\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n function detectAndHandle405Error(m: AgnosticDataRouteMatch) {\n if (!m.route.action && !m.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 true;\n }\n return false;\n }\n\n if (!isFogOfWar && detectAndHandle405Error(match)) {\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n requestMatches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n requestMatches = discoverResult.matches;\n match = getTargetMatch(requestMatches, path);\n\n if (detectAndHandle405Error(match)) {\n return;\n }\n }\n }\n\n // Call the action for the fetcher\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResults = await callDataStrategy(\n \"action\",\n state,\n fetchRequest,\n [match],\n requestMatches,\n key\n );\n let actionResult = actionResults[match.route.id];\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(fetchRequest, actionResult, false, {\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 future.v7_skipActionErrorRevalidation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n [match.route.id, actionResult]\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 { loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state,\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(loaderResults);\n if (redirect) {\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n redirect = findRedirect(fetcherResults);\n if (redirect) {\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 fetchRedirectIds.add(redirect.key);\n return startRedirectNavigation(\n revalidationRequest,\n redirect.result,\n false\n );\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n 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 isFogOfWar: boolean,\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 let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n\n if (isFogOfWar) {\n let discoverResult = await discoverRoutes(\n matches,\n path,\n fetchRequest.signal\n );\n\n if (discoverResult.type === \"aborted\") {\n return;\n } else if (discoverResult.type === \"error\") {\n let { error } = handleDiscoverRouteError(path, discoverResult);\n setFetcherError(key, routeId, error, { flushSync });\n return;\n } else if (!discoverResult.matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: path }),\n { flushSync }\n );\n return;\n } else {\n matches = discoverResult.matches;\n match = getTargetMatch(matches, path);\n }\n }\n\n // Call the loader for this fetcher route match\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let results = await callDataStrategy(\n \"loader\",\n state,\n fetchRequest,\n [match],\n matches,\n key\n );\n let result = results[match.route.id];\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(fetchRequest, result, false);\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 request: Request,\n redirect: RedirectResult,\n isNavigation: boolean,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.response.headers.has(\"X-Remix-Revalidate\")) {\n isRevalidationRequired = true;\n }\n\n let location = redirect.response.headers.get(\"Location\");\n invariant(location, \"Expected a Location header on the redirect Response\");\n location = normalizeRedirectLocation(\n location,\n new URL(request.url),\n basename\n );\n let redirectLocation = createLocation(state.location, location, {\n _isRedirect: true,\n });\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.response.headers.has(\"X-Remix-Reload-Document\")) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(location)) {\n const url = init.history.createURL(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(location);\n } else {\n routerWindow.location.assign(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 || redirect.response.headers.has(\"X-Remix-Replace\")\n ? HistoryAction.Replace\n : 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.response.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: location,\n },\n // Preserve these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\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 these flags across redirects\n preventScrollReset: pendingPreventScrollReset,\n enableViewTransition: isNavigation\n ? pendingViewTransitionEnabled\n : undefined,\n });\n }\n }\n\n // Utility wrapper for calling dataStrategy client-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n state: RouterState,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null\n ): Promise> {\n let results: Record;\n let dataResults: Record = {};\n try {\n results = await callDataStrategyImpl(\n dataStrategyImpl,\n type,\n state,\n request,\n matchesToLoad,\n matches,\n fetcherKey,\n manifest,\n mapRouteProperties\n );\n } catch (e) {\n // If the outer dataStrategy method throws, just return the error for all\n // matches - and it'll naturally bubble to the root\n matchesToLoad.forEach((m) => {\n dataResults[m.route.id] = {\n type: ResultType.error,\n error: e,\n };\n });\n return dataResults;\n }\n\n for (let [routeId, result] of Object.entries(results)) {\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n dataResults[routeId] = {\n type: ResultType.redirect,\n response: normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n routeId,\n matches,\n basename,\n future.v7_relativeSplatPath\n ),\n };\n } else {\n dataResults[routeId] = await convertDataStrategyResultToDataResult(\n result\n );\n }\n }\n\n return dataResults;\n }\n\n async function callLoadersAndMaybeResolveData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n let currentMatches = state.matches;\n\n // Kick off loaders and fetchers in parallel\n let loaderResultsPromise = callDataStrategy(\n \"loader\",\n state,\n request,\n matchesToLoad,\n matches,\n null\n );\n\n let fetcherResultsPromise = Promise.all(\n fetchersToLoad.map(async (f) => {\n if (f.matches && f.match && f.controller) {\n let results = await callDataStrategy(\n \"loader\",\n state,\n createClientSideRequest(init.history, f.path, f.controller.signal),\n [f.match],\n f.matches,\n f.key\n );\n let result = results[f.match.route.id];\n // Fetcher results are keyed by fetcher key from here on out, not routeId\n return { [f.key]: result };\n } else {\n return Promise.resolve({\n [f.key]: {\n type: ResultType.error,\n error: getInternalRouterError(404, {\n pathname: f.path,\n }),\n } as ErrorResult,\n });\n }\n })\n );\n\n let loaderResults = await loaderResultsPromise;\n let fetcherResults = (await fetcherResultsPromise).reduce(\n (acc, r) => Object.assign(acc, r),\n {}\n );\n\n await Promise.all([\n resolveNavigationDeferredResults(\n matches,\n loaderResults,\n request.signal,\n currentMatches,\n state.loaderData\n ),\n resolveFetcherDeferredResults(matches, fetcherResults, fetchersToLoad),\n ]);\n\n return {\n loaderResults,\n fetcherResults,\n };\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.add(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 cancelledFetcherLoads.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 handleNavigational404(pathname: string) {\n let error = getInternalRouterError(404, { pathname });\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let { matches, route } = getShortCircuitMatches(routesToUse);\n\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n\n return { notFoundMatches: matches, route, error };\n }\n\n function handleDiscoverRouteError(\n pathname: string,\n discoverResult: DiscoverRoutesErrorResult\n ) {\n return {\n boundaryId: findNearestBoundary(discoverResult.partialMatches).route.id,\n error: getInternalRouterError(400, {\n type: \"route-discovery\",\n pathname,\n message:\n discoverResult.error != null && \"message\" in discoverResult.error\n ? discoverResult.error\n : String(discoverResult.error),\n }),\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 checkFogOfWar(\n matches: AgnosticDataRouteMatch[] | null,\n routesToUse: AgnosticDataRouteObject[],\n pathname: string\n ): { active: boolean; matches: AgnosticDataRouteMatch[] | null } {\n if (patchRoutesOnNavigationImpl) {\n // Don't bother re-calling patchRouteOnMiss for a path we've already\n // processed. the last execution would have patched the route tree\n // accordingly so `matches` here are already accurate.\n if (discoveredRoutes.has(pathname)) {\n return { active: false, matches };\n }\n\n if (!matches) {\n let fogMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n return { active: true, matches: fogMatches || [] };\n } else {\n if (Object.keys(matches[0].params).length > 0) {\n // If we matched a dynamic param or a splat, it might only be because\n // we haven't yet discovered other routes that would match with a\n // higher score. Call patchRoutesOnNavigation just to be sure\n let partialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n return { active: true, matches: partialMatches };\n }\n }\n }\n\n return { active: false, matches: null };\n }\n\n type DiscoverRoutesSuccessResult = {\n type: \"success\";\n matches: AgnosticDataRouteMatch[] | null;\n };\n type DiscoverRoutesErrorResult = {\n type: \"error\";\n error: any;\n partialMatches: AgnosticDataRouteMatch[];\n };\n type DiscoverRoutesAbortedResult = { type: \"aborted\" };\n type DiscoverRoutesResult =\n | DiscoverRoutesSuccessResult\n | DiscoverRoutesErrorResult\n | DiscoverRoutesAbortedResult;\n\n async function discoverRoutes(\n matches: AgnosticDataRouteMatch[],\n pathname: string,\n signal: AbortSignal\n ): Promise {\n let partialMatches: AgnosticDataRouteMatch[] | null = matches;\n while (true) {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n try {\n await loadLazyRouteChildren(\n patchRoutesOnNavigationImpl!,\n pathname,\n partialMatches,\n routesToUse,\n manifest,\n mapRouteProperties,\n pendingPatchRoutes,\n signal\n );\n } catch (e) {\n return { type: \"error\", error: e, partialMatches };\n } finally {\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity so when we `updateState` at the end of\n // this navigation/fetch `router.routes` will be a new identity and\n // trigger a re-run of memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n }\n }\n\n if (signal.aborted) {\n return { type: \"aborted\" };\n }\n\n let newMatches = matchRoutes(routesToUse, pathname, basename);\n if (newMatches) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: newMatches };\n }\n\n let newPartialMatches = matchRoutesImpl(\n routesToUse,\n pathname,\n basename,\n true\n );\n\n // Avoid loops if the second pass results in the same partial matches\n if (\n !newPartialMatches ||\n (partialMatches.length === newPartialMatches.length &&\n partialMatches.every(\n (m, i) => m.route.id === newPartialMatches![i].route.id\n ))\n ) {\n addToFifoQueue(pathname, discoveredRoutes);\n return { type: \"success\", matches: null };\n }\n\n partialMatches = newPartialMatches;\n }\n }\n\n function addToFifoQueue(path: string, queue: Set) {\n if (queue.size >= discoveredRoutesMaxSize) {\n let first = queue.values().next().value;\n queue.delete(first);\n }\n queue.add(path);\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n function patchRoutes(\n routeId: string | null,\n children: AgnosticRouteObject[]\n ): void {\n let isNonHMR = inFlightDataRoutes == null;\n let routesToUse = inFlightDataRoutes || dataRoutes;\n patchRoutesImpl(\n routeId,\n children,\n routesToUse,\n manifest,\n mapRouteProperties\n );\n\n // If we are not in the middle of an HMR revalidation and we changed the\n // routes, provide a new identity and trigger a reflow via `updateState`\n // to re-run memoized `router.routes` dependencies.\n // HMR will already update the identity and reflow when it lands\n // `inFlightDataRoutes` in `completeNavigation`\n if (isNonHMR) {\n dataRoutes = [...dataRoutes];\n updateState({});\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 patchRoutes,\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 * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n * - `opts.skipLoaderErrorBubbling` is an optional parameter that will prevent\n * the bubbling of errors which allows single-fetch-type implementations\n * where the client will handle the bubbling and we may need to return data\n * for the handling route\n */\n async function query(\n request: Request,\n {\n requestContext,\n skipLoaderErrorBubbling,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n skipLoaderErrorBubbling?: boolean;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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(\n request,\n location,\n matches,\n requestContext,\n unstable_dataStrategy || null,\n skipLoaderErrorBubbling === true,\n null\n );\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 * - `opts.routeId` allows you to specify the specific route handler to call.\n * If not provided the handler will determine the proper route by matching\n * against `request.url`\n * - `opts.requestContext` is an optional server context that will be passed\n * to actions/loaders in the `context` parameter\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n unstable_dataStrategy,\n }: {\n requestContext?: unknown;\n routeId?: string;\n unstable_dataStrategy?: DataStrategyFunction;\n } = {}\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 unstable_dataStrategy || null,\n false,\n match\n );\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null\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 unstable_dataStrategy,\n skipLoaderErrorBubbling,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\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 for a\n // `queryRoute` call, we throw the `DataStrategyResult` to bail out early\n // and then return or throw the raw Response here accordingly\n if (isDataStrategyResult(e) && isResponse(e.result)) {\n if (e.type === ResultType.error) {\n throw e.result;\n }\n return e.result;\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 unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\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 let results = await callDataStrategy(\n \"action\",\n request,\n [actionMatch],\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\n );\n result = results[actionMatch.route.id];\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.response.status,\n headers: {\n Location: result.response.headers.get(\"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 // 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\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 = skipLoaderErrorBubbling\n ? actionMatch\n : findNearestBoundary(matches, actionMatch.route.id);\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null,\n [boundaryMatch.route.id, result]\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 : result.statusCode != null\n ? result.statusCode\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n let context = await loadRouteData(\n loaderRequest,\n matches,\n requestContext,\n unstable_dataStrategy,\n skipLoaderErrorBubbling,\n null\n );\n\n return {\n ...context,\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionHeaders: result.headers\n ? { [actionMatch.route.id]: result.headers }\n : {},\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null,\n skipLoaderErrorBubbling: boolean,\n routeMatch: AgnosticDataRouteMatch | null,\n pendingActionResult?: PendingActionResult\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 : pendingActionResult && isErrorResult(pendingActionResult[1])\n ? getLoaderMatchesUntilBoundary(matches, pendingActionResult[0])\n : matches;\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:\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? {\n [pendingActionResult[0]]: pendingActionResult[1].error,\n }\n : null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await callDataStrategy(\n \"loader\",\n request,\n matchesToLoad,\n matches,\n isRouteRequest,\n requestContext,\n unstable_dataStrategy\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 results,\n pendingActionResult,\n activeDeferreds,\n skipLoaderErrorBubbling\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 // Utility wrapper for calling dataStrategy server-side without having to\n // pass around the manifest, mapRouteProperties, etc.\n async function callDataStrategy(\n type: \"loader\" | \"action\",\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n isRouteRequest: boolean,\n requestContext: unknown,\n unstable_dataStrategy: DataStrategyFunction | null\n ): Promise> {\n let results = await callDataStrategyImpl(\n unstable_dataStrategy || defaultDataStrategy,\n type,\n null,\n request,\n matchesToLoad,\n matches,\n null,\n manifest,\n mapRouteProperties,\n requestContext\n );\n\n let dataResults: Record = {};\n await Promise.all(\n matches.map(async (match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let result = results[match.route.id];\n if (isRedirectDataStrategyResultResult(result)) {\n let response = result.result as Response;\n // Throw redirects and let the server handle them with an HTTP redirect\n throw normalizeRelativeRoutingRedirectResponse(\n response,\n request,\n match.route.id,\n matches,\n basename,\n future.v7_relativeSplatPath\n );\n }\n if (isResponse(result.result) && isRouteRequest) {\n // For SSR single-route requests, we want to hand Responses back\n // directly without unwrapping\n throw result;\n }\n\n dataResults[match.route.id] =\n await convertDataStrategyResultToDataResult(result);\n })\n );\n return dataResults;\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 skipActionErrorRevalidation: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: Set,\n deletedFetchers: Set,\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionResult?: PendingActionResult\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingActionResult\n ? isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : pendingActionResult[1].data\n : undefined;\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 =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[0]\n : undefined;\n let boundaryMatches = boundaryId\n ? getLoaderMatchesUntilBoundary(matches, boundaryId)\n : matches;\n\n // Don't revalidate loaders by default after action 4xx/5xx responses\n // when the flag is enabled. They can still opt-into revalidation via\n // `shouldRevalidate` via `actionResult`\n let actionStatus = pendingActionResult\n ? pendingActionResult[1].statusCode\n : undefined;\n let shouldSkipRevalidation =\n skipActionErrorRevalidation && actionStatus && actionStatus >= 400;\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 (typeof route.loader !== \"function\" || 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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\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.has(key)) {\n // Always mark for revalidation if the fetcher was cancelled\n cancelledFetcherLoads.delete(key);\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 actionStatus,\n defaultShouldRevalidate: shouldSkipRevalidation\n ? false\n : 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 * Idempotent utility to execute patchRoutesOnNavigation() to lazily load route\n * definitions and update the routes/routeManifest\n */\nasync function loadLazyRouteChildren(\n patchRoutesOnNavigationImpl: AgnosticPatchRoutesOnNavigationFunction,\n path: string,\n matches: AgnosticDataRouteMatch[],\n routes: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n pendingRouteChildren: Map<\n string,\n ReturnType\n >,\n signal: AbortSignal\n) {\n let key = [path, ...matches.map((m) => m.route.id)].join(\"-\");\n try {\n let pending = pendingRouteChildren.get(key);\n if (!pending) {\n pending = patchRoutesOnNavigationImpl({\n path,\n matches,\n patch: (routeId, children) => {\n if (!signal.aborted) {\n patchRoutesImpl(\n routeId,\n children,\n routes,\n manifest,\n mapRouteProperties\n );\n }\n },\n });\n pendingRouteChildren.set(key, pending);\n }\n\n if (pending && isPromise(pending)) {\n await pending;\n }\n } finally {\n pendingRouteChildren.delete(key);\n }\n}\n\nfunction patchRoutesImpl(\n routeId: string | null,\n children: AgnosticRouteObject[],\n routesToUse: AgnosticDataRouteObject[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction\n) {\n if (routeId) {\n let route = manifest[routeId];\n invariant(\n route,\n `No route found to patch children into: routeId = ${routeId}`\n );\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [routeId, \"patch\", String(route.children?.length || \"0\")],\n manifest\n );\n if (route.children) {\n route.children.push(...dataChildren);\n } else {\n route.children = dataChildren;\n }\n } else {\n let dataChildren = convertRoutesToDataRoutes(\n children,\n mapRouteProperties,\n [\"patch\", String(routesToUse.length || \"0\")],\n manifest\n );\n routesToUse.push(...dataChildren);\n }\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\n// Default implementation of `dataStrategy` which fetches all loaders in parallel\nasync function defaultDataStrategy({\n matches,\n}: DataStrategyFunctionArgs): ReturnType {\n let matchesToLoad = matches.filter((m) => m.shouldLoad);\n let results = await Promise.all(matchesToLoad.map((m) => m.resolve()));\n return results.reduce(\n (acc, result, i) =>\n Object.assign(acc, { [matchesToLoad[i].route.id]: result }),\n {}\n );\n}\n\nasync function callDataStrategyImpl(\n dataStrategyImpl: DataStrategyFunction,\n type: \"loader\" | \"action\",\n state: RouterState | null,\n request: Request,\n matchesToLoad: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n fetcherKey: string | null,\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n requestContext?: unknown\n): Promise> {\n let loadRouteDefinitionsPromises = matches.map((m) =>\n m.route.lazy\n ? loadLazyRouteModule(m.route, mapRouteProperties, manifest)\n : undefined\n );\n\n let dsMatches = matches.map((match, i) => {\n let loadRoutePromise = loadRouteDefinitionsPromises[i];\n let shouldLoad = matchesToLoad.some((m) => m.route.id === match.route.id);\n // `resolve` encapsulates route.lazy(), executing the loader/action,\n // and mapping return values/thrown errors to a `DataStrategyResult`. Users\n // can pass a callback to take fine-grained control over the execution\n // of the loader/action\n let resolve: DataStrategyMatch[\"resolve\"] = async (handlerOverride) => {\n if (\n handlerOverride &&\n request.method === \"GET\" &&\n (match.route.lazy || match.route.loader)\n ) {\n shouldLoad = true;\n }\n return shouldLoad\n ? callLoaderOrAction(\n type,\n request,\n match,\n loadRoutePromise,\n handlerOverride,\n requestContext\n )\n : Promise.resolve({ type: ResultType.data, result: undefined });\n };\n\n return {\n ...match,\n shouldLoad,\n resolve,\n };\n });\n\n // Send all matches here to allow for a middleware-type implementation.\n // handler will be a no-op for unneeded routes and we filter those results\n // back out below.\n let results = await dataStrategyImpl({\n matches: dsMatches,\n request,\n params: matches[0].params,\n fetcherKey,\n context: requestContext,\n });\n\n // Wait for all routes to load here but 'swallow the error since we want\n // it to bubble up from the `await loadRoutePromise` in `callLoaderOrAction` -\n // called from `match.resolve()`\n try {\n await Promise.all(loadRouteDefinitionsPromises);\n } catch (e) {\n // No-op\n }\n\n return results;\n}\n\n// Default logic for calling a loader/action is the user has no specified a dataStrategy\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n loadRoutePromise: Promise | undefined,\n handlerOverride: Parameters[0],\n staticContext?: unknown\n): Promise {\n let result: DataStrategyResult;\n let onReject: (() => void) | undefined;\n\n let runHandler = (\n handler: AgnosticRouteObject[\"loader\"] | AgnosticRouteObject[\"action\"]\n ): Promise => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n // This will never resolve so safe to type it as Promise to\n // satisfy the function return value\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n let actualHandler = (ctx?: unknown) => {\n if (typeof handler !== \"function\") {\n return Promise.reject(\n new Error(\n `You cannot call the handler for a route which defines a boolean ` +\n `\"${type}\" [routeId: ${match.route.id}]`\n )\n );\n }\n return handler(\n {\n request,\n params: match.params,\n context: staticContext,\n },\n ...(ctx !== undefined ? [ctx] : [])\n );\n };\n\n let handlerPromise: Promise = (async () => {\n try {\n let val = await (handlerOverride\n ? handlerOverride((ctx: unknown) => actualHandler(ctx))\n : actualHandler());\n return { type: \"data\", result: val };\n } catch (e) {\n return { type: \"error\", result: e };\n }\n })();\n\n return Promise.race([handlerPromise, abortPromise]);\n };\n\n try {\n let handler = match.route[type];\n\n // If we have a route.lazy promise, await that first\n if (loadRoutePromise) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let [value] = 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 loadRoutePromise,\n ]);\n if (handlerError !== undefined) {\n throw handlerError;\n }\n result = value!;\n } else {\n // Load lazy route module, then run any returned handler\n await loadRoutePromise;\n\n handler = match.route[type];\n if (handler) {\n // Handler still runs 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, result: 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.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 // We should already be catching and converting normal handler executions to\n // DataStrategyResults and returning them, so anything that throws here is an\n // unexpected error we still need to wrap\n return { type: ResultType.error, result: e };\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n return result;\n}\n\nasync function convertDataStrategyResultToDataResult(\n dataStrategyResult: DataStrategyResult\n): Promise {\n let { result, type } = dataStrategyResult;\n\n if (isResponse(result)) {\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 (type === ResultType.error) {\n return {\n type: ResultType.error,\n error: new ErrorResponseImpl(result.status, result.statusText, data),\n statusCode: result.status,\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 (type === ResultType.error) {\n if (isDataWithResponseInit(result)) {\n if (result.data instanceof Error) {\n return {\n type: ResultType.error,\n error: result.data,\n statusCode: result.init?.status,\n };\n }\n\n // Convert thrown unstable_data() to ErrorResponse instances\n result = new ErrorResponseImpl(\n result.init?.status || 500,\n undefined,\n result.data\n );\n }\n return {\n type: ResultType.error,\n error: result,\n statusCode: isRouteErrorResponse(result) ? result.status : undefined,\n };\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 if (isDataWithResponseInit(result)) {\n return {\n type: ResultType.data,\n data: result.data,\n statusCode: result.init?.status,\n headers: result.init?.headers\n ? new Headers(result.init.headers)\n : undefined,\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Support relative routing in internal redirects\nfunction normalizeRelativeRoutingRedirectResponse(\n response: Response,\n request: Request,\n routeId: string,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n v7_relativeSplatPath: boolean\n) {\n let location = response.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let trimmedMatches = matches.slice(\n 0,\n matches.findIndex((m) => m.route.id === routeId) + 1\n );\n location = normalizeTo(\n new URL(request.url),\n trimmedMatches,\n basename,\n true,\n location,\n v7_relativeSplatPath\n );\n response.headers.set(\"Location\", location);\n }\n\n return response;\n}\n\nfunction normalizeRedirectLocation(\n location: string,\n currentUrl: URL,\n basename: string\n): string {\n if (ABSOLUTE_URL_REGEX.test(location)) {\n // Strip off the protocol+origin for same-origin + same-basename absolute redirects\n let normalizedLocation = location;\n let url = normalizedLocation.startsWith(\"//\")\n ? new URL(currentUrl.protocol + normalizedLocation)\n : new URL(normalizedLocation);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n return url.pathname + url.search + url.hash;\n }\n }\n return location;\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 results: Record,\n pendingActionResult: PendingActionResult | undefined,\n activeDeferreds: Map,\n skipLoaderErrorBubbling: boolean\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 let pendingError =\n pendingActionResult && isErrorResult(pendingActionResult[1])\n ? pendingActionResult[1].error\n : undefined;\n\n // Process loader results into state.loaderData/state.errors\n matches.forEach((match) => {\n if (!(match.route.id in results)) {\n return;\n }\n let id = match.route.id;\n let result = results[id];\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\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 !== undefined) {\n error = pendingError;\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n if (skipLoaderErrorBubbling) {\n errors[id] = error;\n } else {\n // Look upwards from the matched route for the closest ancestor error\n // boundary, defaulting to the root match. Prefer higher error values\n // if lower errors bubble to the same boundary\n let boundaryMatch = findNearestBoundary(matches, id);\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\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 // 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 } else {\n loaderData[id] = result.data;\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (result.statusCode && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\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 !== undefined && pendingActionResult) {\n errors = { [pendingActionResult[0]]: pendingError };\n loaderData[pendingActionResult[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: Record,\n pendingActionResult: PendingActionResult | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: Record,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n results,\n pendingActionResult,\n activeDeferreds,\n false // This method is only called client side so we always want to bubble\n );\n\n // Process results from our revalidating fetchers\n revalidatingFetchers.forEach((rf) => {\n let { key, match, controller } = rf;\n let result = fetcherResults[key];\n invariant(result, \"Did not find corresponding fetcher result\");\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n return;\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\nfunction getActionDataForCommit(\n pendingActionResult: PendingActionResult | undefined\n) {\n if (!pendingActionResult) {\n return {};\n }\n return isErrorResult(pendingActionResult[1])\n ? {\n // Clear out prior actionData on errors\n actionData: {},\n }\n : {\n actionData: {\n [pendingActionResult[0]]: pendingActionResult[1].data,\n },\n };\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 message,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\" | \"route-discovery\";\n message?: string;\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 (type === \"route-discovery\") {\n errorMessage =\n `Unable to match URL \"${pathname}\" - the \\`unstable_patchRoutesOnNavigation()\\` ` +\n `function threw the following error:\\n${message}`;\n } else 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: Record\n): { key: string; result: RedirectResult } | undefined {\n let entries = Object.entries(results);\n for (let i = entries.length - 1; i >= 0; i--) {\n let [key, result] = entries[i];\n if (isRedirectResult(result)) {\n return { key, result };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n 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 isPromise(val: unknown): val is Promise {\n return typeof val === \"object\" && val != null && \"then\" in val;\n}\n\nfunction isDataStrategyResult(result: unknown): result is DataStrategyResult {\n return (\n result != null &&\n typeof result === \"object\" &&\n \"type\" in result &&\n \"result\" in result &&\n (result.type === ResultType.data || result.type === ResultType.error)\n );\n}\n\nfunction isRedirectDataStrategyResultResult(result: DataStrategyResult) {\n return (\n isResponse(result.result) && redirectStatusCodes.has(result.result.status)\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDataWithResponseInit(\n value: any\n): value is DataWithResponseInit {\n return (\n typeof value === \"object\" &&\n value != null &&\n \"type\" in value &&\n \"data\" in value &&\n \"init\" in value &&\n value.type === \"DataWithResponseInit\"\n );\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 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 resolveNavigationDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n signal: AbortSignal,\n currentMatches: AgnosticDataRouteMatch[],\n currentLoaderData: RouteData\n) {\n let entries = Object.entries(results);\n for (let index = 0; index < entries.length; index++) {\n let [routeId, result] = entries[index];\n let match = matches.find((m) => m?.route.id === routeId);\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) && isRevalidatingLoader) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, false).then((result) => {\n if (result) {\n results[routeId] = result;\n }\n });\n }\n }\n}\n\nasync function resolveFetcherDeferredResults(\n matches: (AgnosticDataRouteMatch | null)[],\n results: Record,\n revalidatingFetchers: RevalidatingFetcher[]\n) {\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, routeId, controller } = revalidatingFetchers[index];\n let result = results[key];\n let match = matches.find((m) => m?.route.id === routeId);\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 if (isDeferredResult(result)) {\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 invariant(\n controller,\n \"Expected an AbortController for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, controller.signal, true).then(\n (result) => {\n if (result) {\n results[key] = result;\n }\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//#endregion\n","var getDefaultParent = function (originalTarget) {\n if (typeof document === 'undefined') {\n return null;\n }\n var sampleTarget = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return sampleTarget.ownerDocument.body;\n};\nvar counterMap = new WeakMap();\nvar uncontrolledNodes = new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = function (node) {\n return node && (node.host || unwrapHost(node.parentNode));\n};\nvar correctTargets = function (parent, targets) {\n return targets\n .map(function (target) {\n if (parent.contains(target)) {\n return target;\n }\n var correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error('aria-hidden', target, 'in not contained inside', parent, '. Doing nothing');\n return null;\n })\n .filter(function (x) { return Boolean(x); });\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @param {String} [controlAttribute] - html Attribute to control\n * @return {Undo} undo command\n */\nvar applyAttributeToOthers = function (originalTarget, parentNode, markerName, controlAttribute) {\n var targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n var markerCounter = markerMap[markerName];\n var hiddenNodes = [];\n var elementsToKeep = new Set();\n var elementsToStop = new Set(targets);\n var keep = function (el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n var deep = function (parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, function (node) {\n if (elementsToKeep.has(node)) {\n deep(node);\n }\n else {\n try {\n var attr = node.getAttribute(controlAttribute);\n var alreadyHidden = attr !== null && attr !== 'false';\n var counterValue = (counterMap.get(node) || 0) + 1;\n var markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, 'true');\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n catch (e) {\n console.error('aria-hidden: cannot operate on ', node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return function () {\n hiddenNodes.forEach(function (node) {\n var counterValue = counterMap.get(node) - 1;\n var markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n // clear\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledNodes = new WeakMap();\n markerMap = {};\n }\n };\n};\n/**\n * Marks everything except given node(or nodes) as aria-hidden\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var hideOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-aria-hidden'; }\n var targets = Array.from(Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n // we should not hide ariaLive elements - https://github.com/theKashey/aria-hidden/issues/10\n targets.push.apply(targets, Array.from(activeParentNode.querySelectorAll('[aria-live]')));\n return applyAttributeToOthers(targets, activeParentNode, markerName, 'aria-hidden');\n};\n/**\n * Marks everything except given node(or nodes) as inert\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var inertOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-inert-ed'; }\n var activeParentNode = parentNode || getDefaultParent(originalTarget);\n if (!activeParentNode) {\n return function () { return null; };\n }\n return applyAttributeToOthers(originalTarget, activeParentNode, markerName, 'inert');\n};\n/**\n * @returns if current browser supports inert\n */\nexport var supportsInert = function () {\n return typeof HTMLElement !== 'undefined' && HTMLElement.prototype.hasOwnProperty('inert');\n};\n/**\n * Automatic function to \"suppress\" DOM elements - _hide_ or _inert_ in the best possible way\n * @param {Element | Element[]} originalTarget - elements to keep on the page\n * @param [parentNode] - top element, defaults to document.body\n * @param {String} [markerName] - a special attribute to mark every node\n * @return {Undo} undo command\n */\nexport var suppressOthers = function (originalTarget, parentNode, markerName) {\n if (markerName === void 0) { markerName = 'data-suppressed'; }\n return (supportsInert() ? inertOthers : hideOthers)(originalTarget, parentNode, markerName);\n};\n","/*!\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","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar ClientUAInstance = new UAParser();\nvar browser = ClientUAInstance.getBrowser();\nvar cpu = ClientUAInstance.getCPU();\nvar device = ClientUAInstance.getDevice();\nvar engine = ClientUAInstance.getEngine();\nvar os = ClientUAInstance.getOS();\nvar ua = ClientUAInstance.getUA();\nvar setUa = function setUa(userAgentString) {\n return ClientUAInstance.setUA(userAgentString);\n};\nvar parseUserAgent = function parseUserAgent(userAgent) {\n if (!userAgent) {\n console.error('No userAgent string was provided');\n return;\n }\n\n var UserAgentInstance = new UAParser(userAgent);\n return {\n UA: UserAgentInstance,\n browser: UserAgentInstance.getBrowser(),\n cpu: UserAgentInstance.getCPU(),\n device: UserAgentInstance.getDevice(),\n engine: UserAgentInstance.getEngine(),\n os: UserAgentInstance.getOS(),\n ua: UserAgentInstance.getUA(),\n setUserAgent: function setUserAgent(userAgentString) {\n return UserAgentInstance.setUA(userAgentString);\n }\n };\n};\n\nvar UAHelper = /*#__PURE__*/Object.freeze({\n ClientUAInstance: ClientUAInstance,\n browser: browser,\n cpu: cpu,\n device: device,\n engine: engine,\n os: os,\n ua: ua,\n setUa: setUa,\n parseUserAgent: parseUserAgent\n});\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Embedded: 'embedded',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: 'Firefox',\n Opera: 'Opera',\n Yandex: 'Yandex',\n Safari: 'Safari',\n InternetExplorer: 'Internet Explorer',\n Edge: 'Edge',\n Chromium: 'Chromium',\n Ie: 'IE',\n MobileSafari: 'Mobile Safari',\n EdgeChromium: 'Edge Chromium',\n MIUI: 'MIUI Browser',\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: 'Android',\n WindowsPhone: 'Windows Phone',\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar InitialDeviceTypes = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\n\nvar checkDeviceType = function checkDeviceType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n case DeviceTypes.Embedded:\n return {\n isEmbedded: true\n };\n\n default:\n return InitialDeviceTypes;\n }\n};\nvar setUserAgent = function setUserAgent(userAgent) {\n return setUa(userAgent);\n};\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nvar browserPayload = function browserPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar smartTvPayload = function smartTvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearablePayload = function wearablePayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar embeddedPayload = function embeddedPayload(isEmbedded, device, engine, os, ua) {\n return {\n isEmbedded: isEmbedded,\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nfunction deviceDetect(userAgent) {\n var _ref = userAgent ? parseUserAgent(userAgent) : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n engine = _ref.engine,\n os = _ref.os,\n ua = _ref.ua;\n\n var type = checkDeviceType(device.type);\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable,\n isEmbedded = type.isEmbedded;\n\n if (isBrowser) {\n return browserPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return smartTvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearablePayload(isWearable, engine, os, ua);\n }\n\n if (isEmbedded) {\n return embeddedPayload(isEmbedded, device, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType(_ref) {\n var type = _ref.type;\n return type === DeviceTypes.Mobile;\n};\nvar isTabletType = function isTabletType(_ref2) {\n var type = _ref2.type;\n return type === DeviceTypes.Tablet;\n};\nvar isMobileAndTabletType = function isMobileAndTabletType(_ref3) {\n var type = _ref3.type;\n return type === DeviceTypes.Mobile || type === DeviceTypes.Tablet;\n};\nvar isSmartTVType = function isSmartTVType(_ref4) {\n var type = _ref4.type;\n return type === DeviceTypes.SmartTv;\n};\nvar isBrowserType = function isBrowserType(_ref5) {\n var type = _ref5.type;\n return type === DeviceTypes.Browser;\n};\nvar isWearableType = function isWearableType(_ref6) {\n var type = _ref6.type;\n return type === DeviceTypes.Wearable;\n};\nvar isConsoleType = function isConsoleType(_ref7) {\n var type = _ref7.type;\n return type === DeviceTypes.Console;\n};\nvar isEmbeddedType = function isEmbeddedType(_ref8) {\n var type = _ref8.type;\n return type === DeviceTypes.Embedded;\n};\nvar getMobileVendor = function getMobileVendor(_ref9) {\n var vendor = _ref9.vendor;\n return setDefaults(vendor);\n};\nvar getMobileModel = function getMobileModel(_ref10) {\n var model = _ref10.model;\n return setDefaults(model);\n};\nvar getDeviceType = function getDeviceType(_ref11) {\n var type = _ref11.type;\n return setDefaults(type, 'browser');\n}; // os types\n\nvar isAndroidType = function isAndroidType(_ref12) {\n var name = _ref12.name;\n return name === OsTypes.Android;\n};\nvar isWindowsType = function isWindowsType(_ref13) {\n var name = _ref13.name;\n return name === OsTypes.Windows;\n};\nvar isMacOsType = function isMacOsType(_ref14) {\n var name = _ref14.name;\n return name === OsTypes.MAC_OS;\n};\nvar isWinPhoneType = function isWinPhoneType(_ref15) {\n var name = _ref15.name;\n return name === OsTypes.WindowsPhone;\n};\nvar isIOSType = function isIOSType(_ref16) {\n var name = _ref16.name;\n return name === OsTypes.IOS;\n};\nvar getOsVersion = function getOsVersion(_ref17) {\n var version = _ref17.version;\n return setDefaults(version);\n};\nvar getOsName = function getOsName(_ref18) {\n var name = _ref18.name;\n return setDefaults(name);\n}; // browser types\n\nvar isChromeType = function isChromeType(_ref19) {\n var name = _ref19.name;\n return name === BrowserTypes.Chrome;\n};\nvar isFirefoxType = function isFirefoxType(_ref20) {\n var name = _ref20.name;\n return name === BrowserTypes.Firefox;\n};\nvar isChromiumType = function isChromiumType(_ref21) {\n var name = _ref21.name;\n return name === BrowserTypes.Chromium;\n};\nvar isEdgeType = function isEdgeType(_ref22) {\n var name = _ref22.name;\n return name === BrowserTypes.Edge;\n};\nvar isYandexType = function isYandexType(_ref23) {\n var name = _ref23.name;\n return name === BrowserTypes.Yandex;\n};\nvar isSafariType = function isSafariType(_ref24) {\n var name = _ref24.name;\n return name === BrowserTypes.Safari || name === BrowserTypes.MobileSafari;\n};\nvar isMobileSafariType = function isMobileSafariType(_ref25) {\n var name = _ref25.name;\n return name === BrowserTypes.MobileSafari;\n};\nvar isOperaType = function isOperaType(_ref26) {\n var name = _ref26.name;\n return name === BrowserTypes.Opera;\n};\nvar isIEType = function isIEType(_ref27) {\n var name = _ref27.name;\n return name === BrowserTypes.InternetExplorer || name === BrowserTypes.Ie;\n};\nvar isMIUIType = function isMIUIType(_ref28) {\n var name = _ref28.name;\n return name === BrowserTypes.MIUI;\n};\nvar isSamsungBrowserType = function isSamsungBrowserType(_ref29) {\n var name = _ref29.name;\n return name === BrowserTypes.SamsungBrowser;\n};\nvar getBrowserFullVersion = function getBrowserFullVersion(_ref30) {\n var version = _ref30.version;\n return setDefaults(version);\n};\nvar getBrowserVersion = function getBrowserVersion(_ref31) {\n var major = _ref31.major;\n return setDefaults(major);\n};\nvar getBrowserName = function getBrowserName(_ref32) {\n var name = _ref32.name;\n return setDefaults(name);\n}; // engine types\n\nvar getEngineName = function getEngineName(_ref33) {\n var name = _ref33.name;\n return setDefaults(name);\n};\nvar getEngineVersion = function getEngineVersion(_ref34) {\n var version = _ref34.version;\n return setDefaults(version);\n};\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\nvar isEdgeChromiumType = function isEdgeChromiumType(ua) {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\nvar getUseragent = function getUseragent(userAg) {\n return setDefaults(userAg);\n};\n\nfunction buildSelectorsObject(options) {\n var _ref = options ? options : UAHelper,\n device = _ref.device,\n browser = _ref.browser,\n os = _ref.os,\n engine = _ref.engine,\n ua = _ref.ua;\n\n return {\n isSmartTV: isSmartTVType(device),\n isConsole: isConsoleType(device),\n isWearable: isWearableType(device),\n isEmbedded: isEmbeddedType(device),\n isMobileSafari: isMobileSafariType(browser) || getIPad13(),\n isChromium: isChromiumType(browser),\n isMobile: isMobileAndTabletType(device) || getIPad13(),\n isMobileOnly: isMobileType(device),\n isTablet: isTabletType(device) || getIPad13(),\n isBrowser: isBrowserType(device),\n isDesktop: isBrowserType(device),\n isAndroid: isAndroidType(os),\n isWinPhone: isWinPhoneType(os),\n isIOS: isIOSType(os) || getIPad13(),\n isChrome: isChromeType(browser),\n isFirefox: isFirefoxType(browser),\n isSafari: isSafariType(browser),\n isOpera: isOperaType(browser),\n isIE: isIEType(browser),\n osVersion: getOsVersion(os),\n osName: getOsName(os),\n fullBrowserVersion: getBrowserFullVersion(browser),\n browserVersion: getBrowserVersion(browser),\n browserName: getBrowserName(browser),\n mobileVendor: getMobileVendor(device),\n mobileModel: getMobileModel(device),\n engineName: getEngineName(engine),\n engineVersion: getEngineVersion(engine),\n getUA: getUseragent(ua),\n isEdge: isEdgeType(browser) || isEdgeChromiumType(ua),\n isYandex: isYandexType(browser),\n deviceType: getDeviceType(device),\n isIOS13: getIOS13(),\n isIPad13: getIPad13(),\n isIPhone13: getIphone13(),\n isIPod13: getIPod13(),\n isElectron: isElectronType(),\n isEdgeChromium: isEdgeChromiumType(ua),\n isLegacyEdge: isEdgeType(browser) && !isEdgeChromiumType(ua),\n isWindows: isWindowsType(os),\n isMacOs: isMacOsType(os),\n isMIUI: isMIUIType(browser),\n isSamsungBrowser: isSamsungBrowserType(browser)\n };\n}\n\nvar isSmartTV = isSmartTVType(device);\nvar isConsole = isConsoleType(device);\nvar isWearable = isWearableType(device);\nvar isEmbedded = isEmbeddedType(device);\nvar isMobileSafari = isMobileSafariType(browser) || getIPad13();\nvar isChromium = isChromiumType(browser);\nvar isMobile = isMobileAndTabletType(device) || getIPad13();\nvar isMobileOnly = isMobileType(device);\nvar isTablet = isTabletType(device) || getIPad13();\nvar isBrowser = isBrowserType(device);\nvar isDesktop = isBrowserType(device);\nvar isAndroid = isAndroidType(os);\nvar isWinPhone = isWinPhoneType(os);\nvar isIOS = isIOSType(os) || getIPad13();\nvar isChrome = isChromeType(browser);\nvar isFirefox = isFirefoxType(browser);\nvar isSafari = isSafariType(browser);\nvar isOpera = isOperaType(browser);\nvar isIE = isIEType(browser);\nvar osVersion = getOsVersion(os);\nvar osName = getOsName(os);\nvar fullBrowserVersion = getBrowserFullVersion(browser);\nvar browserVersion = getBrowserVersion(browser);\nvar browserName = getBrowserName(browser);\nvar mobileVendor = getMobileVendor(device);\nvar mobileModel = getMobileModel(device);\nvar engineName = getEngineName(engine);\nvar engineVersion = getEngineVersion(engine);\nvar getUA = getUseragent(ua);\nvar isEdge = isEdgeType(browser) || isEdgeChromiumType(ua);\nvar isYandex = isYandexType(browser);\nvar deviceType = getDeviceType(device);\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType(ua);\nvar isLegacyEdge = isEdgeType(browser) && !isEdgeChromiumType(ua);\nvar isWindows = isWindowsType(os);\nvar isMacOs = isMacOsType(os);\nvar isMIUI = isMIUIType(browser);\nvar isSamsungBrowser = isSamsungBrowserType(browser);\nvar getSelectorsByUserAgent = function getSelectorsByUserAgent(userAgent) {\n if (!userAgent || typeof userAgent !== 'string') {\n console.error('No valid user agent string was provided');\n return;\n }\n\n var _UAHelper$parseUserAg = parseUserAgent(userAgent),\n device = _UAHelper$parseUserAg.device,\n browser = _UAHelper$parseUserAg.browser,\n os = _UAHelper$parseUserAg.os,\n engine = _UAHelper$parseUserAg.engine,\n ua = _UAHelper$parseUserAg.ua;\n\n return buildSelectorsObject({\n device: device,\n browser: browser,\n os: os,\n engine: engine,\n ua: ua\n });\n};\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", props, children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return /*#__PURE__*/function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component);\n}\n\nfunction useMobileOrientation() {\n var _useState = React.useState(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n return {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n }),\n _useState2 = _slicedToArray(_useState, 2),\n state = _useState2[0],\n setState = _useState2[1];\n\n var handleOrientationChange = React.useCallback(function () {\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n var next = {\n isPortrait: orientation === 0,\n isLandscape: orientation === 90,\n orientation: orientation === 0 ? 'portrait' : 'landscape'\n };\n state.orientation !== next.orientation && setState(next);\n }, [state.orientation]);\n React.useEffect(function () {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n handleOrientationChange();\n window.addEventListener(\"load\", handleOrientationChange, false);\n window.addEventListener(\"resize\", handleOrientationChange, false);\n }\n\n return function () {\n window.removeEventListener(\"resize\", handleOrientationChange, false);\n window.removeEventListener(\"load\", handleOrientationChange, false);\n };\n }, [handleOrientationChange]);\n return state;\n}\n\nfunction useDeviceData(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n return parseUserAgent(hookUserAgent);\n}\n\nfunction useDeviceSelectors(userAgent) {\n var hookUserAgent = userAgent ? userAgent : window.navigator.userAgent;\n var deviceData = useDeviceData(hookUserAgent);\n var selectors = buildSelectorsObject(deviceData);\n return [selectors, deviceData];\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getSelectorsByUserAgent = getSelectorsByUserAgent;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isEmbedded = isEmbedded;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.parseUserAgent = parseUserAgent;\nexports.setUserAgent = setUserAgent;\nexports.useDeviceData = useDeviceData;\nexports.useDeviceSelectors = useDeviceSelectors;\nexports.useMobileOrientation = useMobileOrientation;\nexports.withOrientationChange = withOrientationChange;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(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=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(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=Sg(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);Mg(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=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;bc?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(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,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();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=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;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;zj(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;eGj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(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=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&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 Ij(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 zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);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(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(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 Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(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:Ci(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=Nj;Nj=!1;return n}\nfunction Pj(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&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(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 Rj(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 Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(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 Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(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 Vj(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(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(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(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(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=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=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)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(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)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(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*lk(d/1960))-d;if(10a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=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()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(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);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();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,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(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:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(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=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(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),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(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(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(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=mh(-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);bh(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);bh(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}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(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 $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(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 Pg(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 Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(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 pj(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 Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(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 al(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 bl(a,b,c,d,e,f,g,h,k){a=new al(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};kh(f);return a}function cl(a,b,c){var d=3;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\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\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\n/**\n * Submit options shared by both navigations and fetchers\n */\ninterface SharedSubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides ``.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this submission's state updates\n */\n unstable_flushSync?: boolean;\n}\n\n/**\n * Submit options available to fetchers\n */\nexport interface FetcherSubmitOptions extends SharedSubmitOptions {}\n\n/**\n * Submit options available to navigations\n */\nexport interface SubmitOptions extends FetcherSubmitOptions {\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a