{"version":3,"file":"static/js/main.f229e48d.js","mappings":"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","sources":["webpack://home-page-ts/./src/components/Download/download.module.less?2e3e","components/Download/Download.tsx","webpack://home-page-ts/./src/components/Footer/Footer.module.less?260e","components/Footer/Footer.tsx","components/Img/index.tsx","components/Layout/Layout.module.less","webpack://home-page-ts/./src/components/Header/Header.module.less?b2e0","components/Header/Header.tsx","webpack://home-page-ts/./src/components/HeaderHome/Header.module.less?9ad8","components/HeaderHome/Header.tsx","components/Layout/Layout.tsx","const.ts","hooks.ts","stores/AuthContext.tsx","webpack://home-page-ts/./src/stores/style.module.less?75e6","stores/ToastContext.tsx","util/tool.tsx","../node_modules/@ant-design/colors/dist/index.esm.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CheckCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleFilled.js","../node_modules/@ant-design/icons/es/icons/CloseCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/CloseOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleFilled.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleFilled.js","../node_modules/@ant-design/icons-svg/es/asn/LoadingOutlined.js","../node_modules/@ant-design/icons/es/icons/LoadingOutlined.js","../node_modules/@ctrl/tinycolor/dist/module/conversion.js","../node_modules/@ctrl/tinycolor/dist/module/css-color-names.js","../node_modules/@ctrl/tinycolor/dist/module/format-input.js","../node_modules/@ctrl/tinycolor/dist/module/util.js","../node_modules/antd/es/config-provider/DisabledContext.js","../node_modules/antd/es/config-provider/SizeContext.js","../node_modules/antd/es/config-provider/context.js","../node_modules/antd/es/modal/locale.js","../node_modules/antd/es/locale-provider/index.js","../node_modules/@ant-design/icons-svg/es/asn/CheckCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CheckCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/CloseCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/CloseCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/ExclamationCircleOutlined.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleOutlined.js","../node_modules/@ant-design/icons/es/icons/InfoCircleOutlined.js","../node_modules/antd/es/notification/index.js","../node_modules/antd/es/notification/hooks/useNotification.js","../node_modules/@ctrl/tinycolor/dist/module/index.js","../node_modules/antd/es/config-provider/cssVariables.js","../node_modules/antd/es/config-provider/index.js","../node_modules/antd/es/locale-provider/default.js","../node_modules/antd/es/locale-provider/LocaleReceiver.js","../node_modules/antd/es/locale-provider/context.js","../node_modules/rc-picker/es/locale/en_US.js","../node_modules/antd/es/time-picker/locale/en_US.js","../node_modules/antd/es/date-picker/locale/en_US.js","../node_modules/antd/es/calendar/locale/en_US.js","../node_modules/antd/es/locale/default.js","../node_modules/@ant-design/icons-svg/es/asn/InfoCircleFilled.js","../node_modules/@ant-design/icons/es/icons/InfoCircleFilled.js","../node_modules/antd/es/message/index.js","../node_modules/antd/es/message/hooks/useMessage.js","../node_modules/classnames/index.js","../node_modules/dijkstrajs/dijkstra.js","../node_modules/encode-utf8/index.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/lottie-react/compiled/hooks/useLottie.js","../node_modules/lottie-react/compiled/hooks/useLottieInteractivity.js","../node_modules/lottie-react/compiled/components/Lottie.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/qrcode/lib/browser.js","../node_modules/qrcode/lib/can-promise.js","../node_modules/qrcode/lib/core/alignment-pattern.js","../node_modules/qrcode/lib/core/alphanumeric-data.js","../node_modules/qrcode/lib/core/bit-buffer.js","../node_modules/qrcode/lib/core/bit-matrix.js","../node_modules/qrcode/lib/core/byte-data.js","../node_modules/qrcode/lib/core/error-correction-code.js","../node_modules/qrcode/lib/core/error-correction-level.js","../node_modules/qrcode/lib/core/finder-pattern.js","../node_modules/qrcode/lib/core/format-info.js","../node_modules/qrcode/lib/core/galois-field.js","../node_modules/qrcode/lib/core/kanji-data.js","../node_modules/qrcode/lib/core/mask-pattern.js","../node_modules/qrcode/lib/core/mode.js","../node_modules/qrcode/lib/core/numeric-data.js","../node_modules/qrcode/lib/core/polynomial.js","../node_modules/qrcode/lib/core/qrcode.js","../node_modules/qrcode/lib/core/reed-solomon-encoder.js","../node_modules/qrcode/lib/core/regex.js","../node_modules/qrcode/lib/core/segments.js","../node_modules/qrcode/lib/core/utils.js","../node_modules/qrcode/lib/core/version-check.js","../node_modules/qrcode/lib/core/version.js","../node_modules/qrcode/lib/renderer/canvas.js","../node_modules/qrcode/lib/renderer/svg-tag.js","../node_modules/qrcode/lib/renderer/utils.js","../node_modules/rc-field-form/es/FieldContext.js","../node_modules/rc-field-form/es/utils/typeUtil.js","../node_modules/src/util.ts","../node_modules/src/rule/required.ts","../node_modules/src/rule/url.ts","../node_modules/src/rule/type.ts","../node_modules/src/rule/index.ts","../node_modules/src/rule/whitespace.ts","../node_modules/src/rule/range.ts","../node_modules/src/rule/enum.ts","../node_modules/src/rule/pattern.ts","../node_modules/src/validator/type.ts","../node_modules/src/validator/index.ts","../node_modules/src/validator/string.ts","../node_modules/src/validator/method.ts","../node_modules/src/validator/number.ts","../node_modules/src/validator/boolean.ts","../node_modules/src/validator/regexp.ts","../node_modules/src/validator/integer.ts","../node_modules/src/validator/float.ts","../node_modules/src/validator/array.ts","../node_modules/src/validator/object.ts","../node_modules/src/validator/enum.ts","../node_modules/src/validator/pattern.ts","../node_modules/src/validator/date.ts","../node_modules/src/validator/required.ts","../node_modules/src/validator/any.ts","../node_modules/src/messages.ts","../node_modules/src/index.ts","../node_modules/rc-field-form/es/utils/messages.js","../node_modules/rc-util/es/utils/get.js","../node_modules/rc-util/es/utils/set.js","../node_modules/rc-field-form/es/utils/cloneDeep.js","../node_modules/rc-field-form/es/utils/valueUtil.js","../node_modules/rc-field-form/es/utils/validateUtil.js","../node_modules/rc-field-form/es/Field.js","../node_modules/rc-field-form/es/ListContext.js","../node_modules/rc-field-form/es/List.js","../node_modules/rc-field-form/es/utils/NameMap.js","../node_modules/rc-field-form/es/useForm.js","../node_modules/rc-field-form/es/utils/asyncUtil.js","../node_modules/rc-field-form/es/FormContext.js","../node_modules/rc-field-form/es/Form.js","../node_modules/rc-field-form/es/useWatch.js","../node_modules/rc-field-form/es/index.js","../node_modules/rc-motion/es/util/motion.js","../node_modules/rc-motion/es/interface.js","../node_modules/rc-motion/es/hooks/useIsomorphicLayoutEffect.js","../node_modules/rc-motion/es/hooks/useStepQueue.js","../node_modules/rc-motion/es/hooks/useNextFrame.js","../node_modules/rc-motion/es/hooks/useStatus.js","../node_modules/rc-motion/es/hooks/useDomMotionEvents.js","../node_modules/rc-motion/es/DomWrapper.js","../node_modules/rc-motion/es/CSSMotion.js","../node_modules/rc-motion/es/util/diff.js","../node_modules/rc-motion/es/CSSMotionList.js","../node_modules/rc-motion/es/index.js","../node_modules/rc-notification/es/Notice.js","../node_modules/rc-util/es/React/render.js","../node_modules/rc-notification/es/Notification.js","../node_modules/rc-notification/es/index.js","../node_modules/rc-notification/es/useNotification.js","../node_modules/rc-pagination/es/locale/en_US.js","../node_modules/rc-util/es/Children/toArray.js","../node_modules/rc-util/es/Dom/canUseDom.js","../node_modules/rc-util/es/Dom/contains.js","../node_modules/rc-util/es/Dom/dynamicCSS.js","../node_modules/rc-util/es/Dom/findDOMNode.js","../node_modules/rc-util/es/hooks/useMemo.js","../node_modules/rc-util/es/hooks/useState.js","../node_modules/rc-util/es/raf.js","../node_modules/rc-util/es/ref.js","../node_modules/rc-util/es/warning.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-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/modules/miniCreateReactContext.js","../node_modules/react-router/modules/createContext.js","../node_modules/react-router/modules/createNamedContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../node_modules/i18next/dist/esm/i18next.js","locales/resources.ts","i18n.ts","webpack://home-page-ts/./src/pages/Home/mobile/home.module.less?ac95","pages/Home/mobile/Home.tsx","webpack://home-page-ts/./src/pages/Home/pc/home.module.less?7d5a","pages/Home/pc/Home.tsx","pages/Home/Home.tsx","App.tsx","index.tsx"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"bottom\":\"download_bottom__WomSu\",\"up\":\"download_up__Y6K0M\",\"left\":\"download_left__1NEXi\",\"img\":\"download_img__1BpEt\",\"middle\":\"download_middle__9ZdRb\",\"right\":\"download_right__jqr4D\",\"title\":\"download_title__PvTF7\",\"line\":\"download_line__v4Twc\",\"down\":\"download_down__vI+G3\",\"down_top\":\"download_down_top__miEuz\",\"down_bottom\":\"download_down_bottom__g7Fuh\"};","import React, { FC } from 'react';\nimport styleObj from './download.module.less';\nimport { useTranslation } from 'react-i18next';\nimport img1 from '../../assets/images/1.png';\nimport { useAndroid, useSmallWindow } from '../../hooks';\nimport { Link } from 'react-router-dom';\n\nconst Download: FC<{ isSimple?: boolean }> = ({ isSimple = false }) => {\n const { t, i18n: { language } } = useTranslation();\n const [isMobile] = useSmallWindow();\n const [isAndroid] = useAndroid();\n\n return (\n <div className={styleObj.bottom}>\n <div className={styleObj.up}>\n <div className={styleObj.left}>\n <Link to=\"/\">\n <img\n className={styleObj.img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n <div>{t('download.text1')}</div>\n <div>\n {`${t('download.text2')}\\n${t('download.text3')}`}\n <img src={img1} style={{ height: 16 }} alt=\"\" />\n </div>\n <div>{t('download.text4')}</div>\n <div>\n <a href=\"https://www.instagram.com/explore/tags/omiapp/?hl=en\" target=\"_blank\" rel=\"noreferrer\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjJXVVg3NlQzTk9QVldMWkFFMlhLRUJaUU5UMkROViIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjEwODUxNDY3Mjc4NTg5MDI3OTksImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </a>\n <a href=\"https://www.tiktok.com/@omi.malaysia\" target=\"_blank\" rel=\"noreferrer\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjNSSk9BNlNJUkVNMkVUQk9TQktUR0hWMldKUEM0TyIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjIyNDY1NjEwMzA5MDIyMDUxOTEsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </a>\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjY3RU5DR0wyNUxYWUtVS1EyNVJLQ1ZHTE9SQUhVSCIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE2NjE2NTgyOTEwMDMwMDU3MTEsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldMVUVNSTJSUklTVUFTQVA3Tk1DQTRVNUZWWEpGUyIsInciOjY4LCJoIjo2OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjIyNDQ4NDU5NzIwMzA3MTEwNTUsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </div>\n </div>\n {isMobile && <div className={styleObj.line} />}\n <div className={styleObj.middle}>\n <div className={styleObj.title}>{t('download.text5')}</div>\n <div><a href={'/company'}>{t('download.text6')}</a></div>\n <div><a href={'/company/join'}>{t('download.text7')}</a></div>\n <div className={styleObj.title}>{t('download.text11')}</div>\n <div><a href=\"/why\" target=\"_blank\">{t('download.text12')}</a></div>\n <div><a href={`/norms/${language}`} target=\"_blank\" rel=\"noreferrer\">{t('download.text13')}</a></div>\n <div><a href=\"/help\" target=\"_blank\">{t('download.text14')}</a></div>\n </div>\n\n <div className={styleObj.right}>\n <div className={styleObj.title}>{t('download.text8')}</div>\n <div><a href=\"/features/toolkit\">{t('download.text9')}</a></div>\n <div><a href=\"/features/subscription\">{t('download.text10')}</a></div>\n <div className={styleObj.title}>{t('download.text15')}</div>\n <div><a href=\"/support\">{t('download.text16')}</a></div>\n <div><a href=\"/press\">{t('download.text17')}</a></div>\n <div><a href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\">{t('download.text18')}</a></div>\n </div>\n </div>\n {\n !isMobile &&\n <>\n <div className={styleObj.line} />\n <div className={styleObj.down}>\n <div className={styleObj.down_top}>\n <div>{t('home.getApp')}</div>\n {\n <a target=\"_blank\" href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\" rel=\"noreferrer\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjVYUlNEUkxaTkNQNlJCTloySUJCQ0xBTVhTWUM1ViIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTIzNzQ1MzQxNDE0Nzg0MCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n\n </a>\n }\n {\n <a\n target=\"_blank\"\n href=\"https://play.google.com/store/apps/details?id=sg.omi&hl=en&gl=US\"\n rel=\"noreferrer\"\n >\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldOSjVRUk5IUVBWVUZQRkRUUE5BUkhTVE5IWk1KVSIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTA0NzQzMDQ1MDY3MjMzMjE1MDUsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </a>\n }\n </div>\n {\n !isSimple &&\n <div className={styleObj.down_bottom}>\n {`${t('home.text1')}\\n\\n${t('home.text2')}\\n\\n${t('home.text3')}\\n\\n${t('home.text4')}`}\n </div>\n }\n </div>\n </>\n }\n {\n isMobile &&\n <>\n <div className={styleObj.line} />\n <div className={styleObj.down}>\n <div className={styleObj.down_top}>\n <div>{t('home.getApp')}</div>\n {\n (!isAndroid || !isMobile) &&\n <a target=\"_blank\" href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\" rel=\"noreferrer\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjVYUlNEUkxaTkNQNlJCTloySUJCQ0xBTVhTWUM1ViIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTIzNzQ1MzQxNDE0Nzg0MCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n\n </a>\n }\n {\n (isAndroid || !isMobile) && <a\n target=\"_blank\"\n href=\"https://play.google.com/store/apps/details?id=sg.omi&hl=en&gl=US\"\n rel=\"noreferrer\"\n >\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IldOSjVRUk5IUVBWVUZQRkRUUE5BUkhTVE5IWk1KVSIsInciOjM1MCwiaCI6MTAwLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTA0NzQzMDQ1MDY3MjMzMjE1MDUsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </a>\n }\n </div>\n {\n !isSimple &&\n <div className={styleObj.down_bottom}>\n {`${t('home.text1')}\\n\\n${t('home.text2')}\\n\\n${t('home.text3')}\\n\\n${t('home.text4')}`}\n </div>\n }\n </div>\n </>\n }\n </div>\n );\n};\n\nexport default Download;\n","// extracted by mini-css-extract-plugin\nexport default {\"footer\":\"Footer_footer__wEQFt\",\"line\":\"Footer_line__6kGEe\",\"content\":\"Footer_content__UuiMh\",\"left\":\"Footer_left__U24jX\",\"right\":\"Footer_right__6Zdu+\",\"top\":\"Footer_top__jYhVw\",\"center\":\"Footer_center__QM3iu\",\"bottom\":\"Footer_bottom__roAo7\"};","import React, {FC} from \"react\";\nimport styleObj from \"./Footer.module.less\";\nimport {useTranslation} from \"react-i18next\";\nimport {Link} from \"react-router-dom\";\nimport {useSmallWindow} from \"../../hooks\";\n\nconst Footer: FC = () => {\n const [isMobile] = useSmallWindow();\n const {t, i18n: {language}} = useTranslation();\n return (\n <div className={styleObj.footer}>\n <div className={styleObj.line}/>\n <div className={styleObj.content}>\n <div className={styleObj.left}>\n <a\n target=\"_blank\"\n href={`/privacy/${language}`}\n > {t(\"home.privacy\")} </a>\n {\n !isMobile ?\n <span> | </span>\n :\n <span> | </span>\n }\n <a\n target=\"_blank\"\n href={`/terms/${language}`}\n > {t(\"home.terms\")} </a>\n {\n !isMobile ?\n <span> | </span>\n :\n <span> | </span>\n }\n <a\n target=\"_blank\"\n href=\"https://omiapp.onelink.me/HCKs/g7zp1mmz\"\n > {t(\"home.download\")} </a>\n {\n !isMobile ?\n <span> | </span>\n :\n <span> | </span>\n }\n <a\n target=\"_blank\"\n href={`/norms/${language}`}\n > {t(\"home.guidelines\")} </a>\n {\n !isMobile ?\n <span> | </span>\n :\n <span> | </span>\n }\n <a\n target=\"_blank\"\n href=\"/help\"\n > {t(\"home.help\")} </a>\n {\n !isMobile ?\n <span> | </span>\n :\n <span> | </span>\n }\n <Link\n to=\"/support\"\n > {t(\"home.contact\")} </Link>\n </div>\n <div className={styleObj.right}>\n {t(\"home.copyright\")}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Footer;\n","import React from 'react';\n\ntype ImageProps = React.ImgHTMLAttributes<HTMLImageElement>;\n\nconst Img: React.FC<ImageProps> = (props) => {\n const imgProps = {\n ...props,\n src: props.src + \"?format=originalOFGHLERTH\"\n }\n return <img {...imgProps} />;\n};\n\nexport default Img;\n","// extracted by mini-css-extract-plugin\nexport default {};","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"Header_header__jMcwM\",\"content_wrapper\":\"Header_content_wrapper__tBbpf\",\"content\":\"Header_content__XIbGT\",\"logo\":\"Header_logo__JpQY4\",\"menu\":\"Header_menu__F2F4U\",\"link\":\"Header_link__qmqGy\",\"selected\":\"Header_selected__0qNhW\",\"features_child\":\"Header_features_child__MLEnJ\",\"language\":\"Header_language__VVFQb\",\"clicked\":\"Header_clicked__jze52\",\"language_dropdown\":\"Header_language_dropdown__NugEO\",\"language_dropdown_box\":\"Header_language_dropdown_box__KSxxX\",\"menu_dropdown\":\"Header_menu_dropdown__QzYwF\",\"menu_box\":\"Header_menu_box__-Wvuu\",\"language_box\":\"Header_language_box__dbqks\",\"inverse_color\":\"Header_inverse_color__kadSx\",\"line\":\"Header_line__zud2E\",\"language_dropdown_logo\":\"Header_language_dropdown_logo__cw3V9\",\"menu_dropdown_img\":\"Header_menu_dropdown_img__U4lDG\",\"menu_box_header\":\"Header_menu_box_header__elUTA\",\"menu_box_content\":\"Header_menu_box_content__WHdU1\",\"menu_box_logo\":\"Header_menu_box_logo__IaNOI\",\"menu_box_language_dropdown\":\"Header_menu_box_language_dropdown__SecpH\",\"menu_box_language_dropdown_logo\":\"Header_menu_box_language_dropdown_logo__Ljy0P\",\"menu_box_close\":\"Header_menu_box_close__uGo74\",\"menu_box_language_dropdown_box\":\"Header_menu_box_language_dropdown_box__TIoVp\",\"menu_box_header_line\":\"Header_menu_box_header_line__nMgV4\",\"menu_box_body\":\"Header_menu_box_body__xHVoQ\",\"features_wrapper\":\"Header_features_wrapper__LvRbf\",\"features_flag\":\"Header_features_flag__Tz6Pi\"};","import React, {useEffect, useImperativeHandle, useRef, useState} from \"react\";\nimport styleObj from \"./Header.module.less\";\nimport {Link, NavLink} from \"react-router-dom\";\nimport {useTranslation} from \"react-i18next\";\n\ntype Props = {\n headerStyle?: object\n}\n\nexport type HeaderRef = {\n logoDom: HTMLDivElement | null,\n menuDom: HTMLDivElement | null,\n languageDom: HTMLDivElement | null,\n languageMobileDom: HTMLDivElement | null,\n menuLogoDom: HTMLDivElement | null,\n headerDiv?: HTMLDivElement | null,\n}\n\nconst Header = React.forwardRef<HeaderRef, Props>(({headerStyle = {}}, ref) => {\n const {t, i18n: {changeLanguage}} = useTranslation();\n const logoDom = useRef<HTMLDivElement | null>(null); //logo(PC、移动)\n const menuDom = useRef<HTMLDivElement | null>(null); //导航文字(PC)\n const languageDom = useRef<HTMLDivElement | null>(null); //小地球(PC)\n const languageBoxDom = useRef<HTMLDivElement | null>(null); //多语选择框(PC)\n const languageMobileDom = useRef<HTMLDivElement | null>(null); //多语下拉框(移动端)\n const menuLogoDom = useRef<HTMLDivElement | null>(null); //导航图标(移动端)\n const menuBoxDom = useRef<HTMLDivElement | null>(null); //导航box(移动端)\n const menuBoxLanguageDom = useRef<HTMLDivElement | null>(null); //导航box中的多语切换开关(移动端)\n const languageDropdownLogoDom = useRef<HTMLDivElement | null>(null); //导航box中的多语选择box后的小三角(移动端)\n const menuBoxLanguageDropdownLogoDom = useRef<HTMLDivElement | null>(null); //导航box中的多语选择box后的小三角(移动端)\n\n const [showLanguage, setShowLanguage] = useState<boolean>(false); //多语展示标志位(PC小地球)\n const [showLanguageMobile, setShowLanguageMobile] = useState<boolean>(false); //多语展示标志位(移动下拉框)\n const [showMenu, setShowMenu] = useState<boolean>(false); //移动端导航展示标志位\n const [showMenuBoxLanguageBoxDom, setShowMenuBoxLanguageBoxDom] = useState<boolean>(false); //移动端全屏导航栏中的多语选择框展示标志位\n const [showFeaturesChild, setShowFeaturesChild] = useState<boolean>(false); //展示 features 的子导航\n const [showFeaturesChildMobile, setShowFeaturesChildMobile] = useState<boolean>(false); //展示 features 的子导航(移动端)\n\n const [languageBoxLeft, setLanguageBoxLeft] = useState<number>(50);\n const [featureChildLeft, setFeatureChildLeft] = useState<number>(800);\n\n useImperativeHandle(ref, () => ({\n logoDom: logoDom.current, //logo(PC、移动)\n menuDom: menuDom.current, //导航文字(PC)\n languageDom: languageDom.current, //小地球(PC)\n languageMobileDom: languageMobileDom.current, //多语下拉框(移动端)\n menuLogoDom: menuLogoDom.current //导航图标(移动端)\n }));\n\n useEffect(() => {\n //多语点击事件\n document.addEventListener(\"click\", e => {\n const target = e.target as HTMLDivElement;\n if (target?.className?.includes(styleObj.language)) { //PC端多语\n setShowLanguage(value => !value);\n } else if (\n target?.className?.includes(styleObj.language_dropdown) ||\n target?.className?.includes(styleObj.language_dropdown_logo)\n ) { //移动端多语\n if (!languageDropdownLogoDom.current) return;\n const clientRect = languageDropdownLogoDom.current.getBoundingClientRect();\n const {left: targetLeft} = clientRect;\n setLanguageBoxLeft(targetLeft - 78); //需要控制多语弹窗位置\n setShowLanguageMobile(value => !value);\n } else if ( //移动端导航\n target?.className?.includes(styleObj.menu_dropdown_img) ||\n target?.className?.includes(styleObj.menu_dropdown)\n ) {\n setShowMenu(value => !value);\n } else if (\n target?.className?.includes(styleObj.menu_box_language_dropdown) ||\n target?.className?.includes(styleObj.menu_box_language_dropdown_logo)\n ) {\n //点击移动端全屏导航的多语切换\n if (!menuBoxLanguageDropdownLogoDom.current) return;\n const clientRect = menuBoxLanguageDropdownLogoDom.current.getBoundingClientRect();\n const {left: targetLeft} = clientRect;\n setLanguageBoxLeft(targetLeft - 78); //需要控制多语弹窗位置\n setShowMenuBoxLanguageBoxDom(value => !value);\n } else {\n setTimeout(() => { //防止多语还没点击就消失\n setShowLanguage(false);\n setShowLanguageMobile(false);\n setShowMenuBoxLanguageBoxDom(false);\n });\n }\n }, true);\n return () => {\n document.onclick = null;\n };\n }, []);\n\n let timeout: any;\n const handleOverFeatures = ({target}: { target: HTMLDivElement }): void => {\n const {left, width} = target.getBoundingClientRect();\n setFeatureChildLeft(left + 0.5 * width);\n timeout && clearTimeout(timeout);\n setShowFeaturesChild(true);\n };\n\n const handleOutFeatures = (): void => {\n timeout = setTimeout(() => {\n setShowFeaturesChild(false);\n }, 350);\n };\n\n const handleOverFeaturesChild = (): void => {\n timeout && clearTimeout(timeout);\n setShowFeaturesChild(true);\n };\n\n const handleOutFeaturesChild = (): void => {\n setShowFeaturesChild(false);\n };\n\n return (\n <div\n style={headerStyle}\n className={styleObj.header}\n >\n {/*白色内容,变色时候把白色内容拉起来即可(理解为拉窗帘)*/}\n <div className={styleObj.content_wrapper}>\n <div className={styleObj.content}>\n <div\n ref={logoDom}\n className={styleObj.logo}> {/*左上角的logo*/}\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n\n <div\n ref={menuDom}\n className={styleObj.menu}\n >\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onMouseOver={handleOverFeatures}\n onMouseOut={handleOutFeatures}\n >\n {t(\"home.features\")}\n </NavLink>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n <div\n className={styleObj.features_child}\n style={{left: featureChildLeft, display: showFeaturesChild ? \"\" : \"none\"}}\n onMouseOver={handleOverFeaturesChild}\n onMouseOut={handleOutFeaturesChild}\n >\n <NavLink\n to=\"/features/toolkit\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.toolkit\")}\n </NavLink>\n <NavLink\n to=\"/features/subscription\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.subscription\")}\n </NavLink>\n </div>\n <div\n ref={languageDom}\n className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n >\n {t(\"header.currentLanguage\")}\n </div>\n {\n showLanguage &&\n <div\n ref={languageBoxDom}\n className={styleObj.language_box}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>繁體中文</span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n\n {/*移动端多语切换开关*/}\n <div\n ref={languageMobileDom}\n className={styleObj.language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span\n ref={languageDropdownLogoDom}\n className={styleObj.language_dropdown_logo}\n />\n </div>\n\n {/*移动端下拉多语*/}\n {\n showLanguageMobile &&\n <div\n className={styleObj.language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>繁體中文</span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n\n {/*移动端导航开关*/}\n <div\n ref={menuLogoDom}\n className={styleObj.menu_dropdown}\n >\n <img\n className={styleObj.menu_dropdown_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IktQVE5IS05RMko3MkxJQjZYUFBRQjNTSEJNTkhWTyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE5NDk3NjM5Njk5ODkxNDU2LCJhYiI6MH0?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n {/*移动端下拉导航点击后展示的全屏导航栏*/}\n {\n showMenu &&\n <div\n ref={menuBoxDom}\n className={styleObj.menu_box}\n >\n <div className={styleObj.menu_box_header}>\n <div className={styleObj.menu_box_content}>\n {/*logo*/}\n <div\n ref={logoDom}\n className={styleObj.menu_box_logo}>\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n\n {/*全屏导航:移动端多语切换开关*/}\n <div\n ref={menuBoxLanguageDom}\n className={styleObj.menu_box_language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span\n ref={menuBoxLanguageDropdownLogoDom}\n className={styleObj.menu_box_language_dropdown_logo}\n />\n </div>\n\n {/*全屏导航:关闭按钮*/}\n <div\n className={styleObj.menu_box_close}\n onClick={() => setShowMenu(false)}\n >\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjdVRkJWMjIyN1FWUVQ1SVNPQlI0QUozTUFGWjNIUiIsInciOjM2LCJoIjozNCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjc1OTc5MTAxODE4MTE1NDg1MjEsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n {/*全屏导航:移动端下拉多语*/}\n {\n showMenuBoxLanguageBoxDom &&\n <div\n className={styleObj.menu_box_language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>繁體中文</span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n </div>\n <div className={styleObj.menu_box_header_line}/>\n </div>\n <div className={styleObj.menu_box_body}>\n <div className={styleObj.features_wrapper}>\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.features\")}\n </NavLink>\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjI0UEJHU1Q0QTJVVE5XQlZEUENaRExOWDI1NURNSiIsInciOjI0LCJoIjoxMiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjg4NjM4MDczOTQ1ODQzMzM0OSwiYWIiOjB9?format=originalOFGHLERTH\"\n className={styleObj.features_flag}\n alt=\"\"\n onClick={() => setShowFeaturesChildMobile(val => !val)}\n style={showFeaturesChildMobile ? {transform: \"rotate(180deg)\"} : {}}\n />\n </div>\n {/*移动端的 features 子导航*/}\n <div\n className={styleObj.features_child}\n style={{display: showFeaturesChildMobile ? \"\" : \"none\"}}\n >\n <NavLink\n to=\"/features/toolkit\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.toolkit\")}\n </NavLink>\n <NavLink\n to=\"/features/subscription\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.subscription\")}\n </NavLink>\n </div>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n </div>\n }\n </div>\n </div>\n\n {/*反色内容*/}\n <div className={styleObj.content_wrapper}>\n <div className={`${styleObj.content} ${styleObj.inverse_color}`}>\n\n {/*反色:PC端Omi*/}\n <div className={styleObj.logo}>\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n\n {/*反色:PC端导航*/}\n <div className={styleObj.menu}>\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onMouseOver={handleOverFeatures}\n onMouseOut={handleOutFeatures}\n >\n {t(\"home.features\")}\n </NavLink>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n\n {/*反色:PC端地球*/}\n <div\n className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n >\n {t(\"header.currentLanguage\")}\n </div>\n\n {/*反色:移动端多语切换开关*/}\n <div\n className={styleObj.language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span className={styleObj.language_dropdown_logo}/>\n </div>\n\n {/*反色:移动端下拉多语*/}\n {\n showLanguageMobile &&\n <div\n className={styleObj.language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>繁體中文</span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n\n {/*反色:移动端导航开关*/}\n <div\n className={styleObj.menu_dropdown}\n >\n <img\n className={styleObj.menu_dropdown_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlQySDZBVzNTWVdONUlQSVQ0TjNKU0FMMk1LRFVLRyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE4MzcxNzM5NzkzMDQ3ODA4LCJhYiI6MH0?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n </div>\n </div>\n <div className={styleObj.line}/>\n </div>\n );\n});\n\nexport default Header;\n","// extracted by mini-css-extract-plugin\nexport default {\"header\":\"Header_header__fEW2p\",\"content_wrapper\":\"Header_content_wrapper__35UED\",\"content\":\"Header_content__7hwtD\",\"logo\":\"Header_logo__0+Q4I\",\"menu\":\"Header_menu__yomWa\",\"link\":\"Header_link__t9oTM\",\"selected\":\"Header_selected__4p+5y\",\"features_child\":\"Header_features_child__CQhkv\",\"language\":\"Header_language__vqCct\",\"clicked\":\"Header_clicked__JS994\",\"language_dropdown\":\"Header_language_dropdown__1hWwX\",\"language_dropdown_box\":\"Header_language_dropdown_box__uW2Vx\",\"menu_dropdown\":\"Header_menu_dropdown__3CSe+\",\"menu_box\":\"Header_menu_box__O5W0r\",\"language_box\":\"Header_language_box__EQ0nI\",\"inverse_color\":\"Header_inverse_color__uBsBb\",\"line\":\"Header_line__UFum1\",\"language_dropdown_logo\":\"Header_language_dropdown_logo__1rGXi\",\"menu_dropdown_img\":\"Header_menu_dropdown_img__gWyWx\",\"menu_box_header\":\"Header_menu_box_header__HAeFQ\",\"menu_box_content\":\"Header_menu_box_content__z0H75\",\"menu_box_logo\":\"Header_menu_box_logo__pc4bt\",\"menu_box_language_dropdown\":\"Header_menu_box_language_dropdown__fWksO\",\"menu_box_language_dropdown_logo\":\"Header_menu_box_language_dropdown_logo__+Qco2\",\"menu_box_close\":\"Header_menu_box_close__ZbUyn\",\"menu_box_language_dropdown_box\":\"Header_menu_box_language_dropdown_box__n7H7W\",\"menu_box_header_line\":\"Header_menu_box_header_line__12Nji\",\"menu_box_body\":\"Header_menu_box_body__GtnAn\",\"features_wrapper\":\"Header_features_wrapper__g4vtK\",\"features_flag\":\"Header_features_flag__vtnD7\",\"log_out\":\"Header_log_out__9Phi5\"};","import React, {useEffect, useImperativeHandle, useRef, useState} from \"react\";\nimport styleObj from \"./Header.module.less\";\nimport {Link, NavLink} from \"react-router-dom\";\nimport {useTranslation} from \"react-i18next\";\nimport {useMobile} from \"../../hooks\";\nimport { useAuth } from '../../stores/AuthContext';\n\n\ntype Props = {\n headerStyle?: object\n}\n\nexport type HeaderRef = {\n logoDom: HTMLDivElement | null,\n menuDom: HTMLDivElement | null,\n languageDom: HTMLDivElement | null,\n languageMobileDom: HTMLDivElement | null,\n menuLogoDom: HTMLDivElement | null,\n}\n\nconst Header = React.forwardRef<HeaderRef, Props>(({headerStyle = {}}, ref) => {\n const [showPay] = useMobile(); //展示支付入口\n const {t, i18n: {changeLanguage}} = useTranslation();\n const headerDiv = useRef<HTMLDivElement | null>(null); //整个标题栏\n const logoDom = useRef<HTMLDivElement | null>(null); //logo(PC、移动)\n const menuDom = useRef<HTMLDivElement | null>(null); //导航文字(PC)\n const languageDom = useRef<HTMLDivElement | null>(null); //小地球(PC)\n const languageBoxDom = useRef<HTMLDivElement | null>(null); //多语选择框(PC)\n const languageMobileDom = useRef<HTMLDivElement | null>(null); //多语下拉框(移动端)\n const menuLogoDom = useRef<HTMLDivElement | null>(null); //导航图标(移动端)\n const menuBoxDom = useRef<HTMLDivElement | null>(null); //导航box(移动端)\n const menuBoxLanguageDom = useRef<HTMLDivElement | null>(null); //导航box中的多语切换开关(移动端)\n const languageDropdownLogoDom = useRef<HTMLDivElement | null>(null); //导航box中的多语选择box后的小三角(移动端)\n const menuBoxLanguageDropdownLogoDom = useRef<HTMLDivElement | null>(null); //导航box中的多语选择box后的小三角(移动端)\n\n const [showLanguage, setShowLanguage] = useState<boolean>(false); //多语展示标志位(PC小地球)\n const [showLanguageMobile, setShowLanguageMobile] = useState<boolean>(false); //多语展示标志位(移动下拉框)\n const [showMenu, setShowMenu] = useState<boolean>(false); //移动端导航展示标志位\n const [showMenuBoxLanguageBoxDom, setShowMenuBoxLanguageBoxDom] = useState<boolean>(false); //移动端全屏导航栏中的多语选择框展示标志位\n const [showFeaturesChild, setShowFeaturesChild] = useState<boolean>(false); //展示 features 的子导航\n const [showFeaturesChildMobile, setShowFeaturesChildMobile] = useState<boolean>(false); //展示 features 的子导航(移动端)\n\n const [languageBoxLeft, setLanguageBoxLeft] = useState<number>(50);\n const [featureChildLeft, setFeatureChildLeft] = useState<number>(800);\n const { logged, logout } = useAuth();\n\n useImperativeHandle(ref, () => ({\n logoDom: logoDom.current, //logo(PC、移动)\n menuDom: menuDom.current, //导航文字(PC)\n languageDom: languageDom.current, //小地球(PC)\n languageMobileDom: languageMobileDom.current, //多语下拉框(移动端)\n menuLogoDom: menuLogoDom.current, //导航图标(移动端)\n headerDiv: headerDiv.current //整个标题栏\n }));\n\n useEffect(() => {\n //多语点击事件\n document.addEventListener(\"click\", e => {\n const target = e.target as HTMLDivElement;\n if (target?.className?.includes(styleObj.language)) { //PC端多语\n setShowLanguage(value => !value);\n } else if (\n target?.className?.includes(styleObj.language_dropdown) ||\n target?.className?.includes(styleObj.language_dropdown_logo)\n ) { //移动端多语\n if (!languageDropdownLogoDom.current) return;\n const clientRect = languageDropdownLogoDom.current.getBoundingClientRect();\n const {left: targetLeft} = clientRect;\n setLanguageBoxLeft(targetLeft - 78); //需要控制多语弹窗位置\n setShowLanguageMobile(value => !value);\n } else if ( //移动端导航\n target?.className?.includes(styleObj.menu_dropdown_img) ||\n target?.className?.includes(styleObj.menu_dropdown)\n ) {\n setShowMenu(value => !value);\n } else if (\n target?.className?.includes(styleObj.menu_box_language_dropdown) ||\n target?.className?.includes(styleObj.menu_box_language_dropdown_logo)\n ) {\n //点击移动端全屏导航的多语切换\n if (!menuBoxLanguageDropdownLogoDom.current) return;\n const clientRect = menuBoxLanguageDropdownLogoDom.current.getBoundingClientRect();\n const {left: targetLeft} = clientRect;\n setLanguageBoxLeft(targetLeft - 78); //需要控制多语弹窗位置\n setShowMenuBoxLanguageBoxDom(value => !value);\n } else {\n setTimeout(() => { //防止多语还没点击就消失\n setShowLanguage(false);\n setShowLanguageMobile(false);\n setShowMenuBoxLanguageBoxDom(false);\n });\n }\n }, true);\n return () => {\n document.onclick = null;\n };\n }, []);\n\n let timeout: any;\n const handleOverFeatures = ({target}: { target: HTMLDivElement }): void => {\n const {left, width} = target.getBoundingClientRect();\n setFeatureChildLeft(left + 0.5 * width);\n timeout && clearTimeout(timeout);\n setShowFeaturesChild(true);\n };\n\n const handleOutFeatures = (): void => {\n timeout = setTimeout(() => {\n setShowFeaturesChild(false);\n }, 350);\n };\n\n const handleOverFeaturesChild = (): void => {\n timeout && clearTimeout(timeout);\n setShowFeaturesChild(true);\n };\n\n const handleOutFeaturesChild = (): void => {\n setShowFeaturesChild(false);\n };\n\n return (\n <div\n style={headerStyle}\n className={`${styleObj.header} animate__animated`}\n ref={headerDiv}\n >\n {/*白色内容,变色时候把白色内容拉起来即可(理解为拉窗帘)*/}\n <div className={styleObj.content_wrapper}>\n <div className={styleObj.content}>\n {\n !showPay &&\n <div\n ref={logoDom}\n className={styleObj.logo}> {/*左上角的logo*/}\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n }\n\n <div\n ref={menuDom}\n className={styleObj.menu}\n >\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onMouseOver={handleOverFeatures}\n onMouseOut={handleOutFeatures}\n >\n {t(\"home.features\")}\n </NavLink>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n <div\n className={styleObj.features_child}\n style={{left: featureChildLeft, display: showFeaturesChild ? \"\" : \"none\"}}\n onMouseOver={handleOverFeaturesChild}\n onMouseOut={handleOutFeaturesChild}\n >\n <NavLink\n to=\"/features/toolkit\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.toolkit\")}\n </NavLink>\n <NavLink\n to=\"/features/subscription\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.subscription\")}\n </NavLink>\n </div>\n <div\n ref={languageDom}\n className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n >\n {t(\"header.currentLanguage\")}\n </div>\n {\n showLanguage &&\n <div\n ref={languageBoxDom}\n className={styleObj.language_box}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>\n 繁體中文\n </span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n\n {/*移动端多语切换开关*/}\n <div\n ref={languageMobileDom}\n className={styleObj.language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span\n ref={languageDropdownLogoDom}\n className={styleObj.language_dropdown_logo}\n />\n </div>\n\n {/*移动端下拉多语*/}\n {\n showLanguageMobile &&\n <div\n className={styleObj.language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={() => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }}>繁體中文</span>\n <span onClick={() => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }}>ENGLISH</span>\n <span onClick={() => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }}>BAHASA MELAYU</span>\n <span onClick={() => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }}>ภาษาไทย</span>\n <span onClick={() => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }}>BAHASA INDONESIA</span>\n </div>\n }\n {/* 退出登陆 */}\n {logged && <div className={styleObj.log_out} onClick={logout}>{t('home.OMI_PHONE_WEBSITE_LOGIN_OUT_TITLE')}</div>}\n\n {/*移动端导航开关*/}\n <div\n ref={menuLogoDom}\n className={styleObj.menu_dropdown}\n >\n <img\n className={styleObj.menu_dropdown_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IktQVE5IS05RMko3MkxJQjZYUFBRQjNTSEJNTkhWTyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE5NDk3NjM5Njk5ODkxNDU2LCJhYiI6MH0?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n {/*移动端下拉导航点击后展示的全屏导航栏*/}\n {\n showMenu &&\n <div\n ref={menuBoxDom}\n className={styleObj.menu_box}\n >\n <div className={styleObj.menu_box_header}>\n <div className={styleObj.menu_box_content}>\n {/*logo*/}\n <div\n ref={logoDom}\n className={styleObj.menu_box_logo}>\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n\n {/*全屏导航:移动端多语切换开关*/}\n <div\n ref={menuBoxLanguageDom}\n className={styleObj.menu_box_language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span\n ref={menuBoxLanguageDropdownLogoDom}\n className={styleObj.menu_box_language_dropdown_logo}\n />\n </div>\n\n {/*全屏导航:关闭按钮*/}\n <div\n className={styleObj.menu_box_close}\n onClick={() => setShowMenu(false)}\n >\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjdVRkJWMjIyN1FWUVQ1SVNPQlI0QUozTUFGWjNIUiIsInciOjM2LCJoIjozNCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjc1OTc5MTAxODE4MTE1NDg1MjEsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n {/*全屏导航:移动端下拉多语*/}\n {\n showMenuBoxLanguageBoxDom &&\n <div\n className={styleObj.menu_box_language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={\n () => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }\n }>繁體中文</span>\n <span onClick={() => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }}>ENGLISH</span>\n <span onClick={() => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }}>BAHASA MELAYU</span>\n <span onClick={() => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }}>ภาษาไทย</span>\n <span onClick={() => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }}>BAHASA INDONESIA</span>\n </div>\n }\n </div>\n <div className={styleObj.menu_box_header_line}/>\n </div>\n <div className={styleObj.menu_box_body}>\n <div className={styleObj.features_wrapper}>\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.features\")}\n </NavLink>\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IjI0UEJHU1Q0QTJVVE5XQlZEUENaRExOWDI1NURNSiIsInciOjI0LCJoIjoxMiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjg4NjM4MDczOTQ1ODQzMzM0OSwiYWIiOjB9?format=originalOFGHLERTH\"\n className={styleObj.features_flag}\n alt=\"\"\n onClick={() => setShowFeaturesChildMobile(val => !val)}\n style={showFeaturesChildMobile ? {transform: \"rotate(180deg)\"} : {}}\n />\n </div>\n {/*移动端的 features 子导航*/}\n <div\n className={styleObj.features_child}\n style={{display: showFeaturesChildMobile ? \"\" : \"none\"}}\n >\n <NavLink\n to=\"/features/toolkit\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.toolkit\")}\n </NavLink>\n <NavLink\n to=\"/features/subscription\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"header.subscription\")}\n </NavLink>\n </div>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onClick={() => setShowMenu(false)}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n </div>\n }\n </div>\n </div>\n\n {/*反色内容*/}\n <div className={styleObj.content_wrapper}>\n <div className={`${styleObj.content} ${styleObj.inverse_color}`}>\n\n {/*反色:PC端Omi*/}\n {\n !showPay &&\n <div className={styleObj.logo}>\n <Link to=\"/\">\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkQ2SjNQM1pVRDdDTk1HN1ZZR05NRlhJR1hONTdEUSIsInciOjEyNCwiaCI6NjAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMjE5MDU3ODI0MTk1MjEwODg2NCwiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </Link>\n </div>\n }\n\n {/*反色:PC端导航*/}\n <div className={styleObj.menu}>\n <NavLink\n to=\"/features\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n onMouseOver={handleOverFeatures}\n onMouseOut={handleOutFeatures}\n >\n {t(\"home.features\")}\n </NavLink>\n <NavLink\n to=\"/why\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.whyOmi\")}\n </NavLink>\n <NavLink\n to=\"/press\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.press\")}\n </NavLink>\n <NavLink\n to=\"/support\"\n exact\n className={styleObj.link}\n activeClassName={styleObj.selected}\n >\n {t(\"home.support\")}\n </NavLink>\n </div>\n\n {/*反色:PC端地球*/}\n <div\n className={`${styleObj.language} ${showLanguage ? styleObj.clicked : \"\"}`}\n >\n {t(\"header.currentLanguage\")}\n </div>\n\n {/*反色:移动端多语切换开关*/}\n <div\n className={styleObj.language_dropdown}\n >\n {t(\"header.currentLanguage\")}\n <span className={styleObj.language_dropdown_logo}/>\n </div>\n\n {/*反色:移动端下拉多语*/}\n {\n showLanguageMobile &&\n <div\n className={styleObj.language_dropdown_box}\n style={{left: languageBoxLeft}}\n >\n <span onClick={() => {\n changeLanguage(\"zh\");\n window.localStorage.setItem(\"lan\", \"zh\");\n }}>繁體中文</span>\n <span onClick={\n () => {\n changeLanguage(\"en\");\n window.localStorage.setItem(\"lan\", \"en\");\n }\n }>ENGLISH</span>\n <span onClick={\n () => {\n changeLanguage(\"my\");\n window.localStorage.setItem(\"lan\", \"my\");\n }\n }>BAHASA MELAYU</span>\n <span onClick={\n () => {\n changeLanguage(\"th\");\n window.localStorage.setItem(\"lan\", \"th\");\n }\n }>ภาษาไทย</span>\n <span onClick={\n () => {\n changeLanguage(\"id\");\n window.localStorage.setItem(\"lan\", \"id\");\n }\n }>BAHASA INDONESIA</span>\n </div>\n }\n\n {logged && <div className={styleObj.log_out} onClick={logout}>{t('home.OMI_PHONE_WEBSITE_LOGIN_OUT_TITLE')}</div>}\n {/*反色:移动端导航开关*/}\n <div\n className={styleObj.menu_dropdown}\n >\n <img\n className={styleObj.menu_dropdown_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlQySDZBVzNTWVdONUlQSVQ0TjNKU0FMMk1LRFVLRyIsInciOjQwLCJoIjo0MCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE4MzcxNzM5NzkzMDQ3ODA4LCJhYiI6MH0?format=originalOFGHLERTH\"\n alt=\"\"/>\n </div>\n\n </div>\n </div>\n <div className={styleObj.line}/>\n </div>\n );\n});\n\nexport default Header;\n","import React, {useImperativeHandle, useRef} from \"react\";\nimport styleObj from \"./Layout.module.less\";\nimport Header, {HeaderRef} from \"../Header/Header\";\nimport HeaderHome from \"../HeaderHome/Header\";\n\ntype Props = {\n children: React.ReactNode,\n isHome?: boolean,\n headerStyle?: object\n}\n\nexport type LayoutRef = {\n logoDom: HTMLDivElement | null | undefined,\n menuDom: HTMLDivElement | null | undefined,\n languageDom: HTMLDivElement | null | undefined,\n languageMobileDom: HTMLDivElement | null | undefined,\n menuLogoDom: HTMLDivElement | null | undefined,\n headerDiv?: HTMLDivElement | null | undefined,\n}\n\nconst Layout = React.forwardRef<LayoutRef, Props>((props, ref) => {\n const {children, headerStyle, isHome = false} = props;\n const headerRef = useRef<HeaderRef>(null);\n\n useImperativeHandle(ref, () => ({\n logoDom: headerRef?.current?.logoDom,\n menuDom: headerRef?.current?.menuDom,\n languageDom: headerRef?.current?.languageDom,\n languageMobileDom: headerRef?.current?.languageMobileDom,\n menuLogoDom: headerRef?.current?.menuLogoDom,\n headerDiv: headerRef?.current?.headerDiv\n }));\n\n return (\n <div\n className={styleObj.layout}\n >\n {\n isHome ?\n <HeaderHome\n ref={headerRef}\n headerStyle={headerStyle}\n />\n :\n <Header\n ref={headerRef}\n headerStyle={headerStyle}\n />\n }\n {children}\n </div>\n );\n});\n\nexport default Layout;\n","export const PERMISSION_PRY_TYPE = ['TWD', 'IDR', 'THB', 'MYR'];\n\nexport const ESPECIAL_PAY_TYPE = ['IDR', 'TWD', 'HKD', 'THB', 'RUB']; // 这几种货币特殊计算\n\nexport const PAY_CARD: any = {\n TWD: [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IldDV0RFUEJZQlNISldNSEw0SEFTTVBTWkg2QktBNiIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IlBKMjRNMzJZN1JEWEYzT1RWNU5IU0RYWE9WMlRNRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1ODgyMzEwOTM5NTUyNDk0MTY1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik1HTjVZQktDVEY3NUM3RVY3WVM2REszTEdDV09GQSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n ],\n IDR: [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IjVSREkyWUw2UFRRSVMyWEJRU0haWUJCSDYzVEVRWiIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ikg0U05UNjVBNlEzWEtCQlI3V1lMSFhUQlFLUUNGRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NjA3NTk0OTEyMzcxMjgyNTA5fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IktMNDdBSVhMSFdaS0xMTFVFSEJWMlVVWVNDNExWTyIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n ],\n MYR: [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkRST01UUUFKWTZDRUFOTkxIM09YTDRFN1RBNUdLTSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik5RVjUzRzZQQ01KQ0FJN1NVN0tFMkVTSUdOTTIzWSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo4MTkyNzM1MzA5NDk4MjY0MTc3fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkdINjZVN1lENEhBMlMzWFBDWk9HQkZFTVZaRkQyUCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n ],\n THB: [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik83WFhEWExZWkhLRTJMVTJQQVE0S0pSUkZLRUY2UCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MTgwODQ5NTgzNjM0NTUyNDA1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IjNNWFRSV1lUV0lLUlA3TzZNWUFXT0EyTUVRWk1HRCIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NTg5NjUwNDAxNTQ5MjU3MDQ1fQ',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkFaM0tMTk5ETFdFWFlRN05YRzRDTlBDRU5HQkFQTSIsInciOjE5MiwiaCI6NzIsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1MDAzNjE5NDUxMTU0NTU3MDEzfQ',\n ],\n};\n","import {useRef, useEffect, useState, useMemo} from \"react\";\nimport {LayoutRef} from \"./components/Layout/Layout\";\n\n/**\n * 使用白色底色的标题栏\n */\nexport function useWhite() {\n const layoutRef = useRef<LayoutRef>(null);\n useEffect(() => {\n const logoDom = layoutRef?.current?.logoDom; //logo(PC、移动)\n const languageMobileDom = layoutRef?.current?.languageMobileDom; //多语下拉框(移动端)\n const menuDom = layoutRef?.current?.menuDom; //导航文字(PC)\n const languageDom = layoutRef?.current?.languageDom; //小地球(PC)\n const menuLogoDom = layoutRef?.current?.menuLogoDom; //导航图标(移动端)\n logoDom && (logoDom.style.height = \"0\"); //logo\n menuDom && (menuDom.style.height = \"0\"); //导航文字\n languageDom && (languageDom.style.height = \"0\"); //小地球\n languageMobileDom && (languageMobileDom.style.height = \"0\"); //多语下拉框(移动端)\n menuLogoDom && (menuLogoDom.style.height = \"0\"); //导航图标(移动端)\n }, []);\n return [layoutRef];\n}\n\n/*\n* PC系统判断\n* */\nexport function useSystem() {\n const [isWindows, setIsWindows] = useState<boolean>(true);\n useEffect(() => {\n const agent = navigator.userAgent.toLowerCase();\n const isMac = /macintosh|mac os x/i.test(navigator.userAgent);\n if (agent.indexOf(\"win32\") >= 0 || agent.indexOf(\"wow32\") >= 0) {\n setIsWindows(true);\n }\n if (agent.indexOf(\"win64\") >= 0 || agent.indexOf(\"wow64\") >= 0) {\n setIsWindows(true);\n }\n if (isMac) {\n setIsWindows(false);\n }\n }, []);\n return [isWindows];\n}\n\n/**\n * 小窗口判断(宽度小于800)\n */\nexport function useSmallWindow() {\n const isMobile = useMemo(() => {\n return window.innerWidth <= 800;\n }, [window.innerWidth]);\n return [isMobile];\n}\n\n/**\n * 移动端系统判断\n */\nexport function useAndroid() {\n const [isAndroid, setIsAndroid] = useState(true);\n useEffect(() => {\n let u = navigator.userAgent;\n let isIOS = !!u.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端\n if (isIOS) setIsAndroid(false);\n }, []);\n return [isAndroid];\n}\n\n/*系统语言判断*/\nexport function useLanguage() {\n const [language, setLanguage] = useState<string>(\"en\");\n\n useEffect(() => {\n const language = window?.navigator?.language; //获取系统语言\n if (language.includes(\"zh\")) { //中文(分3种)\n if (language.match(/cn|CN/)) { //简体\n setLanguage(\"zh-CN\");\n } else if (language.match(/tw|TW/)) { //繁体\n setLanguage(\"zh-TW\");\n } else if (language.match(/hk|HK/)) {\n setLanguage(\"zh-HK\");\n } else {\n setLanguage(\"zh-CN\");\n }\n } else if (language.includes(\"en\")) { //英文\n setLanguage(\"en\");\n } else if (language.includes(\"ms\")) { //马来语\n setLanguage(\"ms\");\n } else if (language.includes(\"th\")) { //泰语\n setLanguage(\"th\");\n } else if (language.includes(\"id\")) { //印尼语\n setLanguage(\"id\");\n } else {\n setLanguage(\"en\"); //英语\n }\n }, []);\n\n return [language];\n}\n\n/*将系统语言转化为官网支持的语言()*/\nexport function useChangeOsLanguage() {\n const [language, setLanguage] = useState<string>(\"en\");\n\n useEffect(() => {\n const language = window?.navigator?.language; //获取系统语言\n if (language.includes(\"zh\")) { //中文(分3种)\n setLanguage(\"zh\"); //繁体中文\n } else if (language.includes(\"en\")) { //英文\n setLanguage(\"en\");\n } else if (language.includes(\"ms\")) { //马来语\n setLanguage(\"my\");\n } else if (language.includes(\"th\")) { //泰语\n setLanguage(\"th\");\n } else if (language.includes(\"id\")) { //印尼语\n setLanguage(\"id\");\n } else {\n setLanguage(\"en\"); //英语\n }\n }, []);\n\n return [language];\n}\n\n/*判断是否为移动端*/\nexport function useMobile() {\n const [isMobile, setMobile] = useState<boolean>(false);\n useEffect(() => {\n if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) && window.matchMedia(\"only screen and (max-width:767px)\").matches) {\n setMobile(true)\n } else (\n setMobile(false)\n )\n }, [navigator.userAgent])\n return [isMobile]\n}\n\nexport const useCountDown = ({ endTime, onEnd }: {endTime: number, onEnd?: VoidFunction}): {second: string,minute: string, hour: string} => {\n const [end, setEnd] = useState(false);\n const calculateTimeLeft = () => {\n\n const difference = Math.max(new Date(endTime).valueOf() - new Date().valueOf(), 0);\n const hour = Math.floor((difference / (1000 * 60 * 60)))\n const minute = Math.floor((difference / 1000 / 60) % 60)\n const second = Math.floor((difference / 1000) % 60)\n const timeLeft = {\n hour: hour < 10 ? `0${hour}` : `${hour}`,\n minute: minute < 10 ? (`0${minute}`) : `${minute}`,\n second: second < 10 ? `0${second}` : `${second}`,\n }\n\n return timeLeft;\n };\n\n const [timeLeft, setTimeLeft] = useState(calculateTimeLeft());\n\n useEffect(() => {\n const timer = setInterval(() => {\n setTimeLeft(calculateTimeLeft());\n const difference = Math.max(new Date(endTime).valueOf() - new Date().valueOf(), 0);\n if (difference <= 0) {\n setEnd(true);\n }\n }, 1000);\n\n // 清除计时器\n return () => clearInterval(timer);\n }, [endTime]);\n\n useEffect(() => {\n if (end) {\n onEnd && onEnd();\n }\n }, [end]);\n\n\n\n return timeLeft;\n};\n\nexport default useCountDown;\n","import React, { createContext, useState, useContext, ReactNode } from 'react';\n\n\ninterface AuthContextType {\n logged: boolean;\n login: () => void;\n logout: () => void;\n}\n\nconst AuthContext = createContext<AuthContextType | undefined>(undefined);\n\nexport const AuthProvider: React.FC<{ children: ReactNode }> = ({ children }) => {\n const [logged, setLogged] = useState<boolean>(false);\n\n // 登录函数\n const login = () => {\n setLogged(true);\n };\n\n // 登出函数\n const logout = () => {\n setLogged(false);\n localStorage.removeItem('accessToken');\n // setUser(null);\n };\n\n return (\n <AuthContext.Provider value={{ logged, login, logout }}>\n {children}\n </AuthContext.Provider>\n );\n};\n\nexport const useAuth = (): AuthContextType => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"toast\":\"style_toast__VLS+4\"};","import React, { createContext, useContext, useState, useCallback, ReactNode } from 'react';\nimport s from './style.module.less';\n\n// eslint-disable-next-line no-unused-vars\nconst ToastContext = createContext((a: any, b?: any) => {});\n\nexport const useToast = () => useContext(ToastContext);\n\nexport const ToastProvider = ({ children }: {children: ReactNode}) => {\n const [toast, setToast] = useState({ message: '', duration: 0 });\n\n const showToast = useCallback((message:string, duration?: number) => {\n const time = duration || 3000;\n setToast({ message, duration: time });\n setTimeout(() => setToast({ message: '', duration: 0 }), time);\n }, []);\n\n return (\n <ToastContext.Provider value={showToast}>\n {children}\n {toast.message && <div className={s.toast}>{toast.message}</div>}\n </ToastContext.Provider>\n );\n};\n","import React from 'react';\nimport { ESPECIAL_PAY_TYPE } from '../const';\n\nexport const getAgentOs = () => {\n const uat = navigator.userAgent;\n if (uat.indexOf('Android') > -1 || uat.indexOf('Linux') > -1) {\n return 'android';\n } else if (uat.match(/\\(i[^;]+;( U;)? CPU.+Mac OS X/)) {\n return 'ios';\n }\n return 'ios';\n};\n\nfunction parseJSON(response: any) {\n return response.json();\n}\n\nfunction checkStatus(response: any) {\n if (response.status >= 200 && response.status < 300) {\n return response;\n }\n const error = new Error(response.statusText);\n throw error;\n}\n\n/**\n *\n * @param data {meta: {code: 200, message: \"OK\"}, data: {...}}\n * @returns {*}\n */\nfunction checkMeta(data: any) {\n if (!data || !data.meta) {\n throw new Error('no meta data');\n } else {\n const { meta, ...d } = data;\n if (meta.code !== 200 && meta.code !== 201) {\n throw new Error(meta);\n } else {\n return d;\n }\n }\n}\n\nfunction request(url: any, options?: any) {\n if (!options) {\n options = {};\n }\n\n return fetch(url, { ...options, credentials: 'include' })\n .then(checkStatus)\n .then(parseJSON)\n .then(checkMeta);\n}\n\nexport function post(url: any, data: any) {\n return request(url, {\n method: 'POST',\n body: JSON.stringify(data),\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\nexport function get(url: any) {\n return request(url);\n}\n\nexport function sendMail(mail: any) {\n return post('/api/mail', mail);\n}\n\nexport function getSearchParams(search: string = '') {\n if (!search.length) return {};\n const obj: any = {};\n const paramArr = search.substring(1).split('&');\n paramArr.forEach((item) => {\n const itemArr = item.split('=');\n obj[itemArr[0]] = itemArr[1];\n });\n return obj;\n}\n\nconst vipObj: any = {\n vip: 0,\n seeWhoLikedMe: 1,\n supreme: 2,\n diamond: 3,\n};\n\nexport function filterPrice(data: any, tags: Array<string> = [], promotion?: boolean) {\n const filterKey = Object.keys(vipObj);\n const filterArr = data?.filter((item: any) => filterKey.includes(item.category)) || [];\n const reduceArr = filterArr.reduce((did: any, cur: any) => {\n const stockKeepUnit = promotion ? (cur.promotionStockKeepUnits?.[0] || {}) : (cur.defaultStockKeepUnits?.[0] || {});\n const prices = stockKeepUnit.prices || {};\n const tagPrice = prices.tagPrice || {};\n let price = tagPrice.default || 0;\n if (Array.isArray(tags) && tags.length > 0) {\n for (const tag of tags) {\n if (tagPrice[tag] > 0) {\n price = tagPrice[tag];\n break;\n }\n }\n }\n const { currencySymbol, currencyCode, inAppPrice } = prices;\n const month = cur.quantity;\n const price1 = price / month; // 月单价\n const obj = {\n ...cur,\n id: stockKeepUnit.id,\n currencySymbol, // 货币符号\n price, // 原始价格,不做展示,只用于计算\n price1: ESPECIAL_PAY_TYPE.includes(currencyCode) ? Math.ceil(price1) : price1?.toFixed(2), // 月单价\n month,\n vipType: vipObj[cur.category],\n inAppPrice,\n tagPrice,\n };\n // // 测试数据\n // if (did.length === 1) {\n // obj.tag = 'bestDeal';\n // }\n did.push(obj);\n return did;\n }, []);\n return reduceArr;\n}\n\nexport function getApi(url: string, headers: HeadersInit = {}) {\n const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n // const accessToken = 'b3229e60a9472fcf2052279c35043e6af4df35c064a60d6b7fb53a7aa63bf981'; // 拿到用户的token\n // const path = `http://web-api.omi.dev.p1.cn${url}`;\n\n return fetch(url,\n {\n method: 'GET',\n headers: {\n ...headers,\n Authorization: `Bearer ${accessToken}`,\n },\n }).then((res) => res.json());\n}\n\nexport function postApi(url: string, data: object, headers: HeadersInit = {}) {\n const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n // const accessToken = 'b3229e60a9472fcf2052279c35043e6af4df35c064a60d6b7fb53a7aa63bf981'; // 拿到用户的token\n // const path = `http://web-api.omi.dev.p1.cn${url}`;\n return fetch(url,\n {\n method: 'POST',\n headers: {\n ...headers,\n Authorization: `Bearer ${accessToken}`,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n body: JSON.stringify(data),\n }).then((res) => res.json());\n}\n\nexport function sendPoint(params: object) {\n Object.defineProperty(\n params,\n 'system',\n {\n value: getMobileOperatingSystem(),\n writable: true,\n configurable: true,\n enumerable: true,\n },\n );\n const accessToken = localStorage.getItem('accessToken'); // 拿到用户的token\n let url = '/web/event?';\n Object.entries(params).forEach((item) => {\n url += `${item[0]}=${item[1]}&`;\n });\n const init: any = {};\n if (accessToken) init.headers = { Authorization: `Bearer ${accessToken}` };\n fetch(url.slice(0, -1), init);\n}\n\nexport function addLink(text: string, text1: string, text2: string) {\n const res = text.replace(text1, `<a href=\"https://omi.sg/privacy\">${text1}</a>`)\n .replace(text2, `<a href=\"https://omi.sg/terms\">${text2}</a>`);\n return <div dangerouslySetInnerHTML={{ __html: res }} />;\n}\n\n// 获取手机系统信息\nexport function getMobileOperatingSystem() {\n const { userAgent } = navigator;\n\n if (/android/i.test(userAgent)) {\n return 'Android';\n }\n if (/iPad|iPhone|iPod/.test(userAgent)) {\n return 'iOS';\n }\n return 'Unknown';\n}\n\nconst countryCodeMap: any = {\n HKD: 'HK',\n TWD: 'TW',\n MYR: 'MY',\n THB: 'TH',\n IDR: 'ID',\n};\n\n// 苹果支付\nexport const handlePaymentApple = (\n {\n itemId,\n price,\n currencyCode,\n targetOrg,\n paymentMethod,\n upgradeOrderId,\n }: any,\n successCallback: Function,\n errorCallback: Function,\n) => {\n const { ApplePaySession } = window as any;\n const applePaySession = new ApplePaySession(\n 6, // 版本\n {\n countryCode: countryCodeMap[currencyCode],\n currencyCode,\n supportedNetworks: ['visa', 'masterCard'],\n merchantCapabilities: ['supports3DS'],\n total: {\n label: 'omi',\n amount: price,\n },\n },\n );\n applePaySession.begin();\n\n applePaySession.onvalidatemerchant = function (event: any) { // 验证商户\n const theValidationURL = event.validationURL;\n postApi(\n '/web-api/payment/checkout/validate-applepay-session',\n { appleUrl: theValidationURL },\n )\n .then((response) => {\n applePaySession.completeMerchantValidation(response.data);\n });\n };\n\n applePaySession.onpaymentauthorized = function (event: any) { // 处理支付授权\n const applePaymentToken = event.payment.token;\n const params:any = {\n token: applePaymentToken,\n itemId,\n price,\n currencyCode,\n targetOrg,\n paymentMethod,\n };\n if (upgradeOrderId) {\n params.upgradeOrderId = upgradeOrderId;\n }\n postApi(\n '/web-api/payment/checkout/pay',\n params,\n )\n .then((response) => {\n if (response.data) {\n applePaySession.completePayment(ApplePaySession.STATUS_SUCCESS);\n successCallback();\n } else {\n applePaySession.completePayment(ApplePaySession.STATUS_FAILURE);\n errorCallback();\n }\n });\n };\n};\n\nexport function thousandsSeparator(n: number): string {\n const strSplit = n.toString().split('.');\n const integer = strSplit[0];\n const decimal = strSplit[1] || '';\n return integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + decimal;\n}\n\nexport function postWithoutAuth(url: string, data: object, headers: HeadersInit = {}) {\n return fetch(url,\n {\n method: 'POST',\n headers: {\n ...headers,\n 'Content-Type': 'application/json; charset=utf-8',\n },\n body: JSON.stringify(data),\n }).then((res) => res.json());\n}\n","import { inputToRGB, rgbToHex, rgbToHsv } from '@ctrl/tinycolor';\n\nvar hueStep = 2; // 色相阶梯\n\nvar saturationStep = 0.16; // 饱和度阶梯,浅色部分\n\nvar saturationStep2 = 0.05; // 饱和度阶梯,深色部分\n\nvar brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\n\nvar brightnessStep2 = 0.15; // 亮度阶梯,深色部分\n\nvar lightColorCount = 5; // 浅色数量,主色上\n\nvar darkColorCount = 4; // 深色数量,主色下\n// 暗色主题颜色映射关系表\n\nvar darkColorMap = [{\n index: 7,\n opacity: 0.15\n}, {\n index: 6,\n opacity: 0.25\n}, {\n index: 5,\n opacity: 0.3\n}, {\n index: 5,\n opacity: 0.45\n}, {\n index: 5,\n opacity: 0.65\n}, {\n index: 5,\n opacity: 0.85\n}, {\n index: 4,\n opacity: 0.9\n}, {\n index: 3,\n opacity: 0.95\n}, {\n index: 2,\n opacity: 0.97\n}, {\n index: 1,\n opacity: 0.98\n}]; // Wrapper function ported from TinyColor.prototype.toHsv\n// Keep it here because of `hsv.h * 360`\n\nfunction toHsv(_ref) {\n var r = _ref.r,\n g = _ref.g,\n b = _ref.b;\n var hsv = rgbToHsv(r, g, b);\n return {\n h: hsv.h * 360,\n s: hsv.s,\n v: hsv.v\n };\n} // Wrapper function ported from TinyColor.prototype.toHexString\n// Keep it here because of the prefix `#`\n\n\nfunction toHex(_ref2) {\n var r = _ref2.r,\n g = _ref2.g,\n b = _ref2.b;\n return \"#\".concat(rgbToHex(r, g, b, false));\n} // Wrapper function ported from TinyColor.prototype.mix, not treeshakable.\n// Amount in range [0, 1]\n// Assume color1 & color2 has no alpha, since the following src code did so.\n\n\nfunction mix(rgb1, rgb2, amount) {\n var p = amount / 100;\n var rgb = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b\n };\n return rgb;\n}\n\nfunction getHue(hsv, i, light) {\n var hue; // 根据色相不同,色相转向不同\n\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n\n return hue;\n}\n\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n\n var saturation;\n\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n } // 边界值修正\n\n\n if (saturation > 1) {\n saturation = 1;\n } // 第一格的 s 限制在 0.06-0.1 之间\n\n\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n\n return Number(saturation.toFixed(2));\n}\n\nfunction getValue(hsv, i, light) {\n var value;\n\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n\n if (value > 1) {\n value = 1;\n }\n\n return Number(value.toFixed(2));\n}\n\nfunction generate(color) {\n var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var patterns = [];\n var pColor = inputToRGB(color);\n\n for (var i = lightColorCount; i > 0; i -= 1) {\n var hsv = toHsv(pColor);\n var colorString = toHex(inputToRGB({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n }));\n patterns.push(colorString);\n }\n\n patterns.push(toHex(pColor));\n\n for (var _i = 1; _i <= darkColorCount; _i += 1) {\n var _hsv = toHsv(pColor);\n\n var _colorString = toHex(inputToRGB({\n h: getHue(_hsv, _i),\n s: getSaturation(_hsv, _i),\n v: getValue(_hsv, _i)\n }));\n\n patterns.push(_colorString);\n } // dark theme patterns\n\n\n if (opts.theme === 'dark') {\n return darkColorMap.map(function (_ref3) {\n var index = _ref3.index,\n opacity = _ref3.opacity;\n var darkColorString = toHex(mix(inputToRGB(opts.backgroundColor || '#141414'), inputToRGB(patterns[index]), opacity * 100));\n return darkColorString;\n });\n }\n\n return patterns;\n}\n\nvar presetPrimaryColors = {\n red: '#F5222D',\n volcano: '#FA541C',\n orange: '#FA8C16',\n gold: '#FAAD14',\n yellow: '#FADB14',\n lime: '#A0D911',\n green: '#52C41A',\n cyan: '#13C2C2',\n blue: '#1890FF',\n geekblue: '#2F54EB',\n purple: '#722ED1',\n magenta: '#EB2F96',\n grey: '#666666'\n};\nvar presetPalettes = {};\nvar presetDarkPalettes = {};\nObject.keys(presetPrimaryColors).forEach(function (key) {\n presetPalettes[key] = generate(presetPrimaryColors[key]);\n presetPalettes[key].primary = presetPalettes[key][5]; // dark presetPalettes\n\n presetDarkPalettes[key] = generate(presetPrimaryColors[key], {\n theme: 'dark',\n backgroundColor: '#141414'\n });\n presetDarkPalettes[key].primary = presetDarkPalettes[key][5];\n});\nvar red = presetPalettes.red;\nvar volcano = presetPalettes.volcano;\nvar gold = presetPalettes.gold;\nvar orange = presetPalettes.orange;\nvar yellow = presetPalettes.yellow;\nvar lime = presetPalettes.lime;\nvar green = presetPalettes.green;\nvar cyan = presetPalettes.cyan;\nvar blue = presetPalettes.blue;\nvar geekblue = presetPalettes.geekblue;\nvar purple = presetPalettes.purple;\nvar magenta = presetPalettes.magenta;\nvar grey = presetPalettes.grey;\n\nexport { blue, cyan, geekblue, generate, gold, green, grey, lime, magenta, orange, presetDarkPalettes, presetPalettes, presetPrimaryColors, purple, red, volcano, yellow };\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { generate as generateColor } from '@ant-design/colors';\nimport React, { useContext, useEffect } from 'react';\nimport warn from \"rc-util/es/warning\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport IconContext from './components/Context';\nexport function warning(valid, message) {\n warn(valid, \"[@ant-design/icons] \".concat(message));\n}\nexport function isIconDefinition(target) {\n return _typeof(target) === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (_typeof(target.icon) === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs() {\n var attrs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Object.keys(attrs).reduce(function (acc, key) {\n var val = attrs[key];\n\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n\n default:\n acc[key] = val;\n }\n\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n }\n\n return /*#__PURE__*/React.createElement(node.tag, _objectSpread(_objectSpread({\n key: key\n }, normalizeAttrs(node.attrs)), rootProps), (node.children || []).map(function (child, index) {\n return generate(child, \"\".concat(key, \"-\").concat(node.tag, \"-\").concat(index));\n }));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n} // These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\n\nexport var svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport var iconStyles = \"\\n.anticon {\\n display: inline-block;\\n color: inherit;\\n font-style: normal;\\n line-height: 0;\\n text-align: center;\\n text-transform: none;\\n vertical-align: -0.125em;\\n text-rendering: optimizeLegibility;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n}\\n\\n.anticon > * {\\n line-height: 1;\\n}\\n\\n.anticon svg {\\n display: inline-block;\\n}\\n\\n.anticon::before {\\n display: none;\\n}\\n\\n.anticon .anticon-icon {\\n display: block;\\n}\\n\\n.anticon[tabindex] {\\n cursor: pointer;\\n}\\n\\n.anticon-spin::before,\\n.anticon-spin {\\n display: inline-block;\\n -webkit-animation: loadingCircle 1s infinite linear;\\n animation: loadingCircle 1s infinite linear;\\n}\\n\\n@-webkit-keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\\n@keyframes loadingCircle {\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n\";\nexport var useInsertStyles = function useInsertStyles() {\n var styleStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : iconStyles;\n\n var _useContext = useContext(IconContext),\n csp = _useContext.csp;\n\n useEffect(function () {\n updateCSS(styleStr, '@ant-design-icons', {\n prepend: true,\n csp: csp\n });\n }, []);\n};","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nvar _excluded = [\"icon\", \"className\", \"onClick\", \"style\", \"primaryColor\", \"secondaryColor\"];\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from '../utils';\nvar twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\n\nfunction setTwoToneColors(_ref) {\n var primaryColor = _ref.primaryColor,\n secondaryColor = _ref.secondaryColor;\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\n\nfunction getTwoToneColors() {\n return _objectSpread({}, twoToneColorPalette);\n}\n\nvar IconBase = function IconBase(props) {\n var icon = props.icon,\n className = props.className,\n onClick = props.onClick,\n style = props.style,\n primaryColor = props.primaryColor,\n secondaryColor = props.secondaryColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var colors = twoToneColorPalette;\n\n if (primaryColor) {\n colors = {\n primaryColor: primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n\n useInsertStyles();\n warning(isIconDefinition(icon), \"icon should be icon definiton, but got \".concat(icon));\n\n if (!isIconDefinition(icon)) {\n return null;\n }\n\n var target = icon;\n\n if (target && typeof target.icon === 'function') {\n target = _objectSpread(_objectSpread({}, target), {}, {\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n });\n }\n\n return generate(target.icon, \"svg-\".concat(target.name), _objectSpread({\n className: className,\n onClick: onClick,\n style: style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true'\n }, restProps));\n};\n\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport ReactIcon from './IconBase';\nimport { normalizeTwoToneColors } from '../utils';\nexport function setTwoToneColor(twoToneColor) {\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return ReactIcon.setTwoToneColors({\n primaryColor: primaryColor,\n secondaryColor: secondaryColor\n });\n}\nexport function getTwoToneColor() {\n var colors = ReactIcon.getTwoToneColors();\n\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n\n return [colors.primaryColor, colors.secondaryColor];\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"className\", \"icon\", \"spin\", \"rotate\", \"tabIndex\", \"onClick\", \"twoToneColor\"];\nimport * as React from 'react';\nimport classNames from 'classnames';\nimport Context from './Context';\nimport ReactIcon from './IconBase';\nimport { getTwoToneColor, setTwoToneColor } from './twoTonePrimaryColor';\nimport { normalizeTwoToneColors } from '../utils'; // Initial setting\n// should move it to antd main repo?\n\nsetTwoToneColor('#1890ff');\nvar Icon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _classNames;\n\n var className = props.className,\n icon = props.icon,\n spin = props.spin,\n rotate = props.rotate,\n tabIndex = props.tabIndex,\n onClick = props.onClick,\n twoToneColor = props.twoToneColor,\n restProps = _objectWithoutProperties(props, _excluded);\n\n var _React$useContext = React.useContext(Context),\n _React$useContext$pre = _React$useContext.prefixCls,\n prefixCls = _React$useContext$pre === void 0 ? 'anticon' : _React$useContext$pre;\n\n var classString = classNames(prefixCls, (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(icon.name), !!icon.name), _defineProperty(_classNames, \"\".concat(prefixCls, \"-spin\"), !!spin || icon.name === 'loading'), _classNames), className);\n var iconTabIndex = tabIndex;\n\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n\n var svgStyle = rotate ? {\n msTransform: \"rotate(\".concat(rotate, \"deg)\"),\n transform: \"rotate(\".concat(rotate, \"deg)\")\n } : undefined;\n\n var _normalizeTwoToneColo = normalizeTwoToneColors(twoToneColor),\n _normalizeTwoToneColo2 = _slicedToArray(_normalizeTwoToneColo, 2),\n primaryColor = _normalizeTwoToneColo2[0],\n secondaryColor = _normalizeTwoToneColo2[1];\n\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread(_objectSpread({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps), {}, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.displayName = 'AntdIcon';\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nexport default Icon;","import { createContext } from 'react';\nvar IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","// This icon file is generated automatically.\nvar CheckCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm193.5 301.7l-210.6 292a31.8 31.8 0 01-51.7 0L318.5 484.9c-3.8-5.3 0-12.7 6.5-12.7h46.9c10.2 0 19.9 4.9 25.9 13.3l71.2 98.8 157.2-218c6-8.3 15.6-13.3 25.9-13.3H699c6.5 0 10.3 7.4 6.5 12.7z\" } }] }, \"name\": \"check-circle\", \"theme\": \"filled\" };\nexport default CheckCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CheckCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleFilled = function CheckCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleFilledSvg\n }));\n};\n\nCheckCircleFilled.displayName = 'CheckCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleFilled);","// This icon file is generated automatically.\nvar CloseCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm165.4 618.2l-66-.3L512 563.4l-99.3 118.4-66.1.3c-4.4 0-8-3.5-8-8 0-1.9.7-3.7 1.9-5.2l130.1-155L340.5 359a8.32 8.32 0 01-1.9-5.2c0-4.4 3.6-8 8-8l66.1.3L512 464.6l99.3-118.4 66-.3c4.4 0 8 3.5 8 8 0 1.9-.7 3.7-1.9 5.2L553.5 514l130 155c1.2 1.5 1.9 3.3 1.9 5.2 0 4.4-3.6 8-8 8z\" } }] }, \"name\": \"close-circle\", \"theme\": \"filled\" };\nexport default CloseCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleFilledSvg from \"@ant-design/icons-svg/es/asn/CloseCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleFilled = function CloseCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleFilledSvg\n }));\n};\n\nCloseCircleFilled.displayName = 'CloseCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleFilled);","// This icon file is generated automatically.\nvar CloseOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z\" } }] }, \"name\": \"close\", \"theme\": \"outlined\" };\nexport default CloseOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseOutlined = function CloseOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseOutlinedSvg\n }));\n};\n\nCloseOutlined.displayName = 'CloseOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm-32 232c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V296zm32 440a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"filled\" };\nexport default ExclamationCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleFilledSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleFilled = function ExclamationCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleFilledSvg\n }));\n};\n\nExclamationCircleFilled.displayName = 'ExclamationCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleFilled);","// This icon file is generated automatically.\nvar LoadingOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"0 0 1024 1024\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M988 548c-19.9 0-36-16.1-36-36 0-59.4-11.6-117-34.6-171.3a440.45 440.45 0 00-94.3-139.9 437.71 437.71 0 00-139.9-94.3C629 83.6 571.4 72 512 72c-19.9 0-36-16.1-36-36s16.1-36 36-36c69.1 0 136.2 13.5 199.3 40.3C772.3 66 827 103 874 150c47 47 83.9 101.8 109.7 162.7 26.7 63.1 40.2 130.2 40.2 199.3.1 19.9-16 36-35.9 36z\" } }] }, \"name\": \"loading\", \"theme\": \"outlined\" };\nexport default LoadingOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport LoadingOutlinedSvg from \"@ant-design/icons-svg/es/asn/LoadingOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar LoadingOutlined = function LoadingOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: LoadingOutlinedSvg\n }));\n};\n\nLoadingOutlined.displayName = 'LoadingOutlined';\nexport default /*#__PURE__*/React.forwardRef(LoadingOutlined);","import { bound01, pad2 } from './util';\n// `rgbToHsl`, `rgbToHsv`, `hslToRgb`, `hsvToRgb` modified from:\n// <http://mjijackson.com/2008/02/rgb-to-hsl-and-rgb-to-hsv-color-model-conversion-algorithms-in-javascript>\n/**\n * Handle bounds / percentage checking to conform to CSS color spec\n * <http://www.w3.org/TR/css3-color/>\n * *Assumes:* r, g, b in [0, 255] or [0, 1]\n * *Returns:* { r, g, b } in [0, 255]\n */\nexport function rgbToRgb(r, g, b) {\n return {\n r: bound01(r, 255) * 255,\n g: bound01(g, 255) * 255,\n b: bound01(b, 255) * 255,\n };\n}\n/**\n * Converts an RGB color value to HSL.\n * *Assumes:* r, g, and b are contained in [0, 255] or [0, 1]\n * *Returns:* { h, s, l } in [0,1]\n */\nexport function rgbToHsl(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var s = 0;\n var l = (max + min) / 2;\n if (max === min) {\n s = 0;\n h = 0; // achromatic\n }\n else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, l: l };\n}\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n if (t > 1) {\n t -= 1;\n }\n if (t < 1 / 6) {\n return p + (q - p) * (6 * t);\n }\n if (t < 1 / 2) {\n return q;\n }\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n return p;\n}\n/**\n * Converts an HSL color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and l are contained [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hslToRgb(h, s, l) {\n var r;\n var g;\n var b;\n h = bound01(h, 360);\n s = bound01(s, 100);\n l = bound01(l, 100);\n if (s === 0) {\n // achromatic\n g = l;\n b = l;\n r = l;\n }\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 return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color value to HSV\n *\n * *Assumes:* r, g, and b are contained in the set [0, 255] or [0, 1]\n * *Returns:* { h, s, v } in [0,1]\n */\nexport function rgbToHsv(r, g, b) {\n r = bound01(r, 255);\n g = bound01(g, 255);\n b = bound01(b, 255);\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h = 0;\n var v = max;\n var d = max - min;\n var s = max === 0 ? 0 : d / max;\n if (max === min) {\n h = 0; // achromatic\n }\n else {\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n case g:\n h = (b - r) / d + 2;\n break;\n case b:\n h = (r - g) / d + 4;\n break;\n default:\n break;\n }\n h /= 6;\n }\n return { h: h, s: s, v: v };\n}\n/**\n * Converts an HSV color value to RGB.\n *\n * *Assumes:* h is contained in [0, 1] or [0, 360] and s and v are contained in [0, 1] or [0, 100]\n * *Returns:* { r, g, b } in the set [0, 255]\n */\nexport function hsvToRgb(h, s, v) {\n h = bound01(h, 360) * 6;\n s = bound01(s, 100);\n v = bound01(v, 100);\n var i = Math.floor(h);\n var f = h - i;\n var p = v * (1 - s);\n var q = v * (1 - f * s);\n var t = v * (1 - (1 - f) * s);\n var mod = i % 6;\n var r = [v, q, p, p, t, v][mod];\n var g = [t, v, v, q, p, p][mod];\n var b = [p, p, t, v, v, q][mod];\n return { r: r * 255, g: g * 255, b: b * 255 };\n}\n/**\n * Converts an RGB color to hex\n *\n * Assumes r, g, and b are contained in the set [0, 255]\n * Returns a 3 or 6 character hex\n */\nexport function rgbToHex(r, g, b, allow3Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n // Return a 3 character hex if possible\n if (allow3Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color plus alpha transparency to hex\n *\n * Assumes r, g, b are contained in the set [0, 255] and\n * a in [0, 1]. Returns a 4 or 8 character rgba hex\n */\n// eslint-disable-next-line max-params\nexport function rgbaToHex(r, g, b, a, allow4Char) {\n var hex = [\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n pad2(convertDecimalToHex(a)),\n ];\n // Return a 4 character hex if possible\n if (allow4Char &&\n hex[0].startsWith(hex[0].charAt(1)) &&\n hex[1].startsWith(hex[1].charAt(1)) &&\n hex[2].startsWith(hex[2].charAt(1)) &&\n hex[3].startsWith(hex[3].charAt(1))) {\n return hex[0].charAt(0) + hex[1].charAt(0) + hex[2].charAt(0) + hex[3].charAt(0);\n }\n return hex.join('');\n}\n/**\n * Converts an RGBA color to an ARGB Hex8 string\n * Rarely used, but required for \"toFilter()\"\n */\nexport function rgbaToArgbHex(r, g, b, a) {\n var hex = [\n pad2(convertDecimalToHex(a)),\n pad2(Math.round(r).toString(16)),\n pad2(Math.round(g).toString(16)),\n pad2(Math.round(b).toString(16)),\n ];\n return hex.join('');\n}\n/** Converts a decimal to a hex value */\nexport function convertDecimalToHex(d) {\n return Math.round(parseFloat(d) * 255).toString(16);\n}\n/** Converts a hex value to a decimal */\nexport function convertHexToDecimal(h) {\n return parseIntFromHex(h) / 255;\n}\n/** Parse a base-16 hex value into a base-10 integer */\nexport function parseIntFromHex(val) {\n return parseInt(val, 16);\n}\nexport function numberInputToObject(color) {\n return {\n r: color >> 16,\n g: (color & 0xff00) >> 8,\n b: color & 0xff,\n };\n}\n","// https://github.com/bahamas10/css-color-names/blob/master/css-color-names.json\n/**\n * @hidden\n */\nexport var names = {\n aliceblue: '#f0f8ff',\n antiquewhite: '#faebd7',\n aqua: '#00ffff',\n aquamarine: '#7fffd4',\n azure: '#f0ffff',\n beige: '#f5f5dc',\n bisque: '#ffe4c4',\n black: '#000000',\n blanchedalmond: '#ffebcd',\n blue: '#0000ff',\n blueviolet: '#8a2be2',\n brown: '#a52a2a',\n burlywood: '#deb887',\n cadetblue: '#5f9ea0',\n chartreuse: '#7fff00',\n chocolate: '#d2691e',\n coral: '#ff7f50',\n cornflowerblue: '#6495ed',\n cornsilk: '#fff8dc',\n crimson: '#dc143c',\n cyan: '#00ffff',\n darkblue: '#00008b',\n darkcyan: '#008b8b',\n darkgoldenrod: '#b8860b',\n darkgray: '#a9a9a9',\n darkgreen: '#006400',\n darkgrey: '#a9a9a9',\n darkkhaki: '#bdb76b',\n darkmagenta: '#8b008b',\n darkolivegreen: '#556b2f',\n darkorange: '#ff8c00',\n darkorchid: '#9932cc',\n darkred: '#8b0000',\n darksalmon: '#e9967a',\n darkseagreen: '#8fbc8f',\n darkslateblue: '#483d8b',\n darkslategray: '#2f4f4f',\n darkslategrey: '#2f4f4f',\n darkturquoise: '#00ced1',\n darkviolet: '#9400d3',\n deeppink: '#ff1493',\n deepskyblue: '#00bfff',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1e90ff',\n firebrick: '#b22222',\n floralwhite: '#fffaf0',\n forestgreen: '#228b22',\n fuchsia: '#ff00ff',\n gainsboro: '#dcdcdc',\n ghostwhite: '#f8f8ff',\n goldenrod: '#daa520',\n gold: '#ffd700',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#adff2f',\n grey: '#808080',\n honeydew: '#f0fff0',\n hotpink: '#ff69b4',\n indianred: '#cd5c5c',\n indigo: '#4b0082',\n ivory: '#fffff0',\n khaki: '#f0e68c',\n lavenderblush: '#fff0f5',\n lavender: '#e6e6fa',\n lawngreen: '#7cfc00',\n lemonchiffon: '#fffacd',\n lightblue: '#add8e6',\n lightcoral: '#f08080',\n lightcyan: '#e0ffff',\n lightgoldenrodyellow: '#fafad2',\n lightgray: '#d3d3d3',\n lightgreen: '#90ee90',\n lightgrey: '#d3d3d3',\n lightpink: '#ffb6c1',\n lightsalmon: '#ffa07a',\n lightseagreen: '#20b2aa',\n lightskyblue: '#87cefa',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#b0c4de',\n lightyellow: '#ffffe0',\n lime: '#00ff00',\n limegreen: '#32cd32',\n linen: '#faf0e6',\n magenta: '#ff00ff',\n maroon: '#800000',\n mediumaquamarine: '#66cdaa',\n mediumblue: '#0000cd',\n mediumorchid: '#ba55d3',\n mediumpurple: '#9370db',\n mediumseagreen: '#3cb371',\n mediumslateblue: '#7b68ee',\n mediumspringgreen: '#00fa9a',\n mediumturquoise: '#48d1cc',\n mediumvioletred: '#c71585',\n midnightblue: '#191970',\n mintcream: '#f5fffa',\n mistyrose: '#ffe4e1',\n moccasin: '#ffe4b5',\n navajowhite: '#ffdead',\n navy: '#000080',\n oldlace: '#fdf5e6',\n olive: '#808000',\n olivedrab: '#6b8e23',\n orange: '#ffa500',\n orangered: '#ff4500',\n orchid: '#da70d6',\n palegoldenrod: '#eee8aa',\n palegreen: '#98fb98',\n paleturquoise: '#afeeee',\n palevioletred: '#db7093',\n papayawhip: '#ffefd5',\n peachpuff: '#ffdab9',\n peru: '#cd853f',\n pink: '#ffc0cb',\n plum: '#dda0dd',\n powderblue: '#b0e0e6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#ff0000',\n rosybrown: '#bc8f8f',\n royalblue: '#4169e1',\n saddlebrown: '#8b4513',\n salmon: '#fa8072',\n sandybrown: '#f4a460',\n seagreen: '#2e8b57',\n seashell: '#fff5ee',\n sienna: '#a0522d',\n silver: '#c0c0c0',\n skyblue: '#87ceeb',\n slateblue: '#6a5acd',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#fffafa',\n springgreen: '#00ff7f',\n steelblue: '#4682b4',\n tan: '#d2b48c',\n teal: '#008080',\n thistle: '#d8bfd8',\n tomato: '#ff6347',\n turquoise: '#40e0d0',\n violet: '#ee82ee',\n wheat: '#f5deb3',\n white: '#ffffff',\n whitesmoke: '#f5f5f5',\n yellow: '#ffff00',\n yellowgreen: '#9acd32',\n};\n","import { convertHexToDecimal, hslToRgb, hsvToRgb, parseIntFromHex, rgbToRgb } from './conversion';\nimport { names } from './css-color-names';\nimport { boundAlpha, convertToPercentage } from './util';\n/**\n * Given a string or object, convert that input to RGB\n *\n * Possible string inputs:\n * ```\n * \"red\"\n * \"#f00\" or \"f00\"\n * \"#ff0000\" or \"ff0000\"\n * \"#ff000000\" or \"ff000000\"\n * \"rgb 255 0 0\" or \"rgb (255, 0, 0)\"\n * \"rgb 1.0 0 0\" or \"rgb (1, 0, 0)\"\n * \"rgba (255, 0, 0, 1)\" or \"rgba 255, 0, 0, 1\"\n * \"rgba (1.0, 0, 0, 1)\" or \"rgba 1.0, 0, 0, 1\"\n * \"hsl(0, 100%, 50%)\" or \"hsl 0 100% 50%\"\n * \"hsla(0, 100%, 50%, 1)\" or \"hsla 0 100% 50%, 1\"\n * \"hsv(0, 100%, 100%)\" or \"hsv 0 100% 100%\"\n * ```\n */\nexport function inputToRGB(color) {\n var rgb = { r: 0, g: 0, b: 0 };\n var a = 1;\n var s = null;\n var v = null;\n var l = null;\n var ok = false;\n var format = false;\n if (typeof color === 'string') {\n color = stringInputToObject(color);\n }\n if (typeof color === 'object') {\n if (isValidCSSUnit(color.r) && isValidCSSUnit(color.g) && isValidCSSUnit(color.b)) {\n rgb = rgbToRgb(color.r, color.g, color.b);\n ok = true;\n format = String(color.r).substr(-1) === '%' ? 'prgb' : 'rgb';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.v)) {\n s = convertToPercentage(color.s);\n v = convertToPercentage(color.v);\n rgb = hsvToRgb(color.h, s, v);\n ok = true;\n format = 'hsv';\n }\n else if (isValidCSSUnit(color.h) && isValidCSSUnit(color.s) && isValidCSSUnit(color.l)) {\n s = convertToPercentage(color.s);\n l = convertToPercentage(color.l);\n rgb = hslToRgb(color.h, s, l);\n ok = true;\n format = 'hsl';\n }\n if (Object.prototype.hasOwnProperty.call(color, 'a')) {\n a = color.a;\n }\n }\n a = boundAlpha(a);\n return {\n ok: ok,\n format: color.format || format,\n r: Math.min(255, Math.max(rgb.r, 0)),\n g: Math.min(255, Math.max(rgb.g, 0)),\n b: Math.min(255, Math.max(rgb.b, 0)),\n a: a,\n };\n}\n// <http://www.w3.org/TR/css3-values/#integers>\nvar CSS_INTEGER = '[-\\\\+]?\\\\d+%?';\n// <http://www.w3.org/TR/css3-values/#number-value>\nvar CSS_NUMBER = '[-\\\\+]?\\\\d*\\\\.\\\\d+%?';\n// Allow positive/negative integer/number. Don't capture the either/or, just the entire outcome.\nvar CSS_UNIT = \"(?:\".concat(CSS_NUMBER, \")|(?:\").concat(CSS_INTEGER, \")\");\n// Actual matching.\n// Parentheses and commas are optional, but not required.\n// Whitespace can take the place of commas or opening paren\nvar PERMISSIVE_MATCH3 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar PERMISSIVE_MATCH4 = \"[\\\\s|\\\\(]+(\".concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")[,|\\\\s]+(\").concat(CSS_UNIT, \")\\\\s*\\\\)?\");\nvar matchers = {\n CSS_UNIT: new RegExp(CSS_UNIT),\n rgb: new RegExp('rgb' + PERMISSIVE_MATCH3),\n rgba: new RegExp('rgba' + PERMISSIVE_MATCH4),\n hsl: new RegExp('hsl' + PERMISSIVE_MATCH3),\n hsla: new RegExp('hsla' + PERMISSIVE_MATCH4),\n hsv: new RegExp('hsv' + PERMISSIVE_MATCH3),\n hsva: new RegExp('hsva' + PERMISSIVE_MATCH4),\n hex3: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n hex4: /^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex8: /^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,\n};\n/**\n * Permissive string parsing. Take in a number of formats, and output an object\n * based on detected format. Returns `{ r, g, b }` or `{ h, s, l }` or `{ h, s, v}`\n */\nexport function stringInputToObject(color) {\n color = color.trim().toLowerCase();\n if (color.length === 0) {\n return false;\n }\n var named = false;\n if (names[color]) {\n color = names[color];\n named = true;\n }\n else if (color === 'transparent') {\n return { r: 0, g: 0, b: 0, a: 0, format: 'name' };\n }\n // Try to match string input using regular expressions.\n // Keep most of the number bounding out of this function - don't worry about [0,1] or [0,100] or [0,360]\n // Just return an object and let the conversion functions handle that.\n // This way the result will be the same whether the tinycolor is initialized with string or object.\n var match = matchers.rgb.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3] };\n }\n match = matchers.rgba.exec(color);\n if (match) {\n return { r: match[1], g: match[2], b: match[3], a: match[4] };\n }\n match = matchers.hsl.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3] };\n }\n match = matchers.hsla.exec(color);\n if (match) {\n return { h: match[1], s: match[2], l: match[3], a: match[4] };\n }\n match = matchers.hsv.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3] };\n }\n match = matchers.hsva.exec(color);\n if (match) {\n return { h: match[1], s: match[2], v: match[3], a: match[4] };\n }\n match = matchers.hex8.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n a: convertHexToDecimal(match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex6.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1]),\n g: parseIntFromHex(match[2]),\n b: parseIntFromHex(match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n match = matchers.hex4.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n a: convertHexToDecimal(match[4] + match[4]),\n format: named ? 'name' : 'hex8',\n };\n }\n match = matchers.hex3.exec(color);\n if (match) {\n return {\n r: parseIntFromHex(match[1] + match[1]),\n g: parseIntFromHex(match[2] + match[2]),\n b: parseIntFromHex(match[3] + match[3]),\n format: named ? 'name' : 'hex',\n };\n }\n return false;\n}\n/**\n * Check to see if it looks like a CSS unit\n * (see `matchers` above for definition).\n */\nexport function isValidCSSUnit(color) {\n return Boolean(matchers.CSS_UNIT.exec(String(color)));\n}\n","/**\n * Take input from [0, n] and return it as [0, 1]\n * @hidden\n */\nexport function bound01(n, max) {\n if (isOnePointZero(n)) {\n n = '100%';\n }\n var isPercent = isPercentage(n);\n n = max === 360 ? n : Math.min(max, Math.max(0, parseFloat(n)));\n // Automatically convert percentage into number\n if (isPercent) {\n n = parseInt(String(n * max), 10) / 100;\n }\n // Handle floating point rounding errors\n if (Math.abs(n - max) < 0.000001) {\n return 1;\n }\n // Convert into [0, 1] range if it isn't already\n if (max === 360) {\n // If n is a hue given in degrees,\n // wrap around out-of-range values into [0, 360] range\n // then convert into [0, 1].\n n = (n < 0 ? (n % max) + max : n % max) / parseFloat(String(max));\n }\n else {\n // If n not a hue given in degrees\n // Convert into [0, 1] range if it isn't already.\n n = (n % max) / parseFloat(String(max));\n }\n return n;\n}\n/**\n * Force a number between 0 and 1\n * @hidden\n */\nexport function clamp01(val) {\n return Math.min(1, Math.max(0, val));\n}\n/**\n * Need to handle 1.0 as 100%, since once it is a number, there is no difference between it and 1\n * <http://stackoverflow.com/questions/7422072/javascript-how-to-detect-number-as-a-decimal-including-1-0>\n * @hidden\n */\nexport function isOnePointZero(n) {\n return typeof n === 'string' && n.indexOf('.') !== -1 && parseFloat(n) === 1;\n}\n/**\n * Check to see if string passed in is a percentage\n * @hidden\n */\nexport function isPercentage(n) {\n return typeof n === 'string' && n.indexOf('%') !== -1;\n}\n/**\n * Return a valid alpha value [0,1] with all invalid values being set to 1\n * @hidden\n */\nexport function boundAlpha(a) {\n a = parseFloat(a);\n if (isNaN(a) || a < 0 || a > 1) {\n a = 1;\n }\n return a;\n}\n/**\n * Replace a decimal with it's percentage value\n * @hidden\n */\nexport function convertToPercentage(n) {\n if (n <= 1) {\n return \"\".concat(Number(n) * 100, \"%\");\n }\n return n;\n}\n/**\n * Force a hex value to have 2 characters\n * @hidden\n */\nexport function pad2(c) {\n return c.length === 1 ? '0' + c : String(c);\n}\n","import * as React from 'react';\nvar DisabledContext = /*#__PURE__*/React.createContext(false);\nexport var DisabledContextProvider = function DisabledContextProvider(_ref) {\n var children = _ref.children,\n disabled = _ref.disabled;\n var originDisabled = React.useContext(DisabledContext);\n return /*#__PURE__*/React.createElement(DisabledContext.Provider, {\n value: disabled || originDisabled\n }, children);\n};\nexport default DisabledContext;","import * as React from 'react';\nvar SizeContext = /*#__PURE__*/React.createContext(undefined);\nexport var SizeContextProvider = function SizeContextProvider(_ref) {\n var children = _ref.children,\n size = _ref.size;\n return /*#__PURE__*/React.createElement(SizeContext.Consumer, null, function (originSize) {\n return /*#__PURE__*/React.createElement(SizeContext.Provider, {\n value: size || originSize\n }, children);\n });\n};\nexport default SizeContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nvar defaultGetPrefixCls = function defaultGetPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"ant-\".concat(suffixCls) : 'ant';\n};\n// zombieJ: 🚨 Do not pass `defaultRenderEmpty` here since it will case circular dependency.\nexport var ConfigContext = /*#__PURE__*/React.createContext({\n // We provide a default function for Context without provider\n getPrefixCls: defaultGetPrefixCls\n});\nexport var ConfigConsumer = ConfigContext.Consumer;\n/** @deprecated Use hooks instead. This is a legacy function */\nexport function withConfigConsumer(config) {\n return function withConfigConsumerFunc(Component) {\n // Wrap with ConfigConsumer. Since we need compatible with react 15, be care when using ref methods\n var SFC = function SFC(props) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (configProps) {\n var basicPrefixCls = config.prefixCls;\n var getPrefixCls = configProps.getPrefixCls;\n var customizePrefixCls = props.prefixCls;\n var prefixCls = getPrefixCls(basicPrefixCls, customizePrefixCls);\n return /*#__PURE__*/React.createElement(Component, _extends({}, configProps, props, {\n prefixCls: prefixCls\n }));\n });\n };\n var cons = Component.constructor;\n var name = cons && cons.displayName || Component.name || 'Component';\n if (process.env.NODE_ENV !== 'production') {\n SFC.displayName = \"withConfigConsumer(\".concat(name, \")\");\n }\n return SFC;\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport defaultLocale from '../locale/default';\nvar runtimeLocale = _extends({}, defaultLocale.Modal);\nexport function changeConfirmLocale(newLocale) {\n if (newLocale) {\n runtimeLocale = _extends(_extends({}, runtimeLocale), newLocale);\n } else {\n runtimeLocale = _extends({}, defaultLocale.Modal);\n }\n}\nexport function getConfirmLocale() {\n return runtimeLocale;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport warning from '../_util/warning';\nimport { changeConfirmLocale } from '../modal/locale';\nimport LocaleContext from './context';\nexport var ANT_MARK = 'internalMark';\nvar LocaleProvider = function LocaleProvider(props) {\n var _props$locale = props.locale,\n locale = _props$locale === void 0 ? {} : _props$locale,\n children = props.children,\n _ANT_MARK__ = props._ANT_MARK__;\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? warning(_ANT_MARK__ === ANT_MARK, 'LocaleProvider', '`LocaleProvider` is deprecated. Please use `locale` with `ConfigProvider` instead: http://u.ant.design/locale') : void 0;\n }\n React.useEffect(function () {\n changeConfirmLocale(locale && locale.Modal);\n return function () {\n changeConfirmLocale();\n };\n }, [locale]);\n var getMemoizedContextValue = React.useMemo(function () {\n return _extends(_extends({}, locale), {\n exist: true\n });\n }, [locale]);\n return /*#__PURE__*/React.createElement(LocaleContext.Provider, {\n value: getMemoizedContextValue\n }, children);\n};\nexport default LocaleProvider;","// This icon file is generated automatically.\nvar CheckCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M699 353h-46.9c-10.2 0-19.9 4.9-25.9 13.3L469 584.3l-71.2-98.8c-6-8.3-15.6-13.3-25.9-13.3H325c-6.5 0-10.3 7.4-6.5 12.7l124.6 172.8a31.8 31.8 0 0051.7 0l210.6-292c3.9-5.3.1-12.7-6.4-12.7z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"check-circle\", \"theme\": \"outlined\" };\nexport default CheckCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CheckCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CheckCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CheckCircleOutlined = function CheckCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CheckCircleOutlinedSvg\n }));\n};\n\nCheckCircleOutlined.displayName = 'CheckCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CheckCircleOutlined);","// This icon file is generated automatically.\nvar CloseCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M685.4 354.8c0-4.4-3.6-8-8-8l-66 .3L512 465.6l-99.3-118.4-66.1-.3c-4.4 0-8 3.5-8 8 0 1.9.7 3.7 1.9 5.2l130.1 155L340.5 670a8.32 8.32 0 00-1.9 5.2c0 4.4 3.6 8 8 8l66.1-.3L512 564.4l99.3 118.4 66 .3c4.4 0 8-3.5 8-8 0-1.9-.7-3.7-1.9-5.2L553.5 515l130.1-155c1.2-1.4 1.8-3.3 1.8-5.2z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M512 65C264.6 65 64 265.6 64 513s200.6 448 448 448 448-200.6 448-448S759.4 65 512 65zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }] }, \"name\": \"close-circle\", \"theme\": \"outlined\" };\nexport default CloseCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport CloseCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/CloseCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar CloseCircleOutlined = function CloseCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: CloseCircleOutlinedSvg\n }));\n};\n\nCloseCircleOutlined.displayName = 'CloseCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(CloseCircleOutlined);","// This icon file is generated automatically.\nvar ExclamationCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 688a48 48 0 1096 0 48 48 0 10-96 0zm24-112h48c4.4 0 8-3.6 8-8V296c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8z\" } }] }, \"name\": \"exclamation-circle\", \"theme\": \"outlined\" };\nexport default ExclamationCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport ExclamationCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/ExclamationCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar ExclamationCircleOutlined = function ExclamationCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: ExclamationCircleOutlinedSvg\n }));\n};\n\nExclamationCircleOutlined.displayName = 'ExclamationCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(ExclamationCircleOutlined);","// This icon file is generated automatically.\nvar InfoCircleOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z\" } }, { \"tag\": \"path\", \"attrs\": { \"d\": \"M464 336a48 48 0 1096 0 48 48 0 10-96 0zm72 112h-48c-4.4 0-8 3.6-8 8v272c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V456c0-4.4-3.6-8-8-8z\" } }] }, \"name\": \"info-circle\", \"theme\": \"outlined\" };\nexport default InfoCircleOutlined;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleOutlinedSvg from \"@ant-design/icons-svg/es/asn/InfoCircleOutlined\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleOutlined = function InfoCircleOutlined(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleOutlinedSvg\n }));\n};\n\nInfoCircleOutlined.displayName = 'InfoCircleOutlined';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleOutlined);","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar __awaiter = this && this.__awaiter || function (thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nimport CheckCircleOutlined from \"@ant-design/icons/es/icons/CheckCircleOutlined\";\nimport CloseCircleOutlined from \"@ant-design/icons/es/icons/CloseCircleOutlined\";\nimport CloseOutlined from \"@ant-design/icons/es/icons/CloseOutlined\";\nimport ExclamationCircleOutlined from \"@ant-design/icons/es/icons/ExclamationCircleOutlined\";\nimport InfoCircleOutlined from \"@ant-design/icons/es/icons/InfoCircleOutlined\";\nimport classNames from 'classnames';\nimport Notification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseNotification from './hooks/useNotification';\nvar notificationInstance = {};\nvar defaultDuration = 4.5;\nvar defaultTop = 24;\nvar defaultBottom = 24;\nvar defaultPrefixCls = '';\nvar defaultPlacement = 'topRight';\nvar defaultGetContainer;\nvar defaultCloseIcon;\nvar rtl = false;\nvar maxCount;\nfunction setNotificationConfig(options) {\n var duration = options.duration,\n placement = options.placement,\n bottom = options.bottom,\n top = options.top,\n getContainer = options.getContainer,\n closeIcon = options.closeIcon,\n prefixCls = options.prefixCls;\n if (prefixCls !== undefined) {\n defaultPrefixCls = prefixCls;\n }\n if (duration !== undefined) {\n defaultDuration = duration;\n }\n if (placement !== undefined) {\n defaultPlacement = placement;\n } else if (options.rtl) {\n defaultPlacement = 'topLeft';\n }\n if (bottom !== undefined) {\n defaultBottom = bottom;\n }\n if (top !== undefined) {\n defaultTop = top;\n }\n if (getContainer !== undefined) {\n defaultGetContainer = getContainer;\n }\n if (closeIcon !== undefined) {\n defaultCloseIcon = closeIcon;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n }\n}\nfunction getPlacementStyle(placement) {\n var top = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultTop;\n var bottom = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : defaultBottom;\n var style;\n switch (placement) {\n case 'top':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topLeft':\n style = {\n left: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'topRight':\n style = {\n right: 0,\n top: top,\n bottom: 'auto'\n };\n break;\n case 'bottom':\n style = {\n left: '50%',\n transform: 'translateX(-50%)',\n right: 'auto',\n top: 'auto',\n bottom: bottom\n };\n break;\n case 'bottomLeft':\n style = {\n left: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n default:\n style = {\n right: 0,\n top: 'auto',\n bottom: bottom\n };\n break;\n }\n return style;\n}\nfunction getNotificationInstance(args, callback) {\n var _args$placement = args.placement,\n placement = _args$placement === void 0 ? defaultPlacement : _args$placement,\n top = args.top,\n bottom = args.bottom,\n _args$getContainer = args.getContainer,\n getContainer = _args$getContainer === void 0 ? defaultGetContainer : _args$getContainer,\n customizePrefixCls = args.prefixCls;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('notification', customizePrefixCls || defaultPrefixCls);\n var iconPrefixCls = getIconPrefixCls();\n var cacheKey = \"\".concat(prefixCls, \"-\").concat(placement);\n var cacheInstance = notificationInstance[cacheKey];\n if (cacheInstance) {\n Promise.resolve(cacheInstance).then(function (instance) {\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n return;\n }\n var notificationClass = classNames(\"\".concat(prefixCls, \"-\").concat(placement), _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), rtl === true));\n notificationInstance[cacheKey] = new Promise(function (resolve) {\n Notification.newInstance({\n prefixCls: prefixCls,\n className: notificationClass,\n style: getPlacementStyle(placement, top, bottom),\n getContainer: getContainer,\n maxCount: maxCount\n }, function (notification) {\n resolve(notification);\n callback({\n prefixCls: \"\".concat(prefixCls, \"-notice\"),\n iconPrefixCls: iconPrefixCls,\n instance: notification\n });\n });\n });\n}\nvar typeToIcon = {\n success: CheckCircleOutlined,\n info: InfoCircleOutlined,\n error: CloseCircleOutlined,\n warning: ExclamationCircleOutlined\n};\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var durationArg = args.duration,\n icon = args.icon,\n type = args.type,\n description = args.description,\n message = args.message,\n btn = args.btn,\n onClose = args.onClose,\n onClick = args.onClick,\n key = args.key,\n style = args.style,\n className = args.className,\n _args$closeIcon = args.closeIcon,\n closeIcon = _args$closeIcon === void 0 ? defaultCloseIcon : _args$closeIcon,\n props = args.props;\n var duration = durationArg === undefined ? defaultDuration : durationArg;\n var iconNode = null;\n if (icon) {\n iconNode = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-icon\")\n }, args.icon);\n } else if (type) {\n iconNode = /*#__PURE__*/React.createElement(typeToIcon[type] || null, {\n className: \"\".concat(prefixCls, \"-icon \").concat(prefixCls, \"-icon-\").concat(type)\n });\n }\n var closeIconToRender = /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-close-x\")\n }, closeIcon || /*#__PURE__*/React.createElement(CloseOutlined, {\n className: \"\".concat(prefixCls, \"-close-icon\")\n }));\n var autoMarginTag = !description && iconNode ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-message-single-line-auto-margin\")\n }) : null;\n return {\n content: /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: iconNode ? \"\".concat(prefixCls, \"-with-icon\") : '',\n role: \"alert\"\n }, iconNode, /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-message\")\n }, autoMarginTag, message), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(prefixCls, \"-description\")\n }, description), btn ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(prefixCls, \"-btn\")\n }, btn) : null)),\n duration: duration,\n closable: true,\n closeIcon: closeIconToRender,\n onClose: onClose,\n onClick: onClick,\n key: key,\n style: style || {},\n className: classNames(className, _defineProperty({}, \"\".concat(prefixCls, \"-\").concat(type), !!type)),\n props: props\n };\n}\nfunction notice(args) {\n getNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(args, prefixCls, iconPrefixCls));\n });\n}\nvar api = {\n open: notice,\n close: function close(key) {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n return Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.removeNotice(key);\n });\n });\n },\n config: setNotificationConfig,\n destroy: function destroy() {\n Object.keys(notificationInstance).forEach(function (cacheKey) {\n Promise.resolve(notificationInstance[cacheKey]).then(function (instance) {\n instance.destroy();\n });\n delete notificationInstance[cacheKey]; // lgtm[js/missing-await]\n });\n }\n};\n\n['success', 'info', 'warning', 'error'].forEach(function (type) {\n api[type] = function (args) {\n return api.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n});\napi.warn = api.warning;\napi.useNotification = createUseNotification(getNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance(cacheKey) {\n return __awaiter(void 0, void 0, void 0, /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", process.env.NODE_ENV === 'test' ? notificationInstance[cacheKey] : null);\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseNotification(getNotificationInstance, getRCNoticeProps) {\n var useNotification = function useNotification() {\n // We can only get content by render\n var getPrefixCls;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('notification', customizePrefixCls);\n getNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(args, prefixCls));\n });\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n ['success', 'info', 'warning', 'error'].forEach(function (type) {\n hookApiRef.current[type] = function (args) {\n return hookApiRef.current.open(_extends(_extends({}, args), {\n type: type\n }));\n };\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n return holder;\n })];\n };\n return useNotification;\n}","import { numberInputToObject, rgbaToHex, rgbToHex, rgbToHsl, rgbToHsv } from './conversion';\nimport { names } from './css-color-names';\nimport { inputToRGB } from './format-input';\nimport { bound01, boundAlpha, clamp01 } from './util';\nvar TinyColor = /** @class */ (function () {\n function TinyColor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n var _a;\n // If input is already a tinycolor, return itself\n if (color instanceof TinyColor) {\n // eslint-disable-next-line no-constructor-return\n return color;\n }\n if (typeof color === 'number') {\n color = numberInputToObject(color);\n }\n this.originalInput = color;\n var rgb = inputToRGB(color);\n this.originalInput = color;\n this.r = rgb.r;\n this.g = rgb.g;\n this.b = rgb.b;\n this.a = rgb.a;\n this.roundA = Math.round(100 * this.a) / 100;\n this.format = (_a = opts.format) !== null && _a !== void 0 ? _a : rgb.format;\n this.gradientType = opts.gradientType;\n // Don't let the range of [0,255] come back in [0,1].\n // Potentially lose a little bit of precision here, but will fix issues where\n // .5 gets interpreted as half of the total, instead of half of 1\n // If it was supposed to be 128, this was already taken care of by `inputToRgb`\n if (this.r < 1) {\n this.r = Math.round(this.r);\n }\n if (this.g < 1) {\n this.g = Math.round(this.g);\n }\n if (this.b < 1) {\n this.b = Math.round(this.b);\n }\n this.isValid = rgb.ok;\n }\n TinyColor.prototype.isDark = function () {\n return this.getBrightness() < 128;\n };\n TinyColor.prototype.isLight = function () {\n return !this.isDark();\n };\n /**\n * Returns the perceived brightness of the color, from 0-255.\n */\n TinyColor.prototype.getBrightness = function () {\n // http://www.w3.org/TR/AERT#color-contrast\n var rgb = this.toRgb();\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000;\n };\n /**\n * Returns the perceived luminance of a color, from 0-1.\n */\n TinyColor.prototype.getLuminance = function () {\n // http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n var rgb = this.toRgb();\n var R;\n var G;\n var B;\n var RsRGB = rgb.r / 255;\n var GsRGB = rgb.g / 255;\n var BsRGB = rgb.b / 255;\n if (RsRGB <= 0.03928) {\n R = RsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n R = Math.pow((RsRGB + 0.055) / 1.055, 2.4);\n }\n if (GsRGB <= 0.03928) {\n G = GsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n G = Math.pow((GsRGB + 0.055) / 1.055, 2.4);\n }\n if (BsRGB <= 0.03928) {\n B = BsRGB / 12.92;\n }\n else {\n // eslint-disable-next-line prefer-exponentiation-operator\n B = Math.pow((BsRGB + 0.055) / 1.055, 2.4);\n }\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n };\n /**\n * Returns the alpha value of a color, from 0-1.\n */\n TinyColor.prototype.getAlpha = function () {\n return this.a;\n };\n /**\n * Sets the alpha value on the current color.\n *\n * @param alpha - The new alpha value. The accepted range is 0-1.\n */\n TinyColor.prototype.setAlpha = function (alpha) {\n this.a = boundAlpha(alpha);\n this.roundA = Math.round(100 * this.a) / 100;\n return this;\n };\n /**\n * Returns the object as a HSVA object.\n */\n TinyColor.prototype.toHsv = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n return { h: hsv.h * 360, s: hsv.s, v: hsv.v, a: this.a };\n };\n /**\n * Returns the hsva values interpolated into a string with the following format:\n * \"hsva(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHsvString = function () {\n var hsv = rgbToHsv(this.r, this.g, this.b);\n var h = Math.round(hsv.h * 360);\n var s = Math.round(hsv.s * 100);\n var v = Math.round(hsv.v * 100);\n return this.a === 1 ? \"hsv(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%)\") : \"hsva(\".concat(h, \", \").concat(s, \"%, \").concat(v, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a HSLA object.\n */\n TinyColor.prototype.toHsl = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n return { h: hsl.h * 360, s: hsl.s, l: hsl.l, a: this.a };\n };\n /**\n * Returns the hsla values interpolated into a string with the following format:\n * \"hsla(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toHslString = function () {\n var hsl = rgbToHsl(this.r, this.g, this.b);\n var h = Math.round(hsl.h * 360);\n var s = Math.round(hsl.s * 100);\n var l = Math.round(hsl.l * 100);\n return this.a === 1 ? \"hsl(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%)\") : \"hsla(\".concat(h, \", \").concat(s, \"%, \").concat(l, \"%, \").concat(this.roundA, \")\");\n };\n /**\n * Returns the hex value of the color.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHex = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return rgbToHex(this.r, this.g, this.b, allow3Char);\n };\n /**\n * Returns the hex value of the color -with a # appened.\n * @param allow3Char will shorten hex value to 3 char if possible\n */\n TinyColor.prototype.toHexString = function (allow3Char) {\n if (allow3Char === void 0) { allow3Char = false; }\n return '#' + this.toHex(allow3Char);\n };\n /**\n * Returns the hex 8 value of the color.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8 = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return rgbaToHex(this.r, this.g, this.b, this.a, allow4Char);\n };\n /**\n * Returns the hex 8 value of the color -with a # appened.\n * @param allow4Char will shorten hex value to 4 char if possible\n */\n TinyColor.prototype.toHex8String = function (allow4Char) {\n if (allow4Char === void 0) { allow4Char = false; }\n return '#' + this.toHex8(allow4Char);\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toRgb = function () {\n return {\n r: Math.round(this.r),\n g: Math.round(this.g),\n b: Math.round(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA values interpolated into a string with the following format:\n * \"RGBA(xxx, xxx, xxx, xx)\".\n */\n TinyColor.prototype.toRgbString = function () {\n var r = Math.round(this.r);\n var g = Math.round(this.g);\n var b = Math.round(this.b);\n return this.a === 1 ? \"rgb(\".concat(r, \", \").concat(g, \", \").concat(b, \")\") : \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(this.roundA, \")\");\n };\n /**\n * Returns the object as a RGBA object.\n */\n TinyColor.prototype.toPercentageRgb = function () {\n var fmt = function (x) { return \"\".concat(Math.round(bound01(x, 255) * 100), \"%\"); };\n return {\n r: fmt(this.r),\n g: fmt(this.g),\n b: fmt(this.b),\n a: this.a,\n };\n };\n /**\n * Returns the RGBA relative values interpolated into a string\n */\n TinyColor.prototype.toPercentageRgbString = function () {\n var rnd = function (x) { return Math.round(bound01(x, 255) * 100); };\n return this.a === 1\n ? \"rgb(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%)\")\n : \"rgba(\".concat(rnd(this.r), \"%, \").concat(rnd(this.g), \"%, \").concat(rnd(this.b), \"%, \").concat(this.roundA, \")\");\n };\n /**\n * The 'real' name of the color -if there is one.\n */\n TinyColor.prototype.toName = function () {\n if (this.a === 0) {\n return 'transparent';\n }\n if (this.a < 1) {\n return false;\n }\n var hex = '#' + rgbToHex(this.r, this.g, this.b, false);\n for (var _i = 0, _a = Object.entries(names); _i < _a.length; _i++) {\n var _b = _a[_i], key = _b[0], value = _b[1];\n if (hex === value) {\n return key;\n }\n }\n return false;\n };\n TinyColor.prototype.toString = function (format) {\n var formatSet = Boolean(format);\n format = format !== null && format !== void 0 ? format : this.format;\n var formattedString = false;\n var hasAlpha = this.a < 1 && this.a >= 0;\n var needsAlphaFormat = !formatSet && hasAlpha && (format.startsWith('hex') || format === 'name');\n if (needsAlphaFormat) {\n // Special case for \"transparent\", all other non-alpha formats\n // will return rgba when there is transparency.\n if (format === 'name' && this.a === 0) {\n return this.toName();\n }\n return this.toRgbString();\n }\n if (format === 'rgb') {\n formattedString = this.toRgbString();\n }\n if (format === 'prgb') {\n formattedString = this.toPercentageRgbString();\n }\n if (format === 'hex' || format === 'hex6') {\n formattedString = this.toHexString();\n }\n if (format === 'hex3') {\n formattedString = this.toHexString(true);\n }\n if (format === 'hex4') {\n formattedString = this.toHex8String(true);\n }\n if (format === 'hex8') {\n formattedString = this.toHex8String();\n }\n if (format === 'name') {\n formattedString = this.toName();\n }\n if (format === 'hsl') {\n formattedString = this.toHslString();\n }\n if (format === 'hsv') {\n formattedString = this.toHsvString();\n }\n return formattedString || this.toHexString();\n };\n TinyColor.prototype.toNumber = function () {\n return (Math.round(this.r) << 16) + (Math.round(this.g) << 8) + Math.round(this.b);\n };\n TinyColor.prototype.clone = function () {\n return new TinyColor(this.toString());\n };\n /**\n * Lighten the color a given amount. Providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.lighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l += amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Brighten the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.brighten = function (amount) {\n if (amount === void 0) { amount = 10; }\n var rgb = this.toRgb();\n rgb.r = Math.max(0, Math.min(255, rgb.r - Math.round(255 * -(amount / 100))));\n rgb.g = Math.max(0, Math.min(255, rgb.g - Math.round(255 * -(amount / 100))));\n rgb.b = Math.max(0, Math.min(255, rgb.b - Math.round(255 * -(amount / 100))));\n return new TinyColor(rgb);\n };\n /**\n * Darken the color a given amount, from 0 to 100.\n * Providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.darken = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.l -= amount / 100;\n hsl.l = clamp01(hsl.l);\n return new TinyColor(hsl);\n };\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.tint = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('white', amount);\n };\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.shade = function (amount) {\n if (amount === void 0) { amount = 10; }\n return this.mix('black', amount);\n };\n /**\n * Desaturate the color a given amount, from 0 to 100.\n * Providing 100 will is the same as calling greyscale\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.desaturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s -= amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Saturate the color a given amount, from 0 to 100.\n * @param amount - valid between 1-100\n */\n TinyColor.prototype.saturate = function (amount) {\n if (amount === void 0) { amount = 10; }\n var hsl = this.toHsl();\n hsl.s += amount / 100;\n hsl.s = clamp01(hsl.s);\n return new TinyColor(hsl);\n };\n /**\n * Completely desaturates a color into greyscale.\n * Same as calling `desaturate(100)`\n */\n TinyColor.prototype.greyscale = function () {\n return this.desaturate(100);\n };\n /**\n * Spin takes a positive or negative amount within [-360, 360] indicating the change of hue.\n * Values outside of this range will be wrapped into this range.\n */\n TinyColor.prototype.spin = function (amount) {\n var hsl = this.toHsl();\n var hue = (hsl.h + amount) % 360;\n hsl.h = hue < 0 ? 360 + hue : hue;\n return new TinyColor(hsl);\n };\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n TinyColor.prototype.mix = function (color, amount) {\n if (amount === void 0) { amount = 50; }\n var rgb1 = this.toRgb();\n var rgb2 = new TinyColor(color).toRgb();\n var p = amount / 100;\n var rgba = {\n r: (rgb2.r - rgb1.r) * p + rgb1.r,\n g: (rgb2.g - rgb1.g) * p + rgb1.g,\n b: (rgb2.b - rgb1.b) * p + rgb1.b,\n a: (rgb2.a - rgb1.a) * p + rgb1.a,\n };\n return new TinyColor(rgba);\n };\n TinyColor.prototype.analogous = function (results, slices) {\n if (results === void 0) { results = 6; }\n if (slices === void 0) { slices = 30; }\n var hsl = this.toHsl();\n var part = 360 / slices;\n var ret = [this];\n for (hsl.h = (hsl.h - ((part * results) >> 1) + 720) % 360; --results;) {\n hsl.h = (hsl.h + part) % 360;\n ret.push(new TinyColor(hsl));\n }\n return ret;\n };\n /**\n * taken from https://github.com/infusion/jQuery-xcolor/blob/master/jquery.xcolor.js\n */\n TinyColor.prototype.complement = function () {\n var hsl = this.toHsl();\n hsl.h = (hsl.h + 180) % 360;\n return new TinyColor(hsl);\n };\n TinyColor.prototype.monochromatic = function (results) {\n if (results === void 0) { results = 6; }\n var hsv = this.toHsv();\n var h = hsv.h;\n var s = hsv.s;\n var v = hsv.v;\n var res = [];\n var modification = 1 / results;\n while (results--) {\n res.push(new TinyColor({ h: h, s: s, v: v }));\n v = (v + modification) % 1;\n }\n return res;\n };\n TinyColor.prototype.splitcomplement = function () {\n var hsl = this.toHsl();\n var h = hsl.h;\n return [\n this,\n new TinyColor({ h: (h + 72) % 360, s: hsl.s, l: hsl.l }),\n new TinyColor({ h: (h + 216) % 360, s: hsl.s, l: hsl.l }),\n ];\n };\n /**\n * Compute how the color would appear on a background\n */\n TinyColor.prototype.onBackground = function (background) {\n var fg = this.toRgb();\n var bg = new TinyColor(background).toRgb();\n return new TinyColor({\n r: bg.r + (fg.r - bg.r) * fg.a,\n g: bg.g + (fg.g - bg.g) * fg.a,\n b: bg.b + (fg.b - bg.b) * fg.a,\n });\n };\n /**\n * Alias for `polyad(3)`\n */\n TinyColor.prototype.triad = function () {\n return this.polyad(3);\n };\n /**\n * Alias for `polyad(4)`\n */\n TinyColor.prototype.tetrad = function () {\n return this.polyad(4);\n };\n /**\n * Get polyad colors, like (for 1, 2, 3, 4, 5, 6, 7, 8, etc...)\n * monad, dyad, triad, tetrad, pentad, hexad, heptad, octad, etc...\n */\n TinyColor.prototype.polyad = function (n) {\n var hsl = this.toHsl();\n var h = hsl.h;\n var result = [this];\n var increment = 360 / n;\n for (var i = 1; i < n; i++) {\n result.push(new TinyColor({ h: (h + i * increment) % 360, s: hsl.s, l: hsl.l }));\n }\n return result;\n };\n /**\n * compare color vs current color\n */\n TinyColor.prototype.equals = function (color) {\n return this.toRgbString() === new TinyColor(color).toRgbString();\n };\n return TinyColor;\n}());\nexport { TinyColor };\n// kept for backwards compatability with v1\nexport function tinycolor(color, opts) {\n if (color === void 0) { color = ''; }\n if (opts === void 0) { opts = {}; }\n return new TinyColor(color, opts);\n}\n","/* eslint-disable import/prefer-default-export, prefer-destructuring */\nimport { generate } from '@ant-design/colors';\nimport { TinyColor } from '@ctrl/tinycolor';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\";\nimport { updateCSS } from \"rc-util/es/Dom/dynamicCSS\";\nimport warning from '../_util/warning';\nvar dynamicStyleMark = \"-ant-\".concat(Date.now(), \"-\").concat(Math.random());\nexport function getStyle(globalPrefixCls, theme) {\n var variables = {};\n var formatColor = function formatColor(color, updater) {\n var clone = color.clone();\n clone = (updater === null || updater === void 0 ? void 0 : updater(clone)) || clone;\n return clone.toRgbString();\n };\n var fillColor = function fillColor(colorVal, type) {\n var baseColor = new TinyColor(colorVal);\n var colorPalettes = generate(baseColor.toRgbString());\n variables[\"\".concat(type, \"-color\")] = formatColor(baseColor);\n variables[\"\".concat(type, \"-color-disabled\")] = colorPalettes[1];\n variables[\"\".concat(type, \"-color-hover\")] = colorPalettes[4];\n variables[\"\".concat(type, \"-color-active\")] = colorPalettes[6];\n variables[\"\".concat(type, \"-color-outline\")] = baseColor.clone().setAlpha(0.2).toRgbString();\n variables[\"\".concat(type, \"-color-deprecated-bg\")] = colorPalettes[0];\n variables[\"\".concat(type, \"-color-deprecated-border\")] = colorPalettes[2];\n };\n // ================ Primary Color ================\n if (theme.primaryColor) {\n fillColor(theme.primaryColor, 'primary');\n var primaryColor = new TinyColor(theme.primaryColor);\n var primaryColors = generate(primaryColor.toRgbString());\n // Legacy - We should use semantic naming standard\n primaryColors.forEach(function (color, index) {\n variables[\"primary-\".concat(index + 1)] = color;\n });\n // Deprecated\n variables['primary-color-deprecated-l-35'] = formatColor(primaryColor, function (c) {\n return c.lighten(35);\n });\n variables['primary-color-deprecated-l-20'] = formatColor(primaryColor, function (c) {\n return c.lighten(20);\n });\n variables['primary-color-deprecated-t-20'] = formatColor(primaryColor, function (c) {\n return c.tint(20);\n });\n variables['primary-color-deprecated-t-50'] = formatColor(primaryColor, function (c) {\n return c.tint(50);\n });\n variables['primary-color-deprecated-f-12'] = formatColor(primaryColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.12);\n });\n var primaryActiveColor = new TinyColor(primaryColors[0]);\n variables['primary-color-active-deprecated-f-30'] = formatColor(primaryActiveColor, function (c) {\n return c.setAlpha(c.getAlpha() * 0.3);\n });\n variables['primary-color-active-deprecated-d-02'] = formatColor(primaryActiveColor, function (c) {\n return c.darken(2);\n });\n }\n // ================ Success Color ================\n if (theme.successColor) {\n fillColor(theme.successColor, 'success');\n }\n // ================ Warning Color ================\n if (theme.warningColor) {\n fillColor(theme.warningColor, 'warning');\n }\n // ================= Error Color =================\n if (theme.errorColor) {\n fillColor(theme.errorColor, 'error');\n }\n // ================= Info Color ==================\n if (theme.infoColor) {\n fillColor(theme.infoColor, 'info');\n }\n // Convert to css variables\n var cssList = Object.keys(variables).map(function (key) {\n return \"--\".concat(globalPrefixCls, \"-\").concat(key, \": \").concat(variables[key], \";\");\n });\n return \"\\n :root {\\n \".concat(cssList.join('\\n'), \"\\n }\\n \").trim();\n}\nexport function registerTheme(globalPrefixCls, theme) {\n var style = getStyle(globalPrefixCls, theme);\n if (canUseDom()) {\n updateCSS(style, \"\".concat(dynamicStyleMark, \"-dynamic-theme\"));\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'ConfigProvider', 'SSR do not support dynamic theme with css variables.') : void 0;\n }\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport IconContext from \"@ant-design/icons/es/components/Context\";\nimport { FormProvider as RcFormProvider } from 'rc-field-form';\nimport useMemo from \"rc-util/es/hooks/useMemo\";\nimport * as React from 'react';\nimport LocaleProvider, { ANT_MARK } from '../locale-provider';\nimport LocaleReceiver from '../locale-provider/LocaleReceiver';\nimport defaultLocale from '../locale/default';\nimport message from '../message';\nimport notification from '../notification';\nimport { ConfigConsumer, ConfigContext } from './context';\nimport { registerTheme } from './cssVariables';\nimport { DisabledContextProvider } from './DisabledContext';\nimport SizeContext, { SizeContextProvider } from './SizeContext';\nexport { ConfigContext, ConfigConsumer };\nexport var configConsumerProps = ['getTargetContainer', 'getPopupContainer', 'rootPrefixCls', 'getPrefixCls', 'renderEmpty', 'csp', 'autoInsertSpaceInButton', 'locale', 'pageHeader'];\n// These props is used by `useContext` directly in sub component\nvar PASSED_PROPS = ['getTargetContainer', 'getPopupContainer', 'renderEmpty', 'pageHeader', 'input', 'pagination', 'form'];\nexport var defaultPrefixCls = 'ant';\nexport var defaultIconPrefixCls = 'anticon';\nvar globalPrefixCls;\nvar globalIconPrefixCls;\nfunction getGlobalPrefixCls() {\n return globalPrefixCls || defaultPrefixCls;\n}\nfunction getGlobalIconPrefixCls() {\n return globalIconPrefixCls || defaultIconPrefixCls;\n}\nvar setGlobalConfig = function setGlobalConfig(_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n theme = _ref.theme;\n if (prefixCls !== undefined) {\n globalPrefixCls = prefixCls;\n }\n if (iconPrefixCls !== undefined) {\n globalIconPrefixCls = iconPrefixCls;\n }\n if (theme) {\n registerTheme(getGlobalPrefixCls(), theme);\n }\n};\nexport var globalConfig = function globalConfig() {\n return {\n getPrefixCls: function getPrefixCls(suffixCls, customizePrefixCls) {\n if (customizePrefixCls) return customizePrefixCls;\n return suffixCls ? \"\".concat(getGlobalPrefixCls(), \"-\").concat(suffixCls) : getGlobalPrefixCls();\n },\n getIconPrefixCls: getGlobalIconPrefixCls,\n getRootPrefixCls: function getRootPrefixCls(rootPrefixCls, customizePrefixCls) {\n // Customize rootPrefixCls is first priority\n if (rootPrefixCls) {\n return rootPrefixCls;\n }\n // If Global prefixCls provided, use this\n if (globalPrefixCls) {\n return globalPrefixCls;\n }\n // [Legacy] If customize prefixCls provided, we cut it to get the prefixCls\n if (customizePrefixCls && customizePrefixCls.includes('-')) {\n return customizePrefixCls.replace(/^(.*)-[^-]*$/, '$1');\n }\n // Fallback to default prefixCls\n return getGlobalPrefixCls();\n }\n };\n};\nvar ProviderChildren = function ProviderChildren(props) {\n var _a, _b;\n var children = props.children,\n csp = props.csp,\n autoInsertSpaceInButton = props.autoInsertSpaceInButton,\n form = props.form,\n locale = props.locale,\n componentSize = props.componentSize,\n direction = props.direction,\n space = props.space,\n virtual = props.virtual,\n dropdownMatchSelectWidth = props.dropdownMatchSelectWidth,\n legacyLocale = props.legacyLocale,\n parentContext = props.parentContext,\n iconPrefixCls = props.iconPrefixCls,\n componentDisabled = props.componentDisabled;\n var getPrefixCls = React.useCallback(function (suffixCls, customizePrefixCls) {\n var prefixCls = props.prefixCls;\n if (customizePrefixCls) return customizePrefixCls;\n var mergedPrefixCls = prefixCls || parentContext.getPrefixCls('');\n return suffixCls ? \"\".concat(mergedPrefixCls, \"-\").concat(suffixCls) : mergedPrefixCls;\n }, [parentContext.getPrefixCls, props.prefixCls]);\n var config = _extends(_extends({}, parentContext), {\n csp: csp,\n autoInsertSpaceInButton: autoInsertSpaceInButton,\n locale: locale || legacyLocale,\n direction: direction,\n space: space,\n virtual: virtual,\n dropdownMatchSelectWidth: dropdownMatchSelectWidth,\n getPrefixCls: getPrefixCls\n });\n // Pass the props used by `useContext` directly with child component.\n // These props should merged into `config`.\n PASSED_PROPS.forEach(function (propName) {\n var propValue = props[propName];\n if (propValue) {\n config[propName] = propValue;\n }\n });\n // https://github.com/ant-design/ant-design/issues/27617\n var memoedConfig = useMemo(function () {\n return config;\n }, config, function (prevConfig, currentConfig) {\n var prevKeys = Object.keys(prevConfig);\n var currentKeys = Object.keys(currentConfig);\n return prevKeys.length !== currentKeys.length || prevKeys.some(function (key) {\n return prevConfig[key] !== currentConfig[key];\n });\n });\n var memoIconContextValue = React.useMemo(function () {\n return {\n prefixCls: iconPrefixCls,\n csp: csp\n };\n }, [iconPrefixCls, csp]);\n var childNode = children;\n // Additional Form provider\n var validateMessages = {};\n if (locale) {\n validateMessages = ((_a = locale.Form) === null || _a === void 0 ? void 0 : _a.defaultValidateMessages) || ((_b = defaultLocale.Form) === null || _b === void 0 ? void 0 : _b.defaultValidateMessages) || {};\n }\n if (form && form.validateMessages) {\n validateMessages = _extends(_extends({}, validateMessages), form.validateMessages);\n }\n if (Object.keys(validateMessages).length > 0) {\n childNode = /*#__PURE__*/React.createElement(RcFormProvider, {\n validateMessages: validateMessages\n }, children);\n }\n if (locale) {\n childNode = /*#__PURE__*/React.createElement(LocaleProvider, {\n locale: locale,\n _ANT_MARK__: ANT_MARK\n }, childNode);\n }\n if (iconPrefixCls || csp) {\n childNode = /*#__PURE__*/React.createElement(IconContext.Provider, {\n value: memoIconContextValue\n }, childNode);\n }\n if (componentSize) {\n childNode = /*#__PURE__*/React.createElement(SizeContextProvider, {\n size: componentSize\n }, childNode);\n }\n if (componentDisabled !== undefined) {\n childNode = /*#__PURE__*/React.createElement(DisabledContextProvider, {\n disabled: componentDisabled\n }, childNode);\n }\n return /*#__PURE__*/React.createElement(ConfigContext.Provider, {\n value: memoedConfig\n }, childNode);\n};\nvar ConfigProvider = function ConfigProvider(props) {\n React.useEffect(function () {\n if (props.direction) {\n message.config({\n rtl: props.direction === 'rtl'\n });\n notification.config({\n rtl: props.direction === 'rtl'\n });\n }\n }, [props.direction]);\n return /*#__PURE__*/React.createElement(LocaleReceiver, null, function (_, __, legacyLocale) {\n return /*#__PURE__*/React.createElement(ConfigConsumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ProviderChildren, _extends({\n parentContext: context,\n legacyLocale: legacyLocale\n }, props));\n });\n });\n};\n/** @private internal Usage. do not use in your production */\nConfigProvider.ConfigContext = ConfigContext;\nConfigProvider.SizeContext = SizeContext;\nConfigProvider.config = setGlobalConfig;\nexport default ConfigProvider;","import locale from '../locale/default';\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport LocaleContext from './context';\nimport defaultLocaleData from './default';\nvar LocaleReceiver = function LocaleReceiver(props) {\n var _props$componentName = props.componentName,\n componentName = _props$componentName === void 0 ? 'global' : _props$componentName,\n defaultLocale = props.defaultLocale,\n children = props.children;\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, locale instanceof Function ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n var getLocaleCode = React.useMemo(function () {\n var localeCode = antLocale && antLocale.locale;\n // Had use LocaleProvide but didn't set locale\n if (antLocale && antLocale.exist && !localeCode) {\n return defaultLocaleData.locale;\n }\n return localeCode;\n }, [antLocale]);\n return children(getLocale, getLocaleCode, antLocale);\n};\nexport default LocaleReceiver;\nexport var useLocaleReceiver = function useLocaleReceiver(componentName, defaultLocale) {\n var antLocale = React.useContext(LocaleContext);\n var getLocale = React.useMemo(function () {\n var _a;\n var locale = defaultLocale || defaultLocaleData[componentName];\n var localeFromContext = (_a = antLocale === null || antLocale === void 0 ? void 0 : antLocale[componentName]) !== null && _a !== void 0 ? _a : {};\n return _extends(_extends({}, typeof locale === 'function' ? locale() : locale), localeFromContext || {});\n }, [componentName, defaultLocale, antLocale]);\n return [getLocale];\n};","import { createContext } from 'react';\nvar LocaleContext = /*#__PURE__*/createContext(undefined);\nexport default LocaleContext;","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'OK',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US';\n// Merge into a locale object\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeQuarterPlaceholder: ['Start quarter', 'End quarter'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n};\n// All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\nexport default locale;","import enUS from '../../date-picker/locale/en_US';\nexport default enUS;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport Calendar from '../calendar/locale/en_US';\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n filterCheckall: 'Select all items',\n filterSearchPlaceholder: 'Search in filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","// This icon file is generated automatically.\nvar InfoCircleFilled = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm32 664c0 4.4-3.6 8-8 8h-48c-4.4 0-8-3.6-8-8V456c0-4.4 3.6-8 8-8h48c4.4 0 8 3.6 8 8v272zm-32-344a48.01 48.01 0 010-96 48.01 48.01 0 010 96z\" } }] }, \"name\": \"info-circle\", \"theme\": \"filled\" };\nexport default InfoCircleFilled;\n","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\nimport * as React from 'react';\nimport InfoCircleFilledSvg from \"@ant-design/icons-svg/es/asn/InfoCircleFilled\";\nimport AntdIcon from '../components/AntdIcon';\n\nvar InfoCircleFilled = function InfoCircleFilled(props, ref) {\n return /*#__PURE__*/React.createElement(AntdIcon, _objectSpread(_objectSpread({}, props), {}, {\n ref: ref,\n icon: InfoCircleFilledSvg\n }));\n};\n\nInfoCircleFilled.displayName = 'InfoCircleFilled';\nexport default /*#__PURE__*/React.forwardRef(InfoCircleFilled);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport CheckCircleFilled from \"@ant-design/icons/es/icons/CheckCircleFilled\";\nimport CloseCircleFilled from \"@ant-design/icons/es/icons/CloseCircleFilled\";\nimport ExclamationCircleFilled from \"@ant-design/icons/es/icons/ExclamationCircleFilled\";\nimport InfoCircleFilled from \"@ant-design/icons/es/icons/InfoCircleFilled\";\nimport LoadingOutlined from \"@ant-design/icons/es/icons/LoadingOutlined\";\nimport classNames from 'classnames';\nimport RCNotification from 'rc-notification';\nimport * as React from 'react';\nimport ConfigProvider, { globalConfig } from '../config-provider';\nimport createUseMessage from './hooks/useMessage';\nvar messageInstance;\nvar defaultDuration = 3;\nvar defaultTop;\nvar key = 1;\nvar localPrefixCls = '';\nvar transitionName = 'move-up';\nvar hasTransitionName = false;\nvar getContainer;\nvar maxCount;\nvar rtl = false;\nexport function getKeyThenIncreaseKey() {\n return key++;\n}\nfunction setMessageConfig(options) {\n if (options.top !== undefined) {\n defaultTop = options.top;\n messageInstance = null; // delete messageInstance for new defaultTop\n }\n\n if (options.duration !== undefined) {\n defaultDuration = options.duration;\n }\n if (options.prefixCls !== undefined) {\n localPrefixCls = options.prefixCls;\n }\n if (options.getContainer !== undefined) {\n getContainer = options.getContainer;\n messageInstance = null; // delete messageInstance for new getContainer\n }\n\n if (options.transitionName !== undefined) {\n transitionName = options.transitionName;\n messageInstance = null; // delete messageInstance for new transitionName\n hasTransitionName = true;\n }\n if (options.maxCount !== undefined) {\n maxCount = options.maxCount;\n messageInstance = null;\n }\n if (options.rtl !== undefined) {\n rtl = options.rtl;\n }\n}\nfunction getRCNotificationInstance(args, callback) {\n var customizePrefixCls = args.prefixCls,\n getContextPopupContainer = args.getPopupContainer;\n var _globalConfig = globalConfig(),\n getPrefixCls = _globalConfig.getPrefixCls,\n getRootPrefixCls = _globalConfig.getRootPrefixCls,\n getIconPrefixCls = _globalConfig.getIconPrefixCls;\n var prefixCls = getPrefixCls('message', customizePrefixCls || localPrefixCls);\n var rootPrefixCls = getRootPrefixCls(args.rootPrefixCls, prefixCls);\n var iconPrefixCls = getIconPrefixCls();\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n var instanceConfig = {\n prefixCls: prefixCls,\n transitionName: hasTransitionName ? transitionName : \"\".concat(rootPrefixCls, \"-\").concat(transitionName),\n style: {\n top: defaultTop\n },\n getContainer: getContainer || getContextPopupContainer,\n maxCount: maxCount\n };\n RCNotification.newInstance(instanceConfig, function (instance) {\n if (messageInstance) {\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: messageInstance\n });\n return;\n }\n messageInstance = instance;\n if (process.env.NODE_ENV === 'test') {\n messageInstance.config = instanceConfig;\n }\n callback({\n prefixCls: prefixCls,\n rootPrefixCls: rootPrefixCls,\n iconPrefixCls: iconPrefixCls,\n instance: instance\n });\n });\n}\nvar typeToIcon = {\n info: InfoCircleFilled,\n success: CheckCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n loading: LoadingOutlined\n};\nexport var typeList = Object.keys(typeToIcon);\nfunction getRCNoticeProps(args, prefixCls, iconPrefixCls) {\n var _classNames;\n var duration = args.duration !== undefined ? args.duration : defaultDuration;\n var IconComponent = typeToIcon[args.type];\n var messageClass = classNames(\"\".concat(prefixCls, \"-custom-content\"), (_classNames = {}, _defineProperty(_classNames, \"\".concat(prefixCls, \"-\").concat(args.type), args.type), _defineProperty(_classNames, \"\".concat(prefixCls, \"-rtl\"), rtl === true), _classNames));\n return {\n key: args.key,\n duration: duration,\n style: args.style || {},\n className: args.className,\n content: /*#__PURE__*/React.createElement(ConfigProvider, {\n iconPrefixCls: iconPrefixCls\n }, /*#__PURE__*/React.createElement(\"div\", {\n className: messageClass\n }, args.icon || IconComponent && /*#__PURE__*/React.createElement(IconComponent, null), /*#__PURE__*/React.createElement(\"span\", null, args.content))),\n onClose: args.onClose,\n onClick: args.onClick\n };\n}\nfunction notice(args) {\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRCNotificationInstance(args, function (_ref) {\n var prefixCls = _ref.prefixCls,\n iconPrefixCls = _ref.iconPrefixCls,\n instance = _ref.instance;\n instance.notice(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls, iconPrefixCls));\n });\n });\n var result = function result() {\n if (messageInstance) {\n messageInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n}\nfunction isArgsProps(content) {\n return Object.prototype.toString.call(content) === '[object Object]' && !!content.content;\n}\nvar api = {\n open: notice,\n config: setMessageConfig,\n destroy: function destroy(messageKey) {\n if (messageInstance) {\n if (messageKey) {\n var _messageInstance = messageInstance,\n removeNotice = _messageInstance.removeNotice;\n removeNotice(messageKey);\n } else {\n var _messageInstance2 = messageInstance,\n destroy = _messageInstance2.destroy;\n destroy();\n messageInstance = null;\n }\n }\n }\n};\nexport function attachTypeApi(originalApi, type) {\n originalApi[type] = function (content, duration, onClose) {\n if (isArgsProps(content)) {\n return originalApi.open(_extends(_extends({}, content), {\n type: type\n }));\n }\n if (typeof duration === 'function') {\n onClose = duration;\n duration = undefined;\n }\n return originalApi.open({\n content: content,\n duration: duration,\n type: type,\n onClose: onClose\n });\n };\n}\ntypeList.forEach(function (type) {\n return attachTypeApi(api, type);\n});\napi.warn = api.warning;\napi.useMessage = createUseMessage(getRCNotificationInstance, getRCNoticeProps);\n/** @internal test Only function. Not work on production */\nexport var getInstance = function getInstance() {\n return process.env.NODE_ENV === 'test' ? messageInstance : null;\n};\nexport default api;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport useRCNotification from \"rc-notification/es/useNotification\";\nimport * as React from 'react';\nimport { attachTypeApi, getKeyThenIncreaseKey, typeList } from '..';\nimport { ConfigConsumer } from '../../config-provider';\nexport default function createUseMessage(getRcNotificationInstance, getRCNoticeProps) {\n var useMessage = function useMessage() {\n // We can only get content by render\n var getPrefixCls;\n var getPopupContainer;\n // We create a proxy to handle delay created instance\n var innerInstance = null;\n var proxy = {\n add: function add(noticeProps, holderCallback) {\n innerInstance === null || innerInstance === void 0 ? void 0 : innerInstance.component.add(noticeProps, holderCallback);\n }\n };\n var _useRCNotification = useRCNotification(proxy),\n _useRCNotification2 = _slicedToArray(_useRCNotification, 2),\n hookNotify = _useRCNotification2[0],\n holder = _useRCNotification2[1];\n function notify(args) {\n var customizePrefixCls = args.prefixCls;\n var mergedPrefixCls = getPrefixCls('message', customizePrefixCls);\n var rootPrefixCls = getPrefixCls();\n var target = args.key || getKeyThenIncreaseKey();\n var closePromise = new Promise(function (resolve) {\n var callback = function callback() {\n if (typeof args.onClose === 'function') {\n args.onClose();\n }\n return resolve(true);\n };\n getRcNotificationInstance(_extends(_extends({}, args), {\n prefixCls: mergedPrefixCls,\n rootPrefixCls: rootPrefixCls,\n getPopupContainer: getPopupContainer\n }), function (_ref) {\n var prefixCls = _ref.prefixCls,\n instance = _ref.instance;\n innerInstance = instance;\n hookNotify(getRCNoticeProps(_extends(_extends({}, args), {\n key: target,\n onClose: callback\n }), prefixCls));\n });\n });\n var result = function result() {\n if (innerInstance) {\n innerInstance.removeNotice(target);\n }\n };\n result.then = function (filled, rejected) {\n return closePromise.then(filled, rejected);\n };\n result.promise = closePromise;\n return result;\n }\n // Fill functions\n var hookApiRef = React.useRef({});\n hookApiRef.current.open = notify;\n typeList.forEach(function (type) {\n return attachTypeApi(hookApiRef.current, type);\n });\n return [hookApiRef.current, /*#__PURE__*/React.createElement(ConfigConsumer, {\n key: \"holder\"\n }, function (context) {\n getPrefixCls = context.getPrefixCls;\n getPopupContainer = context.getPopupContainer;\n return holder;\n })];\n };\n return useMessage;\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","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin <self@wyattbaldwin.com>\n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","import 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 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 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.tt) {\n layers[i - 1].td = layerData.tt;\n }\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 xhr.open('GET', path, true);\n } catch (error) {\n xhr.open('GET', 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 _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 };\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 : '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 this.setParams(params);\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 () {\n this.renderer.updateContainerSize();\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 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('_pause');\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('_play');\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.renderer = 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.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 PropertyFactory = function () {\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 function getProp(elem, data, type, mult, container) {\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 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 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.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.9.6';\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 if (!this.a.k) {\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 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 surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n var zeroWidthJoiner = [65039, 8205];\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);\n\n var index = _char2.charCodeAt(0);\n\n if (!fontData.cache[index + 1]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index + 1] * 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 isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\n if (!secondCharCode) {\n return firstCharCode === zeroWidthJoiner[1];\n }\n\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\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.isCombinedCharacter = isCombinedCharacter;\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 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 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 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 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 _prevValue;\n\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 (stringValue !== _prevValue) {\n elem.textProperty.currentData.t = _prevValue;\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\n return _sourceText;\n }\n });\n return _thisLayerFunction;\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 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 _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 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$2(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$2(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 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 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.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.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 function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _opMdf: false,\n mat: new Matrix()\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 mat = this.hierarchy[i].finalTransform.mProp.v.props;\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\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 };\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 return ob;\n }();\n\n var registeredEffects = {};\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[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects[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 function registerEffect(id, effect, countsAsEffect) {\n registeredEffects[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 var filId;\n var fil;\n var gg;\n\n if (this.data.td) {\n if (this.data.td == 3 || this.data.td == 1) {\n // eslint-disable-line eqeqeq\n var masker = createNS('mask');\n masker.setAttribute('id', this.layerId);\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\n\n masker.appendChild(this.layerElement);\n layerElementParent = masker;\n this.globalData.defs.appendChild(masker); // This is only for IE and Edge when mask if of type alpha\n\n if (!featureSupport.maskType && this.data.td == 1) {\n // eslint-disable-line eqeqeq\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(this.layerElement);\n layerElementParent = gg;\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (this.data.td == 2) {\n // eslint-disable-line eqeqeq\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', this.layerId);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n // This solution doesn't work on Android when meta tag with viewport attribute is set\n\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\n /// /\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 maskGrouper.appendChild(this.layerElement);\n layerElementParent = maskGrouper;\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 layerElementParent = gg;\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\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._matMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\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 },\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.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 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 props;\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 props = itemData.transformers[k].mProps.v.props;\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\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') {\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 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\n while (i < len) {\n charCode = text.charCodeAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n shouldCombine = false;\n } else {\n charactersArray.push(text.substr(i, 2));\n }\n\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\n shouldCombine = true;\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\n i += 1;\n } else {\n charactersArray.push(text.charAt(i));\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n charactersArray[charactersArray.length - 1] += text.charAt(i);\n shouldCombine = true;\n } else {\n charactersArray.push(text.charAt(i));\n }\n\n i += 1;\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.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 if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\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 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 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\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]) {\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.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 if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\n this.buildItem(pos - 1);\n this.addPendingElement(element);\n } else {\n element.setMatte(elements[pos - 1].layerId);\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 element.setMatte(this.elements[i - 1].layerId);\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 };\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 CVContextData() {\n this.saved = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n this.cO = 1;\n var i;\n var len = 15;\n this.savedOp = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = len;\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var currentSavedOp = this.savedOp;\n this.savedOp = createTypedArray('float32', newLength);\n this.savedOp.set(currentSavedOp);\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.saved[i] = createTypedArray('float32', 16);\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.cO = 1;\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 var props;\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n props = sequence.transforms[i].transform.mProps.v.props;\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\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 function CVEffects() {}\n\n CVEffects.prototype.renderFrame = function () {};\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 CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n this.canvasContext = this.globalData.canvasContext;\n this.renderableEffectsManager = new CVEffects(this);\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 },\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 renderFrame: function renderFrame() {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\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') {\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 ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n ctx.lineWidth = currentStyle.wi;\n ctx.lineCap = currentStyle.lc;\n ctx.lineJoin = currentStyle.lj;\n ctx.miterLimit = currentStyle.ml || 0;\n } else {\n 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\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 }\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 var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n 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\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n this.globalData.renderer.save();\n this.globalData.renderer.ctxTransform(renderedLetter.p);\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n lastFill = renderedLetter.fc;\n ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n 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 this.globalData.canvasContext.fill(); /// 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 ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n 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 this.globalData.canvasContext.stroke(); /// 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 ctx.fillStyle = this.data.sc;\n ctx.fillRect(0, 0, this.data.sw, this.data.sh); //\n };\n\n function CanvasRendererBase(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 };\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\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 if (!this.renderConfig.clearCanvas) {\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n return;\n }\n\n this.transformMat.cloneFromProps(props);\n var cProps = this.contextData.cTr.props;\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\n\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\n var trProps = this.contextData.cTr.props;\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n /* if(op === 1){\r\n return;\r\n } */\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n return;\n }\n\n this.contextData.cO *= op < 0 ? 0 : op;\n\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\n this.canvasContext.globalAlpha = this.contextData.cO;\n this.globalData.currentGlobalAlpha = this.contextData.cO;\n }\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 (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.save();\n return;\n }\n\n if (actionFlag) {\n this.canvasContext.save();\n }\n\n var props = this.contextData.cTr.props;\n\n if (this.contextData._length <= this.contextData.cArrPos) {\n this.contextData.duplicate();\n }\n\n var i;\n var arr = this.contextData.saved[this.contextData.cArrPos];\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = props[i];\n }\n\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\n this.contextData.cArrPos += 1;\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.canvasContext.restore();\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.cArrPos -= 1;\n var popped = this.contextData.saved[this.contextData.cArrPos];\n var i;\n var arr = this.contextData.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = popped[i];\n }\n\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\n popped = this.contextData.savedOp[this.contextData.cArrPos];\n this.contextData.cO = popped;\n\n if (this.globalData.currentGlobalAlpha !== popped) {\n this.canvasContext.globalAlpha = popped;\n this.globalData.currentGlobalAlpha = popped;\n }\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.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 () {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\n } else {\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\n elementHeight = this.canvasContext.canvas.height * 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<len;i+=1){\r\n if(this.elements[i] && this.elements[i].data.ty === 0){\r\n this.elements[i].resize(this.globalData.transformCanvas);\r\n }\r\n } */\n\n this.ctxTransform(this.transformCanvas.props);\n this.canvasContext.beginPath();\n this.canvasContext.rect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n this.canvasContext.closePath();\n this.canvasContext.clip();\n this.renderFrame(this.renderedFrame, true);\n };\n\n CanvasRendererBase.prototype.destroy = function () {\n if (this.renderConfig.clearCanvas && this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n var i;\n var len = this.layers ? this.layers.length : 0;\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.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 = 0; i < len; 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 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 };\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\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 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 this.elements[i].destroy();\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 };\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 Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\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 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 /* 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$1(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(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 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 initialize$2(BMMath);\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' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof(a);\n\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\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(a);\n\n var tOfB = _typeof(b);\n\n if (tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\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(a);\n\n var tOfB = _typeof(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(a);\n\n var tOfB = _typeof(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(a);\n\n var tOfB = _typeof(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 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];\n return ob;\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 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', '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 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.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 ' + opacity + ' 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 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); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect(20, SVGTintFilter, true);\n registerEffect(21, SVGFillFilter, true);\n registerEffect(22, SVGStrokeEffect, false);\n registerEffect(23, SVGTritoneFilter, true);\n registerEffect(24, SVGProLevelsFilter, true);\n registerEffect(25, SVGDropShadowEffect, true);\n registerEffect(28, SVGMatte3Effect, false);\n registerEffect(29, SVGGaussianBlurEffect, true);\n\n return lottie;\n\n}));\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","\nconst canPromise = require('./can-promise')\n\nconst QRCode = require('./core/qrcode')\nconst CanvasRenderer = require('./renderer/canvas')\nconst SvgRenderer = require('./renderer/svg-tag.js')\n\nfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n const args = [].slice.call(arguments, 1)\n const argsNum = args.length\n const isLastArgCb = typeof args[argsNum - 1] === 'function'\n\n if (!isLastArgCb && !canPromise()) {\n throw new Error('Callback required as last argument')\n }\n\n if (isLastArgCb) {\n if (argsNum < 2) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 2) {\n cb = text\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 3) {\n if (canvas.getContext && typeof cb === 'undefined') {\n cb = opts\n opts = undefined\n } else {\n cb = opts\n opts = text\n text = canvas\n canvas = undefined\n }\n }\n } else {\n if (argsNum < 1) {\n throw new Error('Too few arguments provided')\n }\n\n if (argsNum === 1) {\n text = canvas\n canvas = opts = undefined\n } else if (argsNum === 2 && !canvas.getContext) {\n opts = text\n text = canvas\n canvas = undefined\n }\n\n return new Promise(function (resolve, reject) {\n try {\n const data = QRCode.create(text, opts)\n resolve(renderFunc(data, canvas, opts))\n } catch (e) {\n reject(e)\n }\n })\n }\n\n try {\n const data = QRCode.create(text, opts)\n cb(null, renderFunc(data, canvas, opts))\n } catch (e) {\n cb(e)\n }\n}\n\nexports.create = QRCode.create\nexports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render)\nexports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL)\n\n// only svg for now.\nexports.toString = renderCanvas.bind(null, function (data, _, opts) {\n return SvgRenderer.render(data, opts)\n})\n","// can-promise has a crash in some versions of react native that dont have\n// standard global objects\n// https://github.com/soldair/node-qrcode/issues/157\n\nmodule.exports = function () {\n return typeof Promise === 'function' && Promise.prototype && Promise.prototype.then\n}\n","/**\n * Alignment pattern are fixed reference pattern in defined positions\n * in a matrix symbology, which enables the decode software to re-synchronise\n * the coordinate mapping of the image modules in the event of moderate amounts\n * of distortion of the image.\n *\n * Alignment patterns are present only in QR Code symbols of version 2 or larger\n * and their number depends on the symbol version.\n */\n\nconst getSymbolSize = require('./utils').getSymbolSize\n\n/**\n * Calculate the row/column coordinates of the center module of each alignment pattern\n * for the specified QR Code version.\n *\n * The alignment patterns are positioned symmetrically on either side of the diagonal\n * running from the top left corner of the symbol to the bottom right corner.\n *\n * Since positions are simmetrical only half of the coordinates are returned.\n * Each item of the array will represent in turn the x and y coordinate.\n * @see {@link getPositions}\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinate\n */\nexports.getRowColCoords = function getRowColCoords (version) {\n if (version === 1) return []\n\n const posCount = Math.floor(version / 7) + 2\n const size = getSymbolSize(version)\n const intervals = size === 145 ? 26 : Math.ceil((size - 13) / (2 * posCount - 2)) * 2\n const positions = [size - 7] // Last coord is always (size - 7)\n\n for (let i = 1; i < posCount - 1; i++) {\n positions[i] = positions[i - 1] - intervals\n }\n\n positions.push(6) // First coord is always 6\n\n return positions.reverse()\n}\n\n/**\n * Returns an array containing the positions of each alignment pattern.\n * Each array's element represent the center point of the pattern as (x, y) coordinates\n *\n * Coordinates are calculated expanding the row/column coordinates returned by {@link getRowColCoords}\n * and filtering out the items that overlaps with finder pattern\n *\n * @example\n * For a Version 7 symbol {@link getRowColCoords} returns values 6, 22 and 38.\n * The alignment patterns, therefore, are to be centered on (row, column)\n * positions (6,22), (22,6), (22,22), (22,38), (38,22), (38,38).\n * Note that the coordinates (6,6), (6,38), (38,6) are occupied by finder patterns\n * and are not therefore used for alignment patterns.\n *\n * let pos = getPositions(7)\n * // [[6,22], [22,6], [22,22], [22,38], [38,22], [38,38]]\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const coords = []\n const pos = exports.getRowColCoords(version)\n const posLength = pos.length\n\n for (let i = 0; i < posLength; i++) {\n for (let j = 0; j < posLength; j++) {\n // Skip if position is occupied by finder patterns\n if ((i === 0 && j === 0) || // top-left\n (i === 0 && j === posLength - 1) || // bottom-left\n (i === posLength - 1 && j === 0)) { // top-right\n continue\n }\n\n coords.push([pos[i], pos[j]])\n }\n }\n\n return coords\n}\n","const Mode = require('./mode')\n\n/**\n * Array of characters available in alphanumeric mode\n *\n * As per QR Code specification, to each character\n * is assigned a value from 0 to 44 which in this case coincides\n * with the array index\n *\n * @type {Array}\n */\nconst ALPHA_NUM_CHARS = [\n '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',\n 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',\n 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',\n ' ', '$', '%', '*', '+', '-', '.', '/', ':'\n]\n\nfunction AlphanumericData (data) {\n this.mode = Mode.ALPHANUMERIC\n this.data = data\n}\n\nAlphanumericData.getBitsLength = function getBitsLength (length) {\n return 11 * Math.floor(length / 2) + 6 * (length % 2)\n}\n\nAlphanumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nAlphanumericData.prototype.getBitsLength = function getBitsLength () {\n return AlphanumericData.getBitsLength(this.data.length)\n}\n\nAlphanumericData.prototype.write = function write (bitBuffer) {\n let i\n\n // Input data characters are divided into groups of two characters\n // and encoded as 11-bit binary codes.\n for (i = 0; i + 2 <= this.data.length; i += 2) {\n // The character value of the first character is multiplied by 45\n let value = ALPHA_NUM_CHARS.indexOf(this.data[i]) * 45\n\n // The character value of the second digit is added to the product\n value += ALPHA_NUM_CHARS.indexOf(this.data[i + 1])\n\n // The sum is then stored as 11-bit binary number\n bitBuffer.put(value, 11)\n }\n\n // If the number of input data characters is not a multiple of two,\n // the character value of the final character is encoded as a 6-bit binary number.\n if (this.data.length % 2) {\n bitBuffer.put(ALPHA_NUM_CHARS.indexOf(this.data[i]), 6)\n }\n}\n\nmodule.exports = AlphanumericData\n","function BitBuffer () {\n this.buffer = []\n this.length = 0\n}\n\nBitBuffer.prototype = {\n\n get: function (index) {\n const bufIndex = Math.floor(index / 8)\n return ((this.buffer[bufIndex] >>> (7 - index % 8)) & 1) === 1\n },\n\n put: function (num, length) {\n for (let i = 0; i < length; i++) {\n this.putBit(((num >>> (length - i - 1)) & 1) === 1)\n }\n },\n\n getLengthInBits: function () {\n return this.length\n },\n\n putBit: function (bit) {\n const bufIndex = Math.floor(this.length / 8)\n if (this.buffer.length <= bufIndex) {\n this.buffer.push(0)\n }\n\n if (bit) {\n this.buffer[bufIndex] |= (0x80 >>> (this.length % 8))\n }\n\n this.length++\n }\n}\n\nmodule.exports = BitBuffer\n","/**\n * Helper class to handle QR Code symbol modules\n *\n * @param {Number} size Symbol size\n */\nfunction BitMatrix (size) {\n if (!size || size < 1) {\n throw new Error('BitMatrix size must be defined and greater than 0')\n }\n\n this.size = size\n this.data = new Uint8Array(size * size)\n this.reservedBit = new Uint8Array(size * size)\n}\n\n/**\n * Set bit value at specified location\n * If reserved flag is set, this bit will be ignored during masking process\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n * @param {Boolean} reserved\n */\nBitMatrix.prototype.set = function (row, col, value, reserved) {\n const index = row * this.size + col\n this.data[index] = value\n if (reserved) this.reservedBit[index] = true\n}\n\n/**\n * Returns bit value at specified location\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.get = function (row, col) {\n return this.data[row * this.size + col]\n}\n\n/**\n * Applies xor operator at specified location\n * (used during masking process)\n *\n * @param {Number} row\n * @param {Number} col\n * @param {Boolean} value\n */\nBitMatrix.prototype.xor = function (row, col, value) {\n this.data[row * this.size + col] ^= value\n}\n\n/**\n * Check if bit at specified location is reserved\n *\n * @param {Number} row\n * @param {Number} col\n * @return {Boolean}\n */\nBitMatrix.prototype.isReserved = function (row, col) {\n return this.reservedBit[row * this.size + col]\n}\n\nmodule.exports = BitMatrix\n","const encodeUtf8 = require('encode-utf8')\nconst Mode = require('./mode')\n\nfunction ByteData (data) {\n this.mode = Mode.BYTE\n if (typeof (data) === 'string') {\n data = encodeUtf8(data)\n }\n this.data = new Uint8Array(data)\n}\n\nByteData.getBitsLength = function getBitsLength (length) {\n return length * 8\n}\n\nByteData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nByteData.prototype.getBitsLength = function getBitsLength () {\n return ByteData.getBitsLength(this.data.length)\n}\n\nByteData.prototype.write = function (bitBuffer) {\n for (let i = 0, l = this.data.length; i < l; i++) {\n bitBuffer.put(this.data[i], 8)\n }\n}\n\nmodule.exports = ByteData\n","const ECLevel = require('./error-correction-level')\r\n\r\nconst EC_BLOCKS_TABLE = [\r\n// L M Q H\r\n 1, 1, 1, 1,\r\n 1, 1, 1, 1,\r\n 1, 1, 2, 2,\r\n 1, 2, 2, 4,\r\n 1, 2, 4, 4,\r\n 2, 4, 4, 4,\r\n 2, 4, 6, 5,\r\n 2, 4, 6, 6,\r\n 2, 5, 8, 8,\r\n 4, 5, 8, 8,\r\n 4, 5, 8, 11,\r\n 4, 8, 10, 11,\r\n 4, 9, 12, 16,\r\n 4, 9, 16, 16,\r\n 6, 10, 12, 18,\r\n 6, 10, 17, 16,\r\n 6, 11, 16, 19,\r\n 6, 13, 18, 21,\r\n 7, 14, 21, 25,\r\n 8, 16, 20, 25,\r\n 8, 17, 23, 25,\r\n 9, 17, 23, 34,\r\n 9, 18, 25, 30,\r\n 10, 20, 27, 32,\r\n 12, 21, 29, 35,\r\n 12, 23, 34, 37,\r\n 12, 25, 34, 40,\r\n 13, 26, 35, 42,\r\n 14, 28, 38, 45,\r\n 15, 29, 40, 48,\r\n 16, 31, 43, 51,\r\n 17, 33, 45, 54,\r\n 18, 35, 48, 57,\r\n 19, 37, 51, 60,\r\n 19, 38, 53, 63,\r\n 20, 40, 56, 66,\r\n 21, 43, 59, 70,\r\n 22, 45, 62, 74,\r\n 24, 47, 65, 77,\r\n 25, 49, 68, 81\r\n]\r\n\r\nconst EC_CODEWORDS_TABLE = [\r\n// L M Q H\r\n 7, 10, 13, 17,\r\n 10, 16, 22, 28,\r\n 15, 26, 36, 44,\r\n 20, 36, 52, 64,\r\n 26, 48, 72, 88,\r\n 36, 64, 96, 112,\r\n 40, 72, 108, 130,\r\n 48, 88, 132, 156,\r\n 60, 110, 160, 192,\r\n 72, 130, 192, 224,\r\n 80, 150, 224, 264,\r\n 96, 176, 260, 308,\r\n 104, 198, 288, 352,\r\n 120, 216, 320, 384,\r\n 132, 240, 360, 432,\r\n 144, 280, 408, 480,\r\n 168, 308, 448, 532,\r\n 180, 338, 504, 588,\r\n 196, 364, 546, 650,\r\n 224, 416, 600, 700,\r\n 224, 442, 644, 750,\r\n 252, 476, 690, 816,\r\n 270, 504, 750, 900,\r\n 300, 560, 810, 960,\r\n 312, 588, 870, 1050,\r\n 336, 644, 952, 1110,\r\n 360, 700, 1020, 1200,\r\n 390, 728, 1050, 1260,\r\n 420, 784, 1140, 1350,\r\n 450, 812, 1200, 1440,\r\n 480, 868, 1290, 1530,\r\n 510, 924, 1350, 1620,\r\n 540, 980, 1440, 1710,\r\n 570, 1036, 1530, 1800,\r\n 570, 1064, 1590, 1890,\r\n 600, 1120, 1680, 1980,\r\n 630, 1204, 1770, 2100,\r\n 660, 1260, 1860, 2220,\r\n 720, 1316, 1950, 2310,\r\n 750, 1372, 2040, 2430\r\n]\r\n\r\n/**\r\n * Returns the number of error correction block that the QR Code should contain\r\n * for the specified version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction blocks\r\n */\r\nexports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n\r\n/**\r\n * Returns the number of error correction codewords to use for the specified\r\n * version and error correction level.\r\n *\r\n * @param {Number} version QR Code version\r\n * @param {Number} errorCorrectionLevel Error correction level\r\n * @return {Number} Number of error correction codewords\r\n */\r\nexports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n switch (errorCorrectionLevel) {\r\n case ECLevel.L:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n case ECLevel.M:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n case ECLevel.Q:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n case ECLevel.H:\r\n return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n default:\r\n return undefined\r\n }\r\n}\r\n","exports.L = { bit: 1 }\nexports.M = { bit: 0 }\nexports.Q = { bit: 3 }\nexports.H = { bit: 2 }\n\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'l':\n case 'low':\n return exports.L\n\n case 'm':\n case 'medium':\n return exports.M\n\n case 'q':\n case 'quartile':\n return exports.Q\n\n case 'h':\n case 'high':\n return exports.H\n\n default:\n throw new Error('Unknown EC Level: ' + string)\n }\n}\n\nexports.isValid = function isValid (level) {\n return level && typeof level.bit !== 'undefined' &&\n level.bit >= 0 && level.bit < 4\n}\n\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const getSymbolSize = require('./utils').getSymbolSize\nconst FINDER_PATTERN_SIZE = 7\n\n/**\n * Returns an array containing the positions of each finder pattern.\n * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n *\n * @param {Number} version QR Code version\n * @return {Array} Array of coordinates\n */\nexports.getPositions = function getPositions (version) {\n const size = getSymbolSize(version)\n\n return [\n // top-left\n [0, 0],\n // top-right\n [size - FINDER_PATTERN_SIZE, 0],\n // bottom-left\n [0, size - FINDER_PATTERN_SIZE]\n ]\n}\n","const Utils = require('./utils')\n\nconst G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0)\nconst G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1)\nconst G15_BCH = Utils.getBCHDigit(G15)\n\n/**\n * Returns format information with relative error correction bits\n *\n * The format information is a 15-bit sequence containing 5 data bits,\n * with 10 error correction bits calculated using the (15, 5) BCH code.\n *\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Number} mask Mask pattern\n * @return {Number} Encoded format information bits\n */\nexports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n const data = ((errorCorrectionLevel.bit << 3) | mask)\n let d = data << 10\n\n while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH))\n }\n\n // xor final data with mask pattern in order to ensure that\n // no combination of Error Correction Level and data mask pattern\n // will result in an all-zero data string\n return ((data << 10) | d) ^ G15_MASK\n}\n","const EXP_TABLE = new Uint8Array(512)\nconst LOG_TABLE = new Uint8Array(256)\n/**\n * Precompute the log and anti-log tables for faster computation later\n *\n * For each possible value in the galois field 2^8, we will pre-compute\n * the logarithm and anti-logarithm (exponential) of this value\n *\n * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n */\n;(function initTables () {\n let x = 1\n for (let i = 0; i < 255; i++) {\n EXP_TABLE[i] = x\n LOG_TABLE[x] = i\n\n x <<= 1 // multiply by 2\n\n // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n x ^= 0x11D\n }\n }\n\n // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n // stay inside the bounds (because we will mainly use this table for the multiplication of\n // two GF numbers, no more).\n // @see {@link mul}\n for (let i = 255; i < 512; i++) {\n EXP_TABLE[i] = EXP_TABLE[i - 255]\n }\n}())\n\n/**\n * Returns log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.log = function log (n) {\n if (n < 1) throw new Error('log(' + n + ')')\n return LOG_TABLE[n]\n}\n\n/**\n * Returns anti-log value of n inside Galois Field\n *\n * @param {Number} n\n * @return {Number}\n */\nexports.exp = function exp (n) {\n return EXP_TABLE[n]\n}\n\n/**\n * Multiplies two number inside Galois Field\n *\n * @param {Number} x\n * @param {Number} y\n * @return {Number}\n */\nexports.mul = function mul (x, y) {\n if (x === 0 || y === 0) return 0\n\n // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n // @see {@link initTables}\n return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n}\n","const Mode = require('./mode')\nconst Utils = require('./utils')\n\nfunction KanjiData (data) {\n this.mode = Mode.KANJI\n this.data = data\n}\n\nKanjiData.getBitsLength = function getBitsLength (length) {\n return length * 13\n}\n\nKanjiData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nKanjiData.prototype.getBitsLength = function getBitsLength () {\n return KanjiData.getBitsLength(this.data.length)\n}\n\nKanjiData.prototype.write = function (bitBuffer) {\n let i\n\n // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n // These byte values are shifted from the JIS X 0208 values.\n // JIS X 0208 gives details of the shift coded representation.\n for (i = 0; i < this.data.length; i++) {\n let value = Utils.toSJIS(this.data[i])\n\n // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n if (value >= 0x8140 && value <= 0x9FFC) {\n // Subtract 0x8140 from Shift JIS value\n value -= 0x8140\n\n // For characters with Shift JIS values from 0xE040 to 0xEBBF\n } else if (value >= 0xE040 && value <= 0xEBBF) {\n // Subtract 0xC140 from Shift JIS value\n value -= 0xC140\n } else {\n throw new Error(\n 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n 'Make sure your charset is UTF-8')\n }\n\n // Multiply most significant byte of result by 0xC0\n // and add least significant byte to product\n value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff)\n\n // Convert result to a 13-bit binary string\n bitBuffer.put(value, 13)\n }\n}\n\nmodule.exports = KanjiData\n","/**\n * Data mask pattern reference\n * @type {Object}\n */\nexports.Patterns = {\n PATTERN000: 0,\n PATTERN001: 1,\n PATTERN010: 2,\n PATTERN011: 3,\n PATTERN100: 4,\n PATTERN101: 5,\n PATTERN110: 6,\n PATTERN111: 7\n}\n\n/**\n * Weighted penalty scores for the undesirable features\n * @type {Object}\n */\nconst PenaltyScores = {\n N1: 3,\n N2: 3,\n N3: 40,\n N4: 10\n}\n\n/**\n * Check if mask pattern value is valid\n *\n * @param {Number} mask Mask pattern\n * @return {Boolean} true if valid, false otherwise\n */\nexports.isValid = function isValid (mask) {\n return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n}\n\n/**\n * Returns mask pattern from a value.\n * If value is not valid, returns undefined\n *\n * @param {Number|String} value Mask pattern value\n * @return {Number} Valid mask pattern or undefined\n */\nexports.from = function from (value) {\n return exports.isValid(value) ? parseInt(value, 10) : undefined\n}\n\n/**\n* Find adjacent modules in row/column with the same color\n* and assign a penalty value.\n*\n* Points: N1 + i\n* i is the amount by which the number of adjacent modules of the same color exceeds 5\n*/\nexports.getPenaltyN1 = function getPenaltyN1 (data) {\n const size = data.size\n let points = 0\n let sameCountCol = 0\n let sameCountRow = 0\n let lastCol = null\n let lastRow = null\n\n for (let row = 0; row < size; row++) {\n sameCountCol = sameCountRow = 0\n lastCol = lastRow = null\n\n for (let col = 0; col < size; col++) {\n let module = data.get(row, col)\n if (module === lastCol) {\n sameCountCol++\n } else {\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n lastCol = module\n sameCountCol = 1\n }\n\n module = data.get(col, row)\n if (module === lastRow) {\n sameCountRow++\n } else {\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n lastRow = module\n sameCountRow = 1\n }\n }\n\n if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5)\n if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5)\n }\n\n return points\n}\n\n/**\n * Find 2x2 blocks with the same color and assign a penalty value\n *\n * Points: N2 * (m - 1) * (n - 1)\n */\nexports.getPenaltyN2 = function getPenaltyN2 (data) {\n const size = data.size\n let points = 0\n\n for (let row = 0; row < size - 1; row++) {\n for (let col = 0; col < size - 1; col++) {\n const last = data.get(row, col) +\n data.get(row, col + 1) +\n data.get(row + 1, col) +\n data.get(row + 1, col + 1)\n\n if (last === 4 || last === 0) points++\n }\n }\n\n return points * PenaltyScores.N2\n}\n\n/**\n * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n * preceded or followed by light area 4 modules wide\n *\n * Points: N3 * number of pattern found\n */\nexports.getPenaltyN3 = function getPenaltyN3 (data) {\n const size = data.size\n let points = 0\n let bitsCol = 0\n let bitsRow = 0\n\n for (let row = 0; row < size; row++) {\n bitsCol = bitsRow = 0\n for (let col = 0; col < size; col++) {\n bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col)\n if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++\n\n bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row)\n if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++\n }\n }\n\n return points * PenaltyScores.N3\n}\n\n/**\n * Calculate proportion of dark modules in entire symbol\n *\n * Points: N4 * k\n *\n * k is the rating of the deviation of the proportion of dark modules\n * in the symbol from 50% in steps of 5%\n */\nexports.getPenaltyN4 = function getPenaltyN4 (data) {\n let darkCount = 0\n const modulesCount = data.data.length\n\n for (let i = 0; i < modulesCount; i++) darkCount += data.data[i]\n\n const k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10)\n\n return k * PenaltyScores.N4\n}\n\n/**\n * Return mask value at given position\n *\n * @param {Number} maskPattern Pattern reference value\n * @param {Number} i Row\n * @param {Number} j Column\n * @return {Boolean} Mask value\n */\nfunction getMaskAt (maskPattern, i, j) {\n switch (maskPattern) {\n case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n case exports.Patterns.PATTERN001: return i % 2 === 0\n case exports.Patterns.PATTERN010: return j % 3 === 0\n case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n default: throw new Error('bad maskPattern:' + maskPattern)\n }\n}\n\n/**\n * Apply a mask pattern to a BitMatrix\n *\n * @param {Number} pattern Pattern reference number\n * @param {BitMatrix} data BitMatrix data\n */\nexports.applyMask = function applyMask (pattern, data) {\n const size = data.size\n\n for (let col = 0; col < size; col++) {\n for (let row = 0; row < size; row++) {\n if (data.isReserved(row, col)) continue\n data.xor(row, col, getMaskAt(pattern, row, col))\n }\n }\n}\n\n/**\n * Returns the best mask pattern for data\n *\n * @param {BitMatrix} data\n * @return {Number} Mask pattern reference number\n */\nexports.getBestMask = function getBestMask (data, setupFormatFunc) {\n const numPatterns = Object.keys(exports.Patterns).length\n let bestPattern = 0\n let lowerPenalty = Infinity\n\n for (let p = 0; p < numPatterns; p++) {\n setupFormatFunc(p)\n exports.applyMask(p, data)\n\n // Calculate penalty\n const penalty =\n exports.getPenaltyN1(data) +\n exports.getPenaltyN2(data) +\n exports.getPenaltyN3(data) +\n exports.getPenaltyN4(data)\n\n // Undo previously applied mask\n exports.applyMask(p, data)\n\n if (penalty < lowerPenalty) {\n lowerPenalty = penalty\n bestPattern = p\n }\n }\n\n return bestPattern\n}\n","const VersionCheck = require('./version-check')\nconst Regex = require('./regex')\n\n/**\n * Numeric mode encodes data from the decimal digit set (0 - 9)\n * (byte values 30HEX to 39HEX).\n * Normally, 3 data characters are represented by 10 bits.\n *\n * @type {Object}\n */\nexports.NUMERIC = {\n id: 'Numeric',\n bit: 1 << 0,\n ccBits: [10, 12, 14]\n}\n\n/**\n * Alphanumeric mode encodes data from a set of 45 characters,\n * i.e. 10 numeric digits (0 - 9),\n * 26 alphabetic characters (A - Z),\n * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n * Normally, two input characters are represented by 11 bits.\n *\n * @type {Object}\n */\nexports.ALPHANUMERIC = {\n id: 'Alphanumeric',\n bit: 1 << 1,\n ccBits: [9, 11, 13]\n}\n\n/**\n * In byte mode, data is encoded at 8 bits per character.\n *\n * @type {Object}\n */\nexports.BYTE = {\n id: 'Byte',\n bit: 1 << 2,\n ccBits: [8, 16, 16]\n}\n\n/**\n * The Kanji mode efficiently encodes Kanji characters in accordance with\n * the Shift JIS system based on JIS X 0208.\n * The Shift JIS values are shifted from the JIS X 0208 values.\n * JIS X 0208 gives details of the shift coded representation.\n * Each two-byte character value is compacted to a 13-bit binary codeword.\n *\n * @type {Object}\n */\nexports.KANJI = {\n id: 'Kanji',\n bit: 1 << 3,\n ccBits: [8, 10, 12]\n}\n\n/**\n * Mixed mode will contain a sequences of data in a combination of any of\n * the modes described above\n *\n * @type {Object}\n */\nexports.MIXED = {\n bit: -1\n}\n\n/**\n * Returns the number of bits needed to store the data length\n * according to QR Code specifications.\n *\n * @param {Mode} mode Data mode\n * @param {Number} version QR Code version\n * @return {Number} Number of bits\n */\nexports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid version: ' + version)\n }\n\n if (version >= 1 && version < 10) return mode.ccBits[0]\n else if (version < 27) return mode.ccBits[1]\n return mode.ccBits[2]\n}\n\n/**\n * Returns the most efficient mode to store the specified data\n *\n * @param {String} dataStr Input data string\n * @return {Mode} Best mode\n */\nexports.getBestModeForData = function getBestModeForData (dataStr) {\n if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n else if (Regex.testKanji(dataStr)) return exports.KANJI\n else return exports.BYTE\n}\n\n/**\n * Return mode name as string\n *\n * @param {Mode} mode Mode object\n * @returns {String} Mode name\n */\nexports.toString = function toString (mode) {\n if (mode && mode.id) return mode.id\n throw new Error('Invalid mode')\n}\n\n/**\n * Check if input param is a valid mode object\n *\n * @param {Mode} mode Mode object\n * @returns {Boolean} True if valid mode, false otherwise\n */\nexports.isValid = function isValid (mode) {\n return mode && mode.bit && mode.ccBits\n}\n\n/**\n * Get mode object from its name\n *\n * @param {String} string Mode name\n * @returns {Mode} Mode object\n */\nfunction fromString (string) {\n if (typeof string !== 'string') {\n throw new Error('Param is not a string')\n }\n\n const lcStr = string.toLowerCase()\n\n switch (lcStr) {\n case 'numeric':\n return exports.NUMERIC\n case 'alphanumeric':\n return exports.ALPHANUMERIC\n case 'kanji':\n return exports.KANJI\n case 'byte':\n return exports.BYTE\n default:\n throw new Error('Unknown mode: ' + string)\n }\n}\n\n/**\n * Returns mode from a value.\n * If value is not a valid mode, returns defaultValue\n *\n * @param {Mode|String} value Encoding mode\n * @param {Mode} defaultValue Fallback value\n * @return {Mode} Encoding mode\n */\nexports.from = function from (value, defaultValue) {\n if (exports.isValid(value)) {\n return value\n }\n\n try {\n return fromString(value)\n } catch (e) {\n return defaultValue\n }\n}\n","const Mode = require('./mode')\n\nfunction NumericData (data) {\n this.mode = Mode.NUMERIC\n this.data = data.toString()\n}\n\nNumericData.getBitsLength = function getBitsLength (length) {\n return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n}\n\nNumericData.prototype.getLength = function getLength () {\n return this.data.length\n}\n\nNumericData.prototype.getBitsLength = function getBitsLength () {\n return NumericData.getBitsLength(this.data.length)\n}\n\nNumericData.prototype.write = function write (bitBuffer) {\n let i, group, value\n\n // The input data string is divided into groups of three digits,\n // and each group is converted to its 10-bit binary equivalent.\n for (i = 0; i + 3 <= this.data.length; i += 3) {\n group = this.data.substr(i, 3)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, 10)\n }\n\n // If the number of input digits is not an exact multiple of three,\n // the final one or two digits are converted to 4 or 7 bits respectively.\n const remainingNum = this.data.length - i\n if (remainingNum > 0) {\n group = this.data.substr(i)\n value = parseInt(group, 10)\n\n bitBuffer.put(value, remainingNum * 3 + 1)\n }\n}\n\nmodule.exports = NumericData\n","const GF = require('./galois-field')\n\n/**\n * Multiplies two polynomials inside Galois Field\n *\n * @param {Uint8Array} p1 Polynomial\n * @param {Uint8Array} p2 Polynomial\n * @return {Uint8Array} Product of p1 and p2\n */\nexports.mul = function mul (p1, p2) {\n const coeff = new Uint8Array(p1.length + p2.length - 1)\n\n for (let i = 0; i < p1.length; i++) {\n for (let j = 0; j < p2.length; j++) {\n coeff[i + j] ^= GF.mul(p1[i], p2[j])\n }\n }\n\n return coeff\n}\n\n/**\n * Calculate the remainder of polynomials division\n *\n * @param {Uint8Array} divident Polynomial\n * @param {Uint8Array} divisor Polynomial\n * @return {Uint8Array} Remainder\n */\nexports.mod = function mod (divident, divisor) {\n let result = new Uint8Array(divident)\n\n while ((result.length - divisor.length) >= 0) {\n const coeff = result[0]\n\n for (let i = 0; i < divisor.length; i++) {\n result[i] ^= GF.mul(divisor[i], coeff)\n }\n\n // remove all zeros from buffer head\n let offset = 0\n while (offset < result.length && result[offset] === 0) offset++\n result = result.slice(offset)\n }\n\n return result\n}\n\n/**\n * Generate an irreducible generator polynomial of specified degree\n * (used by Reed-Solomon encoder)\n *\n * @param {Number} degree Degree of the generator polynomial\n * @return {Uint8Array} Buffer containing polynomial coefficients\n */\nexports.generateECPolynomial = function generateECPolynomial (degree) {\n let poly = new Uint8Array([1])\n for (let i = 0; i < degree; i++) {\n poly = exports.mul(poly, new Uint8Array([1, GF.exp(i)]))\n }\n\n return poly\n}\n","const Utils = require('./utils')\nconst ECLevel = require('./error-correction-level')\nconst BitBuffer = require('./bit-buffer')\nconst BitMatrix = require('./bit-matrix')\nconst AlignmentPattern = require('./alignment-pattern')\nconst FinderPattern = require('./finder-pattern')\nconst MaskPattern = require('./mask-pattern')\nconst ECCode = require('./error-correction-code')\nconst ReedSolomonEncoder = require('./reed-solomon-encoder')\nconst Version = require('./version')\nconst FormatInfo = require('./format-info')\nconst Mode = require('./mode')\nconst Segments = require('./segments')\n\n/**\n * QRCode for JavaScript\n *\n * modified by Ryan Day for nodejs support\n * Copyright (c) 2011 Ryan Day\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/mit-license.php\n *\n//---------------------------------------------------------------------\n// QRCode for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n// http://www.opensource.org/licenses/mit-license.php\n//\n// The word \"QR Code\" is registered trademark of\n// DENSO WAVE INCORPORATED\n// http://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n*/\n\n/**\n * Add finder patterns bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupFinderPattern (matrix, version) {\n const size = matrix.size\n const pos = FinderPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -1; r <= 7; r++) {\n if (row + r <= -1 || size <= row + r) continue\n\n for (let c = -1; c <= 7; c++) {\n if (col + c <= -1 || size <= col + c) continue\n\n if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add timing pattern bits to matrix\n *\n * Note: this function must be called before {@link setupAlignmentPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n */\nfunction setupTimingPattern (matrix) {\n const size = matrix.size\n\n for (let r = 8; r < size - 8; r++) {\n const value = r % 2 === 0\n matrix.set(r, 6, value, true)\n matrix.set(6, r, value, true)\n }\n}\n\n/**\n * Add alignment patterns bits to matrix\n *\n * Note: this function must be called after {@link setupTimingPattern}\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupAlignmentPattern (matrix, version) {\n const pos = AlignmentPattern.getPositions(version)\n\n for (let i = 0; i < pos.length; i++) {\n const row = pos[i][0]\n const col = pos[i][1]\n\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n if (r === -2 || r === 2 || c === -2 || c === 2 ||\n (r === 0 && c === 0)) {\n matrix.set(row + r, col + c, true, true)\n } else {\n matrix.set(row + r, col + c, false, true)\n }\n }\n }\n }\n}\n\n/**\n * Add version info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Number} version QR Code version\n */\nfunction setupVersionInfo (matrix, version) {\n const size = matrix.size\n const bits = Version.getEncodedBits(version)\n let row, col, mod\n\n for (let i = 0; i < 18; i++) {\n row = Math.floor(i / 3)\n col = i % 3 + size - 8 - 3\n mod = ((bits >> i) & 1) === 1\n\n matrix.set(row, col, mod, true)\n matrix.set(col, row, mod, true)\n }\n}\n\n/**\n * Add format info bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {Number} maskPattern Mask pattern reference value\n */\nfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n const size = matrix.size\n const bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern)\n let i, mod\n\n for (i = 0; i < 15; i++) {\n mod = ((bits >> i) & 1) === 1\n\n // vertical\n if (i < 6) {\n matrix.set(i, 8, mod, true)\n } else if (i < 8) {\n matrix.set(i + 1, 8, mod, true)\n } else {\n matrix.set(size - 15 + i, 8, mod, true)\n }\n\n // horizontal\n if (i < 8) {\n matrix.set(8, size - i - 1, mod, true)\n } else if (i < 9) {\n matrix.set(8, 15 - i - 1 + 1, mod, true)\n } else {\n matrix.set(8, 15 - i - 1, mod, true)\n }\n }\n\n // fixed module\n matrix.set(size - 8, 8, 1, true)\n}\n\n/**\n * Add encoded data bits to matrix\n *\n * @param {BitMatrix} matrix Modules matrix\n * @param {Uint8Array} data Data codewords\n */\nfunction setupData (matrix, data) {\n const size = matrix.size\n let inc = -1\n let row = size - 1\n let bitIndex = 7\n let byteIndex = 0\n\n for (let col = size - 1; col > 0; col -= 2) {\n if (col === 6) col--\n\n while (true) {\n for (let c = 0; c < 2; c++) {\n if (!matrix.isReserved(row, col - c)) {\n let dark = false\n\n if (byteIndex < data.length) {\n dark = (((data[byteIndex] >>> bitIndex) & 1) === 1)\n }\n\n matrix.set(row, col - c, dark)\n bitIndex--\n\n if (bitIndex === -1) {\n byteIndex++\n bitIndex = 7\n }\n }\n }\n\n row += inc\n\n if (row < 0 || size <= row) {\n row -= inc\n inc = -inc\n break\n }\n }\n }\n}\n\n/**\n * Create encoded codewords from data input\n *\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @param {ByteData} data Data input\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createData (version, errorCorrectionLevel, segments) {\n // Prepare data buffer\n const buffer = new BitBuffer()\n\n segments.forEach(function (data) {\n // prefix data with mode indicator (4 bits)\n buffer.put(data.mode.bit, 4)\n\n // Prefix data with character count indicator.\n // The character count indicator is a string of bits that represents the\n // number of characters that are being encoded.\n // The character count indicator must be placed after the mode indicator\n // and must be a certain number of bits long, depending on the QR version\n // and data mode\n // @see {@link Mode.getCharCountIndicator}.\n buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version))\n\n // add binary data sequence to buffer\n data.write(buffer)\n })\n\n // Calculate required number of bits\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n // Add a terminator.\n // If the bit string is shorter than the total number of required bits,\n // a terminator of up to four 0s must be added to the right side of the string.\n // If the bit string is more than four bits shorter than the required number of bits,\n // add four 0s to the end.\n if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n buffer.put(0, 4)\n }\n\n // If the bit string is fewer than four bits shorter, add only the number of 0s that\n // are needed to reach the required number of bits.\n\n // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n // pad the string on the right with 0s to make the string's length a multiple of 8.\n while (buffer.getLengthInBits() % 8 !== 0) {\n buffer.putBit(0)\n }\n\n // Add pad bytes if the string is still shorter than the total number of required bits.\n // Extend the buffer to fill the data capacity of the symbol corresponding to\n // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n // and 00010001 (0x11) alternately.\n const remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8\n for (let i = 0; i < remainingByte; i++) {\n buffer.put(i % 2 ? 0x11 : 0xEC, 8)\n }\n\n return createCodewords(buffer, version, errorCorrectionLevel)\n}\n\n/**\n * Encode input data with Reed-Solomon and return codewords with\n * relative error correction bits\n *\n * @param {BitBuffer} bitBuffer Data to encode\n * @param {Number} version QR Code version\n * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n * @return {Uint8Array} Buffer containing encoded codewords\n */\nfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewords = totalCodewords - ecTotalCodewords\n\n // Total number of blocks\n const ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel)\n\n // Calculate how many blocks each group should contain\n const blocksInGroup2 = totalCodewords % ecTotalBlocks\n const blocksInGroup1 = ecTotalBlocks - blocksInGroup2\n\n const totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks)\n\n const dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks)\n const dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1\n\n // Number of EC codewords is the same for both groups\n const ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1\n\n // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n const rs = new ReedSolomonEncoder(ecCount)\n\n let offset = 0\n const dcData = new Array(ecTotalBlocks)\n const ecData = new Array(ecTotalBlocks)\n let maxDataSize = 0\n const buffer = new Uint8Array(bitBuffer.buffer)\n\n // Divide the buffer into the required number of blocks\n for (let b = 0; b < ecTotalBlocks; b++) {\n const dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2\n\n // extract a block of data from buffer\n dcData[b] = buffer.slice(offset, offset + dataSize)\n\n // Calculate EC codewords for this data block\n ecData[b] = rs.encode(dcData[b])\n\n offset += dataSize\n maxDataSize = Math.max(maxDataSize, dataSize)\n }\n\n // Create final data\n // Interleave the data and error correction codewords from each block\n const data = new Uint8Array(totalCodewords)\n let index = 0\n let i, r\n\n // Add data codewords\n for (i = 0; i < maxDataSize; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n if (i < dcData[r].length) {\n data[index++] = dcData[r][i]\n }\n }\n }\n\n // Apped EC codewords\n for (i = 0; i < ecCount; i++) {\n for (r = 0; r < ecTotalBlocks; r++) {\n data[index++] = ecData[r][i]\n }\n }\n\n return data\n}\n\n/**\n * Build QR Code symbol\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n * @param {MaskPattern} maskPattern Mask pattern\n * @return {Object} Object containing symbol data\n */\nfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n let segments\n\n if (Array.isArray(data)) {\n segments = Segments.fromArray(data)\n } else if (typeof data === 'string') {\n let estimatedVersion = version\n\n if (!estimatedVersion) {\n const rawSegments = Segments.rawSplit(data)\n\n // Estimate best version that can contain raw splitted segments\n estimatedVersion = Version.getBestVersionForData(rawSegments, errorCorrectionLevel)\n }\n\n // Build optimized segments\n // If estimated version is undefined, try with the highest version\n segments = Segments.fromString(data, estimatedVersion || 40)\n } else {\n throw new Error('Invalid data')\n }\n\n // Get the min version that can contain data\n const bestVersion = Version.getBestVersionForData(segments, errorCorrectionLevel)\n\n // If no version is found, data cannot be stored\n if (!bestVersion) {\n throw new Error('The amount of data is too big to be stored in a QR Code')\n }\n\n // If not specified, use min version as default\n if (!version) {\n version = bestVersion\n\n // Check if the specified version can contain the data\n } else if (version < bestVersion) {\n throw new Error('\\n' +\n 'The chosen QR Code version cannot contain this amount of data.\\n' +\n 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n )\n }\n\n const dataBits = createData(version, errorCorrectionLevel, segments)\n\n // Allocate matrix buffer\n const moduleCount = Utils.getSymbolSize(version)\n const modules = new BitMatrix(moduleCount)\n\n // Add function modules\n setupFinderPattern(modules, version)\n setupTimingPattern(modules)\n setupAlignmentPattern(modules, version)\n\n // Add temporary dummy bits for format info just to set them as reserved.\n // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n // since the masking operation must be performed only on the encoding region.\n // These blocks will be replaced with correct values later in code.\n setupFormatInfo(modules, errorCorrectionLevel, 0)\n\n if (version >= 7) {\n setupVersionInfo(modules, version)\n }\n\n // Add data codewords\n setupData(modules, dataBits)\n\n if (isNaN(maskPattern)) {\n // Find best mask pattern\n maskPattern = MaskPattern.getBestMask(modules,\n setupFormatInfo.bind(null, modules, errorCorrectionLevel))\n }\n\n // Apply mask pattern\n MaskPattern.applyMask(maskPattern, modules)\n\n // Replace format info bits with correct values\n setupFormatInfo(modules, errorCorrectionLevel, maskPattern)\n\n return {\n modules: modules,\n version: version,\n errorCorrectionLevel: errorCorrectionLevel,\n maskPattern: maskPattern,\n segments: segments\n }\n}\n\n/**\n * QR Code\n *\n * @param {String | Array} data Input data\n * @param {Object} options Optional configurations\n * @param {Number} options.version QR Code version\n * @param {String} options.errorCorrectionLevel Error correction level\n * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n */\nexports.create = function create (data, options) {\n if (typeof data === 'undefined' || data === '') {\n throw new Error('No input text')\n }\n\n let errorCorrectionLevel = ECLevel.M\n let version\n let mask\n\n if (typeof options !== 'undefined') {\n // Use higher error correction level as default\n errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M)\n version = Version.from(options.version)\n mask = MaskPattern.from(options.maskPattern)\n\n if (options.toSJISFunc) {\n Utils.setToSJISFunction(options.toSJISFunc)\n }\n }\n\n return createSymbol(data, version, errorCorrectionLevel, mask)\n}\n","const Polynomial = require('./polynomial')\n\nfunction ReedSolomonEncoder (degree) {\n this.genPoly = undefined\n this.degree = degree\n\n if (this.degree) this.initialize(this.degree)\n}\n\n/**\n * Initialize the encoder.\n * The input param should correspond to the number of error correction codewords.\n *\n * @param {Number} degree\n */\nReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n // create an irreducible generator polynomial\n this.degree = degree\n this.genPoly = Polynomial.generateECPolynomial(this.degree)\n}\n\n/**\n * Encodes a chunk of data\n *\n * @param {Uint8Array} data Buffer containing input data\n * @return {Uint8Array} Buffer containing encoded data\n */\nReedSolomonEncoder.prototype.encode = function encode (data) {\n if (!this.genPoly) {\n throw new Error('Encoder not initialized')\n }\n\n // Calculate EC for this data block\n // extends data size to data+genPoly size\n const paddedData = new Uint8Array(data.length + this.degree)\n paddedData.set(data)\n\n // The error correction codewords are the remainder after dividing the data codewords\n // by a generator polynomial\n const remainder = Polynomial.mod(paddedData, this.genPoly)\n\n // return EC data blocks (last n byte, where n is the degree of genPoly)\n // If coefficients number in remainder are less than genPoly degree,\n // pad with 0s to the left to reach the needed number of coefficients\n const start = this.degree - remainder.length\n if (start > 0) {\n const buff = new Uint8Array(this.degree)\n buff.set(remainder, start)\n\n return buff\n }\n\n return remainder\n}\n\nmodule.exports = ReedSolomonEncoder\n","const numeric = '[0-9]+'\nconst alphanumeric = '[A-Z $%*+\\\\-./:]+'\nlet kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'\nkanji = kanji.replace(/u/g, '\\\\u')\n\nconst byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+'\n\nexports.KANJI = new RegExp(kanji, 'g')\nexports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g')\nexports.BYTE = new RegExp(byte, 'g')\nexports.NUMERIC = new RegExp(numeric, 'g')\nexports.ALPHANUMERIC = new RegExp(alphanumeric, 'g')\n\nconst TEST_KANJI = new RegExp('^' + kanji + '$')\nconst TEST_NUMERIC = new RegExp('^' + numeric + '$')\nconst TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$')\n\nexports.testKanji = function testKanji (str) {\n return TEST_KANJI.test(str)\n}\n\nexports.testNumeric = function testNumeric (str) {\n return TEST_NUMERIC.test(str)\n}\n\nexports.testAlphanumeric = function testAlphanumeric (str) {\n return TEST_ALPHANUMERIC.test(str)\n}\n","const Mode = require('./mode')\nconst NumericData = require('./numeric-data')\nconst AlphanumericData = require('./alphanumeric-data')\nconst ByteData = require('./byte-data')\nconst KanjiData = require('./kanji-data')\nconst Regex = require('./regex')\nconst Utils = require('./utils')\nconst dijkstra = require('dijkstrajs')\n\n/**\n * Returns UTF8 byte length\n *\n * @param {String} str Input string\n * @return {Number} Number of byte\n */\nfunction getStringByteLength (str) {\n return unescape(encodeURIComponent(str)).length\n}\n\n/**\n * Get a list of segments of the specified mode\n * from a string\n *\n * @param {Mode} mode Segment mode\n * @param {String} str String to process\n * @return {Array} Array of object with segments data\n */\nfunction getSegments (regex, mode, str) {\n const segments = []\n let result\n\n while ((result = regex.exec(str)) !== null) {\n segments.push({\n data: result[0],\n index: result.index,\n mode: mode,\n length: result[0].length\n })\n }\n\n return segments\n}\n\n/**\n * Extracts a series of segments with the appropriate\n * modes from a string\n *\n * @param {String} dataStr Input string\n * @return {Array} Array of object with segments data\n */\nfunction getSegmentsFromString (dataStr) {\n const numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr)\n const alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr)\n let byteSegs\n let kanjiSegs\n\n if (Utils.isKanjiModeEnabled()) {\n byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr)\n kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr)\n } else {\n byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr)\n kanjiSegs = []\n }\n\n const segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs)\n\n return segs\n .sort(function (s1, s2) {\n return s1.index - s2.index\n })\n .map(function (obj) {\n return {\n data: obj.data,\n mode: obj.mode,\n length: obj.length\n }\n })\n}\n\n/**\n * Returns how many bits are needed to encode a string of\n * specified length with the specified mode\n *\n * @param {Number} length String length\n * @param {Mode} mode Segment mode\n * @return {Number} Bit length\n */\nfunction getSegmentBitsLength (length, mode) {\n switch (mode) {\n case Mode.NUMERIC:\n return NumericData.getBitsLength(length)\n case Mode.ALPHANUMERIC:\n return AlphanumericData.getBitsLength(length)\n case Mode.KANJI:\n return KanjiData.getBitsLength(length)\n case Mode.BYTE:\n return ByteData.getBitsLength(length)\n }\n}\n\n/**\n * Merges adjacent segments which have the same mode\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction mergeSegments (segs) {\n return segs.reduce(function (acc, curr) {\n const prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null\n if (prevSeg && prevSeg.mode === curr.mode) {\n acc[acc.length - 1].data += curr.data\n return acc\n }\n\n acc.push(curr)\n return acc\n }, [])\n}\n\n/**\n * Generates a list of all possible nodes combination which\n * will be used to build a segments graph.\n *\n * Nodes are divided by groups. Each group will contain a list of all the modes\n * in which is possible to encode the given text.\n *\n * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n * The group for '12345' will contain then 3 objects, one for each\n * possible encoding mode.\n *\n * Each node represents a possible segment.\n *\n * @param {Array} segs Array of object with segments data\n * @return {Array} Array of object with segments data\n */\nfunction buildNodes (segs) {\n const nodes = []\n for (let i = 0; i < segs.length; i++) {\n const seg = segs[i]\n\n switch (seg.mode) {\n case Mode.NUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.ALPHANUMERIC:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: seg.length }\n ])\n break\n case Mode.KANJI:\n nodes.push([seg,\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n break\n case Mode.BYTE:\n nodes.push([\n { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n ])\n }\n }\n\n return nodes\n}\n\n/**\n * Builds a graph from a list of nodes.\n * All segments in each node group will be connected with all the segments of\n * the next group and so on.\n *\n * At each connection will be assigned a weight depending on the\n * segment's byte length.\n *\n * @param {Array} nodes Array of object with segments data\n * @param {Number} version QR Code version\n * @return {Object} Graph of all possible segments\n */\nfunction buildGraph (nodes, version) {\n const table = {}\n const graph = { start: {} }\n let prevNodeIds = ['start']\n\n for (let i = 0; i < nodes.length; i++) {\n const nodeGroup = nodes[i]\n const currentNodeIds = []\n\n for (let j = 0; j < nodeGroup.length; j++) {\n const node = nodeGroup[j]\n const key = '' + i + j\n\n currentNodeIds.push(key)\n table[key] = { node: node, lastCount: 0 }\n graph[key] = {}\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n const prevNodeId = prevNodeIds[n]\n\n if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n graph[prevNodeId][key] =\n getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n getSegmentBitsLength(table[prevNodeId].lastCount, node.mode)\n\n table[prevNodeId].lastCount += node.length\n } else {\n if (table[prevNodeId]) table[prevNodeId].lastCount = node.length\n\n graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n 4 + Mode.getCharCountIndicator(node.mode, version) // switch cost\n }\n }\n }\n\n prevNodeIds = currentNodeIds\n }\n\n for (let n = 0; n < prevNodeIds.length; n++) {\n graph[prevNodeIds[n]].end = 0\n }\n\n return { map: graph, table: table }\n}\n\n/**\n * Builds a segment from a specified data and mode.\n * If a mode is not specified, the more suitable will be used.\n *\n * @param {String} data Input data\n * @param {Mode | String} modesHint Data mode\n * @return {Segment} Segment\n */\nfunction buildSingleSegment (data, modesHint) {\n let mode\n const bestMode = Mode.getBestModeForData(data)\n\n mode = Mode.from(modesHint, bestMode)\n\n // Make sure data can be encoded\n if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n throw new Error('\"' + data + '\"' +\n ' cannot be encoded with mode ' + Mode.toString(mode) +\n '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n }\n\n // Use Mode.BYTE if Kanji support is disabled\n if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n mode = Mode.BYTE\n }\n\n switch (mode) {\n case Mode.NUMERIC:\n return new NumericData(data)\n\n case Mode.ALPHANUMERIC:\n return new AlphanumericData(data)\n\n case Mode.KANJI:\n return new KanjiData(data)\n\n case Mode.BYTE:\n return new ByteData(data)\n }\n}\n\n/**\n * Builds a list of segments from an array.\n * Array can contain Strings or Objects with segment's info.\n *\n * For each item which is a string, will be generated a segment with the given\n * string and the more appropriate encoding mode.\n *\n * For each item which is an object, will be generated a segment with the given\n * data and mode.\n * Objects must contain at least the property \"data\".\n * If property \"mode\" is not present, the more suitable mode will be used.\n *\n * @param {Array} array Array of objects with segments data\n * @return {Array} Array of Segments\n */\nexports.fromArray = function fromArray (array) {\n return array.reduce(function (acc, seg) {\n if (typeof seg === 'string') {\n acc.push(buildSingleSegment(seg, null))\n } else if (seg.data) {\n acc.push(buildSingleSegment(seg.data, seg.mode))\n }\n\n return acc\n }, [])\n}\n\n/**\n * Builds an optimized sequence of segments from a string,\n * which will produce the shortest possible bitstream.\n *\n * @param {String} data Input string\n * @param {Number} version QR Code version\n * @return {Array} Array of segments\n */\nexports.fromString = function fromString (data, version) {\n const segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\n const nodes = buildNodes(segs)\n const graph = buildGraph(nodes, version)\n const path = dijkstra.find_path(graph.map, 'start', 'end')\n\n const optimizedSegs = []\n for (let i = 1; i < path.length - 1; i++) {\n optimizedSegs.push(graph.table[path[i]].node)\n }\n\n return exports.fromArray(mergeSegments(optimizedSegs))\n}\n\n/**\n * Splits a string in various segments with the modes which\n * best represent their content.\n * The produced segments are far from being optimized.\n * The output of this function is only used to estimate a QR Code version\n * which may contain the data.\n *\n * @param {string} data Input string\n * @return {Array} Array of segments\n */\nexports.rawSplit = function rawSplit (data) {\n return exports.fromArray(\n getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n )\n}\n","let toSJISFunction\nconst CODEWORDS_COUNT = [\n 0, // Not used\n 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n]\n\n/**\n * Returns the QR Code size for the specified version\n *\n * @param {Number} version QR Code version\n * @return {Number} size of QR code\n */\nexports.getSymbolSize = function getSymbolSize (version) {\n if (!version) throw new Error('\"version\" cannot be null or undefined')\n if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n return version * 4 + 17\n}\n\n/**\n * Returns the total number of codewords used to store data and EC information.\n *\n * @param {Number} version QR Code version\n * @return {Number} Data length in bits\n */\nexports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n return CODEWORDS_COUNT[version]\n}\n\n/**\n * Encode data with Bose-Chaudhuri-Hocquenghem\n *\n * @param {Number} data Value to encode\n * @return {Number} Encoded value\n */\nexports.getBCHDigit = function (data) {\n let digit = 0\n\n while (data !== 0) {\n digit++\n data >>>= 1\n }\n\n return digit\n}\n\nexports.setToSJISFunction = function setToSJISFunction (f) {\n if (typeof f !== 'function') {\n throw new Error('\"toSJISFunc\" is not a valid function.')\n }\n\n toSJISFunction = f\n}\n\nexports.isKanjiModeEnabled = function () {\n return typeof toSJISFunction !== 'undefined'\n}\n\nexports.toSJIS = function toSJIS (kanji) {\n return toSJISFunction(kanji)\n}\n","/**\n * Check if QR Code version is valid\n *\n * @param {Number} version QR Code version\n * @return {Boolean} true if valid version, false otherwise\n */\nexports.isValid = function isValid (version) {\n return !isNaN(version) && version >= 1 && version <= 40\n}\n","const Utils = require('./utils')\nconst ECCode = require('./error-correction-code')\nconst ECLevel = require('./error-correction-level')\nconst Mode = require('./mode')\nconst VersionCheck = require('./version-check')\n\n// Generator polynomial used to encode version information\nconst G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0)\nconst G18_BCH = Utils.getBCHDigit(G18)\n\nfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\nfunction getReservedBitsCount (mode, version) {\n // Character count indicator + mode indicator bits\n return Mode.getCharCountIndicator(mode, version) + 4\n}\n\nfunction getTotalBitsFromDataArray (segments, version) {\n let totalBits = 0\n\n segments.forEach(function (data) {\n const reservedBits = getReservedBitsCount(data.mode, version)\n totalBits += reservedBits + data.getBitsLength()\n })\n\n return totalBits\n}\n\nfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n for (let currentVersion = 1; currentVersion <= 40; currentVersion++) {\n const length = getTotalBitsFromDataArray(segments, currentVersion)\n if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n return currentVersion\n }\n }\n\n return undefined\n}\n\n/**\n * Returns version number from a value.\n * If value is not a valid version, returns defaultValue\n *\n * @param {Number|String} value QR Code version\n * @param {Number} defaultValue Fallback value\n * @return {Number} QR Code version number\n */\nexports.from = function from (value, defaultValue) {\n if (VersionCheck.isValid(value)) {\n return parseInt(value, 10)\n }\n\n return defaultValue\n}\n\n/**\n * Returns how much data can be stored with the specified QR code version\n * and error correction level\n *\n * @param {Number} version QR Code version (1-40)\n * @param {Number} errorCorrectionLevel Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} Quantity of storable data\n */\nexports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n if (!VersionCheck.isValid(version)) {\n throw new Error('Invalid QR Code version')\n }\n\n // Use Byte mode as default\n if (typeof mode === 'undefined') mode = Mode.BYTE\n\n // Total codewords for this QR code version (Data + Error correction)\n const totalCodewords = Utils.getSymbolTotalCodewords(version)\n\n // Total number of error correction codewords\n const ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel)\n\n // Total number of data codewords\n const dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8\n\n if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n const usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version)\n\n // Return max number of storable codewords\n switch (mode) {\n case Mode.NUMERIC:\n return Math.floor((usableBits / 10) * 3)\n\n case Mode.ALPHANUMERIC:\n return Math.floor((usableBits / 11) * 2)\n\n case Mode.KANJI:\n return Math.floor(usableBits / 13)\n\n case Mode.BYTE:\n default:\n return Math.floor(usableBits / 8)\n }\n}\n\n/**\n * Returns the minimum version needed to contain the amount of data\n *\n * @param {Segment} data Segment of data\n * @param {Number} [errorCorrectionLevel=H] Error correction level\n * @param {Mode} mode Data mode\n * @return {Number} QR Code version\n */\nexports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n let seg\n\n const ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M)\n\n if (Array.isArray(data)) {\n if (data.length > 1) {\n return getBestVersionForMixedData(data, ecl)\n }\n\n if (data.length === 0) {\n return 1\n }\n\n seg = data[0]\n } else {\n seg = data\n }\n\n return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n}\n\n/**\n * Returns version information with relative error correction bits\n *\n * The version information is included in QR Code symbols of version 7 or larger.\n * It consists of an 18-bit sequence containing 6 data bits,\n * with 12 error correction bits calculated using the (18, 6) Golay code.\n *\n * @param {Number} version QR Code version\n * @return {Number} Encoded version info bits\n */\nexports.getEncodedBits = function getEncodedBits (version) {\n if (!VersionCheck.isValid(version) || version < 7) {\n throw new Error('Invalid QR Code version')\n }\n\n let d = version << 12\n\n while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH))\n }\n\n return (version << 12) | d\n}\n","const Utils = require('./utils')\n\nfunction clearCanvas (ctx, canvas, size) {\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n\n if (!canvas.style) canvas.style = {}\n canvas.height = size\n canvas.width = size\n canvas.style.height = size + 'px'\n canvas.style.width = size + 'px'\n}\n\nfunction getCanvasElement () {\n try {\n return document.createElement('canvas')\n } catch (e) {\n throw new Error('You need to specify a canvas element')\n }\n}\n\nexports.render = function render (qrData, canvas, options) {\n let opts = options\n let canvasEl = canvas\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!canvas) {\n canvasEl = getCanvasElement()\n }\n\n opts = Utils.getOptions(opts)\n const size = Utils.getImageWidth(qrData.modules.size, opts)\n\n const ctx = canvasEl.getContext('2d')\n const image = ctx.createImageData(size, size)\n Utils.qrToImageData(image.data, qrData, opts)\n\n clearCanvas(ctx, canvasEl, size)\n ctx.putImageData(image, 0, 0)\n\n return canvasEl\n}\n\nexports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n let opts = options\n\n if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n opts = canvas\n canvas = undefined\n }\n\n if (!opts) opts = {}\n\n const canvasEl = exports.render(qrData, canvas, opts)\n\n const type = opts.type || 'image/png'\n const rendererOpts = opts.rendererOpts || {}\n\n return canvasEl.toDataURL(type, rendererOpts.quality)\n}\n","const Utils = require('./utils')\n\nfunction getColorAttrib (color, attrib) {\n const alpha = color.a / 255\n const str = attrib + '=\"' + color.hex + '\"'\n\n return alpha < 1\n ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n : str\n}\n\nfunction svgCmd (cmd, x, y) {\n let str = cmd + x\n if (typeof y !== 'undefined') str += ' ' + y\n\n return str\n}\n\nfunction qrToPath (data, size, margin) {\n let path = ''\n let moveBy = 0\n let newRow = false\n let lineLength = 0\n\n for (let i = 0; i < data.length; i++) {\n const col = Math.floor(i % size)\n const row = Math.floor(i / size)\n\n if (!col && !newRow) newRow = true\n\n if (data[i]) {\n lineLength++\n\n if (!(i > 0 && col > 0 && data[i - 1])) {\n path += newRow\n ? svgCmd('M', col + margin, 0.5 + row + margin)\n : svgCmd('m', moveBy, 0)\n\n moveBy = 0\n newRow = false\n }\n\n if (!(col + 1 < size && data[i + 1])) {\n path += svgCmd('h', lineLength)\n lineLength = 0\n }\n } else {\n moveBy++\n }\n }\n\n return path\n}\n\nexports.render = function render (qrData, options, cb) {\n const opts = Utils.getOptions(options)\n const size = qrData.modules.size\n const data = qrData.modules.data\n const qrcodesize = size + opts.margin * 2\n\n const bg = !opts.color.light.a\n ? ''\n : '<path ' + getColorAttrib(opts.color.light, 'fill') +\n ' d=\"M0 0h' + qrcodesize + 'v' + qrcodesize + 'H0z\"/>'\n\n const path =\n '<path ' + getColorAttrib(opts.color.dark, 'stroke') +\n ' d=\"' + qrToPath(data, size, opts.margin) + '\"/>'\n\n const viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"'\n\n const width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" '\n\n const svgTag = '<svg xmlns=\"http://www.w3.org/2000/svg\" ' + width + viewBox + ' shape-rendering=\"crispEdges\">' + bg + path + '</svg>\\n'\n\n if (typeof cb === 'function') {\n cb(null, svgTag)\n }\n\n return svgTag\n}\n","function hex2rgba (hex) {\n if (typeof hex === 'number') {\n hex = hex.toString()\n }\n\n if (typeof hex !== 'string') {\n throw new Error('Color should be defined as hex string')\n }\n\n let hexCode = hex.slice().replace('#', '').split('')\n if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n throw new Error('Invalid hex color: ' + hex)\n }\n\n // Convert from short to long form (fff -> ffffff)\n if (hexCode.length === 3 || hexCode.length === 4) {\n hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n return [c, c]\n }))\n }\n\n // Add default alpha value\n if (hexCode.length === 6) hexCode.push('F', 'F')\n\n const hexValue = parseInt(hexCode.join(''), 16)\n\n return {\n r: (hexValue >> 24) & 255,\n g: (hexValue >> 16) & 255,\n b: (hexValue >> 8) & 255,\n a: hexValue & 255,\n hex: '#' + hexCode.slice(0, 6).join('')\n }\n}\n\nexports.getOptions = function getOptions (options) {\n if (!options) options = {}\n if (!options.color) options.color = {}\n\n const margin = typeof options.margin === 'undefined' ||\n options.margin === null ||\n options.margin < 0\n ? 4\n : options.margin\n\n const width = options.width && options.width >= 21 ? options.width : undefined\n const scale = options.scale || 4\n\n return {\n width: width,\n scale: width ? 4 : scale,\n margin: margin,\n color: {\n dark: hex2rgba(options.color.dark || '#000000ff'),\n light: hex2rgba(options.color.light || '#ffffffff')\n },\n type: options.type,\n rendererOpts: options.rendererOpts || {}\n }\n}\n\nexports.getScale = function getScale (qrSize, opts) {\n return opts.width && opts.width >= qrSize + opts.margin * 2\n ? opts.width / (qrSize + opts.margin * 2)\n : opts.scale\n}\n\nexports.getImageWidth = function getImageWidth (qrSize, opts) {\n const scale = exports.getScale(qrSize, opts)\n return Math.floor((qrSize + opts.margin * 2) * scale)\n}\n\nexports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n const size = qr.modules.size\n const data = qr.modules.data\n const scale = exports.getScale(size, opts)\n const symbolSize = Math.floor((size + opts.margin * 2) * scale)\n const scaledMargin = opts.margin * scale\n const palette = [opts.color.light, opts.color.dark]\n\n for (let i = 0; i < symbolSize; i++) {\n for (let j = 0; j < symbolSize; j++) {\n let posDst = (i * symbolSize + j) * 4\n let pxColor = opts.color.light\n\n if (i >= scaledMargin && j >= scaledMargin &&\n i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n const iSrc = Math.floor((i - scaledMargin) / scale)\n const jSrc = Math.floor((j - scaledMargin) / scale)\n pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]\n }\n\n imgData[posDst++] = pxColor.r\n imgData[posDst++] = pxColor.g\n imgData[posDst++] = pxColor.b\n imgData[posDst] = pxColor.a\n }\n }\n}\n","import warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nexport var HOOK_MARK = 'RC_FORM_INTERNAL_HOOKS';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nvar warningFunc = function warningFunc() {\n warning(false, 'Can not find FormContext. Please make sure you wrap Field under Form.');\n};\nvar Context = /*#__PURE__*/React.createContext({\n getFieldValue: warningFunc,\n getFieldsValue: warningFunc,\n getFieldError: warningFunc,\n getFieldWarning: warningFunc,\n getFieldsError: warningFunc,\n isFieldsTouched: warningFunc,\n isFieldTouched: warningFunc,\n isFieldValidating: warningFunc,\n isFieldsValidating: warningFunc,\n resetFields: warningFunc,\n setFields: warningFunc,\n setFieldValue: warningFunc,\n setFieldsValue: warningFunc,\n validateFields: warningFunc,\n submit: warningFunc,\n getInternalHooks: function getInternalHooks() {\n warningFunc();\n return {\n dispatch: warningFunc,\n initEntityValue: warningFunc,\n registerField: warningFunc,\n useSubscribe: warningFunc,\n setInitialValues: warningFunc,\n destroyForm: warningFunc,\n setCallbacks: warningFunc,\n registerWatch: warningFunc,\n getFields: warningFunc,\n setValidateMessages: warningFunc,\n setPreserve: warningFunc,\n getInitialValue: warningFunc\n };\n }\n});\nexport default Context;","export function toArray(value) {\n if (value === undefined || value === null) {\n return [];\n }\n return Array.isArray(value) ? value : [value];\n}","/* eslint no-console:0 */\n\nimport {\n ValidateError,\n ValidateOption,\n RuleValuePackage,\n InternalRuleItem,\n SyncErrorType,\n RuleType,\n Value,\n Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n typeof process !== 'undefined' &&\n process.env &&\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n) {\n warning = (type, errors) => {\n if (\n typeof console !== 'undefined' &&\n console.warn &&\n typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n ) {\n if (errors.every(e => typeof e === 'string')) {\n console.warn(type, errors);\n }\n }\n };\n}\n\nexport function convertFieldsError(\n errors: ValidateError[],\n): Record<string, ValidateError[]> {\n if (!errors || !errors.length) return null;\n const fields = {};\n errors.forEach(error => {\n const field = error.field;\n fields[field] = fields[field] || [];\n fields[field].push(error);\n });\n return fields;\n}\n\nexport function format(\n template: ((...args: any[]) => string) | string,\n ...args: any[]\n): string {\n let i = 0;\n const len = args.length;\n if (typeof template === 'function') {\n return template.apply(null, args);\n }\n if (typeof template === 'string') {\n let str = template.replace(formatRegExp, x => {\n if (x === '%%') {\n return '%';\n }\n if (i >= len) {\n return x;\n }\n switch (x) {\n case '%s':\n return String(args[i++]);\n case '%d':\n return (Number(args[i++]) as unknown) as string;\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n break;\n default:\n return x;\n }\n });\n return str;\n }\n return template;\n}\n\nfunction isNativeStringType(type: string) {\n return (\n type === 'string' ||\n type === 'url' ||\n type === 'hex' ||\n type === 'email' ||\n type === 'date' ||\n type === 'pattern'\n );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n if (value === undefined || value === null) {\n return true;\n }\n if (type === 'array' && Array.isArray(value) && !value.length) {\n return true;\n }\n if (isNativeStringType(type) && typeof value === 'string' && !value) {\n return true;\n }\n return false;\n}\n\nexport function isEmptyObject(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n const results: ValidateError[] = [];\n let total = 0;\n const arrLength = arr.length;\n\n function count(errors: ValidateError[]) {\n results.push(...(errors || []));\n total++;\n if (total === arrLength) {\n callback(results);\n }\n }\n\n arr.forEach(a => {\n func(a, count);\n });\n}\n\nfunction asyncSerialArray(\n arr: RuleValuePackage[],\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n) {\n let index = 0;\n const arrLength = arr.length;\n\n function next(errors: ValidateError[]) {\n if (errors && errors.length) {\n callback(errors);\n return;\n }\n const original = index;\n index = index + 1;\n if (original < arrLength) {\n func(arr[original], next);\n } else {\n callback([]);\n }\n }\n\n next([]);\n}\n\nfunction flattenObjArr(objArr: Record<string, RuleValuePackage[]>) {\n const ret: RuleValuePackage[] = [];\n Object.keys(objArr).forEach(k => {\n ret.push(...(objArr[k] || []));\n });\n return ret;\n}\n\nexport class AsyncValidationError extends Error {\n errors: ValidateError[];\n fields: Record<string, ValidateError[]>;\n\n constructor(\n errors: ValidateError[],\n fields: Record<string, ValidateError[]>,\n ) {\n super('Async Validation Error');\n this.errors = errors;\n this.fields = fields;\n }\n}\n\ntype ValidateFunc = (\n data: RuleValuePackage,\n doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n objArr: Record<string, RuleValuePackage[]>,\n option: ValidateOption,\n func: ValidateFunc,\n callback: (errors: ValidateError[]) => void,\n source: Values,\n): Promise<Values> {\n if (option.first) {\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n callback(errors);\n return errors.length\n ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n : resolve(source);\n };\n const flattenArr = flattenObjArr(objArr);\n asyncSerialArray(flattenArr, func, next);\n });\n pending.catch(e => e);\n return pending;\n }\n const firstFields =\n option.firstFields === true\n ? Object.keys(objArr)\n : option.firstFields || [];\n\n const objArrKeys = Object.keys(objArr);\n const objArrLength = objArrKeys.length;\n let total = 0;\n const results: ValidateError[] = [];\n const pending = new Promise<Values>((resolve, reject) => {\n const next = (errors: ValidateError[]) => {\n results.push.apply(results, errors);\n total++;\n if (total === objArrLength) {\n callback(results);\n return results.length\n ? reject(\n new AsyncValidationError(results, convertFieldsError(results)),\n )\n : resolve(source);\n }\n };\n if (!objArrKeys.length) {\n callback(results);\n resolve(source);\n }\n objArrKeys.forEach(key => {\n const arr = objArr[key];\n if (firstFields.indexOf(key) !== -1) {\n asyncSerialArray(arr, func, next);\n } else {\n asyncParallelArray(arr, func, next);\n }\n });\n });\n pending.catch(e => e);\n return pending;\n}\n\nfunction isErrorObj(\n obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n let v = value;\n for (let i = 0; i < path.length; i++) {\n if (v == undefined) {\n return v;\n }\n v = v[path[i]];\n }\n return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n return (oe: ValidateError | (() => string) | string): ValidateError => {\n let fieldValue;\n if (rule.fullFields) {\n fieldValue = getValue(source, rule.fullFields);\n } else {\n fieldValue = source[(oe as any).field || rule.fullField];\n }\n if (isErrorObj(oe)) {\n oe.field = oe.field || rule.fullField;\n oe.fieldValue = fieldValue;\n return oe;\n }\n return {\n message: typeof oe === 'function' ? oe() : oe,\n fieldValue,\n field: ((oe as unknown) as ValidateError).field || rule.fullField,\n };\n };\n}\n\nexport function deepMerge<T extends object>(target: T, source: Partial<T>): T {\n if (source) {\n for (const s in source) {\n if (source.hasOwnProperty(s)) {\n const value = source[s];\n if (typeof value === 'object' && typeof target[s] === 'object') {\n target[s] = {\n ...target[s],\n ...value,\n };\n } else {\n target[s] = value;\n }\n }\n }\n }\n return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n if (\n rule.required &&\n (!source.hasOwnProperty(rule.field) ||\n isEmptyValue(value, type || rule.type))\n ) {\n errors.push(format(options.messages.required, rule.fullField));\n }\n};\n\nexport default required;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n if (urlReg) {\n return urlReg;\n }\n\n const word = '[a-fA-F\\\\d:]';\n const b = options =>\n options && options.includeBoundaries\n ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n : '';\n\n const v4 =\n '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n const v6seg = '[a-fA-F\\\\d]{1,4}';\n const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)| // 1:2:3:4:5:6:7:: 1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)| // 1:2:3:4:5:6:: 1:2:3:4:5:6::8 1:2:3:4:5:6::8 1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)| // 1:2:3:4:5:: 1:2:3:4:5::7:8 1:2:3:4:5::8 1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4:: 1:2:3:4::6:7:8 1:2:3:4::8 1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3:: 1:2:3::5:6:7:8 1:2:3::8 1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2:: 1:2::4:5:6:7:8 1:2::8 1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1:: 1::3:4:5:6:7:8 1::8 1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:)) // ::2:3:4:5:6:7:8 ::2:3:4:5:6:7:8 ::8 ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})? // %eth0 %1\n`\n .replace(/\\s*\\/\\/.*$/gm, '')\n .replace(/\\n/g, '')\n .trim();\n\n // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n const v4exact = new RegExp(`^${v4}$`);\n const v6exact = new RegExp(`^${v6}$`);\n\n const ip = options =>\n options && options.exact\n ? v46Exact\n : new RegExp(\n `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n options,\n )})`,\n 'g',\n );\n\n ip.v4 = (options?) =>\n options && options.exact\n ? v4exact\n : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n ip.v6 = (options?) =>\n options && options.exact\n ? v6exact\n : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n const protocol = `(?:(?:[a-z]+:)?//)`;\n const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n const ipv4 = ip.v4().source;\n const ipv6 = ip.v6().source;\n const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n const domain =\n '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n const port = '(?::\\\\d{2,5})?';\n const path = '(?:[/?#][^\\\\s\"]*)?';\n const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n // http://emailregex.com/\n email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n // url: new RegExp(\n // '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n // 'i',\n // ),\n hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n integer(value: Value) {\n return types.number(value) && parseInt(value, 10) === value;\n },\n float(value: Value) {\n return types.number(value) && !types.integer(value);\n },\n array(value: Value) {\n return Array.isArray(value);\n },\n regexp(value: Value) {\n if (value instanceof RegExp) {\n return true;\n }\n try {\n return !!new RegExp(value);\n } catch (e) {\n return false;\n }\n },\n date(value: Value) {\n return (\n typeof value.getTime === 'function' &&\n typeof value.getMonth === 'function' &&\n typeof value.getYear === 'function' &&\n !isNaN(value.getTime())\n );\n },\n number(value: Value) {\n if (isNaN(value)) {\n return false;\n }\n return typeof value === 'number';\n },\n object(value: Value) {\n return typeof value === 'object' && !types.array(value);\n },\n method(value: Value) {\n return typeof value === 'function';\n },\n email(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 320 &&\n !!value.match(pattern.email)\n );\n },\n url(value: Value) {\n return (\n typeof value === 'string' &&\n value.length <= 2048 &&\n !!value.match(getUrlRegex())\n );\n },\n hex(value: Value) {\n return typeof value === 'string' && !!value.match(pattern.hex);\n },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.required && value === undefined) {\n required(rule, value, source, errors, options);\n return;\n }\n const custom = [\n 'integer',\n 'float',\n 'array',\n 'regexp',\n 'object',\n 'method',\n 'email',\n 'number',\n 'date',\n 'url',\n 'hex',\n ];\n const ruleType = rule.type;\n if (custom.indexOf(ruleType) > -1) {\n if (!types[ruleType](value)) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n // straight typeof check\n } else if (ruleType && typeof value !== rule.type) {\n errors.push(\n format(options.messages.types[ruleType], rule.fullField, rule.type),\n );\n }\n};\n\nexport default type;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n required,\n whitespace,\n type,\n range,\n enum: enumRule,\n pattern,\n};\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n * Rule for validating whitespace.\n *\n * @param rule The validation rule.\n * @param value The value of the field on the source object.\n * @param source The source object being validated.\n * @param errors An array of errors that this rule may add\n * validation errors to.\n * @param options The validation options.\n * @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n if (/^\\s+$/.test(value) || value === '') {\n errors.push(format(options.messages.whitespace, rule.fullField));\n }\n};\n\nexport default whitespace;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n const len = typeof rule.len === 'number';\n const min = typeof rule.min === 'number';\n const max = typeof rule.max === 'number';\n // 正则匹配码点范围从U+010000一直到U+10FFFF的文字(补充平面Supplementary Plane)\n const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n let val = value;\n let key = null;\n const num = typeof value === 'number';\n const str = typeof value === 'string';\n const arr = Array.isArray(value);\n if (num) {\n key = 'number';\n } else if (str) {\n key = 'string';\n } else if (arr) {\n key = 'array';\n }\n // if the value is not of a supported type for range validation\n // the validation rule rule should use the\n // type property to also test for a particular type\n if (!key) {\n return false;\n }\n if (arr) {\n val = value.length;\n }\n if (str) {\n // 处理码点大于U+010000的文字length属性不准确的bug,如\"𠮷𠮷𠮷\".lenght !== 3\n val = value.replace(spRegexp, '_').length;\n }\n if (len) {\n if (val !== rule.len) {\n errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n }\n } else if (min && !max && val < rule.min) {\n errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n } else if (max && !min && val > rule.max) {\n errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n } else if (min && max && (val < rule.min || val > rule.max)) {\n errors.push(\n format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n );\n }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n if (rule[ENUM].indexOf(value) === -1) {\n errors.push(\n format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n );\n }\n};\n\nexport default enumerable;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n if (rule.pattern) {\n if (rule.pattern instanceof RegExp) {\n // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n // flag is accidentally set to `true`, which in a validation scenario\n // is not necessary and the result might be misleading\n rule.pattern.lastIndex = 0;\n if (!rule.pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n } else if (typeof rule.pattern === 'string') {\n const _pattern = new RegExp(rule.pattern);\n if (!_pattern.test(value)) {\n errors.push(\n format(\n options.messages.pattern.mismatch,\n rule.fullField,\n value,\n rule.pattern,\n ),\n );\n }\n }\n }\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n const ruleType = rule.type;\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, ruleType) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, ruleType);\n if (!isEmptyValue(value, ruleType)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default type;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n string,\n method,\n number,\n boolean,\n regexp,\n integer,\n float,\n array,\n object,\n enum: enumValidator,\n pattern,\n date,\n url: type,\n hex: type,\n email: type,\n required,\n any,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'string');\n if (!isEmptyValue(value, 'string')) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n rules.pattern(rule, value, source, errors, options);\n if (rule.whitespace === true) {\n rules.whitespace(rule, value, source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (value === '') {\n value = undefined;\n }\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value)) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if ((value === undefined || value === null) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options, 'array');\n if (value !== undefined && value !== null) {\n rules.type(rule, value, source, errors, options);\n rules.range(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules.type(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n rule,\n value,\n callback,\n source,\n options,\n) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (value !== undefined) {\n rules[ENUM](rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value, 'string') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'string')) {\n rules.pattern(rule, value, source, errors, options);\n }\n }\n callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n // console.log('integer rule called %j', rule);\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n // console.log('validate on %s value', value);\n if (validate) {\n if (isEmptyValue(value, 'date') && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n if (!isEmptyValue(value, 'date')) {\n let dateObject;\n\n if (value instanceof Date) {\n dateObject = value;\n } else {\n dateObject = new Date(value);\n }\n\n rules.type(rule, dateObject, source, errors, options);\n if (dateObject) {\n rules.range(rule, dateObject.getTime(), source, errors, options);\n }\n }\n }\n callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const type = Array.isArray(value) ? 'array' : typeof value;\n rules.required(rule, value, source, errors, options, type);\n callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n const errors: string[] = [];\n const validate =\n rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n if (validate) {\n if (isEmptyValue(value) && !rule.required) {\n return callback();\n }\n rules.required(rule, value, source, errors, options);\n }\n callback(errors);\n};\n\nexport default any;\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n return {\n default: 'Validation error on field %s',\n required: '%s is required',\n enum: '%s must be one of %s',\n whitespace: '%s cannot be empty',\n date: {\n format: '%s date %s is invalid for format %s',\n parse: '%s date could not be parsed, %s is invalid ',\n invalid: '%s date %s is invalid',\n },\n types: {\n string: '%s is not a %s',\n method: '%s is not a %s (function)',\n array: '%s is not an %s',\n object: '%s is not an %s',\n number: '%s is not a %s',\n date: '%s is not a %s',\n boolean: '%s is not a %s',\n integer: '%s is not an %s',\n float: '%s is not a %s',\n regexp: '%s is not a valid %s',\n email: '%s is not a valid %s',\n url: '%s is not a valid %s',\n hex: '%s is not a valid %s',\n },\n string: {\n len: '%s must be exactly %s characters',\n min: '%s must be at least %s characters',\n max: '%s cannot be longer than %s characters',\n range: '%s must be between %s and %s characters',\n },\n number: {\n len: '%s must equal %s',\n min: '%s cannot be less than %s',\n max: '%s cannot be greater than %s',\n range: '%s must be between %s and %s',\n },\n array: {\n len: '%s must be exactly %s in length',\n min: '%s cannot be less than %s in length',\n max: '%s cannot be greater than %s in length',\n range: '%s must be between %s and %s in length',\n },\n pattern: {\n mismatch: '%s value %s does not match pattern %s',\n },\n clone() {\n const cloned = JSON.parse(JSON.stringify(this));\n cloned.clone = this.clone;\n return cloned;\n },\n };\n}\n\nexport const messages = newMessages();\n","import {\n format,\n complementError,\n asyncMap,\n warning,\n deepMerge,\n convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n InternalRuleItem,\n InternalValidateMessages,\n Rule,\n RuleItem,\n Rules,\n ValidateCallback,\n ValidateMessages,\n ValidateOption,\n Values,\n RuleValuePackage,\n ValidateError,\n ValidateFieldsError,\n SyncErrorType,\n ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n * Encapsulates a validation schema.\n *\n * @param descriptor An object declaring validation rules\n * for this schema.\n */\nclass Schema {\n // ========================= Static =========================\n static register = function register(type: string, validator) {\n if (typeof validator !== 'function') {\n throw new Error(\n 'Cannot register a validator by type, validator is not a function',\n );\n }\n validators[type] = validator;\n };\n\n static warning = warning;\n\n static messages = defaultMessages;\n\n static validators = validators;\n\n // ======================== Instance ========================\n rules: Record<string, RuleItem[]> = null;\n _messages: InternalValidateMessages = defaultMessages;\n\n constructor(descriptor: Rules) {\n this.define(descriptor);\n }\n\n define(rules: Rules) {\n if (!rules) {\n throw new Error('Cannot configure a schema with no rules');\n }\n if (typeof rules !== 'object' || Array.isArray(rules)) {\n throw new Error('Rules must be an object');\n }\n this.rules = {};\n\n Object.keys(rules).forEach(name => {\n const item: Rule = rules[name];\n this.rules[name] = Array.isArray(item) ? item : [item];\n });\n }\n\n messages(messages?: ValidateMessages) {\n if (messages) {\n this._messages = deepMerge(newMessages(), messages);\n }\n return this._messages;\n }\n\n validate(\n source: Values,\n option?: ValidateOption,\n callback?: ValidateCallback,\n ): Promise<Values>;\n validate(source: Values, callback: ValidateCallback): Promise<Values>;\n validate(source: Values): Promise<Values>;\n\n validate(source_: Values, o: any = {}, oc: any = () => {}): Promise<Values> {\n let source: Values = source_;\n let options: ValidateOption = o;\n let callback: ValidateCallback = oc;\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n if (!this.rules || Object.keys(this.rules).length === 0) {\n if (callback) {\n callback(null, source);\n }\n return Promise.resolve(source);\n }\n\n function complete(results: (ValidateError | ValidateError[])[]) {\n let errors: ValidateError[] = [];\n let fields: ValidateFieldsError = {};\n\n function add(e: ValidateError | ValidateError[]) {\n if (Array.isArray(e)) {\n errors = errors.concat(...e);\n } else {\n errors.push(e);\n }\n }\n\n for (let i = 0; i < results.length; i++) {\n add(results[i]);\n }\n if (!errors.length) {\n callback(null, source);\n } else {\n fields = convertFieldsError(errors);\n (callback as (\n errors: ValidateError[],\n fields: ValidateFieldsError,\n ) => void)(errors, fields);\n }\n }\n\n if (options.messages) {\n let messages = this.messages();\n if (messages === defaultMessages) {\n messages = newMessages();\n }\n deepMerge(messages, options.messages);\n options.messages = messages;\n } else {\n options.messages = this.messages();\n }\n\n const series: Record<string, RuleValuePackage[]> = {};\n const keys = options.keys || Object.keys(this.rules);\n keys.forEach(z => {\n const arr = this.rules[z];\n let value = source[z];\n arr.forEach(r => {\n let rule: InternalRuleItem = r;\n if (typeof rule.transform === 'function') {\n if (source === source_) {\n source = { ...source };\n }\n value = source[z] = rule.transform(value);\n }\n if (typeof rule === 'function') {\n rule = {\n validator: rule,\n };\n } else {\n rule = { ...rule };\n }\n\n // Fill validator. Skip if nothing need to validate\n rule.validator = this.getValidationMethod(rule);\n if (!rule.validator) {\n return;\n }\n\n rule.field = z;\n rule.fullField = rule.fullField || z;\n rule.type = this.getType(rule);\n series[z] = series[z] || [];\n series[z].push({\n rule,\n value,\n source,\n field: z,\n });\n });\n });\n const errorFields = {};\n return asyncMap(\n series,\n options,\n (data, doIt) => {\n const rule = data.rule;\n let deep =\n (rule.type === 'object' || rule.type === 'array') &&\n (typeof rule.fields === 'object' ||\n typeof rule.defaultField === 'object');\n deep = deep && (rule.required || (!rule.required && data.value));\n rule.field = data.field;\n\n function addFullField(key: string, schema: RuleItem) {\n return {\n ...schema,\n fullField: `${rule.fullField}.${key}`,\n fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n };\n }\n\n function cb(e: SyncErrorType | SyncErrorType[] = []) {\n let errorList = Array.isArray(e) ? e : [e];\n if (!options.suppressWarning && errorList.length) {\n Schema.warning('async-validator:', errorList);\n }\n if (errorList.length && rule.message !== undefined) {\n errorList = [].concat(rule.message);\n }\n\n // Fill error info\n let filledErrors = errorList.map(complementError(rule, source));\n\n if (options.first && filledErrors.length) {\n errorFields[rule.field] = 1;\n return doIt(filledErrors);\n }\n if (!deep) {\n doIt(filledErrors);\n } else {\n // if rule is required but the target object\n // does not exist fail at the rule level and don't\n // go deeper\n if (rule.required && !data.value) {\n if (rule.message !== undefined) {\n filledErrors = []\n .concat(rule.message)\n .map(complementError(rule, source));\n } else if (options.error) {\n filledErrors = [\n options.error(\n rule,\n format(options.messages.required, rule.field),\n ),\n ];\n }\n return doIt(filledErrors);\n }\n\n let fieldsSchema: Record<string, Rule> = {};\n if (rule.defaultField) {\n Object.keys(data.value).map(key => {\n fieldsSchema[key] = rule.defaultField;\n });\n }\n fieldsSchema = {\n ...fieldsSchema,\n ...data.rule.fields,\n };\n\n const paredFieldsSchema: Record<string, RuleItem[]> = {};\n\n Object.keys(fieldsSchema).forEach(field => {\n const fieldSchema = fieldsSchema[field];\n const fieldSchemaList = Array.isArray(fieldSchema)\n ? fieldSchema\n : [fieldSchema];\n paredFieldsSchema[field] = fieldSchemaList.map(\n addFullField.bind(null, field),\n );\n });\n const schema = new Schema(paredFieldsSchema);\n schema.messages(options.messages);\n if (data.rule.options) {\n data.rule.options.messages = options.messages;\n data.rule.options.error = options.error;\n }\n schema.validate(data.value, data.rule.options || options, errs => {\n const finalErrors = [];\n if (filledErrors && filledErrors.length) {\n finalErrors.push(...filledErrors);\n }\n if (errs && errs.length) {\n finalErrors.push(...errs);\n }\n doIt(finalErrors.length ? finalErrors : null);\n });\n }\n }\n\n let res: ValidateResult;\n if (rule.asyncValidator) {\n res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n } else if (rule.validator) {\n try {\n res = rule.validator(rule, data.value, cb, data.source, options);\n } catch (error) {\n console.error?.(error);\n // rethrow to report error\n if (!options.suppressValidatorError) {\n setTimeout(() => {\n throw error;\n }, 0);\n }\n cb(error.message);\n }\n if (res === true) {\n cb();\n } else if (res === false) {\n cb(\n typeof rule.message === 'function'\n ? rule.message(rule.fullField || rule.field)\n : rule.message || `${rule.fullField || rule.field} fails`,\n );\n } else if (res instanceof Array) {\n cb(res);\n } else if (res instanceof Error) {\n cb(res.message);\n }\n }\n if (res && (res as Promise<void>).then) {\n (res as Promise<void>).then(\n () => cb(),\n e => cb(e),\n );\n }\n },\n results => {\n complete(results);\n },\n source,\n );\n }\n\n getType(rule: InternalRuleItem) {\n if (rule.type === undefined && rule.pattern instanceof RegExp) {\n rule.type = 'pattern';\n }\n if (\n typeof rule.validator !== 'function' &&\n rule.type &&\n !validators.hasOwnProperty(rule.type)\n ) {\n throw new Error(format('Unknown rule type %s', rule.type));\n }\n return rule.type || 'string';\n }\n\n getValidationMethod(rule: InternalRuleItem) {\n if (typeof rule.validator === 'function') {\n return rule.validator;\n }\n const keys = Object.keys(rule);\n const messageIndex = keys.indexOf('message');\n if (messageIndex !== -1) {\n keys.splice(messageIndex, 1);\n }\n if (keys.length === 1 && keys[0] === 'required') {\n return validators.required;\n }\n return validators[this.getType(rule)] || undefined;\n }\n}\n\nexport default Schema;\n","var typeTemplate = \"'${name}' is not a valid ${type}\";\nexport var defaultValidateMessages = {\n default: \"Validation error on field '${name}'\",\n required: \"'${name}' is required\",\n enum: \"'${name}' must be one of [${enum}]\",\n whitespace: \"'${name}' cannot be empty\",\n date: {\n format: \"'${name}' is invalid for format date\",\n parse: \"'${name}' could not be parsed as date\",\n invalid: \"'${name}' is invalid date\"\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n boolean: typeTemplate,\n integer: typeTemplate,\n float: typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: \"'${name}' must be exactly ${len} characters\",\n min: \"'${name}' must be at least ${min} characters\",\n max: \"'${name}' cannot be longer than ${max} characters\",\n range: \"'${name}' must be between ${min} and ${max} characters\"\n },\n number: {\n len: \"'${name}' must equal ${len}\",\n min: \"'${name}' cannot be less than ${min}\",\n max: \"'${name}' cannot be greater than ${max}\",\n range: \"'${name}' must be between ${min} and ${max}\"\n },\n array: {\n len: \"'${name}' must be exactly ${len} in length\",\n min: \"'${name}' cannot be less than ${min} in length\",\n max: \"'${name}' cannot be greater than ${max} in length\",\n range: \"'${name}' must be between ${min} and ${max} in length\"\n },\n pattern: {\n mismatch: \"'${name}' does not match pattern ${pattern}\"\n }\n};","export default function get(entity, path) {\n var current = entity;\n\n for (var i = 0; i < path.length; i += 1) {\n if (current === null || current === undefined) {\n return undefined;\n }\n\n current = current[path[i]];\n }\n\n return current;\n}","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _toArray from \"@babel/runtime/helpers/esm/toArray\";\nimport get from './get';\n\nfunction internalSet(entity, paths, value, removeIfUndefined) {\n if (!paths.length) {\n return value;\n }\n\n var _paths = _toArray(paths),\n path = _paths[0],\n restPath = _paths.slice(1);\n\n var clone;\n\n if (!entity && typeof path === 'number') {\n clone = [];\n } else if (Array.isArray(entity)) {\n clone = _toConsumableArray(entity);\n } else {\n clone = _objectSpread({}, entity);\n } // Delete prop if `removeIfUndefined` and value is undefined\n\n\n if (removeIfUndefined && value === undefined && restPath.length === 1) {\n delete clone[path][restPath[0]];\n } else {\n clone[path] = internalSet(clone[path], restPath, value, removeIfUndefined);\n }\n\n return clone;\n}\n\nexport default function set(entity, paths, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n // Do nothing if `removeIfUndefined` and parent object not exist\n if (paths.length && removeIfUndefined && value === undefined && !get(entity, paths.slice(0, -1))) {\n return entity;\n }\n\n return internalSet(entity, paths, value, removeIfUndefined);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nfunction cloneDeep(val) {\n if (Array.isArray(val)) {\n return cloneArrayDeep(val);\n } else if (_typeof(val) === 'object' && val !== null) {\n return cloneObjectDeep(val);\n }\n return val;\n}\nfunction cloneObjectDeep(val) {\n if (Object.getPrototypeOf(val) === Object.prototype) {\n var res = {};\n for (var key in val) {\n res[key] = cloneDeep(val[key]);\n }\n return res;\n }\n return val;\n}\nfunction cloneArrayDeep(val) {\n return val.map(function (item) {\n return cloneDeep(item);\n });\n}\nexport default cloneDeep;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport get from \"rc-util/es/utils/get\";\nimport set from \"rc-util/es/utils/set\";\nimport { toArray } from './typeUtil';\nimport cloneDeep from '../utils/cloneDeep';\n/**\n * Convert name to internal supported format.\n * This function should keep since we still thinking if need support like `a.b.c` format.\n * 'a' => ['a']\n * 123 => [123]\n * ['a', 123] => ['a', 123]\n */\nexport function getNamePath(path) {\n return toArray(path);\n}\nexport function getValue(store, namePath) {\n var value = get(store, namePath);\n return value;\n}\nexport function setValue(store, namePath, value) {\n var removeIfUndefined = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var newStore = set(store, namePath, value, removeIfUndefined);\n return newStore;\n}\nexport function cloneByNamePathList(store, namePathList) {\n var newStore = {};\n namePathList.forEach(function (namePath) {\n var value = getValue(store, namePath);\n newStore = setValue(newStore, namePath, value);\n });\n return newStore;\n}\nexport function containsNamePath(namePathList, namePath) {\n return namePathList && namePathList.some(function (path) {\n return matchNamePath(path, namePath);\n });\n}\nfunction isObject(obj) {\n return _typeof(obj) === 'object' && obj !== null && Object.getPrototypeOf(obj) === Object.prototype;\n}\n/**\n * Copy values into store and return a new values object\n * ({ a: 1, b: { c: 2 } }, { a: 4, b: { d: 5 } }) => { a: 4, b: { c: 2, d: 5 } }\n */\nfunction internalSetValues(store, values) {\n var newStore = Array.isArray(store) ? _toConsumableArray(store) : _objectSpread({}, store);\n if (!values) {\n return newStore;\n }\n Object.keys(values).forEach(function (key) {\n var prevValue = newStore[key];\n var value = values[key];\n // If both are object (but target is not array), we use recursion to set deep value\n var recursive = isObject(prevValue) && isObject(value);\n newStore[key] = recursive ? internalSetValues(prevValue, value || {}) : cloneDeep(value); // Clone deep for arrays\n });\n\n return newStore;\n}\nexport function setValues(store) {\n for (var _len = arguments.length, restValues = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n restValues[_key - 1] = arguments[_key];\n }\n return restValues.reduce(function (current, newStore) {\n return internalSetValues(current, newStore);\n }, store);\n}\nexport function matchNamePath(namePath, changedNamePath) {\n if (!namePath || !changedNamePath || namePath.length !== changedNamePath.length) {\n return false;\n }\n return namePath.every(function (nameUnit, i) {\n return changedNamePath[i] === nameUnit;\n });\n}\nexport function isSimilar(source, target) {\n if (source === target) {\n return true;\n }\n if (!source && target || source && !target) {\n return false;\n }\n if (!source || !target || _typeof(source) !== 'object' || _typeof(target) !== 'object') {\n return false;\n }\n var sourceKeys = Object.keys(source);\n var targetKeys = Object.keys(target);\n var keys = new Set([].concat(sourceKeys, targetKeys));\n return _toConsumableArray(keys).every(function (key) {\n var sourceValue = source[key];\n var targetValue = target[key];\n if (typeof sourceValue === 'function' && typeof targetValue === 'function') {\n return true;\n }\n return sourceValue === targetValue;\n });\n}\nexport function defaultGetValueFromEvent(valuePropName) {\n var event = arguments.length <= 1 ? undefined : arguments[1];\n if (event && event.target && _typeof(event.target) === 'object' && valuePropName in event.target) {\n return event.target[valuePropName];\n }\n return event;\n}\n/**\n * Moves an array item from one position in an array to another.\n *\n * Note: This is a pure function so a new array will be returned, instead\n * of altering the array argument.\n *\n * @param array Array in which to move an item. (required)\n * @param moveIndex The index of the item to move. (required)\n * @param toIndex The index to move item at moveIndex to. (required)\n */\nexport function move(array, moveIndex, toIndex) {\n var length = array.length;\n if (moveIndex < 0 || moveIndex >= length || toIndex < 0 || toIndex >= length) {\n return array;\n }\n var item = array[moveIndex];\n var diff = moveIndex - toIndex;\n if (diff > 0) {\n // move left\n return [].concat(_toConsumableArray(array.slice(0, toIndex)), [item], _toConsumableArray(array.slice(toIndex, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, length)));\n }\n if (diff < 0) {\n // move right\n return [].concat(_toConsumableArray(array.slice(0, moveIndex)), _toConsumableArray(array.slice(moveIndex + 1, toIndex + 1)), [item], _toConsumableArray(array.slice(toIndex + 1, length)));\n }\n return array;\n}","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport RawAsyncValidator from 'async-validator';\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport { defaultValidateMessages } from './messages';\nimport { setValues } from './valueUtil';\n// Remove incorrect original ts define\nvar AsyncValidator = RawAsyncValidator;\n/**\n * Replace with template.\n * `I'm ${name}` + { name: 'bamboo' } = I'm bamboo\n */\nfunction replaceMessage(template, kv) {\n return template.replace(/\\$\\{\\w+\\}/g, function (str) {\n var key = str.slice(2, -1);\n return kv[key];\n });\n}\nvar CODE_LOGIC_ERROR = 'CODE_LOGIC_ERROR';\nfunction validateRule(_x, _x2, _x3, _x4, _x5) {\n return _validateRule.apply(this, arguments);\n}\n/**\n * We use `async-validator` to validate the value.\n * But only check one value in a time to avoid namePath validate issue.\n */\nfunction _validateRule() {\n _validateRule = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(name, value, rule, options, messageVariables) {\n var cloneRule, originValidator, subRuleField, validator, messages, result, subResults, kv, fillVariableResult;\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n cloneRule = _objectSpread({}, rule); // Bug of `async-validator`\n // https://github.com/react-component/field-form/issues/316\n // https://github.com/react-component/field-form/issues/313\n delete cloneRule.ruleIndex;\n if (cloneRule.validator) {\n originValidator = cloneRule.validator;\n cloneRule.validator = function () {\n try {\n return originValidator.apply(void 0, arguments);\n } catch (error) {\n console.error(error);\n return Promise.reject(CODE_LOGIC_ERROR);\n }\n };\n }\n // We should special handle array validate\n subRuleField = null;\n if (cloneRule && cloneRule.type === 'array' && cloneRule.defaultField) {\n subRuleField = cloneRule.defaultField;\n delete cloneRule.defaultField;\n }\n validator = new AsyncValidator(_defineProperty({}, name, [cloneRule]));\n messages = setValues({}, defaultValidateMessages, options.validateMessages);\n validator.messages(messages);\n result = [];\n _context2.prev = 9;\n _context2.next = 12;\n return Promise.resolve(validator.validate(_defineProperty({}, name, value), _objectSpread({}, options)));\n case 12:\n _context2.next = 17;\n break;\n case 14:\n _context2.prev = 14;\n _context2.t0 = _context2[\"catch\"](9);\n if (_context2.t0.errors) {\n result = _context2.t0.errors.map(function (_ref4, index) {\n var message = _ref4.message;\n var mergedMessage = message === CODE_LOGIC_ERROR ? messages.default : message;\n return /*#__PURE__*/React.isValidElement(mergedMessage) ?\n /*#__PURE__*/\n // Wrap ReactNode with `key`\n React.cloneElement(mergedMessage, {\n key: \"error_\".concat(index)\n }) : mergedMessage;\n });\n }\n case 17:\n if (!(!result.length && subRuleField)) {\n _context2.next = 22;\n break;\n }\n _context2.next = 20;\n return Promise.all(value.map(function (subValue, i) {\n return validateRule(\"\".concat(name, \".\").concat(i), subValue, subRuleField, options, messageVariables);\n }));\n case 20:\n subResults = _context2.sent;\n return _context2.abrupt(\"return\", subResults.reduce(function (prev, errors) {\n return [].concat(_toConsumableArray(prev), _toConsumableArray(errors));\n }, []));\n case 22:\n // Replace message with variables\n kv = _objectSpread(_objectSpread({}, rule), {}, {\n name: name,\n enum: (rule.enum || []).join(', ')\n }, messageVariables);\n fillVariableResult = result.map(function (error) {\n if (typeof error === 'string') {\n return replaceMessage(error, kv);\n }\n return error;\n });\n return _context2.abrupt(\"return\", fillVariableResult);\n case 25:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, null, [[9, 14]]);\n }));\n return _validateRule.apply(this, arguments);\n}\nexport function validateRules(namePath, value, rules, options, validateFirst, messageVariables) {\n var name = namePath.join('.');\n // Fill rule with context\n var filledRules = rules.map(function (currentRule, ruleIndex) {\n var originValidatorFunc = currentRule.validator;\n var cloneRule = _objectSpread(_objectSpread({}, currentRule), {}, {\n ruleIndex: ruleIndex\n });\n // Replace validator if needed\n if (originValidatorFunc) {\n cloneRule.validator = function (rule, val, callback) {\n var hasPromise = false;\n // Wrap callback only accept when promise not provided\n var wrappedCallback = function wrappedCallback() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n // Wait a tick to make sure return type is a promise\n Promise.resolve().then(function () {\n warning(!hasPromise, 'Your validator function has already return a promise. `callback` will be ignored.');\n if (!hasPromise) {\n callback.apply(void 0, args);\n }\n });\n };\n // Get promise\n var promise = originValidatorFunc(rule, val, wrappedCallback);\n hasPromise = promise && typeof promise.then === 'function' && typeof promise.catch === 'function';\n /**\n * 1. Use promise as the first priority.\n * 2. If promise not exist, use callback with warning instead\n */\n warning(hasPromise, '`callback` is deprecated. Please return a promise instead.');\n if (hasPromise) {\n promise.then(function () {\n callback();\n }).catch(function (err) {\n callback(err || ' ');\n });\n }\n };\n }\n return cloneRule;\n }).sort(function (_ref, _ref2) {\n var w1 = _ref.warningOnly,\n i1 = _ref.ruleIndex;\n var w2 = _ref2.warningOnly,\n i2 = _ref2.ruleIndex;\n if (!!w1 === !!w2) {\n // Let keep origin order\n return i1 - i2;\n }\n if (w1) {\n return 1;\n }\n return -1;\n });\n // Do validate rules\n var summaryPromise;\n if (validateFirst === true) {\n // >>>>> Validate by serialization\n summaryPromise = new Promise( /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(resolve, reject) {\n var i, rule, errors;\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n i = 0;\n case 1:\n if (!(i < filledRules.length)) {\n _context.next = 12;\n break;\n }\n rule = filledRules[i];\n _context.next = 5;\n return validateRule(name, value, rule, options, messageVariables);\n case 5:\n errors = _context.sent;\n if (!errors.length) {\n _context.next = 9;\n break;\n }\n reject([{\n errors: errors,\n rule: rule\n }]);\n return _context.abrupt(\"return\");\n case 9:\n i += 1;\n _context.next = 1;\n break;\n case 12:\n /* eslint-enable */\n resolve([]);\n case 13:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return function (_x6, _x7) {\n return _ref3.apply(this, arguments);\n };\n }());\n } else {\n // >>>>> Validate by parallel\n var rulePromises = filledRules.map(function (rule) {\n return validateRule(name, value, rule, options, messageVariables).then(function (errors) {\n return {\n errors: errors,\n rule: rule\n };\n });\n });\n summaryPromise = (validateFirst ? finishOnFirstFailed(rulePromises) : finishOnAllFailed(rulePromises)).then(function (errors) {\n // Always change to rejection for Field to catch\n return Promise.reject(errors);\n });\n }\n // Internal catch error to avoid console error log.\n summaryPromise.catch(function (e) {\n return e;\n });\n return summaryPromise;\n}\nfunction finishOnAllFailed(_x8) {\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction _finishOnAllFailed() {\n _finishOnAllFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(rulePromises) {\n return _regeneratorRuntime().wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n return _context3.abrupt(\"return\", Promise.all(rulePromises).then(function (errorsList) {\n var _ref5;\n var errors = (_ref5 = []).concat.apply(_ref5, _toConsumableArray(errorsList));\n return errors;\n }));\n case 1:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finishOnAllFailed.apply(this, arguments);\n}\nfunction finishOnFirstFailed(_x9) {\n return _finishOnFirstFailed.apply(this, arguments);\n}\nfunction _finishOnFirstFailed() {\n _finishOnFirstFailed = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(rulePromises) {\n var count;\n return _regeneratorRuntime().wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n count = 0;\n return _context4.abrupt(\"return\", new Promise(function (resolve) {\n rulePromises.forEach(function (promise) {\n promise.then(function (ruleError) {\n if (ruleError.errors.length) {\n resolve([ruleError]);\n }\n count += 1;\n if (count === rulePromises.length) {\n resolve([]);\n }\n });\n });\n }));\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _finishOnFirstFailed.apply(this, arguments);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"name\"];\nimport toChildrenArray from \"rc-util/es/Children/toArray\";\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport { toArray } from './utils/typeUtil';\nimport { validateRules } from './utils/validateUtil';\nimport { containsNamePath, defaultGetValueFromEvent, getNamePath, getValue } from './utils/valueUtil';\nvar EMPTY_ERRORS = [];\nfunction requireUpdate(shouldUpdate, prev, next, prevValue, nextValue, info) {\n if (typeof shouldUpdate === 'function') {\n return shouldUpdate(prev, next, 'source' in info ? {\n source: info.source\n } : {});\n }\n return prevValue !== nextValue;\n}\n// We use Class instead of Hooks here since it will cost much code by using Hooks.\nvar Field = /*#__PURE__*/function (_React$Component) {\n _inherits(Field, _React$Component);\n var _super = _createSuper(Field);\n /**\n * Follow state should not management in State since it will async update by React.\n * This makes first render of form can not get correct state value.\n */\n\n /**\n * Mark when touched & validated. Currently only used for `dependencies`.\n * Note that we do not think field with `initialValue` is dirty\n * but this will be by `isFieldDirty` func.\n */\n\n // ============================== Subscriptions ==============================\n function Field(props) {\n var _this;\n _classCallCheck(this, Field);\n _this = _super.call(this, props);\n // Register on init\n _this.state = {\n resetCount: 0\n };\n _this.cancelRegisterFunc = null;\n _this.mounted = false;\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.prevValidating = void 0;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.cancelRegister = function () {\n var _this$props = _this.props,\n preserve = _this$props.preserve,\n isListField = _this$props.isListField,\n name = _this$props.name;\n if (_this.cancelRegisterFunc) {\n _this.cancelRegisterFunc(isListField, preserve, getNamePath(name));\n }\n _this.cancelRegisterFunc = null;\n };\n _this.getNamePath = function () {\n var _this$props2 = _this.props,\n name = _this$props2.name,\n fieldContext = _this$props2.fieldContext;\n var _fieldContext$prefixN = fieldContext.prefixName,\n prefixName = _fieldContext$prefixN === void 0 ? [] : _fieldContext$prefixN;\n return name !== undefined ? [].concat(_toConsumableArray(prefixName), _toConsumableArray(name)) : [];\n };\n _this.getRules = function () {\n var _this$props3 = _this.props,\n _this$props3$rules = _this$props3.rules,\n rules = _this$props3$rules === void 0 ? [] : _this$props3$rules,\n fieldContext = _this$props3.fieldContext;\n return rules.map(function (rule) {\n if (typeof rule === 'function') {\n return rule(fieldContext);\n }\n return rule;\n });\n };\n _this.refresh = function () {\n if (!_this.mounted) return;\n /**\n * Clean up current node.\n */\n _this.setState(function (_ref) {\n var resetCount = _ref.resetCount;\n return {\n resetCount: resetCount + 1\n };\n });\n };\n _this.triggerMetaEvent = function (destroy) {\n var onMetaChange = _this.props.onMetaChange;\n onMetaChange === null || onMetaChange === void 0 ? void 0 : onMetaChange(_objectSpread(_objectSpread({}, _this.getMeta()), {}, {\n destroy: destroy\n }));\n };\n _this.onStoreChange = function (prevStore, namePathList, info) {\n var _this$props4 = _this.props,\n shouldUpdate = _this$props4.shouldUpdate,\n _this$props4$dependen = _this$props4.dependencies,\n dependencies = _this$props4$dependen === void 0 ? [] : _this$props4$dependen,\n onReset = _this$props4.onReset;\n var store = info.store;\n var namePath = _this.getNamePath();\n var prevValue = _this.getValue(prevStore);\n var curValue = _this.getValue(store);\n var namePathMatch = namePathList && containsNamePath(namePathList, namePath);\n // `setFieldsValue` is a quick access to update related status\n if (info.type === 'valueUpdate' && info.source === 'external' && prevValue !== curValue) {\n _this.touched = true;\n _this.dirty = true;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n }\n switch (info.type) {\n case 'reset':\n if (!namePathList || namePathMatch) {\n // Clean up state\n _this.touched = false;\n _this.dirty = false;\n _this.validatePromise = null;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n onReset === null || onReset === void 0 ? void 0 : onReset();\n _this.refresh();\n return;\n }\n break;\n /**\n * In case field with `preserve = false` nest deps like:\n * - A = 1 => show B\n * - B = 1 => show C\n * - Reset A, need clean B, C\n */\n case 'remove':\n {\n if (shouldUpdate) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'setField':\n {\n if (namePathMatch) {\n var data = info.data;\n if ('touched' in data) {\n _this.touched = data.touched;\n }\n if ('validating' in data && !('originRCField' in data)) {\n _this.validatePromise = data.validating ? Promise.resolve([]) : null;\n }\n if ('errors' in data) {\n _this.errors = data.errors || EMPTY_ERRORS;\n }\n if ('warnings' in data) {\n _this.warnings = data.warnings || EMPTY_ERRORS;\n }\n _this.dirty = true;\n _this.triggerMetaEvent();\n _this.reRender();\n return;\n }\n // Handle update by `setField` with `shouldUpdate`\n if (shouldUpdate && !namePath.length && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n case 'dependenciesUpdate':\n {\n /**\n * Trigger when marked `dependencies` updated. Related fields will all update\n */\n var dependencyList = dependencies.map(getNamePath);\n // No need for `namePathMath` check and `shouldUpdate` check, since `valueUpdate` will be\n // emitted earlier and they will work there\n // If set it may cause unnecessary twice rerendering\n if (dependencyList.some(function (dependency) {\n return containsNamePath(info.relatedFields, dependency);\n })) {\n _this.reRender();\n return;\n }\n break;\n }\n default:\n // 1. If `namePath` exists in `namePathList`, means it's related value and should update\n // For example <List name=\"list\"><Field name={['list', 0]}></List>\n // If `namePathList` is [['list']] (List value update), Field should be updated\n // If `namePathList` is [['list', 0]] (Field value update), List shouldn't be updated\n // 2.\n // 2.1 If `dependencies` is set, `name` is not set and `shouldUpdate` is not set,\n // don't use `shouldUpdate`. `dependencies` is view as a shortcut if `shouldUpdate`\n // is not provided\n // 2.2 If `shouldUpdate` provided, use customize logic to update the field\n // else to check if value changed\n if (namePathMatch || (!dependencies.length || namePath.length || shouldUpdate) && requireUpdate(shouldUpdate, prevStore, store, prevValue, curValue, info)) {\n _this.reRender();\n return;\n }\n break;\n }\n if (shouldUpdate === true) {\n _this.reRender();\n }\n };\n _this.validateRules = function (options) {\n // We should fixed namePath & value to avoid developer change then by form function\n var namePath = _this.getNamePath();\n var currentValue = _this.getValue();\n // Force change to async to avoid rule OOD under renderProps field\n var rootPromise = Promise.resolve().then(function () {\n if (!_this.mounted) {\n return [];\n }\n var _this$props5 = _this.props,\n _this$props5$validate = _this$props5.validateFirst,\n validateFirst = _this$props5$validate === void 0 ? false : _this$props5$validate,\n messageVariables = _this$props5.messageVariables;\n var _ref2 = options || {},\n triggerName = _ref2.triggerName;\n var filteredRules = _this.getRules();\n if (triggerName) {\n filteredRules = filteredRules.filter(function (rule) {\n return rule;\n }).filter(function (rule) {\n var validateTrigger = rule.validateTrigger;\n if (!validateTrigger) {\n return true;\n }\n var triggerList = toArray(validateTrigger);\n return triggerList.includes(triggerName);\n });\n }\n var promise = validateRules(namePath, currentValue, filteredRules, options, validateFirst, messageVariables);\n promise.catch(function (e) {\n return e;\n }).then(function () {\n var ruleErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_ERRORS;\n if (_this.validatePromise === rootPromise) {\n var _ruleErrors$forEach;\n _this.validatePromise = null;\n // Get errors & warnings\n var nextErrors = [];\n var nextWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref3) {\n var warningOnly = _ref3.rule.warningOnly,\n _ref3$errors = _ref3.errors,\n errors = _ref3$errors === void 0 ? EMPTY_ERRORS : _ref3$errors;\n if (warningOnly) {\n nextWarnings.push.apply(nextWarnings, _toConsumableArray(errors));\n } else {\n nextErrors.push.apply(nextErrors, _toConsumableArray(errors));\n }\n });\n _this.errors = nextErrors;\n _this.warnings = nextWarnings;\n _this.triggerMetaEvent();\n _this.reRender();\n }\n });\n return promise;\n });\n _this.validatePromise = rootPromise;\n _this.dirty = true;\n _this.errors = EMPTY_ERRORS;\n _this.warnings = EMPTY_ERRORS;\n _this.triggerMetaEvent();\n // Force trigger re-render since we need sync renderProps with new meta\n _this.reRender();\n return rootPromise;\n };\n _this.isFieldValidating = function () {\n return !!_this.validatePromise;\n };\n _this.isFieldTouched = function () {\n return _this.touched;\n };\n _this.isFieldDirty = function () {\n // Touched or validate or has initialValue\n if (_this.dirty || _this.props.initialValue !== undefined) {\n return true;\n }\n // Form set initialValue\n var fieldContext = _this.props.fieldContext;\n var _fieldContext$getInte = fieldContext.getInternalHooks(HOOK_MARK),\n getInitialValue = _fieldContext$getInte.getInitialValue;\n if (getInitialValue(_this.getNamePath()) !== undefined) {\n return true;\n }\n return false;\n };\n _this.getErrors = function () {\n return _this.errors;\n };\n _this.getWarnings = function () {\n return _this.warnings;\n };\n _this.isListField = function () {\n return _this.props.isListField;\n };\n _this.isList = function () {\n return _this.props.isList;\n };\n _this.isPreserve = function () {\n return _this.props.preserve;\n };\n _this.getMeta = function () {\n // Make error & validating in cache to save perf\n _this.prevValidating = _this.isFieldValidating();\n var meta = {\n touched: _this.isFieldTouched(),\n validating: _this.prevValidating,\n errors: _this.errors,\n warnings: _this.warnings,\n name: _this.getNamePath()\n };\n return meta;\n };\n _this.getOnlyChild = function (children) {\n // Support render props\n if (typeof children === 'function') {\n var meta = _this.getMeta();\n return _objectSpread(_objectSpread({}, _this.getOnlyChild(children(_this.getControlled(), meta, _this.props.fieldContext))), {}, {\n isFunction: true\n });\n }\n // Filed element only\n var childList = toChildrenArray(children);\n if (childList.length !== 1 || ! /*#__PURE__*/React.isValidElement(childList[0])) {\n return {\n child: childList,\n isFunction: false\n };\n }\n return {\n child: childList[0],\n isFunction: false\n };\n };\n _this.getValue = function (store) {\n var getFieldsValue = _this.props.fieldContext.getFieldsValue;\n var namePath = _this.getNamePath();\n return getValue(store || getFieldsValue(true), namePath);\n };\n _this.getControlled = function () {\n var childProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _this$props6 = _this.props,\n trigger = _this$props6.trigger,\n validateTrigger = _this$props6.validateTrigger,\n getValueFromEvent = _this$props6.getValueFromEvent,\n normalize = _this$props6.normalize,\n valuePropName = _this$props6.valuePropName,\n getValueProps = _this$props6.getValueProps,\n fieldContext = _this$props6.fieldContext;\n var mergedValidateTrigger = validateTrigger !== undefined ? validateTrigger : fieldContext.validateTrigger;\n var namePath = _this.getNamePath();\n var getInternalHooks = fieldContext.getInternalHooks,\n getFieldsValue = fieldContext.getFieldsValue;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n dispatch = _getInternalHooks.dispatch;\n var value = _this.getValue();\n var mergedGetValueProps = getValueProps || function (val) {\n return _defineProperty({}, valuePropName, val);\n };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var originTriggerFunc = childProps[trigger];\n var control = _objectSpread(_objectSpread({}, childProps), mergedGetValueProps(value));\n // Add trigger\n control[trigger] = function () {\n // Mark as touched\n _this.touched = true;\n _this.dirty = true;\n _this.triggerMetaEvent();\n var newValue;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (getValueFromEvent) {\n newValue = getValueFromEvent.apply(void 0, args);\n } else {\n newValue = defaultGetValueFromEvent.apply(void 0, [valuePropName].concat(args));\n }\n if (normalize) {\n newValue = normalize(newValue, value, getFieldsValue(true));\n }\n dispatch({\n type: 'updateValue',\n namePath: namePath,\n value: newValue\n });\n if (originTriggerFunc) {\n originTriggerFunc.apply(void 0, args);\n }\n };\n // Add validateTrigger\n var validateTriggerList = toArray(mergedValidateTrigger || []);\n validateTriggerList.forEach(function (triggerName) {\n // Wrap additional function of component, so that we can get latest value from store\n var originTrigger = control[triggerName];\n control[triggerName] = function () {\n if (originTrigger) {\n originTrigger.apply(void 0, arguments);\n }\n // Always use latest rules\n var rules = _this.props.rules;\n if (rules && rules.length) {\n // We dispatch validate to root,\n // since it will update related data with other field with same name\n dispatch({\n type: 'validateField',\n namePath: namePath,\n triggerName: triggerName\n });\n }\n };\n });\n return control;\n };\n if (props.fieldContext) {\n var getInternalHooks = props.fieldContext.getInternalHooks;\n var _getInternalHooks2 = getInternalHooks(HOOK_MARK),\n initEntityValue = _getInternalHooks2.initEntityValue;\n initEntityValue(_assertThisInitialized(_this));\n }\n return _this;\n }\n _createClass(Field, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props7 = this.props,\n shouldUpdate = _this$props7.shouldUpdate,\n fieldContext = _this$props7.fieldContext;\n this.mounted = true;\n // Register on init\n if (fieldContext) {\n var getInternalHooks = fieldContext.getInternalHooks;\n var _getInternalHooks3 = getInternalHooks(HOOK_MARK),\n registerField = _getInternalHooks3.registerField;\n this.cancelRegisterFunc = registerField(this);\n }\n // One more render for component in case fields not ready\n if (shouldUpdate === true) {\n this.reRender();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.cancelRegister();\n this.triggerMetaEvent(true);\n this.mounted = false;\n }\n }, {\n key: \"reRender\",\n value: function reRender() {\n if (!this.mounted) return;\n this.forceUpdate();\n }\n }, {\n key: \"render\",\n value: function render() {\n var resetCount = this.state.resetCount;\n var children = this.props.children;\n var _this$getOnlyChild = this.getOnlyChild(children),\n child = _this$getOnlyChild.child,\n isFunction = _this$getOnlyChild.isFunction;\n // Not need to `cloneElement` since user can handle this in render function self\n var returnChildNode;\n if (isFunction) {\n returnChildNode = child;\n } else if ( /*#__PURE__*/React.isValidElement(child)) {\n returnChildNode = /*#__PURE__*/React.cloneElement(child, this.getControlled(child.props));\n } else {\n warning(!child, '`children` of Field is not validate ReactElement.');\n returnChildNode = child;\n }\n return /*#__PURE__*/React.createElement(React.Fragment, {\n key: resetCount\n }, returnChildNode);\n }\n }]);\n return Field;\n}(React.Component);\nField.contextType = FieldContext;\nField.defaultProps = {\n trigger: 'onChange',\n valuePropName: 'value'\n};\nfunction WrapperField(_ref5) {\n var name = _ref5.name,\n restProps = _objectWithoutProperties(_ref5, _excluded);\n var fieldContext = React.useContext(FieldContext);\n var namePath = name !== undefined ? getNamePath(name) : undefined;\n var key = 'keep';\n if (!restProps.isListField) {\n key = \"_\".concat((namePath || []).join('_'));\n }\n // Warning if it's a directly list field.\n // We can still support multiple level field preserve.\n if (process.env.NODE_ENV !== 'production' && restProps.preserve === false && restProps.isListField && namePath.length <= 1) {\n warning(false, '`preserve` should not apply on Form.List fields.');\n }\n return /*#__PURE__*/React.createElement(Field, _extends({\n key: key,\n name: namePath\n }, restProps, {\n fieldContext: fieldContext\n }));\n}\nexport default WrapperField;","import * as React from 'react';\nvar ListContext = /*#__PURE__*/React.createContext(null);\nexport default ListContext;","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport * as React from 'react';\nimport warning from \"rc-util/es/warning\";\nimport FieldContext from './FieldContext';\nimport Field from './Field';\nimport { move as _move, getNamePath } from './utils/valueUtil';\nimport ListContext from './ListContext';\nvar List = function List(_ref) {\n var name = _ref.name,\n initialValue = _ref.initialValue,\n children = _ref.children,\n rules = _ref.rules,\n validateTrigger = _ref.validateTrigger;\n var context = React.useContext(FieldContext);\n var keyRef = React.useRef({\n keys: [],\n id: 0\n });\n var keyManager = keyRef.current;\n var prefixName = React.useMemo(function () {\n var parentPrefixName = getNamePath(context.prefixName) || [];\n return [].concat(_toConsumableArray(parentPrefixName), _toConsumableArray(getNamePath(name)));\n }, [context.prefixName, name]);\n var fieldContext = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, context), {}, {\n prefixName: prefixName\n });\n }, [context, prefixName]);\n // List context\n var listContext = React.useMemo(function () {\n return {\n getKey: function getKey(namePath) {\n var len = prefixName.length;\n var pathName = namePath[len];\n return [keyManager.keys[pathName], namePath.slice(len + 1)];\n }\n };\n }, [prefixName]);\n // User should not pass `children` as other type.\n if (typeof children !== 'function') {\n warning(false, 'Form.List only accepts function as children.');\n return null;\n }\n var shouldUpdate = function shouldUpdate(prevValue, nextValue, _ref2) {\n var source = _ref2.source;\n if (source === 'internal') {\n return false;\n }\n return prevValue !== nextValue;\n };\n return /*#__PURE__*/React.createElement(ListContext.Provider, {\n value: listContext\n }, /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: fieldContext\n }, /*#__PURE__*/React.createElement(Field, {\n name: [],\n shouldUpdate: shouldUpdate,\n rules: rules,\n validateTrigger: validateTrigger,\n initialValue: initialValue,\n isList: true\n }, function (_ref3, meta) {\n var _ref3$value = _ref3.value,\n value = _ref3$value === void 0 ? [] : _ref3$value,\n onChange = _ref3.onChange;\n var getFieldValue = context.getFieldValue;\n var getNewValue = function getNewValue() {\n var values = getFieldValue(prefixName || []);\n return values || [];\n };\n /**\n * Always get latest value in case user update fields by `form` api.\n */\n var operations = {\n add: function add(defaultValue, index) {\n // Mapping keys\n var newValue = getNewValue();\n if (index >= 0 && index <= newValue.length) {\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys.slice(0, index)), [keyManager.id], _toConsumableArray(keyManager.keys.slice(index)));\n onChange([].concat(_toConsumableArray(newValue.slice(0, index)), [defaultValue], _toConsumableArray(newValue.slice(index))));\n } else {\n if (process.env.NODE_ENV !== 'production' && (index < 0 || index > newValue.length)) {\n warning(false, 'The second parameter of the add function should be a valid positive number.');\n }\n keyManager.keys = [].concat(_toConsumableArray(keyManager.keys), [keyManager.id]);\n onChange([].concat(_toConsumableArray(newValue), [defaultValue]));\n }\n keyManager.id += 1;\n },\n remove: function remove(index) {\n var newValue = getNewValue();\n var indexSet = new Set(Array.isArray(index) ? index : [index]);\n if (indexSet.size <= 0) {\n return;\n }\n keyManager.keys = keyManager.keys.filter(function (_, keysIndex) {\n return !indexSet.has(keysIndex);\n });\n // Trigger store change\n onChange(newValue.filter(function (_, valueIndex) {\n return !indexSet.has(valueIndex);\n }));\n },\n move: function move(from, to) {\n if (from === to) {\n return;\n }\n var newValue = getNewValue();\n // Do not handle out of range\n if (from < 0 || from >= newValue.length || to < 0 || to >= newValue.length) {\n return;\n }\n keyManager.keys = _move(keyManager.keys, from, to);\n // Trigger store change\n onChange(_move(newValue, from, to));\n }\n };\n var listValue = value || [];\n if (!Array.isArray(listValue)) {\n listValue = [];\n if (process.env.NODE_ENV !== 'production') {\n warning(false, \"Current value of '\".concat(prefixName.join(' > '), \"' is not an array type.\"));\n }\n }\n return children(listValue.map(function (__, index) {\n var key = keyManager.keys[index];\n if (key === undefined) {\n keyManager.keys[index] = keyManager.id;\n key = keyManager.keys[index];\n keyManager.id += 1;\n }\n return {\n name: index,\n key: key,\n isListField: true\n };\n }), operations, meta);\n })));\n};\nexport default List;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nvar SPLIT = '__@field_split__';\n/**\n * Convert name path into string to fast the fetch speed of Map.\n */\nfunction normalize(namePath) {\n return namePath.map(function (cell) {\n return \"\".concat(_typeof(cell), \":\").concat(cell);\n })\n // Magic split\n .join(SPLIT);\n}\n/**\n * NameMap like a `Map` but accepts `string[]` as key.\n */\nvar NameMap = /*#__PURE__*/function () {\n function NameMap() {\n _classCallCheck(this, NameMap);\n this.kvs = new Map();\n }\n _createClass(NameMap, [{\n key: \"set\",\n value: function set(key, value) {\n this.kvs.set(normalize(key), value);\n }\n }, {\n key: \"get\",\n value: function get(key) {\n return this.kvs.get(normalize(key));\n }\n }, {\n key: \"update\",\n value: function update(key, updater) {\n var origin = this.get(key);\n var next = updater(origin);\n if (!next) {\n this.delete(key);\n } else {\n this.set(key, next);\n }\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n this.kvs.delete(normalize(key));\n }\n // Since we only use this in test, let simply realize this\n }, {\n key: \"map\",\n value: function map(callback) {\n return _toConsumableArray(this.kvs.entries()).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n var cells = key.split(SPLIT);\n return callback({\n key: cells.map(function (cell) {\n var _cell$match = cell.match(/^([^:]*):(.*)$/),\n _cell$match2 = _slicedToArray(_cell$match, 3),\n type = _cell$match2[1],\n unit = _cell$match2[2];\n return type === 'number' ? Number(unit) : unit;\n }),\n value: value\n });\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var json = {};\n this.map(function (_ref3) {\n var key = _ref3.key,\n value = _ref3.value;\n json[key.join('.')] = value;\n return null;\n });\n return json;\n }\n }]);\n return NameMap;\n}();\nexport default NameMap;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nvar _excluded = [\"name\", \"errors\"];\nimport warning from \"rc-util/es/warning\";\nimport * as React from 'react';\nimport { HOOK_MARK } from './FieldContext';\nimport { allPromiseFinish } from './utils/asyncUtil';\nimport cloneDeep from './utils/cloneDeep';\nimport { defaultValidateMessages } from './utils/messages';\nimport NameMap from './utils/NameMap';\nimport { cloneByNamePathList, containsNamePath, getNamePath, getValue, matchNamePath, setValue, setValues } from './utils/valueUtil';\nexport var FormStore = /*#__PURE__*/_createClass(function FormStore(forceRootUpdate) {\n var _this = this;\n _classCallCheck(this, FormStore);\n this.formHooked = false;\n this.forceRootUpdate = void 0;\n this.subscribable = true;\n this.store = {};\n this.fieldEntities = [];\n this.initialValues = {};\n this.callbacks = {};\n this.validateMessages = null;\n this.preserve = null;\n this.lastValidatePromise = null;\n this.getForm = function () {\n return {\n getFieldValue: _this.getFieldValue,\n getFieldsValue: _this.getFieldsValue,\n getFieldError: _this.getFieldError,\n getFieldWarning: _this.getFieldWarning,\n getFieldsError: _this.getFieldsError,\n isFieldsTouched: _this.isFieldsTouched,\n isFieldTouched: _this.isFieldTouched,\n isFieldValidating: _this.isFieldValidating,\n isFieldsValidating: _this.isFieldsValidating,\n resetFields: _this.resetFields,\n setFields: _this.setFields,\n setFieldValue: _this.setFieldValue,\n setFieldsValue: _this.setFieldsValue,\n validateFields: _this.validateFields,\n submit: _this.submit,\n _init: true,\n getInternalHooks: _this.getInternalHooks\n };\n };\n this.getInternalHooks = function (key) {\n if (key === HOOK_MARK) {\n _this.formHooked = true;\n return {\n dispatch: _this.dispatch,\n initEntityValue: _this.initEntityValue,\n registerField: _this.registerField,\n useSubscribe: _this.useSubscribe,\n setInitialValues: _this.setInitialValues,\n destroyForm: _this.destroyForm,\n setCallbacks: _this.setCallbacks,\n setValidateMessages: _this.setValidateMessages,\n getFields: _this.getFields,\n setPreserve: _this.setPreserve,\n getInitialValue: _this.getInitialValue,\n registerWatch: _this.registerWatch\n };\n }\n warning(false, '`getInternalHooks` is internal usage. Should not call directly.');\n return null;\n };\n this.useSubscribe = function (subscribable) {\n _this.subscribable = subscribable;\n };\n this.prevWithoutPreserves = null;\n this.setInitialValues = function (initialValues, init) {\n _this.initialValues = initialValues || {};\n if (init) {\n var _this$prevWithoutPres;\n var nextStore = setValues({}, initialValues, _this.store);\n // We will take consider prev form unmount fields.\n // When the field is not `preserve`, we need fill this with initialValues instead of store.\n // eslint-disable-next-line array-callback-return\n (_this$prevWithoutPres = _this.prevWithoutPreserves) === null || _this$prevWithoutPres === void 0 ? void 0 : _this$prevWithoutPres.map(function (_ref) {\n var namePath = _ref.key;\n nextStore = setValue(nextStore, namePath, getValue(initialValues, namePath));\n });\n _this.prevWithoutPreserves = null;\n _this.updateStore(nextStore);\n }\n };\n this.destroyForm = function () {\n var prevWithoutPreserves = new NameMap();\n _this.getFieldEntities(true).forEach(function (entity) {\n if (!_this.isMergedPreserve(entity.isPreserve())) {\n prevWithoutPreserves.set(entity.getNamePath(), true);\n }\n });\n _this.prevWithoutPreserves = prevWithoutPreserves;\n };\n this.getInitialValue = function (namePath) {\n var initValue = getValue(_this.initialValues, namePath);\n // Not cloneDeep when without `namePath`\n return namePath.length ? cloneDeep(initValue) : initValue;\n };\n this.setCallbacks = function (callbacks) {\n _this.callbacks = callbacks;\n };\n this.setValidateMessages = function (validateMessages) {\n _this.validateMessages = validateMessages;\n };\n this.setPreserve = function (preserve) {\n _this.preserve = preserve;\n };\n this.watchList = [];\n this.registerWatch = function (callback) {\n _this.watchList.push(callback);\n return function () {\n _this.watchList = _this.watchList.filter(function (fn) {\n return fn !== callback;\n });\n };\n };\n this.notifyWatch = function () {\n var namePath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n // No need to cost perf when nothing need to watch\n if (_this.watchList.length) {\n var values = _this.getFieldsValue();\n _this.watchList.forEach(function (callback) {\n callback(values, namePath);\n });\n }\n };\n this.timeoutId = null;\n this.warningUnhooked = function () {\n if (process.env.NODE_ENV !== 'production' && !_this.timeoutId && typeof window !== 'undefined') {\n _this.timeoutId = setTimeout(function () {\n _this.timeoutId = null;\n if (!_this.formHooked) {\n warning(false, 'Instance created by `useForm` is not connected to any Form element. Forget to pass `form` prop?');\n }\n });\n }\n };\n this.updateStore = function (nextStore) {\n _this.store = nextStore;\n };\n this.getFieldEntities = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (!pure) {\n return _this.fieldEntities;\n }\n return _this.fieldEntities.filter(function (field) {\n return field.getNamePath().length;\n });\n };\n this.getFieldsMap = function () {\n var pure = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var cache = new NameMap();\n _this.getFieldEntities(pure).forEach(function (field) {\n var namePath = field.getNamePath();\n cache.set(namePath, field);\n });\n return cache;\n };\n this.getFieldEntitiesForNamePathList = function (nameList) {\n if (!nameList) {\n return _this.getFieldEntities(true);\n }\n var cache = _this.getFieldsMap(true);\n return nameList.map(function (name) {\n var namePath = getNamePath(name);\n return cache.get(namePath) || {\n INVALIDATE_NAME_PATH: getNamePath(name)\n };\n });\n };\n this.getFieldsValue = function (nameList, filterFunc) {\n _this.warningUnhooked();\n if (nameList === true && !filterFunc) {\n return _this.store;\n }\n var fieldEntities = _this.getFieldEntitiesForNamePathList(Array.isArray(nameList) ? nameList : null);\n var filteredNameList = [];\n fieldEntities.forEach(function (entity) {\n var _entity$isListField;\n var namePath = 'INVALIDATE_NAME_PATH' in entity ? entity.INVALIDATE_NAME_PATH : entity.getNamePath();\n // Ignore when it's a list item and not specific the namePath,\n // since parent field is already take in count\n if (!nameList && ((_entity$isListField = entity.isListField) === null || _entity$isListField === void 0 ? void 0 : _entity$isListField.call(entity))) {\n return;\n }\n if (!filterFunc) {\n filteredNameList.push(namePath);\n } else {\n var meta = 'getMeta' in entity ? entity.getMeta() : null;\n if (filterFunc(meta)) {\n filteredNameList.push(namePath);\n }\n }\n });\n return cloneByNamePathList(_this.store, filteredNameList.map(getNamePath));\n };\n this.getFieldValue = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n return getValue(_this.store, namePath);\n };\n this.getFieldsError = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntitiesForNamePathList(nameList);\n return fieldEntities.map(function (entity, index) {\n if (entity && !('INVALIDATE_NAME_PATH' in entity)) {\n return {\n name: entity.getNamePath(),\n errors: entity.getErrors(),\n warnings: entity.getWarnings()\n };\n }\n return {\n name: getNamePath(nameList[index]),\n errors: [],\n warnings: []\n };\n });\n };\n this.getFieldError = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.errors;\n };\n this.getFieldWarning = function (name) {\n _this.warningUnhooked();\n var namePath = getNamePath(name);\n var fieldError = _this.getFieldsError([namePath])[0];\n return fieldError.warnings;\n };\n this.isFieldsTouched = function () {\n _this.warningUnhooked();\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var arg0 = args[0],\n arg1 = args[1];\n var namePathList;\n var isAllFieldsTouched = false;\n if (args.length === 0) {\n namePathList = null;\n } else if (args.length === 1) {\n if (Array.isArray(arg0)) {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = false;\n } else {\n namePathList = null;\n isAllFieldsTouched = arg0;\n }\n } else {\n namePathList = arg0.map(getNamePath);\n isAllFieldsTouched = arg1;\n }\n var fieldEntities = _this.getFieldEntities(true);\n var isFieldTouched = function isFieldTouched(field) {\n return field.isFieldTouched();\n };\n // ===== Will get fully compare when not config namePathList =====\n if (!namePathList) {\n return isAllFieldsTouched ? fieldEntities.every(isFieldTouched) : fieldEntities.some(isFieldTouched);\n }\n // Generate a nest tree for validate\n var map = new NameMap();\n namePathList.forEach(function (shortNamePath) {\n map.set(shortNamePath, []);\n });\n fieldEntities.forEach(function (field) {\n var fieldNamePath = field.getNamePath();\n // Find matched entity and put into list\n namePathList.forEach(function (shortNamePath) {\n if (shortNamePath.every(function (nameUnit, i) {\n return fieldNamePath[i] === nameUnit;\n })) {\n map.update(shortNamePath, function (list) {\n return [].concat(_toConsumableArray(list), [field]);\n });\n }\n });\n });\n // Check if NameMap value is touched\n var isNamePathListTouched = function isNamePathListTouched(entities) {\n return entities.some(isFieldTouched);\n };\n var namePathListEntities = map.map(function (_ref2) {\n var value = _ref2.value;\n return value;\n });\n return isAllFieldsTouched ? namePathListEntities.every(isNamePathListTouched) : namePathListEntities.some(isNamePathListTouched);\n };\n this.isFieldTouched = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsTouched([name]);\n };\n this.isFieldsValidating = function (nameList) {\n _this.warningUnhooked();\n var fieldEntities = _this.getFieldEntities();\n if (!nameList) {\n return fieldEntities.some(function (testField) {\n return testField.isFieldValidating();\n });\n }\n var namePathList = nameList.map(getNamePath);\n return fieldEntities.some(function (testField) {\n var fieldNamePath = testField.getNamePath();\n return containsNamePath(namePathList, fieldNamePath) && testField.isFieldValidating();\n });\n };\n this.isFieldValidating = function (name) {\n _this.warningUnhooked();\n return _this.isFieldsValidating([name]);\n };\n this.resetWithFieldInitialValue = function () {\n var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Create cache\n var cache = new NameMap();\n var fieldEntities = _this.getFieldEntities(true);\n fieldEntities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n var namePath = field.getNamePath();\n // Record only if has `initialValue`\n if (initialValue !== undefined) {\n var records = cache.get(namePath) || new Set();\n records.add({\n entity: field,\n value: initialValue\n });\n cache.set(namePath, records);\n }\n });\n // Reset\n var resetWithFields = function resetWithFields(entities) {\n entities.forEach(function (field) {\n var initialValue = field.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = field.getNamePath();\n var formInitialValue = _this.getInitialValue(namePath);\n if (formInitialValue !== undefined) {\n // Warning if conflict with form initialValues and do not modify value\n warning(false, \"Form already set 'initialValues' with path '\".concat(namePath.join('.'), \"'. Field can not overwrite it.\"));\n } else {\n var records = cache.get(namePath);\n if (records && records.size > 1) {\n // Warning if multiple field set `initialValue`and do not modify value\n warning(false, \"Multiple Field with path '\".concat(namePath.join('.'), \"' set 'initialValue'. Can not decide which one to pick.\"));\n } else if (records) {\n var originValue = _this.getFieldValue(namePath);\n // Set `initialValue`\n if (!info.skipExist || originValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, _toConsumableArray(records)[0].value));\n }\n }\n }\n }\n });\n };\n var requiredFieldEntities;\n if (info.entities) {\n requiredFieldEntities = info.entities;\n } else if (info.namePathList) {\n requiredFieldEntities = [];\n info.namePathList.forEach(function (namePath) {\n var records = cache.get(namePath);\n if (records) {\n var _requiredFieldEntitie;\n (_requiredFieldEntitie = requiredFieldEntities).push.apply(_requiredFieldEntitie, _toConsumableArray(_toConsumableArray(records).map(function (r) {\n return r.entity;\n })));\n }\n });\n } else {\n requiredFieldEntities = fieldEntities;\n }\n resetWithFields(requiredFieldEntities);\n };\n this.resetFields = function (nameList) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (!nameList) {\n _this.updateStore(setValues({}, _this.initialValues));\n _this.resetWithFieldInitialValue();\n _this.notifyObservers(prevStore, null, {\n type: 'reset'\n });\n _this.notifyWatch();\n return;\n }\n // Reset by `nameList`\n var namePathList = nameList.map(getNamePath);\n namePathList.forEach(function (namePath) {\n var initialValue = _this.getInitialValue(namePath);\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n });\n _this.resetWithFieldInitialValue({\n namePathList: namePathList\n });\n _this.notifyObservers(prevStore, namePathList, {\n type: 'reset'\n });\n _this.notifyWatch(namePathList);\n };\n this.setFields = function (fields) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n var namePathList = [];\n fields.forEach(function (fieldData) {\n var name = fieldData.name,\n errors = fieldData.errors,\n data = _objectWithoutProperties(fieldData, _excluded);\n var namePath = getNamePath(name);\n namePathList.push(namePath);\n // Value\n if ('value' in data) {\n _this.updateStore(setValue(_this.store, namePath, data.value));\n }\n _this.notifyObservers(prevStore, [namePath], {\n type: 'setField',\n data: fieldData\n });\n });\n _this.notifyWatch(namePathList);\n };\n this.getFields = function () {\n var entities = _this.getFieldEntities(true);\n var fields = entities.map(function (field) {\n var namePath = field.getNamePath();\n var meta = field.getMeta();\n var fieldData = _objectSpread(_objectSpread({}, meta), {}, {\n name: namePath,\n value: _this.getFieldValue(namePath)\n });\n Object.defineProperty(fieldData, 'originRCField', {\n value: true\n });\n return fieldData;\n });\n return fields;\n };\n this.initEntityValue = function (entity) {\n var initialValue = entity.props.initialValue;\n if (initialValue !== undefined) {\n var namePath = entity.getNamePath();\n var prevValue = getValue(_this.store, namePath);\n if (prevValue === undefined) {\n _this.updateStore(setValue(_this.store, namePath, initialValue));\n }\n }\n };\n this.isMergedPreserve = function (fieldPreserve) {\n var mergedPreserve = fieldPreserve !== undefined ? fieldPreserve : _this.preserve;\n return mergedPreserve !== null && mergedPreserve !== void 0 ? mergedPreserve : true;\n };\n this.registerField = function (entity) {\n _this.fieldEntities.push(entity);\n var namePath = entity.getNamePath();\n _this.notifyWatch([namePath]);\n // Set initial values\n if (entity.props.initialValue !== undefined) {\n var prevStore = _this.store;\n _this.resetWithFieldInitialValue({\n entities: [entity],\n skipExist: true\n });\n _this.notifyObservers(prevStore, [entity.getNamePath()], {\n type: 'valueUpdate',\n source: 'internal'\n });\n }\n // un-register field callback\n return function (isListField, preserve) {\n var subNamePath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n _this.fieldEntities = _this.fieldEntities.filter(function (item) {\n return item !== entity;\n });\n // Clean up store value if not preserve\n if (!_this.isMergedPreserve(preserve) && (!isListField || subNamePath.length > 1)) {\n var defaultValue = isListField ? undefined : _this.getInitialValue(namePath);\n if (namePath.length && _this.getFieldValue(namePath) !== defaultValue && _this.fieldEntities.every(function (field) {\n return (\n // Only reset when no namePath exist\n !matchNamePath(field.getNamePath(), namePath)\n );\n })) {\n var _prevStore = _this.store;\n _this.updateStore(setValue(_prevStore, namePath, defaultValue, true));\n // Notify that field is unmount\n _this.notifyObservers(_prevStore, [namePath], {\n type: 'remove'\n });\n // Dependencies update\n _this.triggerDependenciesUpdate(_prevStore, namePath);\n }\n }\n _this.notifyWatch([namePath]);\n };\n };\n this.dispatch = function (action) {\n switch (action.type) {\n case 'updateValue':\n {\n var namePath = action.namePath,\n value = action.value;\n _this.updateValue(namePath, value);\n break;\n }\n case 'validateField':\n {\n var _namePath = action.namePath,\n triggerName = action.triggerName;\n _this.validateFields([_namePath], {\n triggerName: triggerName\n });\n break;\n }\n default:\n // Currently we don't have other action. Do nothing.\n }\n };\n this.notifyObservers = function (prevStore, namePathList, info) {\n if (_this.subscribable) {\n var mergedInfo = _objectSpread(_objectSpread({}, info), {}, {\n store: _this.getFieldsValue(true)\n });\n _this.getFieldEntities().forEach(function (_ref3) {\n var onStoreChange = _ref3.onStoreChange;\n onStoreChange(prevStore, namePathList, mergedInfo);\n });\n } else {\n _this.forceRootUpdate();\n }\n };\n this.triggerDependenciesUpdate = function (prevStore, namePath) {\n var childrenFields = _this.getDependencyChildrenFields(namePath);\n if (childrenFields.length) {\n _this.validateFields(childrenFields);\n }\n _this.notifyObservers(prevStore, childrenFields, {\n type: 'dependenciesUpdate',\n relatedFields: [namePath].concat(_toConsumableArray(childrenFields))\n });\n return childrenFields;\n };\n this.updateValue = function (name, value) {\n var namePath = getNamePath(name);\n var prevStore = _this.store;\n _this.updateStore(setValue(_this.store, namePath, value));\n _this.notifyObservers(prevStore, [namePath], {\n type: 'valueUpdate',\n source: 'internal'\n });\n _this.notifyWatch([namePath]);\n // Dependencies update\n var childrenFields = _this.triggerDependenciesUpdate(prevStore, namePath);\n // trigger callback function\n var onValuesChange = _this.callbacks.onValuesChange;\n if (onValuesChange) {\n var changedValues = cloneByNamePathList(_this.store, [namePath]);\n onValuesChange(changedValues, _this.getFieldsValue());\n }\n _this.triggerOnFieldsChange([namePath].concat(_toConsumableArray(childrenFields)));\n };\n this.setFieldsValue = function (store) {\n _this.warningUnhooked();\n var prevStore = _this.store;\n if (store) {\n var nextStore = setValues(_this.store, store);\n _this.updateStore(nextStore);\n }\n _this.notifyObservers(prevStore, null, {\n type: 'valueUpdate',\n source: 'external'\n });\n _this.notifyWatch();\n };\n this.setFieldValue = function (name, value) {\n _this.setFields([{\n name: name,\n value: value\n }]);\n };\n this.getDependencyChildrenFields = function (rootNamePath) {\n var children = new Set();\n var childrenFields = [];\n var dependencies2fields = new NameMap();\n /**\n * Generate maps\n * Can use cache to save perf if user report performance issue with this\n */\n _this.getFieldEntities().forEach(function (field) {\n var dependencies = field.props.dependencies;\n (dependencies || []).forEach(function (dependency) {\n var dependencyNamePath = getNamePath(dependency);\n dependencies2fields.update(dependencyNamePath, function () {\n var fields = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : new Set();\n fields.add(field);\n return fields;\n });\n });\n });\n var fillChildren = function fillChildren(namePath) {\n var fields = dependencies2fields.get(namePath) || new Set();\n fields.forEach(function (field) {\n if (!children.has(field)) {\n children.add(field);\n var fieldNamePath = field.getNamePath();\n if (field.isFieldDirty() && fieldNamePath.length) {\n childrenFields.push(fieldNamePath);\n fillChildren(fieldNamePath);\n }\n }\n });\n };\n fillChildren(rootNamePath);\n return childrenFields;\n };\n this.triggerOnFieldsChange = function (namePathList, filedErrors) {\n var onFieldsChange = _this.callbacks.onFieldsChange;\n if (onFieldsChange) {\n var fields = _this.getFields();\n /**\n * Fill errors since `fields` may be replaced by controlled fields\n */\n if (filedErrors) {\n var cache = new NameMap();\n filedErrors.forEach(function (_ref4) {\n var name = _ref4.name,\n errors = _ref4.errors;\n cache.set(name, errors);\n });\n fields.forEach(function (field) {\n // eslint-disable-next-line no-param-reassign\n field.errors = cache.get(field.name) || field.errors;\n });\n }\n var changedFields = fields.filter(function (_ref5) {\n var fieldName = _ref5.name;\n return containsNamePath(namePathList, fieldName);\n });\n onFieldsChange(changedFields, fields);\n }\n };\n this.validateFields = function (nameList, options) {\n _this.warningUnhooked();\n var provideNameList = !!nameList;\n var namePathList = provideNameList ? nameList.map(getNamePath) : [];\n // Collect result in promise list\n var promiseList = [];\n _this.getFieldEntities(true).forEach(function (field) {\n // Add field if not provide `nameList`\n if (!provideNameList) {\n namePathList.push(field.getNamePath());\n }\n /**\n * Recursive validate if configured.\n * TODO: perf improvement @zombieJ\n */\n if ((options === null || options === void 0 ? void 0 : options.recursive) && provideNameList) {\n var namePath = field.getNamePath();\n if (\n // nameList[i] === undefined 说明是以 nameList 开头的\n // ['name'] -> ['name','list']\n namePath.every(function (nameUnit, i) {\n return nameList[i] === nameUnit || nameList[i] === undefined;\n })) {\n namePathList.push(namePath);\n }\n }\n // Skip if without rule\n if (!field.props.rules || !field.props.rules.length) {\n return;\n }\n var fieldNamePath = field.getNamePath();\n // Add field validate rule in to promise list\n if (!provideNameList || containsNamePath(namePathList, fieldNamePath)) {\n var promise = field.validateRules(_objectSpread({\n validateMessages: _objectSpread(_objectSpread({}, defaultValidateMessages), _this.validateMessages)\n }, options));\n // Wrap promise with field\n promiseList.push(promise.then(function () {\n return {\n name: fieldNamePath,\n errors: [],\n warnings: []\n };\n }).catch(function (ruleErrors) {\n var _ruleErrors$forEach;\n var mergedErrors = [];\n var mergedWarnings = [];\n (_ruleErrors$forEach = ruleErrors.forEach) === null || _ruleErrors$forEach === void 0 ? void 0 : _ruleErrors$forEach.call(ruleErrors, function (_ref6) {\n var warningOnly = _ref6.rule.warningOnly,\n errors = _ref6.errors;\n if (warningOnly) {\n mergedWarnings.push.apply(mergedWarnings, _toConsumableArray(errors));\n } else {\n mergedErrors.push.apply(mergedErrors, _toConsumableArray(errors));\n }\n });\n if (mergedErrors.length) {\n return Promise.reject({\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n });\n }\n return {\n name: fieldNamePath,\n errors: mergedErrors,\n warnings: mergedWarnings\n };\n }));\n }\n });\n var summaryPromise = allPromiseFinish(promiseList);\n _this.lastValidatePromise = summaryPromise;\n // Notify fields with rule that validate has finished and need update\n summaryPromise.catch(function (results) {\n return results;\n }).then(function (results) {\n var resultNamePathList = results.map(function (_ref7) {\n var name = _ref7.name;\n return name;\n });\n _this.notifyObservers(_this.store, resultNamePathList, {\n type: 'validateFinish'\n });\n _this.triggerOnFieldsChange(resultNamePathList, results);\n });\n var returnPromise = summaryPromise.then(function () {\n if (_this.lastValidatePromise === summaryPromise) {\n return Promise.resolve(_this.getFieldsValue(namePathList));\n }\n return Promise.reject([]);\n }).catch(function (results) {\n var errorList = results.filter(function (result) {\n return result && result.errors.length;\n });\n return Promise.reject({\n values: _this.getFieldsValue(namePathList),\n errorFields: errorList,\n outOfDate: _this.lastValidatePromise !== summaryPromise\n });\n });\n // Do not throw in console\n returnPromise.catch(function (e) {\n return e;\n });\n return returnPromise;\n };\n this.submit = function () {\n _this.warningUnhooked();\n _this.validateFields().then(function (values) {\n var onFinish = _this.callbacks.onFinish;\n if (onFinish) {\n try {\n onFinish(values);\n } catch (err) {\n // Should print error if user `onFinish` callback failed\n console.error(err);\n }\n }\n }).catch(function (e) {\n var onFinishFailed = _this.callbacks.onFinishFailed;\n if (onFinishFailed) {\n onFinishFailed(e);\n }\n });\n };\n this.forceRootUpdate = forceRootUpdate;\n});\nfunction useForm(form) {\n var formRef = React.useRef();\n var _React$useState = React.useState({}),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n forceUpdate = _React$useState2[1];\n if (!formRef.current) {\n if (form) {\n formRef.current = form;\n } else {\n // Create a new FormStore if not provided\n var forceReRender = function forceReRender() {\n forceUpdate({});\n };\n var formStore = new FormStore(forceReRender);\n formRef.current = formStore.getForm();\n }\n }\n return [formRef.current];\n}\nexport default useForm;","export function allPromiseFinish(promiseList) {\n var hasError = false;\n var count = promiseList.length;\n var results = [];\n if (!promiseList.length) {\n return Promise.resolve([]);\n }\n return new Promise(function (resolve, reject) {\n promiseList.forEach(function (promise, index) {\n promise.catch(function (e) {\n hasError = true;\n return e;\n }).then(function (result) {\n count -= 1;\n results[index] = result;\n if (count > 0) {\n return;\n }\n if (hasError) {\n reject(results);\n }\n resolve(results);\n });\n });\n });\n}","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as React from 'react';\nvar FormContext = /*#__PURE__*/React.createContext({\n triggerFormChange: function triggerFormChange() {},\n triggerFormFinish: function triggerFormFinish() {},\n registerForm: function registerForm() {},\n unregisterForm: function unregisterForm() {}\n});\nvar FormProvider = function FormProvider(_ref) {\n var validateMessages = _ref.validateMessages,\n onFormChange = _ref.onFormChange,\n onFormFinish = _ref.onFormFinish,\n children = _ref.children;\n var formContext = React.useContext(FormContext);\n var formsRef = React.useRef({});\n return /*#__PURE__*/React.createElement(FormContext.Provider, {\n value: _objectSpread(_objectSpread({}, formContext), {}, {\n validateMessages: _objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages),\n // =========================================================\n // = Global Form Control =\n // =========================================================\n triggerFormChange: function triggerFormChange(name, changedFields) {\n if (onFormChange) {\n onFormChange(name, {\n changedFields: changedFields,\n forms: formsRef.current\n });\n }\n formContext.triggerFormChange(name, changedFields);\n },\n triggerFormFinish: function triggerFormFinish(name, values) {\n if (onFormFinish) {\n onFormFinish(name, {\n values: values,\n forms: formsRef.current\n });\n }\n formContext.triggerFormFinish(name, values);\n },\n registerForm: function registerForm(name, form) {\n if (name) {\n formsRef.current = _objectSpread(_objectSpread({}, formsRef.current), {}, _defineProperty({}, name, form));\n }\n formContext.registerForm(name, form);\n },\n unregisterForm: function unregisterForm(name) {\n var newForms = _objectSpread({}, formsRef.current);\n delete newForms[name];\n formsRef.current = newForms;\n formContext.unregisterForm(name);\n }\n })\n }, children);\n};\nexport { FormProvider };\nexport default FormContext;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"name\", \"initialValues\", \"fields\", \"form\", \"preserve\", \"children\", \"component\", \"validateMessages\", \"validateTrigger\", \"onValuesChange\", \"onFieldsChange\", \"onFinish\", \"onFinishFailed\"];\nimport * as React from 'react';\nimport useForm from './useForm';\nimport FieldContext, { HOOK_MARK } from './FieldContext';\nimport FormContext from './FormContext';\nimport { isSimilar } from './utils/valueUtil';\nvar Form = function Form(_ref, ref) {\n var name = _ref.name,\n initialValues = _ref.initialValues,\n fields = _ref.fields,\n form = _ref.form,\n preserve = _ref.preserve,\n children = _ref.children,\n _ref$component = _ref.component,\n Component = _ref$component === void 0 ? 'form' : _ref$component,\n validateMessages = _ref.validateMessages,\n _ref$validateTrigger = _ref.validateTrigger,\n validateTrigger = _ref$validateTrigger === void 0 ? 'onChange' : _ref$validateTrigger,\n onValuesChange = _ref.onValuesChange,\n _onFieldsChange = _ref.onFieldsChange,\n _onFinish = _ref.onFinish,\n onFinishFailed = _ref.onFinishFailed,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var formContext = React.useContext(FormContext);\n // We customize handle event since Context will makes all the consumer re-render:\n // https://reactjs.org/docs/context.html#contextprovider\n var _useForm = useForm(form),\n _useForm2 = _slicedToArray(_useForm, 1),\n formInstance = _useForm2[0];\n var _formInstance$getInte = formInstance.getInternalHooks(HOOK_MARK),\n useSubscribe = _formInstance$getInte.useSubscribe,\n setInitialValues = _formInstance$getInte.setInitialValues,\n setCallbacks = _formInstance$getInte.setCallbacks,\n setValidateMessages = _formInstance$getInte.setValidateMessages,\n setPreserve = _formInstance$getInte.setPreserve,\n destroyForm = _formInstance$getInte.destroyForm;\n // Pass ref with form instance\n React.useImperativeHandle(ref, function () {\n return formInstance;\n });\n // Register form into Context\n React.useEffect(function () {\n formContext.registerForm(name, formInstance);\n return function () {\n formContext.unregisterForm(name);\n };\n }, [formContext, formInstance, name]);\n // Pass props to store\n setValidateMessages(_objectSpread(_objectSpread({}, formContext.validateMessages), validateMessages));\n setCallbacks({\n onValuesChange: onValuesChange,\n onFieldsChange: function onFieldsChange(changedFields) {\n formContext.triggerFormChange(name, changedFields);\n if (_onFieldsChange) {\n for (var _len = arguments.length, rest = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n rest[_key - 1] = arguments[_key];\n }\n _onFieldsChange.apply(void 0, [changedFields].concat(rest));\n }\n },\n onFinish: function onFinish(values) {\n formContext.triggerFormFinish(name, values);\n if (_onFinish) {\n _onFinish(values);\n }\n },\n onFinishFailed: onFinishFailed\n });\n setPreserve(preserve);\n // Set initial value, init store value when first mount\n var mountRef = React.useRef(null);\n setInitialValues(initialValues, !mountRef.current);\n if (!mountRef.current) {\n mountRef.current = true;\n }\n React.useEffect(function () {\n return destroyForm;\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Prepare children by `children` type\n var childrenNode;\n var childrenRenderProps = typeof children === 'function';\n if (childrenRenderProps) {\n var values = formInstance.getFieldsValue(true);\n childrenNode = children(values, formInstance);\n } else {\n childrenNode = children;\n }\n // Not use subscribe when using render props\n useSubscribe(!childrenRenderProps);\n // Listen if fields provided. We use ref to save prev data here to avoid additional render\n var prevFieldsRef = React.useRef();\n React.useEffect(function () {\n if (!isSimilar(prevFieldsRef.current || [], fields || [])) {\n formInstance.setFields(fields || []);\n }\n prevFieldsRef.current = fields;\n }, [fields, formInstance]);\n var formContextValue = React.useMemo(function () {\n return _objectSpread(_objectSpread({}, formInstance), {}, {\n validateTrigger: validateTrigger\n });\n }, [formInstance, validateTrigger]);\n var wrapperNode = /*#__PURE__*/React.createElement(FieldContext.Provider, {\n value: formContextValue\n }, childrenNode);\n if (Component === false) {\n return wrapperNode;\n }\n return /*#__PURE__*/React.createElement(Component, _extends({}, restProps, {\n onSubmit: function onSubmit(event) {\n event.preventDefault();\n event.stopPropagation();\n formInstance.submit();\n },\n onReset: function onReset(event) {\n var _restProps$onReset;\n event.preventDefault();\n formInstance.resetFields();\n (_restProps$onReset = restProps.onReset) === null || _restProps$onReset === void 0 ? void 0 : _restProps$onReset.call(restProps, event);\n }\n }), wrapperNode);\n};\nexport default Form;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport { FieldContext } from '.';\nimport warning from \"rc-util/es/warning\";\nimport { HOOK_MARK } from './FieldContext';\nimport { useState, useContext, useEffect, useRef, useMemo } from 'react';\nimport { getNamePath, getValue } from './utils/valueUtil';\nexport function stringify(value) {\n try {\n return JSON.stringify(value);\n } catch (err) {\n return Math.random();\n }\n}\nfunction useWatch() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var _args$ = args[0],\n dependencies = _args$ === void 0 ? [] : _args$,\n form = args[1];\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var valueStr = useMemo(function () {\n return stringify(value);\n }, [value]);\n var valueStrRef = useRef(valueStr);\n valueStrRef.current = valueStr;\n var fieldContext = useContext(FieldContext);\n var formInstance = form || fieldContext;\n var isValidForm = formInstance && formInstance._init;\n // Warning if not exist form instance\n if (process.env.NODE_ENV !== 'production') {\n warning(args.length === 2 ? form ? isValidForm : true : isValidForm, 'useWatch requires a form instance since it can not auto detect from context.');\n }\n var namePath = getNamePath(dependencies);\n var namePathRef = useRef(namePath);\n namePathRef.current = namePath;\n useEffect(function () {\n // Skip if not exist form instance\n if (!isValidForm) {\n return;\n }\n var getFieldsValue = formInstance.getFieldsValue,\n getInternalHooks = formInstance.getInternalHooks;\n var _getInternalHooks = getInternalHooks(HOOK_MARK),\n registerWatch = _getInternalHooks.registerWatch;\n var cancelRegister = registerWatch(function (store) {\n var newValue = getValue(store, namePathRef.current);\n var nextValueStr = stringify(newValue);\n // Compare stringify in case it's nest object\n if (valueStrRef.current !== nextValueStr) {\n valueStrRef.current = nextValueStr;\n setValue(newValue);\n }\n });\n // TODO: We can improve this perf in future\n var initialValue = getValue(getFieldsValue(), namePathRef.current);\n setValue(initialValue);\n return cancelRegister;\n },\n // We do not need re-register since namePath content is the same\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isValidForm]);\n return value;\n}\nexport default useWatch;","import * as React from 'react';\nimport Field from './Field';\nimport List from './List';\nimport useForm from './useForm';\nimport FieldForm from './Form';\nimport { FormProvider } from './FormContext';\nimport FieldContext from './FieldContext';\nimport ListContext from './ListContext';\nimport useWatch from './useWatch';\nvar InternalForm = /*#__PURE__*/React.forwardRef(FieldForm);\nvar RefForm = InternalForm;\nRefForm.FormProvider = FormProvider;\nRefForm.Field = Field;\nRefForm.List = List;\nRefForm.useForm = useForm;\nRefForm.useWatch = useWatch;\nexport { Field, List, useForm, FormProvider, FieldContext, ListContext, useWatch };\nexport default RefForm;","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport canUseDOM from \"rc-util/es/Dom/canUseDom\"; // ================= Transition =================\n// Event wrapper. Copy from react source code\n\nfunction makePrefixMap(styleProp, eventName) {\n var prefixes = {};\n prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();\n prefixes[\"Webkit\".concat(styleProp)] = \"webkit\".concat(eventName);\n prefixes[\"Moz\".concat(styleProp)] = \"moz\".concat(eventName);\n prefixes[\"ms\".concat(styleProp)] = \"MS\".concat(eventName);\n prefixes[\"O\".concat(styleProp)] = \"o\".concat(eventName.toLowerCase());\n return prefixes;\n}\n\nexport function getVendorPrefixes(domSupport, win) {\n var prefixes = {\n animationend: makePrefixMap('Animation', 'AnimationEnd'),\n transitionend: makePrefixMap('Transition', 'TransitionEnd')\n };\n\n if (domSupport) {\n if (!('AnimationEvent' in win)) {\n delete prefixes.animationend.animation;\n }\n\n if (!('TransitionEvent' in win)) {\n delete prefixes.transitionend.transition;\n }\n }\n\n return prefixes;\n}\nvar vendorPrefixes = getVendorPrefixes(canUseDOM(), typeof window !== 'undefined' ? window : {});\nvar style = {};\n\nif (canUseDOM()) {\n var _document$createEleme = document.createElement('div');\n\n style = _document$createEleme.style;\n}\n\nvar prefixedEventNames = {};\nexport function getVendorPrefixedEventName(eventName) {\n if (prefixedEventNames[eventName]) {\n return prefixedEventNames[eventName];\n }\n\n var prefixMap = vendorPrefixes[eventName];\n\n if (prefixMap) {\n var stylePropList = Object.keys(prefixMap);\n var len = stylePropList.length;\n\n for (var i = 0; i < len; i += 1) {\n var styleProp = stylePropList[i];\n\n if (Object.prototype.hasOwnProperty.call(prefixMap, styleProp) && styleProp in style) {\n prefixedEventNames[eventName] = prefixMap[styleProp];\n return prefixedEventNames[eventName];\n }\n }\n }\n\n return '';\n}\nvar internalAnimationEndName = getVendorPrefixedEventName('animationend');\nvar internalTransitionEndName = getVendorPrefixedEventName('transitionend');\nexport var supportTransition = !!(internalAnimationEndName && internalTransitionEndName);\nexport var animationEndName = internalAnimationEndName || 'animationend';\nexport var transitionEndName = internalTransitionEndName || 'transitionend';\nexport function getTransitionName(transitionName, transitionType) {\n if (!transitionName) return null;\n\n if (_typeof(transitionName) === 'object') {\n var type = transitionType.replace(/-\\w/g, function (match) {\n return match[1].toUpperCase();\n });\n return transitionName[type];\n }\n\n return \"\".concat(transitionName, \"-\").concat(transitionType);\n}","export var STATUS_NONE = 'none';\nexport var STATUS_APPEAR = 'appear';\nexport var STATUS_ENTER = 'enter';\nexport var STATUS_LEAVE = 'leave';\nexport var STEP_NONE = 'none';\nexport var STEP_PREPARE = 'prepare';\nexport var STEP_START = 'start';\nexport var STEP_ACTIVE = 'active';\nexport var STEP_ACTIVATED = 'end';","import { useEffect, useLayoutEffect } from 'react';\nimport canUseDom from \"rc-util/es/Dom/canUseDom\"; // It's safe to use `useLayoutEffect` but the warning is annoying\n\nvar useIsomorphicLayoutEffect = canUseDom() ? useLayoutEffect : useEffect;\nexport default useIsomorphicLayoutEffect;","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STEP_PREPARE, STEP_ACTIVE, STEP_START, STEP_ACTIVATED, STEP_NONE } from '../interface';\nimport useNextFrame from './useNextFrame';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nvar STEP_QUEUE = [STEP_PREPARE, STEP_START, STEP_ACTIVE, STEP_ACTIVATED];\n/** Skip current step */\n\nexport var SkipStep = false;\n/** Current step should be update in */\n\nexport var DoStep = true;\nexport function isActive(step) {\n return step === STEP_ACTIVE || step === STEP_ACTIVATED;\n}\nexport default (function (status, callback) {\n var _useState = useState(STEP_NONE),\n _useState2 = _slicedToArray(_useState, 2),\n step = _useState2[0],\n setStep = _useState2[1];\n\n var _useNextFrame = useNextFrame(),\n _useNextFrame2 = _slicedToArray(_useNextFrame, 2),\n nextFrame = _useNextFrame2[0],\n cancelNextFrame = _useNextFrame2[1];\n\n function startQueue() {\n setStep(STEP_PREPARE, true);\n }\n\n useIsomorphicLayoutEffect(function () {\n if (step !== STEP_NONE && step !== STEP_ACTIVATED) {\n var index = STEP_QUEUE.indexOf(step);\n var nextStep = STEP_QUEUE[index + 1];\n var result = callback(step);\n\n if (result === SkipStep) {\n // Skip when no needed\n setStep(nextStep, true);\n } else {\n // Do as frame for step update\n nextFrame(function (info) {\n function doNext() {\n // Skip since current queue is ood\n if (info.isCanceled()) return;\n setStep(nextStep, true);\n }\n\n if (result === true) {\n doNext();\n } else {\n // Only promise should be async\n Promise.resolve(result).then(doNext);\n }\n });\n }\n }\n }, [status, step]);\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [startQueue, step];\n});","import * as React from 'react';\nimport raf from \"rc-util/es/raf\";\nexport default (function () {\n var nextFrameRef = React.useRef(null);\n\n function cancelNextFrame() {\n raf.cancel(nextFrameRef.current);\n }\n\n function nextFrame(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n cancelNextFrame();\n var nextFrameId = raf(function () {\n if (delay <= 1) {\n callback({\n isCanceled: function isCanceled() {\n return nextFrameId !== nextFrameRef.current;\n }\n });\n } else {\n nextFrame(callback, delay - 1);\n }\n });\n nextFrameRef.current = nextFrameId;\n }\n\n React.useEffect(function () {\n return function () {\n cancelNextFrame();\n };\n }, []);\n return [nextFrame, cancelNextFrame];\n});","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport { useRef, useEffect } from 'react';\nimport useState from \"rc-util/es/hooks/useState\";\nimport { STATUS_APPEAR, STATUS_NONE, STATUS_LEAVE, STATUS_ENTER, STEP_PREPARE, STEP_START, STEP_ACTIVE } from '../interface';\nimport useStepQueue, { DoStep, SkipStep, isActive } from './useStepQueue';\nimport useDomMotionEvents from './useDomMotionEvents';\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect';\nexport default function useStatus(supportMotion, visible, getElement, _ref) {\n var _ref$motionEnter = _ref.motionEnter,\n motionEnter = _ref$motionEnter === void 0 ? true : _ref$motionEnter,\n _ref$motionAppear = _ref.motionAppear,\n motionAppear = _ref$motionAppear === void 0 ? true : _ref$motionAppear,\n _ref$motionLeave = _ref.motionLeave,\n motionLeave = _ref$motionLeave === void 0 ? true : _ref$motionLeave,\n motionDeadline = _ref.motionDeadline,\n motionLeaveImmediately = _ref.motionLeaveImmediately,\n onAppearPrepare = _ref.onAppearPrepare,\n onEnterPrepare = _ref.onEnterPrepare,\n onLeavePrepare = _ref.onLeavePrepare,\n onAppearStart = _ref.onAppearStart,\n onEnterStart = _ref.onEnterStart,\n onLeaveStart = _ref.onLeaveStart,\n onAppearActive = _ref.onAppearActive,\n onEnterActive = _ref.onEnterActive,\n onLeaveActive = _ref.onLeaveActive,\n onAppearEnd = _ref.onAppearEnd,\n onEnterEnd = _ref.onEnterEnd,\n onLeaveEnd = _ref.onLeaveEnd,\n onVisibleChanged = _ref.onVisibleChanged;\n\n // Used for outer render usage to avoid `visible: false & status: none` to render nothing\n var _useState = useState(),\n _useState2 = _slicedToArray(_useState, 2),\n asyncVisible = _useState2[0],\n setAsyncVisible = _useState2[1];\n\n var _useState3 = useState(STATUS_NONE),\n _useState4 = _slicedToArray(_useState3, 2),\n status = _useState4[0],\n setStatus = _useState4[1];\n\n var _useState5 = useState(null),\n _useState6 = _slicedToArray(_useState5, 2),\n style = _useState6[0],\n setStyle = _useState6[1];\n\n var mountedRef = useRef(false);\n var deadlineRef = useRef(null); // =========================== Dom Node ===========================\n\n function getDomElement() {\n return getElement();\n } // ========================== Motion End ==========================\n\n\n var activeRef = useRef(false);\n\n function onInternalMotionEnd(event) {\n var element = getDomElement();\n\n if (event && !event.deadline && event.target !== element) {\n // event exists\n // not initiated by deadline\n // transitionEnd not fired by inner elements\n return;\n }\n\n var currentActive = activeRef.current;\n var canEnd;\n\n if (status === STATUS_APPEAR && currentActive) {\n canEnd = onAppearEnd === null || onAppearEnd === void 0 ? void 0 : onAppearEnd(element, event);\n } else if (status === STATUS_ENTER && currentActive) {\n canEnd = onEnterEnd === null || onEnterEnd === void 0 ? void 0 : onEnterEnd(element, event);\n } else if (status === STATUS_LEAVE && currentActive) {\n canEnd = onLeaveEnd === null || onLeaveEnd === void 0 ? void 0 : onLeaveEnd(element, event);\n } // Only update status when `canEnd` and not destroyed\n\n\n if (status !== STATUS_NONE && currentActive && canEnd !== false) {\n setStatus(STATUS_NONE, true);\n setStyle(null, true);\n }\n }\n\n var _useDomMotionEvents = useDomMotionEvents(onInternalMotionEnd),\n _useDomMotionEvents2 = _slicedToArray(_useDomMotionEvents, 1),\n patchMotionEvents = _useDomMotionEvents2[0]; // ============================= Step =============================\n\n\n var eventHandlers = React.useMemo(function () {\n var _ref2, _ref3, _ref4;\n\n switch (status) {\n case STATUS_APPEAR:\n return _ref2 = {}, _defineProperty(_ref2, STEP_PREPARE, onAppearPrepare), _defineProperty(_ref2, STEP_START, onAppearStart), _defineProperty(_ref2, STEP_ACTIVE, onAppearActive), _ref2;\n\n case STATUS_ENTER:\n return _ref3 = {}, _defineProperty(_ref3, STEP_PREPARE, onEnterPrepare), _defineProperty(_ref3, STEP_START, onEnterStart), _defineProperty(_ref3, STEP_ACTIVE, onEnterActive), _ref3;\n\n case STATUS_LEAVE:\n return _ref4 = {}, _defineProperty(_ref4, STEP_PREPARE, onLeavePrepare), _defineProperty(_ref4, STEP_START, onLeaveStart), _defineProperty(_ref4, STEP_ACTIVE, onLeaveActive), _ref4;\n\n default:\n return {};\n }\n }, [status]);\n\n var _useStepQueue = useStepQueue(status, function (newStep) {\n // Only prepare step can be skip\n if (newStep === STEP_PREPARE) {\n var onPrepare = eventHandlers[STEP_PREPARE];\n\n if (!onPrepare) {\n return SkipStep;\n }\n\n return onPrepare(getDomElement());\n } // Rest step is sync update\n\n\n // Rest step is sync update\n if (step in eventHandlers) {\n var _eventHandlers$step;\n\n setStyle(((_eventHandlers$step = eventHandlers[step]) === null || _eventHandlers$step === void 0 ? void 0 : _eventHandlers$step.call(eventHandlers, getDomElement(), null)) || null);\n }\n\n if (step === STEP_ACTIVE) {\n // Patch events when motion needed\n patchMotionEvents(getDomElement());\n\n if (motionDeadline > 0) {\n clearTimeout(deadlineRef.current);\n deadlineRef.current = setTimeout(function () {\n onInternalMotionEnd({\n deadline: true\n });\n }, motionDeadline);\n }\n }\n\n return DoStep;\n }),\n _useStepQueue2 = _slicedToArray(_useStepQueue, 2),\n startStep = _useStepQueue2[0],\n step = _useStepQueue2[1];\n\n var active = isActive(step);\n activeRef.current = active; // ============================ Status ============================\n // Update with new status\n\n useIsomorphicLayoutEffect(function () {\n setAsyncVisible(visible);\n var isMounted = mountedRef.current;\n mountedRef.current = true;\n\n if (!supportMotion) {\n return;\n }\n\n var nextStatus; // Appear\n\n if (!isMounted && visible && motionAppear) {\n nextStatus = STATUS_APPEAR;\n } // Enter\n\n\n if (isMounted && visible && motionEnter) {\n nextStatus = STATUS_ENTER;\n } // Leave\n\n\n if (isMounted && !visible && motionLeave || !isMounted && motionLeaveImmediately && !visible && motionLeave) {\n nextStatus = STATUS_LEAVE;\n } // Update to next status\n\n\n if (nextStatus) {\n setStatus(nextStatus);\n startStep();\n }\n }, [visible]); // ============================ Effect ============================\n // Reset when motion changed\n\n useEffect(function () {\n if ( // Cancel appear\n status === STATUS_APPEAR && !motionAppear || // Cancel enter\n status === STATUS_ENTER && !motionEnter || // Cancel leave\n status === STATUS_LEAVE && !motionLeave) {\n setStatus(STATUS_NONE);\n }\n }, [motionAppear, motionEnter, motionLeave]);\n useEffect(function () {\n return function () {\n mountedRef.current = false;\n clearTimeout(deadlineRef.current);\n };\n }, []); // Trigger `onVisibleChanged`\n\n var firstMountChangeRef = React.useRef(false);\n useEffect(function () {\n // [visible & motion not end] => [!visible & motion end] still need trigger onVisibleChanged\n if (asyncVisible) {\n firstMountChangeRef.current = true;\n }\n\n if (asyncVisible !== undefined && status === STATUS_NONE) {\n // Skip first render is invisible since it's nothing changed\n if (firstMountChangeRef.current || asyncVisible) {\n onVisibleChanged === null || onVisibleChanged === void 0 ? void 0 : onVisibleChanged(asyncVisible);\n }\n\n firstMountChangeRef.current = true;\n }\n }, [asyncVisible, status]); // ============================ Styles ============================\n\n var mergedStyle = style;\n\n if (eventHandlers[STEP_PREPARE] && step === STEP_START) {\n mergedStyle = _objectSpread({\n transition: 'none'\n }, mergedStyle);\n }\n\n return [status, step, mergedStyle, asyncVisible !== null && asyncVisible !== void 0 ? asyncVisible : visible];\n}","import * as React from 'react';\nimport { useRef } from 'react';\nimport { animationEndName, transitionEndName } from '../util/motion';\nexport default (function (callback) {\n var cacheElementRef = useRef(); // Cache callback\n\n var callbackRef = useRef(callback);\n callbackRef.current = callback; // Internal motion event handler\n\n var onInternalMotionEnd = React.useCallback(function (event) {\n callbackRef.current(event);\n }, []); // Remove events\n\n function removeMotionEvents(element) {\n if (element) {\n element.removeEventListener(transitionEndName, onInternalMotionEnd);\n element.removeEventListener(animationEndName, onInternalMotionEnd);\n }\n } // Patch events\n\n\n function patchMotionEvents(element) {\n if (cacheElementRef.current && cacheElementRef.current !== element) {\n removeMotionEvents(cacheElementRef.current);\n }\n\n if (element && element !== cacheElementRef.current) {\n element.addEventListener(transitionEndName, onInternalMotionEnd);\n element.addEventListener(animationEndName, onInternalMotionEnd); // Save as cache in case dom removed trigger by `motionDeadline`\n\n cacheElementRef.current = element;\n }\n } // Clean up when removed\n\n\n React.useEffect(function () {\n return function () {\n removeMotionEvents(cacheElementRef.current);\n };\n }, []);\n return [patchMotionEvents, removeMotionEvents];\n});","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\n\nvar DomWrapper = /*#__PURE__*/function (_React$Component) {\n _inherits(DomWrapper, _React$Component);\n\n var _super = _createSuper(DomWrapper);\n\n function DomWrapper() {\n _classCallCheck(this, DomWrapper);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(DomWrapper, [{\n key: \"render\",\n value: function render() {\n return this.props.children;\n }\n }]);\n\n return DomWrapper;\n}(React.Component);\n\nexport default DomWrapper;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\n\n/* eslint-disable react/default-props-match-prop-types, react/no-multi-comp, react/prop-types */\nimport * as React from 'react';\nimport { useRef } from 'react';\nimport findDOMNode from \"rc-util/es/Dom/findDOMNode\";\nimport { fillRef, supportRef } from \"rc-util/es/ref\";\nimport classNames from 'classnames';\nimport { getTransitionName, supportTransition } from './util/motion';\nimport { STATUS_NONE, STEP_PREPARE, STEP_START } from './interface';\nimport useStatus from './hooks/useStatus';\nimport DomWrapper from './DomWrapper';\nimport { isActive } from './hooks/useStepQueue';\n/**\n * `transitionSupport` is used for none transition test case.\n * Default we use browser transition event support check.\n */\n\nexport function genCSSMotion(config) {\n var transitionSupport = config;\n\n if (_typeof(config) === 'object') {\n transitionSupport = config.transitionSupport;\n }\n\n function isSupportTransition(props) {\n return !!(props.motionName && transitionSupport);\n }\n\n var CSSMotion = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _props$visible = props.visible,\n visible = _props$visible === void 0 ? true : _props$visible,\n _props$removeOnLeave = props.removeOnLeave,\n removeOnLeave = _props$removeOnLeave === void 0 ? true : _props$removeOnLeave,\n forceRender = props.forceRender,\n children = props.children,\n motionName = props.motionName,\n leavedClassName = props.leavedClassName,\n eventProps = props.eventProps;\n var supportMotion = isSupportTransition(props); // Ref to the react node, it may be a HTMLElement\n\n var nodeRef = useRef(); // Ref to the dom wrapper in case ref can not pass to HTMLElement\n\n var wrapperNodeRef = useRef();\n\n function getDomElement() {\n try {\n // Here we're avoiding call for findDOMNode since it's deprecated\n // in strict mode. We're calling it only when node ref is not\n // an instance of DOM HTMLElement. Otherwise use\n // findDOMNode as a final resort\n return nodeRef.current instanceof HTMLElement ? nodeRef.current : findDOMNode(wrapperNodeRef.current);\n } catch (e) {\n // Only happen when `motionDeadline` trigger but element removed.\n return null;\n }\n }\n\n var _useStatus = useStatus(supportMotion, visible, getDomElement, props),\n _useStatus2 = _slicedToArray(_useStatus, 4),\n status = _useStatus2[0],\n statusStep = _useStatus2[1],\n statusStyle = _useStatus2[2],\n mergedVisible = _useStatus2[3]; // Record whether content has rendered\n // Will return null for un-rendered even when `removeOnLeave={false}`\n\n\n var renderedRef = React.useRef(mergedVisible);\n\n if (mergedVisible) {\n renderedRef.current = true;\n } // ====================== Refs ======================\n\n\n var setNodeRef = React.useCallback(function (node) {\n nodeRef.current = node;\n fillRef(ref, node);\n }, [ref]); // ===================== Render =====================\n\n var motionChildren;\n\n var mergedProps = _objectSpread(_objectSpread({}, eventProps), {}, {\n visible: visible\n });\n\n if (!children) {\n // No children\n motionChildren = null;\n } else if (status === STATUS_NONE || !isSupportTransition(props)) {\n // Stable children\n if (mergedVisible) {\n motionChildren = children(_objectSpread({}, mergedProps), setNodeRef);\n } else if (!removeOnLeave && renderedRef.current) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: leavedClassName\n }), setNodeRef);\n } else if (forceRender) {\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n style: {\n display: 'none'\n }\n }), setNodeRef);\n } else {\n motionChildren = null;\n }\n } else {\n var _classNames;\n\n // In motion\n var statusSuffix;\n\n if (statusStep === STEP_PREPARE) {\n statusSuffix = 'prepare';\n } else if (isActive(statusStep)) {\n statusSuffix = 'active';\n } else if (statusStep === STEP_START) {\n statusSuffix = 'start';\n }\n\n motionChildren = children(_objectSpread(_objectSpread({}, mergedProps), {}, {\n className: classNames(getTransitionName(motionName, status), (_classNames = {}, _defineProperty(_classNames, getTransitionName(motionName, \"\".concat(status, \"-\").concat(statusSuffix)), statusSuffix), _defineProperty(_classNames, motionName, typeof motionName === 'string'), _classNames)),\n style: statusStyle\n }), setNodeRef);\n } // Auto inject ref if child node not have `ref` props\n\n\n if ( /*#__PURE__*/React.isValidElement(motionChildren) && supportRef(motionChildren)) {\n var _motionChildren = motionChildren,\n originNodeRef = _motionChildren.ref;\n\n if (!originNodeRef) {\n motionChildren = /*#__PURE__*/React.cloneElement(motionChildren, {\n ref: setNodeRef\n });\n }\n }\n\n return /*#__PURE__*/React.createElement(DomWrapper, {\n ref: wrapperNodeRef\n }, motionChildren);\n });\n CSSMotion.displayName = 'CSSMotion';\n return CSSMotion;\n}\nexport default genCSSMotion(supportTransition);","import _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nexport var STATUS_ADD = 'add';\nexport var STATUS_KEEP = 'keep';\nexport var STATUS_REMOVE = 'remove';\nexport var STATUS_REMOVED = 'removed';\nexport function wrapKeyToObject(key) {\n var keyObj;\n\n if (key && _typeof(key) === 'object' && 'key' in key) {\n keyObj = key;\n } else {\n keyObj = {\n key: key\n };\n }\n\n return _objectSpread(_objectSpread({}, keyObj), {}, {\n key: String(keyObj.key)\n });\n}\nexport function parseKeys() {\n var keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return keys.map(wrapKeyToObject);\n}\nexport function diffKeys() {\n var prevKeys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var currentKeys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var list = [];\n var currentIndex = 0;\n var currentLen = currentKeys.length;\n var prevKeyObjects = parseKeys(prevKeys);\n var currentKeyObjects = parseKeys(currentKeys); // Check prev keys to insert or keep\n\n prevKeyObjects.forEach(function (keyObj) {\n var hit = false;\n\n for (var i = currentIndex; i < currentLen; i += 1) {\n var currentKeyObj = currentKeyObjects[i];\n\n if (currentKeyObj.key === keyObj.key) {\n // New added keys should add before current key\n if (currentIndex < i) {\n list = list.concat(currentKeyObjects.slice(currentIndex, i).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n currentIndex = i;\n }\n\n list.push(_objectSpread(_objectSpread({}, currentKeyObj), {}, {\n status: STATUS_KEEP\n }));\n currentIndex += 1;\n hit = true;\n break;\n }\n } // If not hit, it means key is removed\n\n\n if (!hit) {\n list.push(_objectSpread(_objectSpread({}, keyObj), {}, {\n status: STATUS_REMOVE\n }));\n }\n }); // Add rest to the list\n\n if (currentIndex < currentLen) {\n list = list.concat(currentKeyObjects.slice(currentIndex).map(function (obj) {\n return _objectSpread(_objectSpread({}, obj), {}, {\n status: STATUS_ADD\n });\n }));\n }\n /**\n * Merge same key when it remove and add again:\n * [1 - add, 2 - keep, 1 - remove] -> [1 - keep, 2 - keep]\n */\n\n\n var keys = {};\n list.forEach(function (_ref) {\n var key = _ref.key;\n keys[key] = (keys[key] || 0) + 1;\n });\n var duplicatedKeys = Object.keys(keys).filter(function (key) {\n return keys[key] > 1;\n });\n duplicatedKeys.forEach(function (matchKey) {\n // Remove `STATUS_REMOVE` node.\n list = list.filter(function (_ref2) {\n var key = _ref2.key,\n status = _ref2.status;\n return key !== matchKey || status !== STATUS_REMOVE;\n }); // Update `STATUS_ADD` to `STATUS_KEEP`\n\n list.forEach(function (node) {\n if (node.key === matchKey) {\n // eslint-disable-next-line no-param-reassign\n node.status = STATUS_KEEP;\n }\n });\n });\n return list;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"component\", \"children\", \"onVisibleChanged\", \"onAllRemoved\"],\n _excluded2 = [\"status\"];\n\n/* eslint react/prop-types: 0 */\nimport * as React from 'react';\nimport OriginCSSMotion from './CSSMotion';\nimport { supportTransition } from './util/motion';\nimport { STATUS_ADD, STATUS_KEEP, STATUS_REMOVE, STATUS_REMOVED, diffKeys, parseKeys } from './util/diff';\nvar MOTION_PROP_NAMES = ['eventProps', 'visible', 'children', 'motionName', 'motionAppear', 'motionEnter', 'motionLeave', 'motionLeaveImmediately', 'motionDeadline', 'removeOnLeave', 'leavedClassName', 'onAppearStart', 'onAppearActive', 'onAppearEnd', 'onEnterStart', 'onEnterActive', 'onEnterEnd', 'onLeaveStart', 'onLeaveActive', 'onLeaveEnd'];\n/**\n * Generate a CSSMotionList component with config\n * @param transitionSupport No need since CSSMotionList no longer depends on transition support\n * @param CSSMotion CSSMotion component\n */\n\nexport function genCSSMotionList(transitionSupport) {\n var CSSMotion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : OriginCSSMotion;\n\n var CSSMotionList = /*#__PURE__*/function (_React$Component) {\n _inherits(CSSMotionList, _React$Component);\n\n var _super = _createSuper(CSSMotionList);\n\n function CSSMotionList() {\n var _this;\n\n _classCallCheck(this, CSSMotionList);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n keyEntities: []\n };\n\n _this.removeKey = function (removeKey) {\n var keyEntities = _this.state.keyEntities;\n var nextKeyEntities = keyEntities.map(function (entity) {\n if (entity.key !== removeKey) return entity;\n return _objectSpread(_objectSpread({}, entity), {}, {\n status: STATUS_REMOVED\n });\n });\n\n _this.setState({\n keyEntities: nextKeyEntities\n });\n\n return nextKeyEntities.filter(function (_ref) {\n var status = _ref.status;\n return status !== STATUS_REMOVED;\n }).length;\n };\n\n return _this;\n }\n\n _createClass(CSSMotionList, [{\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var keyEntities = this.state.keyEntities;\n\n var _this$props = this.props,\n component = _this$props.component,\n children = _this$props.children,\n _onVisibleChanged = _this$props.onVisibleChanged,\n onAllRemoved = _this$props.onAllRemoved,\n restProps = _objectWithoutProperties(_this$props, _excluded);\n\n var Component = component || React.Fragment;\n var motionProps = {};\n MOTION_PROP_NAMES.forEach(function (prop) {\n motionProps[prop] = restProps[prop];\n delete restProps[prop];\n });\n delete restProps.keys;\n return /*#__PURE__*/React.createElement(Component, restProps, keyEntities.map(function (_ref2) {\n var status = _ref2.status,\n eventProps = _objectWithoutProperties(_ref2, _excluded2);\n\n var visible = status === STATUS_ADD || status === STATUS_KEEP;\n return /*#__PURE__*/React.createElement(CSSMotion, _extends({}, motionProps, {\n key: eventProps.key,\n visible: visible,\n eventProps: eventProps,\n onVisibleChanged: function onVisibleChanged(changedVisible) {\n _onVisibleChanged === null || _onVisibleChanged === void 0 ? void 0 : _onVisibleChanged(changedVisible, {\n key: eventProps.key\n });\n\n if (!changedVisible) {\n var restKeysCount = _this2.removeKey(eventProps.key);\n\n if (restKeysCount === 0 && onAllRemoved) {\n onAllRemoved();\n }\n }\n }\n }), children);\n }));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(_ref3, _ref4) {\n var keys = _ref3.keys;\n var keyEntities = _ref4.keyEntities;\n var parsedKeyObjects = parseKeys(keys);\n var mixedKeyEntities = diffKeys(keyEntities, parsedKeyObjects);\n return {\n keyEntities: mixedKeyEntities.filter(function (entity) {\n var prevEntity = keyEntities.find(function (_ref5) {\n var key = _ref5.key;\n return entity.key === key;\n }); // Remove if already mark as removed\n\n if (prevEntity && prevEntity.status === STATUS_REMOVED && entity.status === STATUS_REMOVE) {\n return false;\n }\n\n return true;\n })\n };\n } // ZombieJ: Return the count of rest keys. It's safe to refactor if need more info.\n\n }]);\n\n return CSSMotionList;\n }(React.Component);\n\n CSSMotionList.defaultProps = {\n component: 'div'\n };\n return CSSMotionList;\n}\nexport default genCSSMotionList(supportTransition);","import CSSMotion from './CSSMotion';\nimport CSSMotionList from './CSSMotionList';\nexport { CSSMotionList };\nexport default CSSMotion;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport * as React from 'react';\nimport { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nvar Notice = /*#__PURE__*/function (_Component) {\n _inherits(Notice, _Component);\n var _super = _createSuper(Notice);\n function Notice() {\n var _this;\n _classCallCheck(this, Notice);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.closeTimer = null;\n _this.close = function (e) {\n if (e) {\n e.stopPropagation();\n }\n _this.clearCloseTimer();\n var _this$props = _this.props,\n onClose = _this$props.onClose,\n noticeKey = _this$props.noticeKey;\n if (onClose) {\n onClose(noticeKey);\n }\n };\n _this.startCloseTimer = function () {\n if (_this.props.duration) {\n _this.closeTimer = window.setTimeout(function () {\n _this.close();\n }, _this.props.duration * 1000);\n }\n };\n _this.clearCloseTimer = function () {\n if (_this.closeTimer) {\n clearTimeout(_this.closeTimer);\n _this.closeTimer = null;\n }\n };\n return _this;\n }\n _createClass(Notice, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.startCloseTimer();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (this.props.duration !== prevProps.duration || this.props.updateMark !== prevProps.updateMark ||\n // Visible again need reset timer\n this.props.visible !== prevProps.visible && this.props.visible) {\n this.restartCloseTimer();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearCloseTimer();\n }\n }, {\n key: \"restartCloseTimer\",\n value: function restartCloseTimer() {\n this.clearCloseTimer();\n this.startCloseTimer();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closable = _this$props2.closable,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style,\n onClick = _this$props2.onClick,\n children = _this$props2.children,\n holder = _this$props2.holder;\n var componentClass = \"\".concat(prefixCls, \"-notice\");\n var dataOrAriaAttributeProps = Object.keys(this.props).reduce(function (acc, key) {\n if (key.substr(0, 5) === 'data-' || key.substr(0, 5) === 'aria-' || key === 'role') {\n acc[key] = _this2.props[key];\n }\n return acc;\n }, {});\n var node = /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames(componentClass, className, _defineProperty({}, \"\".concat(componentClass, \"-closable\"), closable)),\n style: style,\n onMouseEnter: this.clearCloseTimer,\n onMouseLeave: this.startCloseTimer,\n onClick: onClick\n }, dataOrAriaAttributeProps), /*#__PURE__*/React.createElement(\"div\", {\n className: \"\".concat(componentClass, \"-content\")\n }, children), closable ? /*#__PURE__*/React.createElement(\"a\", {\n tabIndex: 0,\n onClick: this.close,\n className: \"\".concat(componentClass, \"-close\")\n }, closeIcon || /*#__PURE__*/React.createElement(\"span\", {\n className: \"\".concat(componentClass, \"-close-x\")\n })) : null);\n if (holder) {\n return /*#__PURE__*/ReactDOM.createPortal(node, holder);\n }\n return node;\n }\n }]);\n return Notice;\n}(Component);\nNotice.defaultProps = {\n onClose: function onClose() {},\n duration: 1.5\n};\nexport { Notice as default };","import _regeneratorRuntime from \"@babel/runtime/helpers/esm/regeneratorRuntime\";\nimport _asyncToGenerator from \"@babel/runtime/helpers/esm/asyncToGenerator\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport * as ReactDOM from 'react-dom'; // Let compiler not to search module usage\n\nvar fullClone = _objectSpread({}, ReactDOM);\n\nvar version = fullClone.version,\n reactRender = fullClone.render,\n unmountComponentAtNode = fullClone.unmountComponentAtNode;\nvar createRoot;\n\ntry {\n var mainVersion = Number((version || '').split('.')[0]);\n\n if (mainVersion >= 18) {\n createRoot = fullClone.createRoot;\n }\n} catch (e) {// Do nothing;\n}\n\nfunction toggleWarning(skip) {\n var __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = fullClone.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\n if (__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED && _typeof(__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED) === 'object') {\n __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint = skip;\n }\n}\n\nvar MARK = '__rc_react_root__';\n\nfunction modernRender(node, container) {\n toggleWarning(true);\n var root = container[MARK] || createRoot(container);\n toggleWarning(false);\n root.render(node);\n container[MARK] = root;\n}\n\nfunction legacyRender(node, container) {\n reactRender(node, container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _r(node, container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyRender(node, container);\n }\n}\nexport function render(node, container) {\n if (createRoot) {\n modernRender(node, container);\n return;\n }\n\n legacyRender(node, container);\n} // ========================= Unmount ==========================\n\nfunction modernUnmount(_x) {\n return _modernUnmount.apply(this, arguments);\n}\n\nfunction _modernUnmount() {\n _modernUnmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(container) {\n return _regeneratorRuntime().wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n return _context.abrupt(\"return\", Promise.resolve().then(function () {\n var _container$MARK;\n\n (_container$MARK = container[MARK]) === null || _container$MARK === void 0 ? void 0 : _container$MARK.unmount();\n delete container[MARK];\n }));\n\n case 1:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _modernUnmount.apply(this, arguments);\n}\n\nfunction legacyUnmount(container) {\n unmountComponentAtNode(container);\n}\n/** @private Test usage. Not work in prod */\n\n\nexport function _u(container) {\n if (process.env.NODE_ENV !== 'production') {\n return legacyUnmount(container);\n }\n}\nexport function unmount(_x2) {\n return _unmount.apply(this, arguments);\n}\n\nfunction _unmount() {\n _unmount = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(container) {\n return _regeneratorRuntime().wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(createRoot !== undefined)) {\n _context2.next = 2;\n break;\n }\n\n return _context2.abrupt(\"return\", modernUnmount(container));\n\n case 2:\n legacyUnmount(container);\n\n case 3:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _unmount.apply(this, arguments);\n}","import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nvar _excluded = [\"getContainer\"];\nimport * as React from 'react';\nimport { Component } from 'react';\nimport { render, unmount } from \"rc-util/es/React/render\";\nimport classNames from 'classnames';\nimport { CSSMotionList } from 'rc-motion';\nimport Notice from './Notice';\nimport _useNotification from './useNotification';\nvar seed = 0;\nvar now = Date.now();\nfunction getUuid() {\n var id = seed;\n seed += 1;\n return \"rcNotification_\".concat(now, \"_\").concat(id);\n}\nvar Notification = /*#__PURE__*/function (_Component) {\n _inherits(Notification, _Component);\n var _super = _createSuper(Notification);\n function Notification() {\n var _this;\n _classCallCheck(this, Notification);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _this.state = {\n notices: []\n };\n _this.hookRefs = new Map();\n _this.add = function (originNotice, holderCallback) {\n var _originNotice$key;\n var key = (_originNotice$key = originNotice.key) !== null && _originNotice$key !== void 0 ? _originNotice$key : getUuid();\n var notice = _objectSpread(_objectSpread({}, originNotice), {}, {\n key: key\n });\n var maxCount = _this.props.maxCount;\n _this.setState(function (previousState) {\n var notices = previousState.notices;\n var noticeIndex = notices.map(function (v) {\n return v.notice.key;\n }).indexOf(key);\n var updatedNotices = notices.concat();\n if (noticeIndex !== -1) {\n updatedNotices.splice(noticeIndex, 1, {\n notice: notice,\n holderCallback: holderCallback\n });\n } else {\n if (maxCount && notices.length >= maxCount) {\n // XXX, use key of first item to update new added (let React to move exsiting\n // instead of remove and mount). Same key was used before for both a) external\n // manual control and b) internal react 'key' prop , which is not that good.\n // eslint-disable-next-line no-param-reassign\n // zombieJ: Not know why use `updateKey`. This makes Notice infinite loop in jest.\n // Change to `updateMark` for compare instead.\n // https://github.com/react-component/notification/commit/32299e6be396f94040bfa82517eea940db947ece\n notice.key = updatedNotices[0].notice.key;\n notice.updateMark = getUuid();\n // zombieJ: That's why. User may close by key directly.\n // We need record this but not re-render to avoid upper issue\n // https://github.com/react-component/notification/issues/129\n notice.userPassKey = key;\n updatedNotices.shift();\n }\n updatedNotices.push({\n notice: notice,\n holderCallback: holderCallback\n });\n }\n return {\n notices: updatedNotices\n };\n });\n };\n _this.remove = function (removeKey) {\n _this.setState(function (_ref) {\n var notices = _ref.notices;\n return {\n notices: notices.filter(function (_ref2) {\n var _ref2$notice = _ref2.notice,\n key = _ref2$notice.key,\n userPassKey = _ref2$notice.userPassKey;\n var mergedKey = userPassKey !== null && userPassKey !== void 0 ? userPassKey : key;\n return mergedKey !== removeKey;\n })\n };\n });\n };\n _this.noticePropsMap = {};\n return _this;\n }\n _createClass(Notification, [{\n key: \"getTransitionName\",\n value: function getTransitionName() {\n var _this$props = this.props,\n prefixCls = _this$props.prefixCls,\n animation = _this$props.animation;\n var transitionName = this.props.transitionName;\n if (!transitionName && animation) {\n transitionName = \"\".concat(prefixCls, \"-\").concat(animation);\n }\n return transitionName;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var notices = this.state.notices;\n var _this$props2 = this.props,\n prefixCls = _this$props2.prefixCls,\n className = _this$props2.className,\n closeIcon = _this$props2.closeIcon,\n style = _this$props2.style;\n var noticeKeys = [];\n notices.forEach(function (_ref3, index) {\n var notice = _ref3.notice,\n holderCallback = _ref3.holderCallback;\n var updateMark = index === notices.length - 1 ? notice.updateMark : undefined;\n var key = notice.key,\n userPassKey = notice.userPassKey;\n var noticeProps = _objectSpread(_objectSpread(_objectSpread({\n prefixCls: prefixCls,\n closeIcon: closeIcon\n }, notice), notice.props), {}, {\n key: key,\n noticeKey: userPassKey || key,\n updateMark: updateMark,\n onClose: function onClose(noticeKey) {\n var _notice$onClose;\n _this2.remove(noticeKey);\n (_notice$onClose = notice.onClose) === null || _notice$onClose === void 0 ? void 0 : _notice$onClose.call(notice);\n },\n onClick: notice.onClick,\n children: notice.content\n });\n // Give to motion\n noticeKeys.push(key);\n _this2.noticePropsMap[key] = {\n props: noticeProps,\n holderCallback: holderCallback\n };\n });\n return /*#__PURE__*/React.createElement(\"div\", {\n className: classNames(prefixCls, className),\n style: style\n }, /*#__PURE__*/React.createElement(CSSMotionList, {\n keys: noticeKeys,\n motionName: this.getTransitionName(),\n onVisibleChanged: function onVisibleChanged(changedVisible, _ref4) {\n var key = _ref4.key;\n if (!changedVisible) {\n delete _this2.noticePropsMap[key];\n }\n }\n }, function (_ref5) {\n var key = _ref5.key,\n motionClassName = _ref5.className,\n motionStyle = _ref5.style,\n visible = _ref5.visible;\n var _this2$noticePropsMap = _this2.noticePropsMap[key],\n noticeProps = _this2$noticePropsMap.props,\n holderCallback = _this2$noticePropsMap.holderCallback;\n if (holderCallback) {\n return /*#__PURE__*/React.createElement(\"div\", {\n key: key,\n className: classNames(motionClassName, \"\".concat(prefixCls, \"-hook-holder\")),\n style: _objectSpread({}, motionStyle),\n ref: function ref(div) {\n if (typeof key === 'undefined') {\n return;\n }\n if (div) {\n _this2.hookRefs.set(key, div);\n holderCallback(div, noticeProps);\n } else {\n _this2.hookRefs.delete(key);\n }\n }\n });\n }\n return /*#__PURE__*/React.createElement(Notice, _extends({}, noticeProps, {\n className: classNames(motionClassName, noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.className),\n style: _objectSpread(_objectSpread({}, motionStyle), noticeProps === null || noticeProps === void 0 ? void 0 : noticeProps.style),\n visible: visible\n }));\n }));\n }\n }]);\n return Notification;\n}(Component);\nNotification.newInstance = void 0;\nNotification.defaultProps = {\n prefixCls: 'rc-notification',\n animation: 'fade',\n style: {\n top: 65,\n left: '50%'\n }\n};\nNotification.newInstance = function newNotificationInstance(properties, callback) {\n var _ref6 = properties || {},\n getContainer = _ref6.getContainer,\n props = _objectWithoutProperties(_ref6, _excluded);\n var div = document.createElement('div');\n if (getContainer) {\n var root = getContainer();\n root.appendChild(div);\n } else {\n document.body.appendChild(div);\n }\n var called = false;\n function ref(notification) {\n if (called) {\n return;\n }\n called = true;\n callback({\n notice: function notice(noticeProps) {\n notification.add(noticeProps);\n },\n removeNotice: function removeNotice(key) {\n notification.remove(key);\n },\n component: notification,\n destroy: function destroy() {\n unmount(div);\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n },\n // Hooks\n useNotification: function useNotification() {\n return _useNotification(notification);\n }\n });\n }\n // Only used for test case usage\n if (process.env.NODE_ENV === 'test' && properties.TEST_RENDER) {\n properties.TEST_RENDER( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })));\n return;\n }\n render( /*#__PURE__*/React.createElement(Notification, _extends({}, props, {\n ref: ref\n })), div);\n};\nexport default Notification;","import Notification from './Notification';\nexport default Notification;","import _toConsumableArray from \"@babel/runtime/helpers/esm/toConsumableArray\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\nimport Notice from './Notice';\nexport default function useNotification(notificationInstance) {\n var createdRef = React.useRef({});\n var _React$useState = React.useState([]),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n elements = _React$useState2[0],\n setElements = _React$useState2[1];\n function notify(noticeProps) {\n var firstMount = true;\n notificationInstance.add(noticeProps, function (div, props) {\n var key = props.key;\n if (div && (!createdRef.current[key] || firstMount)) {\n var noticeEle = /*#__PURE__*/React.createElement(Notice, _extends({}, props, {\n holder: div\n }));\n createdRef.current[key] = noticeEle;\n setElements(function (originElements) {\n var index = originElements.findIndex(function (ele) {\n return ele.key === props.key;\n });\n if (index === -1) {\n return [].concat(_toConsumableArray(originElements), [noticeEle]);\n }\n var cloneList = _toConsumableArray(originElements);\n cloneList[index] = noticeEle;\n return cloneList;\n });\n }\n firstMount = false;\n });\n }\n return [notify, /*#__PURE__*/React.createElement(React.Fragment, null, elements)];\n}","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: 'Page',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages',\n page_size: 'Page Size'\n};","import React from 'react';\nimport { isFragment } from 'react-is';\nexport default function toArray(children) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var ret = [];\n React.Children.forEach(children, function (child) {\n if ((child === undefined || child === null) && !option.keepEmpty) {\n return;\n }\n\n if (Array.isArray(child)) {\n ret = ret.concat(toArray(child));\n } else if (isFragment(child) && child.props) {\n ret = ret.concat(toArray(child.props.children, option));\n } else {\n ret.push(child);\n }\n });\n return ret;\n}","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n } // Use native if support\n\n\n if (root.contains) {\n return root.contains(n);\n } // `document.contains` not support with IE11\n\n\n var node = n;\n\n while (node) {\n if (node === root) {\n return true;\n }\n\n node = node.parentNode;\n }\n\n return false;\n}","import canUseDom from './canUseDom';\nimport contains from './contains';\nvar APPEND_ORDER = 'data-rc-order';\nvar MARK_KEY = \"rc-util-key\";\nvar containerCache = new Map();\n\nfunction getMark() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n mark = _ref.mark;\n\n if (mark) {\n return mark.startsWith('data-') ? mark : \"data-\".concat(mark);\n }\n\n return MARK_KEY;\n}\n\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n\n var head = document.querySelector('head');\n return head || document.body;\n}\n\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n\n return prepend ? 'prepend' : 'append';\n}\n/**\n * Find style which inject by rc-util\n */\n\n\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(function (node) {\n return node.tagName === 'STYLE';\n });\n}\n\nexport function injectCSS(css) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!canUseDom()) {\n return null;\n }\n\n var csp = option.csp,\n prepend = option.prepend;\n var styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, getOrder(prepend));\n\n if (csp === null || csp === void 0 ? void 0 : csp.nonce) {\n styleNode.nonce = csp === null || csp === void 0 ? void 0 : csp.nonce;\n }\n\n styleNode.innerHTML = css;\n var container = getContainer(option);\n var firstChild = container.firstChild;\n\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (prepend === 'queue') {\n var existStyle = findStyles(container).filter(function (node) {\n return ['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER));\n });\n\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n } // Use `insertBefore` as `prepend`\n\n\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n\n return styleNode;\n}\n\nfunction findExistNode(key) {\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var container = getContainer(option);\n return findStyles(container).find(function (node) {\n return node.getAttribute(getMark(option)) === key;\n });\n}\n\nexport function removeCSS(key) {\n var _existNode$parentNode;\n\n var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var existNode = findExistNode(key, option);\n existNode === null || existNode === void 0 ? void 0 : (_existNode$parentNode = existNode.parentNode) === null || _existNode$parentNode === void 0 ? void 0 : _existNode$parentNode.removeChild(existNode);\n}\n/**\n * qiankun will inject `appendChild` to insert into other\n */\n\nfunction syncRealContainer(container, option) {\n var cachedRealContainer = containerCache.get(container); // Find real container when not cached or cached container removed\n\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n var placeholderStyle = injectCSS('', option);\n var parentNode = placeholderStyle.parentNode;\n containerCache.set(container, parentNode);\n parentNode.removeChild(placeholderStyle);\n }\n}\n\nexport function updateCSS(css, key) {\n var option = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var container = getContainer(option); // Sync real parent\n\n syncRealContainer(container, option);\n var existNode = findExistNode(key, option);\n\n if (existNode) {\n var _option$csp, _option$csp2;\n\n if (((_option$csp = option.csp) === null || _option$csp === void 0 ? void 0 : _option$csp.nonce) && existNode.nonce !== ((_option$csp2 = option.csp) === null || _option$csp2 === void 0 ? void 0 : _option$csp2.nonce)) {\n var _option$csp3;\n\n existNode.nonce = (_option$csp3 = option.csp) === null || _option$csp3 === void 0 ? void 0 : _option$csp3.nonce;\n }\n\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n\n return existNode;\n }\n\n var newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","import ReactDOM from 'react-dom';\n/**\n * Return if a node is a DOM node. Else will return by `findDOMNode`\n */\n\nexport default function findDOMNode(node) {\n if (node instanceof HTMLElement) {\n return node;\n }\n\n return ReactDOM.findDOMNode(node);\n}","import * as React from 'react';\nexport default function useMemo(getValue, condition, shouldUpdate) {\n var cacheRef = React.useRef({});\n\n if (!('value' in cacheRef.current) || shouldUpdate(cacheRef.current.condition, condition)) {\n cacheRef.current.value = getValue();\n cacheRef.current.condition = condition;\n }\n\n return cacheRef.current.value;\n}","import _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport * as React from 'react';\n/**\n * Same as React.useState but `setState` accept `ignoreDestroy` param to not to setState after destroyed.\n * We do not make this auto is to avoid real memory leak.\n * Developer should confirm it's safe to ignore themselves.\n */\n\nexport default function useSafeState(defaultValue) {\n var destroyRef = React.useRef(false);\n\n var _React$useState = React.useState(defaultValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n\n React.useEffect(function () {\n destroyRef.current = false;\n return function () {\n destroyRef.current = true;\n };\n }, []);\n\n function safeSetState(updater, ignoreDestroy) {\n if (ignoreDestroy && destroyRef.current) {\n return;\n }\n\n setValue(updater);\n }\n\n return [value, safeSetState];\n}","var raf = function raf(callback) {\n return +setTimeout(callback, 16);\n};\n\nvar caf = function caf(num) {\n return clearTimeout(num);\n};\n\nif (typeof window !== 'undefined' && 'requestAnimationFrame' in window) {\n raf = function raf(callback) {\n return window.requestAnimationFrame(callback);\n };\n\n caf = function caf(handle) {\n return window.cancelAnimationFrame(handle);\n };\n}\n\nvar rafUUID = 0;\nvar rafIds = new Map();\n\nfunction cleanup(id) {\n rafIds.delete(id);\n}\n\nexport default function wrapperRaf(callback) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n rafUUID += 1;\n var id = rafUUID;\n\n function callRef(leftTimes) {\n if (leftTimes === 0) {\n // Clean up\n cleanup(id); // Trigger\n\n callback();\n } else {\n // Next raf\n var realId = raf(function () {\n callRef(leftTimes - 1);\n }); // Bind real raf id\n\n rafIds.set(id, realId);\n }\n }\n\n callRef(times);\n return id;\n}\n\nwrapperRaf.cancel = function (id) {\n var realId = rafIds.get(id);\n cleanup(realId);\n return caf(realId);\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport { isMemo } from 'react-is';\nimport useMemo from './hooks/useMemo';\nexport function fillRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {\n ref.current = node;\n }\n}\n/**\n * Merge refs into one ref function to support ref passing.\n */\n\nexport function composeRef() {\n for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {\n refs[_key] = arguments[_key];\n }\n\n var refList = refs.filter(function (ref) {\n return ref;\n });\n\n if (refList.length <= 1) {\n return refList[0];\n }\n\n return function (node) {\n refs.forEach(function (ref) {\n fillRef(ref, node);\n });\n };\n}\nexport function useComposeRef() {\n for (var _len2 = arguments.length, refs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n refs[_key2] = arguments[_key2];\n }\n\n return useMemo(function () {\n return composeRef.apply(void 0, refs);\n }, refs, function (prev, next) {\n return prev.length === next.length && prev.every(function (ref, i) {\n return ref === next[i];\n });\n });\n}\nexport function supportRef(nodeOrComponent) {\n var _type$prototype, _nodeOrComponent$prot;\n\n var type = isMemo(nodeOrComponent) ? nodeOrComponent.type.type : nodeOrComponent.type; // Function component node\n\n if (typeof type === 'function' && !((_type$prototype = type.prototype) === null || _type$prototype === void 0 ? void 0 : _type$prototype.render)) {\n return false;\n } // Class component\n\n\n if (typeof nodeOrComponent === 'function' && !((_nodeOrComponent$prot = nodeOrComponent.prototype) === null || _nodeOrComponent$prot === void 0 ? void 0 : _nodeOrComponent$prot.render)) {\n return false;\n }\n\n return true;\n}\n/* eslint-enable */","/* eslint-disable no-console */\nvar warned = {};\nexport function warning(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.error(\"Warning: \".concat(message));\n }\n}\nexport function note(valid, message) {\n // Support uglify\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n console.warn(\"Note: \".concat(message));\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nexport default warningOnce;\n/* eslint-enable */","/**\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;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}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||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",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<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";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<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){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;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 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 b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;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<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=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.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=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<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=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\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(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<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;function Lg(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}var Mg=Uf(null),Ng=null,Og=null,Pg=null;function Qg(){Pg=Og=Ng=null}function Rg(a){var b=Mg.current;E(Mg);a._currentValue=b}\nfunction Sg(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}}function Tg(a,b){Ng=a;Pg=Og=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(Ug=!0),a.firstContext=null)}\nfunction Vg(a){var b=a._currentValue;if(Pg!==a)if(a={context:a,memoizedValue:b,next:null},null===Og){if(null===Ng)throw Error(p(308));Og=a;Ng.dependencies={lanes:0,firstContext:a}}else Og=Og.next=a;return b}var Wg=null;function Xg(a){null===Wg?Wg=[a]:Wg.push(a)}function Yg(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,Xg(b)):(c.next=e.next,e.next=c);b.interleaved=c;return Zg(a,d)}\nfunction Zg(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 $g=!1;function ah(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction bh(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 ch(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction dh(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 Zg(a,c)}e=d.interleaved;null===e?(b.next=b,Xg(d)):(b.next=e.next,e.next=b);d.interleaved=b;return Zg(a,c)}function eh(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 fh(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 gh(a,b,c,d){var e=a.updateQueue;$g=!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:$g=!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);hh|=g;a.lanes=g;a.memoizedState=q}}\nfunction ih(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var jh=(new aa.Component).refs;function kh(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar nh={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=L(),e=lh(a),f=ch(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=dh(a,f,e);null!==b&&(mh(b,a,e,d),eh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=L(),d=\nlh(a),e=ch(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=dh(a,e,d);null!==b&&(mh(b,a,d,c),eh(b,a,d))}};function oh(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction ph(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=Vg(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=nh;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction qh(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&nh.enqueueReplaceState(b,b.state,null)}\nfunction rh(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs=jh;ah(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=Vg(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(kh(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&nh.enqueueReplaceState(e,e.state,null),gh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}\nfunction sh(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;b===jh&&(b=e.refs={});null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction th(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function uh(a){var b=a._init;return b(a._payload)}\nfunction vh(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=wh(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=xh(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&uh(f)===b.type))return d=e(b,c.props),d.ref=sh(a,b,c),d.return=a,d;d=yh(c.type,c.key,c.props,null,a.mode,d);d.ref=sh(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=zh(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Ah(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=xh(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=yh(b.type,b.key,b.props,null,a.mode,c),\nc.ref=sh(a,null,b),c.return=a,c;case wa:return b=zh(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Ah(b,a.mode,c,null),b.return=a,b;th(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);th(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);th(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>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(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;a<Nh.length;a++)Nh[a]._workInProgressVersionPrimary=null;Nh.length=0}var Ph=ua.ReactCurrentDispatcher,Qh=ua.ReactCurrentBatchConfig,Rh=0,N=null,O=null,P=null,Sh=!1,Th=!1,Uh=0,Vh=0;function Q(){throw Error(p(321));}function Wh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Xh(a,b,c,d,e,f){Rh=f;N=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Ph.current=null===a||null===a.memoizedState?Yh:Zh;a=c(d,e);if(Th){f=0;do{Th=!1;Uh=0;if(25<=f)throw Error(p(301));f+=1;P=O=null;b.updateQueue=null;Ph.current=$h;a=c(d,e)}while(Th)}Ph.current=ai;b=null!==O&&null!==O.next;Rh=0;P=O=N=null;Sh=!1;if(b)throw Error(p(300));return a}function bi(){var a=0!==Uh;Uh=0;return a}\nfunction ci(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function di(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(p(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction ei(a,b){return\"function\"===typeof b?b(a):b}\nfunction fi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Rh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;N.lanes|=m;hh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(Ug=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,N.lanes|=f,hh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction gi(a){var b=di(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(Ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function hi(){}\nfunction ii(a,b){var c=N,d=di(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,Ug=!0);d=d.queue;ji(ki.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==P&&P.memoizedState.tag&1){c.flags|=2048;li(9,mi.bind(null,c,d,e,b),void 0,null);if(null===R)throw Error(p(349));0!==(Rh&30)||ni(c,b,e)}return e}function ni(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction mi(a,b,c,d){b.value=c;b.getSnapshot=d;oi(b)&&pi(a)}function ki(a,b,c){return c(function(){oi(b)&&pi(a)})}function oi(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function pi(a){var b=Zg(a,1);null!==b&&mh(b,a,1,-1)}\nfunction qi(a){var b=ci();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ei,lastRenderedState:a};b.queue=a;a=a.dispatch=ri.bind(null,N,a);return[b.memoizedState,a]}\nfunction li(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null,stores:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function si(){return di().memoizedState}function ti(a,b,c,d){var e=ci();N.flags|=a;e.memoizedState=li(1|b,c,void 0,void 0===d?null:d)}\nfunction ui(a,b,c,d){var e=di();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&Wh(d,g.deps)){e.memoizedState=li(b,c,f,d);return}}N.flags|=a;e.memoizedState=li(1|b,c,f,d)}function vi(a,b){return ti(8390656,8,a,b)}function ji(a,b){return ui(2048,8,a,b)}function wi(a,b){return ui(4,2,a,b)}function xi(a,b){return ui(4,4,a,b)}\nfunction yi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function zi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ui(4,4,yi.bind(null,b,a),c)}function Ai(){}function Bi(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Ci(a,b){var c=di();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Wh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Di(a,b,c){if(0===(Rh&21))return a.baseState&&(a.baseState=!1,Ug=!0),a.memoizedState=c;He(c,b)||(c=yc(),N.lanes|=c,hh|=c,a.baseState=!0);return b}function Ei(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Vh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Zh={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:fi,useRef:si,useState:function(){return fi(ei)},\nuseDebugValue:Ai,useDeferredValue:function(a){var b=di();return Di(b,O.memoizedState,a)},useTransition:function(){var a=fi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1},$h={readContext:Vg,useCallback:Bi,useContext:Vg,useEffect:ji,useImperativeHandle:zi,useInsertionEffect:wi,useLayoutEffect:xi,useMemo:Ci,useReducer:gi,useRef:si,useState:function(){return gi(ei)},useDebugValue:Ai,useDeferredValue:function(a){var b=di();return null===\nO?b.memoizedState=a:Di(b,O.memoizedState,a)},useTransition:function(){var a=gi(ei)[0],b=di().memoizedState;return[a,b]},useMutableSource:hi,useSyncExternalStore:ii,useId:Fi,unstable_isNewReconciler:!1};function Ki(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}function Li(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}\nfunction Mi(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Ni=\"function\"===typeof WeakMap?WeakMap:Map;function Oi(a,b,c){c=ch(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Pi||(Pi=!0,Qi=d);Mi(a,b)};return c}\nfunction Ri(a,b,c){c=ch(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Mi(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Mi(a,b);\"function\"!==typeof d&&(null===Si?Si=new Set([this]):Si.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Ti(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Ni;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ui.bind(null,a,b,c),b.then(a,a))}function Vi(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Wi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=ch(-1,1),b.tag=2,dh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Xi=ua.ReactCurrentOwner,Ug=!1;function Yi(a,b,c,d){b.child=null===a?Ch(b,null,c,d):Bh(b,a.child,c,d)}\nfunction Zi(a,b,c,d,e){c=c.render;var f=b.ref;Tg(b,e);d=Xh(a,b,c,d,f,e);c=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&c&&vg(b);b.flags|=1;Yi(a,b,d,e);return b.child}\nfunction aj(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!bj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,cj(a,b,f,d,e);a=yh(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return $i(a,b,e)}b.flags|=1;a=wh(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction cj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(Ug=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(Ug=!0);else return b.lanes=a.lanes,$i(a,b,e)}return dj(a,b,c,d,e)}\nfunction ej(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(fj,gj),gj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(fj,gj),gj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(fj,gj);gj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(fj,gj),gj|=d;Yi(a,b,e,c);return b.child}function hj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function dj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);Tg(b,e);c=Xh(a,b,c,d,f,e);d=bi();if(null!==a&&!Ug)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,$i(a,b,e);I&&d&&vg(b);b.flags|=1;Yi(a,b,c,e);return b.child}\nfunction ij(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;Tg(b,e);if(null===b.stateNode)jj(a,b),ph(b,c,d),rh(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=Vg(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&qh(b,g,d,l);$g=!1;var r=b.memoizedState;g.state=r;gh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||$g?(\"function\"===typeof m&&(kh(b,c,m,d),k=b.memoizedState),(h=$g||oh(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;bh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Lg(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=Vg(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&qh(b,g,d,k);$g=!1;r=b.memoizedState;g.state=r;gh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||$g?(\"function\"===typeof y&&(kh(b,c,y,d),n=b.memoizedState),(l=$g||oh(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return kj(a,b,c,d,f,e)}\nfunction kj(a,b,c,d,e,f){hj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),$i(a,b,f);d=b.stateNode;Xi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Bh(b,a.child,null,f),b.child=Bh(b,null,h,f)):Yi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function lj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);Ih(a,b.containerInfo)}\nfunction mj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Yi(a,b,c,d);return b.child}var nj={dehydrated:null,treeContext:null,retryLane:0};function oj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction pj(a,b,c){var d=b.pendingProps,e=M.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(M,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=qj(g,d,0,null),a=Ah(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=oj(c),b.memoizedState=nj,a):rj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return sj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=wh(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=wh(h,f):(f=Ah(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?oj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=nj;return d}f=a.child;a=f.sibling;d=wh(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction rj(a,b){b=qj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function tj(a,b,c,d){null!==d&&Jg(d);Bh(b,a.child,null,c);a=rj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction sj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Li(Error(p(422))),tj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=qj({mode:\"visible\",children:d.children},e,0,null);f=Ah(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Bh(b,a.child,null,g);b.child.memoizedState=oj(g);b.memoizedState=nj;return f}if(0===(b.mode&1))return tj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Li(f,d,void 0);return tj(a,b,g,d)}h=0!==(g&a.childLanes);if(Ug||h){d=R;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;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:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,Zg(a,e),mh(d,a,e,-1))}uj();d=Li(Error(p(421)));return tj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=vj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=rj(b,d.children);b.flags|=4096;return b}function wj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);Sg(a.return,b,c)}\nfunction xj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction yj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Yi(a,b,d.children,c);d=M.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&wj(a,c,b);else if(19===a.tag)wj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(M,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Mh(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);xj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Mh(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}xj(b,!0,c,null,f);break;case \"together\":xj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction jj(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function $i(a,b,c){null!==a&&(b.dependencies=a.dependencies);hh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=wh(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=wh(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction zj(a,b,c){switch(b.tag){case 3:lj(b);Ig();break;case 5:Kh(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:Ih(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Mg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(M,M.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return pj(a,b,c);G(M,M.current&1);a=$i(a,b,c);return null!==a?a.sibling:null}G(M,M.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return yj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(M,M.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,ej(a,b,c)}return $i(a,b,c)}var Aj,Bj,Cj,Dj;\nAj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Bj=function(){};\nCj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;Hh(Eh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Dj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Ej(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Fj(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;Jh();E(Wf);E(H);Oh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Gj(zg),zg=null));Bj(a,b);S(b);return null;case 5:Lh(b);var e=Hh(Gh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Cj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Dj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=Hh(Gh.current);Hh(Eh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(M);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Gj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(M.current&1)?0===T&&(T=3):uj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return Jh(),\nBj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return Rg(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(M);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Ej(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Mh(a);if(null!==g){b.flags|=128;Ej(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(M,M.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Hj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Yj=!1;break a;case 3:X=h.stateNode.containerInfo;Yj=!0;break a;case 4:X=h.stateNode.containerInfo;Yj=!0;break a}h=h.return}if(null===X)throw Error(p(160));ak(f,g,e);X=null;Yj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)ek(b,a),b=b.sibling}\nfunction ek(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:dk(b,a);fk(a);if(d&4){try{Qj(3,a,a.return),Rj(3,a)}catch(t){W(a,a.return,t)}try{Qj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);break;case 5:dk(b,a);fk(a);d&512&&null!==c&&Mj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:dk(b,a);fk(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:dk(b,a);fk(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:dk(b,a);fk(a);break;case 13:dk(b,a);fk(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(gk=B()));d&4&&bk(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,dk(b,a),U=l):dk(b,a);fk(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Qj(4,r,r.return);break;case 1:Mj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Mj(r,r.return);break;case 22:if(null!==r.memoizedState){hk(q);continue}}null!==y?(y.return=r,V=y):hk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:dk(b,a);fk(a);d&4&&bk(a);break;case 21:break;default:dk(b,\na),fk(a)}}function fk(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Uj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Vj(a);Xj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Vj(a);Wj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function ik(a,b,c){V=a;jk(a,b,c)}\nfunction jk(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Kj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Kj;var l=U;Kj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?kk(e):null!==k?(k.return=g,V=k):kk(e);for(;null!==f;)V=f,jk(f,b,c),f=f.sibling;V=e;Kj=h;U=l}lk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):lk(a,b,c)}}\nfunction lk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Rj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Lg(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&ih(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}ih(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Sj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function hk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction kk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Rj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Sj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Sj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar mk=Math.ceil,nk=ua.ReactCurrentDispatcher,ok=ua.ReactCurrentOwner,pk=ua.ReactCurrentBatchConfig,K=0,R=null,Y=null,Z=0,gj=0,fj=Uf(0),T=0,qk=null,hh=0,rk=0,sk=0,tk=null,uk=null,gk=0,Hj=Infinity,vk=null,Pi=!1,Qi=null,Si=null,wk=!1,xk=null,yk=0,zk=0,Ak=null,Bk=-1,Ck=0;function L(){return 0!==(K&6)?B():-1!==Bk?Bk:Bk=B()}\nfunction lh(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Ck&&(Ck=yc()),Ck;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function mh(a,b,c,d){if(50<zk)throw zk=0,Ak=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==R)a===R&&(0===(K&2)&&(rk|=c),4===T&&Dk(a,Z)),Ek(a,d),1===c&&0===K&&0===(b.mode&1)&&(Hj=B()+500,fg&&jg())}\nfunction Ek(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===R?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Fk.bind(null,a)):hg(Fk.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Gk(c,Hk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Hk(a,b){Bk=-1;Ck=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Ik()&&a.callbackNode!==c)return null;var d=uc(a,a===R?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Jk(a,d);else{b=d;var e=K;K|=2;var f=Kk();if(R!==a||Z!==b)vk=null,Hj=B()+500,Lk(a,b);do try{Mk();break}catch(h){Nk(a,h)}while(1);Qg();nk.current=f;K=e;null!==Y?b=0:(R=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Ok(a,e)));if(1===b)throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;if(6===b)Dk(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Pk(e)&&(b=Jk(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Ok(a,f))),1===b))throw c=qk,Lk(a,0),Dk(a,d),Ek(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Qk(a,uk,vk);break;case 3:Dk(a,d);if((d&130023424)===d&&(b=gk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){L();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),b);break}Qk(a,uk,vk);break;case 4:Dk(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Qk.bind(null,a,uk,vk),d);break}Qk(a,uk,vk);break;case 5:Qk(a,uk,vk);break;default:throw Error(p(329));}}}Ek(a,B());return a.callbackNode===c?Hk.bind(null,a):null}\nfunction Ok(a,b){var c=tk;a.current.memoizedState.isDehydrated&&(Lk(a,b).flags|=256);a=Jk(a,b);2!==a&&(b=uk,uk=c,null!==b&&Gj(b));return a}function Gj(a){null===uk?uk=a:uk.push.apply(uk,a)}\nfunction Pk(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Dk(a,b){b&=~sk;b&=~rk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Fk(a){if(0!==(K&6))throw Error(p(327));Ik();var b=uc(a,0);if(0===(b&1))return Ek(a,B()),null;var c=Jk(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Ok(a,d))}if(1===c)throw c=qk,Lk(a,0),Dk(a,b),Ek(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Qk(a,uk,vk);Ek(a,B());return null}\nfunction Rk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Hj=B()+500,fg&&jg())}}function Sk(a){null!==xk&&0===xk.tag&&0===(K&6)&&Ik();var b=K;K|=1;var c=pk.transition,d=C;try{if(pk.transition=null,C=1,a)return a()}finally{C=d,pk.transition=c,K=b,0===(K&6)&&jg()}}function Ij(){gj=fj.current;E(fj)}\nfunction Lk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:Jh();E(Wf);E(H);Oh();break;case 5:Lh(d);break;case 4:Jh();break;case 13:E(M);break;case 19:E(M);break;case 10:Rg(d.type._context);break;case 22:case 23:Ij()}c=c.return}R=a;Y=a=wh(a.current,null);Z=gj=b;T=0;qk=null;sk=rk=hh=0;uk=tk=null;if(null!==Wg){for(b=\n0;b<Wg.length;b++)if(c=Wg[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}Wg=null}return a}\nfunction Nk(a,b){do{var c=Y;try{Qg();Ph.current=ai;if(Sh){for(var d=N.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Sh=!1}Rh=0;P=O=N=null;Th=!1;Uh=0;ok.current=null;if(null===c||null===c.return){T=1;qk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Vi(g);if(null!==y){y.flags&=-257;Wi(y,g,h,f,b);y.mode&1&&Ti(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Ti(f,l,b);uj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Vi(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Wi(J,g,h,f,b);Jg(Ki(k,h));break a}}f=k=Ki(k,h);4!==T&&(T=2);null===tk?tk=[f]:tk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Oi(f,k,b);fh(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Si||!Si.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Ri(f,h,b);fh(f,F);break a}}f=f.return}while(null!==f)}Tk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Kk(){var a=nk.current;nk.current=ai;return null===a?ai:a}\nfunction uj(){if(0===T||3===T||2===T)T=4;null===R||0===(hh&268435455)&&0===(rk&268435455)||Dk(R,Z)}function Jk(a,b){var c=K;K|=2;var d=Kk();if(R!==a||Z!==b)vk=null,Lk(a,b);do try{Uk();break}catch(e){Nk(a,e)}while(1);Qg();K=c;nk.current=d;if(null!==Y)throw Error(p(261));R=null;Z=0;return T}function Uk(){for(;null!==Y;)Vk(Y)}function Mk(){for(;null!==Y&&!cc();)Vk(Y)}function Vk(a){var b=Wk(a.alternate,a,gj);a.memoizedProps=a.pendingProps;null===b?Tk(a):Y=b;ok.current=null}\nfunction Tk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Fj(c,b,gj),null!==c){Y=c;return}}else{c=Jj(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Qk(a,b,c){var d=C,e=pk.transition;try{pk.transition=null,C=1,Xk(a,b,c,d)}finally{pk.transition=e,C=d}return null}\nfunction Xk(a,b,c,d){do Ik();while(null!==xk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===R&&(Y=R=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||wk||(wk=!0,Gk(hc,function(){Ik();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=pk.transition;pk.transition=null;\nvar g=C;C=1;var h=K;K|=4;ok.current=null;Pj(a,c);ek(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;ik(c,a,e);dc();K=h;C=g;pk.transition=f}else a.current=c;wk&&(wk=!1,xk=a,yk=e);f=a.pendingLanes;0===f&&(Si=null);mc(c.stateNode,d);Ek(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Pi)throw Pi=!1,a=Qi,Qi=null,a;0!==(yk&1)&&0!==a.tag&&Ik();f=a.pendingLanes;0!==(f&1)?a===Ak?zk++:(zk=0,Ak=a):zk=0;jg();return null}\nfunction Ik(){if(null!==xk){var a=Dc(yk),b=pk.transition,c=C;try{pk.transition=null;C=16>a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Qj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Tj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Qj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Rj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,pk.transition=b}}return!1}function Yk(a,b,c){b=Ki(c,b);b=Oi(a,b,1);a=dh(a,b,1);b=L();null!==a&&(Ac(a,1,b),Ek(a,b))}\nfunction W(a,b,c){if(3===a.tag)Yk(a,a,c);else for(;null!==b;){if(3===b.tag){Yk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Si||!Si.has(d))){a=Ki(c,a);a=Ri(b,a,1);b=dh(b,a,1);a=L();null!==b&&(Ac(b,1,a),Ek(b,a));break}}b=b.return}}\nfunction Ui(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=L();a.pingedLanes|=a.suspendedLanes&c;R===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction el(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction fl(a,b,c,d,e,f,g,h,k){a=cl(c,d,!0,a,e,f,g,h,k);a.context=el(null);c=a.current;d=L();e=lh(c);f=ch(d,e);f.callback=void 0!==b&&null!==b?b:null;dh(c,f,e);a.current.lanes=e;Ac(a,e,d);Ek(a,d);return a}function gl(a,b,c,d){var e=b.current,f=L(),g=lh(e);c=el(c);null===b.context?b.context=c:b.pendingContext=c;b=ch(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=dh(e,b,g);null!==a&&(mh(a,e,g,f),eh(a,e,g));return g}\nfunction hl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function il(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function jl(a,b){il(a,b);(a=a.alternate)&&il(a,b)}function kl(){return null}var ll=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ml(a){this._internalRoot=a}\nnl.prototype.render=ml.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));gl(a,b,null,null)};nl.prototype.unmount=ml.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Sk(function(){gl(null,a,null,null)});b[uf]=null}};function nl(a){this._internalRoot=a}\nnl.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function pl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function ql(){}\nfunction rl(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=hl(g);f.call(a)}}var g=fl(b,d,a,0,null,!1,!1,\"\",ql);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Sk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=hl(k);h.call(a)}}var k=cl(a,0,!1,null,null,!1,!1,\"\",ql);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Sk(function(){gl(b,k,c,d)});return k}\nfunction sl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=hl(g);h.call(a)}}gl(b,g,a,e)}else g=rl(c,b,a,e,d);return hl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Ek(b,B()),0===(K&6)&&(Hj=B()+500,jg()))}break;case 13:Sk(function(){var b=Zg(a,1);if(null!==b){var c=L();mh(b,a,1,c)}}),jl(a,1)}};\nFc=function(a){if(13===a.tag){var b=Zg(a,134217728);if(null!==b){var c=L();mh(b,a,134217728,c)}jl(a,134217728)}};Gc=function(a){if(13===a.tag){var b=lh(a),c=Zg(a,b);if(null!==c){var d=L();mh(c,a,b,d)}jl(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Rk;Hb=Sk;\nvar tl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Rk]},ul={findFiberByHostInstance:Wc,bundleType:0,version:\"18.2.0\",rendererPackageName:\"react-dom\"};\nvar vl={bundleType:ul.bundleType,version:ul.version,rendererPackageName:ul.rendererPackageName,rendererConfig:ul.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:ul.findFiberByHostInstance||\nkl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.2.0-next-9e3b772b8-20220608\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var wl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wl.isDisabled&&wl.supportsFiber)try{kc=wl.inject(vl),lc=wl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!ol(b))throw Error(p(200));return dl(a,b,null,c)};exports.createRoot=function(a,b){if(!ol(a))throw Error(p(299));var c=!1,d=\"\",e=ll;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=cl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ml(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Sk(a)};exports.hydrate=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!ol(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=ll;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=fl(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new nl(b)};exports.render=function(a,b,c){if(!pl(b))throw Error(p(200));return sl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!pl(a))throw Error(p(40));return a._reactRootContainer?(Sk(function(){sl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Rk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!pl(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return sl(a,b,c,!1,d)};exports.version=\"18.2.0-next-9e3b772b8-20220608\";\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","var matchHtmlEntity = /&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g;\nvar htmlEntities = {\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n ''': \"'\",\n ''': \"'\",\n '"': '\"',\n '"': '\"',\n ' ': ' ',\n ' ': ' ',\n '©': '©',\n '©': '©',\n '®': '®',\n '®': '®',\n '…': '…',\n '…': '…',\n '/': '/',\n '/': '/'\n};\n\nvar unescapeHtmlEntity = function unescapeHtmlEntity(m) {\n return htmlEntities[m];\n};\n\nexport var unescape = function unescape(text) {\n return text.replace(matchHtmlEntity, unescapeHtmlEntity);\n};","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { createContext } from 'react';\nimport { unescape } from './unescape';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true,\n unescape: unescape\n};\nvar i18nInstance;\nexport var I18nContext = createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\n}","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\n\nfunction oldI18nextHasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend || i18n.options.resources && !i18n.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\n\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var isNewerI18next = i18n.options.ignoreJSONStructure !== undefined;\n\n if (!isNewerI18next) {\n return oldI18nextHasLoadedNamespace(ns, i18n, options);\n }\n\n return i18n.hasLoadedNamespace(ns, {\n precheck: function precheck(i18nInstance, loadNotPending) {\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18nInstance.services.backendConnector.backend && i18nInstance.isLanguageChangingTo && !loadNotPending(i18nInstance.isLanguageChangingTo, ns)) return false;\n }\n });\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\n\nvar usePrevious = function usePrevious(value, ignore) {\n var ref = useRef();\n useEffect(function () {\n ref.current = ignore ? ref.current : value;\n }, [value, ignore]);\n return ref.current;\n};\n\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var joinedNS = namespaces.join();\n var previousJoinedNS = usePrevious(joinedNS);\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n if (ready && previousJoinedNS && previousJoinedNS !== joinedNS && isMounted.current) {\n setT(getT);\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, joinedNS]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n, keyPrefix]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<BrowserRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a <Router> that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<HashRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\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 event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return <a {...props} />;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware <a>.\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Link> outside a <Router>\");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A <Link> wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <NavLink> outside a <Router>\");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return <Link {...props} />;\n }}\n </RouterContext.Consumer>\n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nconst MAX_SIGNED_31_BIT_INT = 1073741823;\n\nconst commonjsGlobal =\n typeof globalThis !== \"undefined\" // 'global proper'\n ? // eslint-disable-next-line no-undef\n globalThis\n : typeof window !== \"undefined\"\n ? window // Browser\n : typeof global !== \"undefined\"\n ? global // node.js\n : {};\n\nfunction getUniqueId() {\n let key = \"__global_unique_id__\";\n return (commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1);\n}\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n let handlers = [];\n return {\n on(handler) {\n handlers.push(handler);\n },\n\n off(handler) {\n handlers = handlers.filter(h => h !== handler);\n },\n\n get() {\n return value;\n },\n\n set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(handler => handler(value, changedBits));\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nexport default function createReactContext(defaultValue, calculateChangedBits) {\n const contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n class Provider extends React.Component {\n emitter = createEventEmitter(this.props.value);\n\n static childContextTypes = {\n [contextProp]: PropTypes.object.isRequired\n };\n\n getChildContext() {\n return {\n [contextProp]: this.emitter\n };\n }\n\n componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n let oldValue = this.props.value;\n let newValue = nextProps.value;\n let changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits =\n typeof calculateChangedBits === \"function\"\n ? calculateChangedBits(oldValue, newValue)\n : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== \"production\") {\n warning(\n (changedBits & MAX_SIGNED_31_BIT_INT) === changedBits,\n \"calculateChangedBits: Expected the return value to be a \" +\n \"31-bit integer. Instead received: \" +\n changedBits\n );\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n }\n\n render() {\n return this.props.children;\n }\n }\n\n class Consumer extends React.Component {\n static contextTypes = {\n [contextProp]: PropTypes.object\n };\n\n observedBits;\n\n state = {\n value: this.getValue()\n };\n\n componentWillReceiveProps(nextProps) {\n let { observedBits } = nextProps;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n let { observedBits } = this.props;\n this.observedBits =\n observedBits === undefined || observedBits === null\n ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n }\n\n componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n }\n\n getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n }\n\n onUpdate = (newValue, changedBits) => {\n const observedBits = this.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n this.setState({ value: this.getValue() });\n }\n };\n\n render() {\n return onlyChild(this.props.children)(this.state.value);\n }\n }\n\n return {\n Provider,\n Consumer\n };\n}\n","// MIT License\n// Copyright (c) 2019-present StringEpsilon <StringEpsilon@gmail.com>\n// Copyright (c) 2017-2019 James Kyle <me@thejameskyle.com>\n// https://github.com/StringEpsilon/mini-create-react-context\nimport React from \"react\";\nimport createReactContext from \"./miniCreateReactContext\";\n\nexport default React.createContext || createReactContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"./createContext\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNamedContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any <Redirect>s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the <Router> is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n this._pendingLocation = location;\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n }\n });\n }\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n <RouterContext.Provider\n value={{\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }}\n >\n <HistoryContext.Provider\n children={this.props.children || null}\n value={this.props.history}\n />\n </RouterContext.Provider>\n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change <Router history>\"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a <Router> that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return <Router history={this.history} children={this.props.children} />;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<MemoryRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `<Route${path ? ` path=\"${path}\"` : \"\"}>, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Route> outside a <Router>\");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // <Switch> already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n <RouterContext.Provider value={props}>\n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n </RouterContext.Provider>\n );\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use <Route component> and <Route children> in the same route; <Route component> will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use <Route render> and <Route children> in the same route; <Route render> will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use <Route component> and <Route render> in the same route; <Route render> will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Route> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Route> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with <StaticRouter>\", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" <Router>, so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return <Router {...rest} history={history} staticContext={context} />;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \"<StaticRouter> ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first <Route> that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n <RouterContext.Consumer>\n {context => {\n invariant(context, \"You should not use <Switch> outside a <Router>\");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two <Route>s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n </RouterContext.Consumer>\n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n '<Switch> elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n '<Switch> elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nexport default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n var F = function F() {};\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","import _typeof from \"./typeof.js\";\nexport default function _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n defineProperty = Object.defineProperty || function (obj, key, desc) {\n obj[key] = desc.value;\n },\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return defineProperty(generator, \"_invoke\", {\n value: makeInvokeMethod(innerFn, self, context)\n }), generator;\n }\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n exports.wrap = wrap;\n var ContinueSentinel = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n reject(record.arg);\n }\n var previousPromise;\n defineProperty(this, \"_invoke\", {\n value: function value(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n return ContinueSentinel;\n }\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n return next.value = undefined, next.done = !0, next;\n };\n return next.next = next;\n }\n }\n return {\n next: doneResult\n };\n }\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, defineProperty(Gp, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), defineProperty(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (val) {\n var object = Object(val),\n keys = [];\n for (var key in object) {\n keys.push(key);\n }\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _s, _e;\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + {\"10\":\"444e5798\",\"69\":\"2681b122\",\"79\":\"1b41b3a9\",\"104\":\"4ce8502c\",\"202\":\"dcdf0b0e\",\"214\":\"a5111833\",\"236\":\"65e9edf0\",\"278\":\"35d43166\",\"293\":\"e88fcc66\",\"353\":\"6cf5e368\",\"402\":\"a3a5ced6\",\"501\":\"fb248928\",\"515\":\"b7f0a74c\",\"517\":\"de49db26\",\"575\":\"70ef1b15\",\"658\":\"3fdaec19\",\"726\":\"e2e7830f\",\"777\":\"aedb90dd\",\"789\":\"abdef8a3\",\"861\":\"6d7f1304\",\"872\":\"a1ed1346\",\"878\":\"5cef0d69\",\"908\":\"cef3af0c\",\"942\":\"bc838ced\",\"966\":\"9ecba8f0\"}[chunkId] + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + chunkId + \".\" + {\"10\":\"c3f23f5c\",\"69\":\"434b3e99\",\"79\":\"0f7befde\",\"104\":\"1fcd6f76\",\"202\":\"1c99d40d\",\"214\":\"5227c161\",\"236\":\"baedeba3\",\"293\":\"ed945c9a\",\"353\":\"665f8a03\",\"402\":\"2e4e42d0\",\"501\":\"506f0e05\",\"515\":\"fcefac6e\",\"575\":\"f4c21278\",\"777\":\"5c84f0a2\",\"789\":\"fcefac6e\",\"861\":\"7fb2a035\",\"872\":\"16eaccb0\",\"878\":\"d1751754\",\"908\":\"11e67146\",\"942\":\"29ed0f86\",\"966\":\"51b8b827\"}[chunkId] + \".chunk.css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"home-page-ts:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"10\":1,\"69\":1,\"79\":1,\"104\":1,\"202\":1,\"214\":1,\"236\":1,\"293\":1,\"353\":1,\"402\":1,\"501\":1,\"515\":1,\"575\":1,\"777\":1,\"789\":1,\"861\":1,\"872\":1,\"878\":1,\"908\":1,\"942\":1,\"966\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhome_page_ts\"] = self[\"webpackChunkhome_page_ts\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _toArray from '@babel/runtime/helpers/esm/toArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }, {\n key: \"clone\",\n value: function clone(options) {\n options = options || this.options;\n options.prefix = options.prefix || this.prefix;\n return new Logger(this.logger, options);\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && typeof window.navigator.userAgentData === 'undefined' && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (mix === null) return null;\n\n if (path.endsWith(p)) {\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n }\n\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$1() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS || [];\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var returnDetails = options.returnDetails !== undefined ? options.returnDetails : this.options.returnDetails;\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n\n if (returnDetails) {\n resolved.res = \"\".concat(namespace).concat(nsSeparator).concat(key);\n return resolved;\n }\n\n return \"\".concat(namespace).concat(nsSeparator).concat(key);\n }\n\n if (returnDetails) {\n resolved.res = key;\n return resolved;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n var r = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n\n if (returnDetails) {\n resolved.res = r;\n return resolved;\n }\n\n return r;\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, specificDefaultValue) {\n var defaultForMissing = hasDefaultValue && specificDefaultValue !== res ? specificDefaultValue : resForMissing;\n\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, defaultForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, defaultForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language, options).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) {\n if (this.options.compatibilityAPI !== 'v1') {\n res = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? \"\".concat(namespace, \":\").concat(key) : key, usedDefault ? res : undefined);\n } else {\n res = this.options.parseMissingKeyHandler(res);\n }\n }\n }\n\n if (returnDetails) {\n resolved.res = res;\n return resolved;\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), options), resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = typeof res === 'string' && (options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables);\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n\n var needsZeroSuffixLookup = needsPluralHandling && !options.ordinal && options.count === 0 && _this4.pluralResolver.shouldUseIntlApi();\n\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKeys = [key];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n var zeroSuffix = \"\".concat(_this4.options.pluralSeparator, \"zero\");\n\n if (needsPluralHandling) {\n finalKeys.push(key + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(key + zeroSuffix);\n }\n }\n\n if (needsContextHandling) {\n var contextKey = \"\".concat(key).concat(_this4.options.contextSeparator).concat(options.context);\n finalKeys.push(contextKey);\n\n if (needsPluralHandling) {\n finalKeys.push(contextKey + pluralSuffix);\n\n if (needsZeroSuffixLookup) {\n finalKeys.push(contextKey + zeroSuffix);\n }\n }\n }\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables !== undefined ? options.interpolation.skipOnVariables : this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n var matchedVar = match[1].trim();\n value = handleFormat(matchedVar);\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (options && options.hasOwnProperty(matchedVar)) {\n value = '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(matchedVar, \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += value.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n var matchedSingleQuotes = optionsString.match(/'/g);\n var matchedDoubleQuotes = optionsString.match(/\"/g);\n\n if (matchedSingleQuotes && matchedSingleQuotes.length % 2 === 0 && !matchedDoubleQuotes || matchedDoubleQuotes.length % 2 !== 0) {\n optionsString = optionsString.replace(/'/g, '\"');\n }\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _toArray(_opt$split),\n key = _opt$split2[0],\n rest = _opt$split2.slice(1);\n\n var val = rest.join(':').trim().replace(/^'+|'+$/g, '');\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val;\n if (val === 'false') formatOptions[key.trim()] = false;\n if (val === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val)) formatOptions[key.trim()] = parseInt(val, 10);\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nfunction createCachedFormatter(fn) {\n var cache = {};\n return function invokeFormatter(val, lng, options) {\n var key = lng + JSON.stringify(options);\n var formatter = cache[key];\n\n if (!formatter) {\n formatter = fn(lng, options);\n cache[key] = formatter;\n }\n\n return formatter(val);\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, options);\n return function (val) {\n return formatter.format(val);\n };\n }),\n currency: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n }));\n return function (val) {\n return formatter.format(val);\n };\n }),\n datetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.DateTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n }),\n relativetime: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val, options.range || 'day');\n };\n }),\n list: createCachedFormatter(function (lng, options) {\n var formatter = new Intl.ListFormat(lng, _objectSpread$4({}, options));\n return function (val) {\n return formatter.format(val);\n };\n })\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name.toLowerCase().trim()] = fc;\n }\n }, {\n key: \"addCached\",\n value: function addCached(name, fc) {\n this.formats[name.toLowerCase().trim()] = createCachedFormatter(fc);\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$2() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction removePending(q, name) {\n if (q.pending[name] !== undefined) {\n delete q.pending[name];\n q.pendingCount--;\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.waitingReads = [];\n _this.maxParallelReads = options.maxParallelReads || 10;\n _this.readingCalls = 0;\n _this.maxRetries = options.maxRetries >= 0 ? options.maxRetries : 5;\n _this.retryTimeout = options.retryTimeout >= 1 ? options.retryTimeout : 350;\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = {};\n var pending = {};\n var toLoadLanguages = {};\n var toLoadNamespaces = {};\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending[name] === undefined) pending[name] = true;\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending[name] === undefined) pending[name] = true;\n if (toLoad[name] === undefined) toLoad[name] = true;\n if (toLoadNamespaces[ns] === undefined) toLoadNamespaces[ns] = true;\n }\n });\n if (!hasAllNamespaces) toLoadLanguages[lng] = true;\n });\n\n if (Object.keys(toLoad).length || Object.keys(pending).length) {\n this.queue.push({\n pending: pending,\n pendingCount: Object.keys(pending).length,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: Object.keys(toLoad),\n pending: Object.keys(pending),\n toLoadLanguages: Object.keys(toLoadLanguages),\n toLoadNamespaces: Object.keys(toLoadNamespaces)\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n removePending(q, name);\n if (err) q.errors.push(err);\n\n if (q.pendingCount === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = {};\n var loadedKeys = q.loaded[l];\n\n if (loadedKeys.length) {\n loadedKeys.forEach(function (ns) {\n if (loaded[l][ns] === undefined) loaded[l][ns] = true;\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this.retryTimeout;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n\n if (this.readingCalls >= this.maxParallelReads) {\n this.waitingReads.push({\n lng: lng,\n ns: ns,\n fcName: fcName,\n tried: tried,\n wait: wait,\n callback: callback\n });\n return;\n }\n\n this.readingCalls++;\n return this.backend[fcName](lng, ns, function (err, data) {\n _this3.readingCalls--;\n\n if (_this3.waitingReads.length > 0) {\n var next = _this3.waitingReads.shift();\n\n _this3.read(next.lng, next.ns, next.fcName, next.tried, next.wait, next.callback);\n }\n\n if (err && data && tried < _this3.maxRetries) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct$3() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.defaultNS !== false && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n\n if (this.options.compatibilityAPI !== 'v1') {\n this.options.interpolation = _objectSpread$6(_objectSpread$6({}, defOpts.interpolation), this.options.interpolation);\n }\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, function (e) {\n if (!e && !_this3.resolvedLanguage && _this3.language) _this3.setResolvedLanguage(_this3.language);\n usedCallback(e);\n });\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"setResolvedLanguage\",\n value: function setResolvedLanguage(l) {\n if (!l || !this.languages) return;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < this.languages.length; li++) {\n var lngInLngs = this.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (this.store.hasLanguageSomeTranslations(lngInLngs)) {\n this.resolvedLanguage = lngInLngs;\n break;\n }\n }\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n\n _this4.setResolvedLanguage(l);\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n options.keyPrefix = options.keyPrefix || keyPrefix || fixedT.keyPrefix;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = options.keyPrefix ? \"\".concat(options.keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n\n if (options.debug !== undefined || options.prefix !== undefined) {\n clone.logger = clone.logger.clone(options);\n }\n\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","import en from \"./en.json\";\nimport zh from \"./zh.json\";\nimport my from \"./my.json\";\nimport th from \"./th.json\";\nimport id from \"./id.json\";\n\nconst resources = {\n en: {\n translation: en\n },\n zh: {\n translation: zh\n },\n my: {\n translation: my\n },\n th: {\n translation: th\n },\n id: {\n translation: id\n }\n};\n\nexport default resources;\n","import i18n from \"i18next\";\nimport {initReactI18next} from \"react-i18next\";\nimport resources from \"./locales/resources\";\n\nconst lan = window.localStorage.getItem(\"lan\");\n\ni18n\n .use(initReactI18next)\n .init({\n resources,\n lng: lan || \"en\",\n interpolation: {\n escapeValue: false\n }\n });\n\nexport default i18n;\n","// extracted by mini-css-extract-plugin\nexport default {\"home\":\"home_home__6yVBW\",\"start\":\"home_start__wRcij\",\"top\":\"home_top__Uvcgk\",\"big_omi\":\"home_big_omi__sEIk2\",\"button_wrapper\":\"home_button_wrapper__K-ofe\",\"button_loading\":\"home_button_loading__JQ+mI\",\"loading_img\":\"home_loading_img__bPHFi\",\"rotation\":\"home_rotation__z7beU\",\"button_inner\":\"home_button_inner__CSbX2\",\"save1\":\"home_save1__zAF8G\",\"button_one\":\"home_button_one__-O+QC\",\"button_title\":\"home_button_title__kR9Kd\",\"pay_card_wrapper\":\"home_pay_card_wrapper__M+49V\",\"pay_card\":\"home_pay_card__CDebH\",\"center\":\"home_center__X6lxG\",\"content\":\"home_content__LRS2Q\",\"text_wrapper\":\"home_text_wrapper__3pjkt\",\"process_wrapper\":\"home_process_wrapper__ne9J3\",\"cover_div\":\"home_cover_div__jYk2X\",\"modal\":\"home_modal__xWYiq\",\"text1\":\"home_text1__-ix50\",\"text2\":\"home_text2__SSTDK\",\"modal_img\":\"home_modal_img__HMher\",\"text3\":\"home_text3__KLDSZ\",\"text4\":\"home_text4__PpmW2\",\"modal_close\":\"home_modal_close__X9b2k\"};","import React, { FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport styleObj from './home.module.less';\nimport Layout, { LayoutRef } from '../../../components/Layout/Layout';\nimport Footer from '../../../components/Footer/Footer';\nimport Download from '../../../components/Download/Download';\nimport { useChangeOsLanguage } from '../../../hooks';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getApi, getSearchParams, postWithoutAuth, sendPoint } from '../../../util/tool';\nimport Img from '../../../components/Img';\nimport { PAY_CARD } from '../../../const';\nimport { useAuth } from '../../../stores/AuthContext';\n\nconst imgArr: Array<string> = [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkhXRkJRQkdDQ1pBVjNQTUxBUFk0NkpPRUlMU1BBMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMTg2NTUyNjkwOTg1NTcwODMwMSwiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik9USUE0V0pRR1E2MzdMQ1JQT05FTjVZN1ZDUVgyWSIsInciOjY1MCwiaCI6MjM0LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk5MTM5NzE1OTAzNjU4NDI2MSwiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IjNSTUNDRVU1Q01INFJGSFBERUpBWlVSNU1PTEJFNyIsInciOjY1MCwiaCI6NTMzLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk3MjMzMTYyNzQxMDk0ODU0OCwiYWIiOjB9?format=originalOFGHLERTH',\n];\n\nconst vipObj: any = {\n vip: 0,\n seeWhoLikedMe: 1,\n supreme: 2,\n};\n\nconst Home: FC = () => {\n /* 进入官网首页的时候,将系统语言同步到选择的语言 */\n const { t, i18n: { changeLanguage } } = useTranslation();\n const [oSLanguage] = useChangeOsLanguage();\n useEffect(() => {\n changeLanguage(oSLanguage).then();\n window.localStorage.setItem('lan', oSLanguage);\n }, [oSLanguage]);\n\n const history = useHistory();\n const { logged, logout, login } = useAuth();\n\n const location = useLocation();\n const { hash } = location;\n const { location: { search } } = useHistory();\n const [showModal, setShowModal] = useState(false); // 展示接受礼品的弹窗\n const [from, setFrom] = useState(''); // 跳转来源(暂时用不到)\n const [currencyCode, setCurrencyCode] = useState(''); // 货币符号\n const [loading, setLoading] = useState(false); // 登录加载中\n const [vipType, setVipType] = useState<Array<number>>([]); // 会员种类 0 1 2\n const layoutRef = useRef<LayoutRef>(null);\n const centerDiv = useRef<HTMLDivElement | null>(null);\n const homeDiv = useRef<HTMLDivElement | null>(null);\n const processArr = [\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n ];\n const processUnderArr = [\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n ];\n const processWrapper = useRef<HTMLDivElement | null>(null);\n const contentArr = [\n useRef<HTMLDivElement | null>(null),\n useRef<HTMLDivElement | null>(null),\n useRef<HTMLDivElement | null>(null),\n ];\n const [showIndex, setShowIndex] = useState<number>(-1);\n const [start, setStart] = useState<boolean>(false);\n const [backgroundColor, setBackgroundColor] = useState<string>('');\n const cardData = [\n {\n cardContent: t('home.cardContent1'),\n cardUser: t('home.cardUser1'),\n },\n {\n cardContent: t('home.cardContent2'),\n cardUser: t('home.cardUser2'),\n },\n {\n cardContent: t('home.cardContent3'),\n cardUser: t('home.cardUser3'),\n },\n ];\n\n const initData = async () => {\n const searchParams = getSearchParams(search);\n const { token: authToken = '', currencyCode = '', from, canRedeemed, s } = searchParams;\n if (from === 'iosbanner' && canRedeemed === 'true') {\n setFrom('iosBanner');\n setShowModal(true);\n setTimeout(() => {\n const params = { event_name: 'omi_phone_website_free_crush_popup.pageview' };\n if (s === 1) {\n params.show_from = 'message';\n }\n sendPoint(params);\n }, 10000);\n }\n // 如果有URL带来的currencyCode(货币代码),则存入本地\n if (currencyCode) {\n localStorage.setItem('currencyCode', currencyCode);\n setCurrencyCode(currencyCode);\n }\n // 如果有URL带来的authToken,则用其换取accessToken\n if (authToken) { // 如果从App跳转过来\n try {\n const res1 = await postWithoutAuth('/web-api/web-jwt-token', { authToken });\n if (res1?.data?.token) {\n localStorage.setItem('accessToken', res1.data.token); // 存到本地\n history.push('/'); // url上的token,用掉后立即干掉\n }\n } catch (e) {\n console.log(e);\n }\n } else { // 直接进入官网或干掉token后进入官网,以 localStorage 中的 accessToken 为主\n await init();\n }\n };\n\n const init = async () => {\n try {\n // const res2 = await getApi('/web/membership/privileges');\n const res2 = await getApi('/web-api/membership/users/me/simple-privileges');\n if (res2.meta.code === 401000) { // 未登录\n logout();\n setLoading(false);\n } else { // 登录了\n /* 设置登录状态 */\n login();\n setLoading(false);\n /* 设置会员信息 */\n if (res2?.data?.simplePrivileges && Array.isArray(res2?.data?.simplePrivileges)) {\n const resVipType = res2.data.simplePrivileges.map((item: string) => vipObj[item]);\n setVipType(resVipType);\n } else {\n setVipType([]);\n }\n /* 获取到会员信息后打点 */\n sendPoint({\n event_name: 'omi_phone_website_home_page.pageview',\n status: 'logged_in',\n });\n }\n } catch (e) {\n setVipType([]);\n logout();\n }\n };\n\n useEffect(() => {\n if (hash) { // 短信链接跳进来的\n history.push({\n pathname: '/vip',\n state: {\n authToken: hash.substring(1),\n },\n });\n } else {\n initData();\n }\n }, [hash, search]);\n\n const initDataAnimation = async () => {\n const searchParams = getSearchParams(search);\n const { s } = searchParams;\n const params = {\n event_name: 'omi_phone_website_home_page.pageview',\n status: 'un_logged_in',\n };\n if (s === '1') {\n params.show_from = 'message';\n }\n sendPoint(params);\n await startAnimation();\n };\n\n useEffect(() => {\n imgArr.forEach((src) => {\n const img = new Image();\n img.src = src;\n });\n initDataAnimation();\n }, []);\n\n useEffect(() => {\n const homeDom = homeDiv.current; // 用于绑定滚动事件\n const logoDom = layoutRef?.current?.logoDom!; // logo(PC、移动)\n const languageMobileDom = layoutRef?.current?.languageMobileDom!; // 多语下拉框(移动端)\n const menuLogoDom = layoutRef?.current?.menuLogoDom!; // 导航图标(移动端)\n\n const handler = () => {\n const centerDom = centerDiv.current!;\n if (centerDom) {\n const { top, bottom } = centerDom.getBoundingClientRect();\n // 控制渐进反色\n if (top < 20) {\n logoDom && (logoDom.style.height = '0'); // logo\n languageMobileDom && (languageMobileDom.style.height = '0'); // 多语下拉框(移动端)\n menuLogoDom && (menuLogoDom.style.height = '0'); // 导航图标(移动端)\n } else if (top > 42) {\n logoDom && (logoDom.style.height = `${22}px`);\n languageMobileDom && (languageMobileDom.style.height = `${28}px`);\n menuLogoDom && (menuLogoDom.style.height = `${20}px`);\n } else {\n logoDom && (logoDom.style.height = `${top - 20}px`);\n languageMobileDom && (languageMobileDom.style.height = `${top - 20}px`);\n menuLogoDom && (menuLogoDom.style.height = `${top - 20}px`);\n }\n\n // 控制头部背景色渐变\n if (top >= 0 && top <= 56) {\n setBackgroundColor(`rgba(255,255,255,${(56 - top) / 56})`);\n } else if (top < 0) {\n setBackgroundColor('rgb(255,255,255)');\n } else {\n setBackgroundColor('');\n }\n\n // 控制动画开始\n if (bottom < 1.4 * window.innerHeight) {\n setStart(true);\n }\n }\n };\n\n homeDom && homeDom.addEventListener('scroll', handler); // 绑定滚屏事件\n let timeout1: any; let\n timeout2: any;\n if (showIndex !== -1) {\n showCenterContent(showIndex);\n if (showIndex >= 2) {\n timeout1 = setTimeout(() => {\n setShowIndex(0);\n }, 4000);\n } else {\n timeout2 = setTimeout(() => {\n setShowIndex((val) => val + 1);\n }, 4000);\n }\n }\n\n return () => {\n homeDom && homeDom.removeEventListener('scroll', handler);\n clearTimeout(timeout1);\n clearTimeout(timeout2);\n };\n }, [showIndex]);\n\n useEffect(() => {\n if (start) {\n processWrapper.current!.style.display = 'flex';\n processWrapper.current!.classList.add('animate__fadeInUpBig');\n setTimeout(() => {\n setShowIndex(0);\n }, 1000);\n }\n }, [start]);\n\n const showCenterContent = (targetIndex: number) => {\n contentArr.forEach((content, index) => {\n if (index === targetIndex) {\n content.current!.style.opacity = '1';\n } else {\n content.current!.style.opacity = '0';\n }\n });\n processArr.forEach((process, index) => {\n if (index === targetIndex) {\n processUnderArr[index].current!.style.backgroundColor = '#212121';\n process.current!.style.transition = '0s width';\n process.current!.style.width = '0';\n setTimeout(() => {\n process.current!.style.transition = '3900ms width linear';\n process.current!.style.width = '100%';\n }, 100);\n } else if (index > targetIndex) {\n processUnderArr[index].current!.style.backgroundColor = '#212121';\n process.current!.style.transition = '0s width';\n process.current!.style.width = '0';\n } else {\n process.current!.style.transition = '0s width';\n process.current!.style.width = '100%';\n processUnderArr[index].current!.style.backgroundColor = '#16ec9b';\n }\n });\n };\n\n const setAnimation = (dom: HTMLElement, className: string, delay: number = 0): void => {\n setTimeout(() => {\n dom.style.visibility = 'visible';\n dom.classList.add(className);\n }, delay);\n };\n\n const startAnimation = (): Promise<void> => {\n return new Promise<void>((resolve) => {\n setAnimation(layoutRef.current!.headerDiv!, 'animate__fadeInDown');\n setTimeout(() => {\n resolve();\n }, 1100);\n });\n };\n\n const handleAccept = () => {\n try {\n postWithoutAuth('/web-api/core/users/me/web-welfare', { id: '4', status: 'accepted' });\n } catch (e) {\n console.log(e);\n }\n sendPoint({ event_name: 'omi_phone_website_free_crush_popup.click' });\n linkToVip({ getPrize: true });\n };\n\n const linkToVip = (state: object = {}) => {\n if (vipType.includes(1) || vipType.includes(2)) {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 2, ...state } });\n } else {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 1, ...state } });\n }\n };\n\n const renderButton = () => {\n if (!logged) { // 如果未登录,展示的是登录按钮\n return (\n <div\n onClick={\n () => {\n setLoading(true);\n window.location.href = 'omi://payauth';\n setTimeout(() => {\n setLoading(false);\n }, 1500);\n }\n }\n >\n <div className={styleObj.button_inner}>\n {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGIN')}\n <div className={styleObj.save1}>\n {t('h5.OMI_WEBSITE_HOME_PAGE_LOWEST_PRICE')}\n </div>\n </div>\n </div>\n );\n } else {\n return (\n <div\n className={styleObj.button_one}\n onClick={() => linkToVip()}\n >\n {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')}\n <div className={styleObj.save1}>\n {t('h5.OMI_WEBSITE_HOME_PAGE_LOWEST_PRICE')}\n </div>\n </div>\n );\n }\n };\n\n return (\n <Layout\n ref={layoutRef}\n headerStyle={{ backgroundColor, visibility: 'hidden' }}\n isHome\n >\n <div\n ref={homeDiv}\n className={styleObj.home}\n style={{ height: window.innerHeight }}\n >\n {/* 第一屏 */}\n <div className={styleObj.top}>\n <Img\n className={styleObj.big_omi}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkpBUDRMQVBKWlVLMlVPM0dCUDdLTFVGUjVRSUdaRiIsInciOjI1NCwiaCI6MTEyLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTUzMDA3OTIwNDQ5MDQzMzM3ODYsImFiIjowfQ\"\n />\n\n <div className={styleObj.button_wrapper}>\n {\n loading ?\n <div className={styleObj.button_loading}>\n <img\n className={styleObj.loading_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkVYNVhKWEM2WDY1WU5NRkU1NE9BRE1BWTZMSE5RQSIsInciOjUyLCJoIjo1MiwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjUxODE5NzQ0NTY2Mjg4ODUwNywiYWIiOjB9?format=originalOFGHLERTH\"\n alt=\"\"\n />\n {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGINING')}\n </div>\n :\n <div onClick={\n () => {\n sendPoint({\n event_name: 'omi_phone_website_home_page_button.click',\n status: logged ? 'logged_in' : 'un_logged_in',\n });\n }\n }\n >\n {renderButton()}\n </div>\n }\n <div className={styleObj.button_title}>\n {t('home.OMI_PHONE_WEBSITE_HOME_PAGE_PURCHASE_MORE_METHOD')}\n </div>\n <div className={styleObj.pay_card_wrapper}>\n {\n logged && Array.isArray(PAY_CARD[(currencyCode || localStorage.getItem('currencyCode')!)]) &&\n PAY_CARD[(currencyCode || localStorage.getItem('currencyCode')!)].map((src: any) => (<Img\n className={styleObj.pay_card}\n src={src}\n />))\n }\n </div>\n </div>\n </div>\n\n {/* 第二屏 */}\n <div\n className={styleObj.center}\n ref={centerDiv}\n >\n <div className={styleObj.content}>\n <div className={styleObj.text_wrapper}>\n {\n cardData.map(({ cardContent, cardUser }, index) => (\n <div key={index} ref={contentArr[index]}>\n <div>\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkJYWUtRVzNVSzZNNUlQSjNIVllMNlhONVNYSFRKUCIsInciOjEyOCwiaCI6MTM2LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTM4NDg1NjAyNjU0NjE3NjAsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </div>\n <div>{cardContent}</div>\n <div>{cardUser}</div>\n </div>\n ))\n }\n </div>\n <div\n ref={processWrapper}\n className={`${styleObj.process_wrapper} animate__animated`}\n >\n {\n Array.from({ length: 3 }).map((_, index) => (\n <div\n key={index}\n onClick={() => setShowIndex(index)}\n >\n <span ref={processUnderArr[index]} />\n <span ref={processArr[index]} />\n </div>\n ))\n }\n </div>\n </div>\n </div>\n\n {/* 第三屏 */}\n <Download />\n <Footer />\n\n {/* 弹窗 */}\n {\n showModal &&\n <div className={styleObj.cover_div}>\n <div className={styleObj.modal}>\n <div className={styleObj.text1}>{t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_TITLE')}</div>\n <div className={styleObj.text2}>{t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_SUBTITLE')}</div>\n <Img\n className={styleObj.modal_img}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkZBSE5QNjU3V1FVM0lYN1kyR1JUSFpRSEtCVkY3RCIsInciOjQyNiwiaCI6MzIyLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MzA0ODE3NTc1MTM1MTg5OTQyNSwiYWIiOjB9\"\n />\n <div className={styleObj.text3}>Crush X 3</div>\n <div className={styleObj.text4} onClick={handleAccept}>\n {t('home.OMI_PHONE_WEBSITE_FREE_CRUSH_BUTTON')}\n </div>\n <Img\n onClick={() => setShowModal(false)}\n className={styleObj.modal_close}\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IlNMRlhLVk40RjJQTldMVExHWjNLUFM1VjNZQ1FRNyIsInciOjQ4LCJoIjo0OCwiZCI6MCwibXQiOiJpbWFnZS9qcGVnIiwiZGgiOjE0NTEwNjAyMjY4MDE0NzYzNzIsImFiIjowfQ\"\n />\n </div>\n </div>\n }\n </div>\n </Layout>\n );\n};\n\nexport default Home;\n","// extracted by mini-css-extract-plugin\nexport default {\"home\":\"home_home__3mn4H\",\"start\":\"home_start__rZ5Kt\",\"top\":\"home_top__0jRR4\",\"img\":\"home_img__Y6sk5\",\"title_area\":\"home_title_area__I3ygN\",\"button_wrapper\":\"home_button_wrapper__RS1tS\",\"button\":\"home_button__wx0WL\",\"save1\":\"home_save1__B-H7l\",\"save1_text1\":\"home_save1_text1__SYUxT\",\"save1_text2\":\"home_save1_text2__1psvT\",\"button_one\":\"home_button_one__vDX1r\",\"button_title\":\"home_button_title__8dct2\",\"pay_card_wrapper\":\"home_pay_card_wrapper__3dd1q\",\"pay_card\":\"home_pay_card__2532B\",\"center\":\"home_center__Z1TUI\",\"content\":\"home_content__kSfTK\",\"text_wrapper\":\"home_text_wrapper__Byjhf\",\"process_wrapper\":\"home_process_wrapper__yUe2t\",\"modal\":\"home_modal__G-cvd\",\"two_code_wrapper\":\"home_two_code_wrapper__kuAR5\",\"code_img\":\"home_code_img__YggRW\",\"code_title\":\"home_code_title__OQcxn\",\"code_content\":\"home_code_content__gWBC7\",\"close_button\":\"home_close_button__P3xRP\",\"rotation\":\"home_rotation__8rhrE\"};","import React, { FC, useEffect, useRef, useState } from 'react';\nimport QRCode from 'qrcode';\nimport { useTranslation } from 'react-i18next';\nimport styleObj from './home.module.less';\nimport Layout, { LayoutRef } from '../../../components/Layout/Layout';\nimport Footer from '../../../components/Footer/Footer';\nimport Download from '../../../components/Download/Download';\nimport { useChangeOsLanguage } from '../../../hooks';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { getApi, postWithoutAuth, sendPoint, getSearchParams } from '../../../util/tool';\nimport Img from '../../../components/Img';\nimport { PAY_CARD } from '../../../const';\nimport { useLottie } from 'lottie-react';\nimport startData from './assets/start.json';\nimport { useAuth } from '../../../stores/AuthContext';\n\nconst imgArr: Array<string> = [\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkhXRkJRQkdDQ1pBVjNQTUxBUFk0NkpPRUlMU1BBMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMTg2NTUyNjkwOTg1NTcwODMwMSwiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik4yMkJCSFFERkdDRFgyQVhTS1g2WllKT0NWRDVWRSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo2MzE1MzY4MjA2NDQwMzU1MTQ1LCJhYiI6MH0?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IlJWQU9PUDNMU0tYQUtTQUxYSlFZVUFWNlhGRFJQVSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxNTY1Mjk0MTgxNDM0MTk0Njc4NywiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IlFOUEkyNkJPNkJUN1JCN0hZUzQ1WUhEQVZQNzZDSSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo1NDIzOTI3ODgwNjQ2NDcwNTQxLCJhYiI6MH0?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IkZaNlBHWFlJR0ZWWTNYV0hXR1VVT0I0TU8yM1dNSSIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjoxMDc2OTY0Mjk1MDczMTA2MjczMywiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IlU1VlFNTTJDWDM3VDdIVk5CUVBOTzNKSkRSN01TMiIsInciOjI4ODAsImgiOjE1ODAsImQiOjAsIm10IjoiaW1hZ2UvanBlZyIsImRoIjo4NDE1MzIyMzcwNTM1NzMxMTg3LCJhYiI6MH0?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6Ik9USUE0V0pRR1E2MzdMQ1JQT05FTjVZN1ZDUVgyWSIsInciOjY1MCwiaCI6MjM0LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk5MTM5NzE1OTAzNjU4NDI2MSwiYWIiOjB9?format=originalOFGHLERTH',\n 'https://auto.omicdn.com/v1/images/eyJpZCI6IjNSTUNDRVU1Q01INFJGSFBERUpBWlVSNU1PTEJFNyIsInciOjY1MCwiaCI6NTMzLCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6NDk3MjMzMTYyNzQxMDk0ODU0OCwiYWIiOjB9?format=originalOFGHLERTH',\n];\n\nconst vipObj: any = {\n vip: 0,\n seeWhoLikedMe: 1,\n supreme: 2,\n};\n\nconst Home: FC = () => {\n /* 进入官网首页的时候,将系统语言同步到选择的语言 */\n const { t, i18n: { changeLanguage } } = useTranslation();\n const [oSLanguage] = useChangeOsLanguage();\n useEffect(() => {\n changeLanguage(oSLanguage).then();\n window.localStorage.setItem('lan', oSLanguage);\n }, [oSLanguage]);\n\n const history = useHistory();\n const location = useLocation();\n const { hash } = location;\n const { location: { search } } = useHistory();\n const [showTwoCode, setShowTwoCode] = useState(false); // 二维码登录弹窗\n const [codeImg, setCodeImg] = useState('');\n const [count, setCount] = useState<number>(3); // 倒计时\n const [gotAccessToken, setGotAccessToken] = useState(false);\n const [vipType, setVipType] = useState<Array<number>>([]); // 会员种类 0 1 2\n const [isChangingImg, setIsChangingImg] = useState<boolean>(false);\n const { logged, logout, login } = useAuth();\n\n const layoutRef = useRef<LayoutRef>(null);\n const centerDiv = useRef<HTMLDivElement | null>(null);\n const homeDiv = useRef<HTMLDivElement | null>(null);\n const startDiv = useRef<HTMLDivElement | null>(null);\n const imgArrRef = [\n useRef<HTMLImageElement | null>(null),\n useRef<HTMLImageElement | null>(null),\n useRef<HTMLImageElement | null>(null),\n useRef<HTMLImageElement | null>(null),\n useRef<HTMLImageElement | null>(null),\n useRef<HTMLImageElement | null>(null),\n ];\n const button = useRef<HTMLDivElement | null>(null);\n const title = useRef<HTMLDivElement | null>(null);\n const processArr = [\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n ];\n const processUnderArr = [\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n useRef<HTMLSpanElement | null>(null),\n ];\n const processWrapper = useRef<HTMLDivElement | null>(null);\n const contentArr = [\n useRef<HTMLDivElement | null>(null),\n useRef<HTMLDivElement | null>(null),\n useRef<HTMLDivElement | null>(null),\n ];\n const [showIndex, setShowIndex] = useState<number>(-1);\n const [start, setStart] = useState<boolean>(false);\n const [backgroundColor, setBackgroundColor] = useState<string>('');\n const cardData = [\n {\n cardContent: t('home.cardContent1'),\n cardUser: t('home.cardUser1'),\n },\n {\n cardContent: t('home.cardContent2'),\n cardUser: t('home.cardUser2'),\n },\n {\n cardContent: t('home.cardContent3'),\n cardUser: t('home.cardUser3'),\n },\n ];\n\n const init = async () => {\n try {\n const res2 = await getApi('/web-api/privileges');\n if (res2.meta.code === 401000) { // 未登录\n logout();\n } else { // 登录了\n /* 设置登录状态 */\n login();\n /* 设置会员信息 */\n if (res2?.data?.simplePrivileges && Array.isArray(res2?.data?.simplePrivileges)) {\n const resVipType = res2.data.simplePrivileges.map((item: string) => vipObj[item]);\n setVipType(resVipType);\n } else {\n setVipType([]);\n }\n /* 获取到会员信息后打点 */\n sendPoint({\n event_name: 'omi_web_website_home_page.pageview',\n status: 'logged_in',\n });\n }\n } catch (e) {\n setVipType([]);\n logout();\n }\n };\n\n const webLogin = async (authToken: any) => {\n try {\n // 扫描二维码后,就可以通过 authToken 换取 accessToken 和 currencyCode 了\n const res = await postWithoutAuth('/web-api/web-jwt-token', { authToken });\n if (res?.data?.token) {\n localStorage.setItem('accessToken', res.data.token); // 存到本地\n localStorage.setItem('currencyCode', res.data.extra?.currencyCode);\n await init();\n setShowTwoCode(false); // 隐藏二维码\n setCodeImg('');\n setGotAccessToken(true); // 换取accessToken后的3s后会自动跳转\n setTimeout(() => {\n setGotAccessToken(false);\n }, 6000);\n } else if (res.code === 401000) {\n setTimeout(async () => {\n if (showTwoCodeRef.current) { // 如果二维码没被关闭,则继续调用接口\n await webLogin(authToken);\n }\n }, 2000);\n } else if (res.code === 40045) {\n // 放弃等待登录结果\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n useEffect(() => {\n let interval: any;\n let curIndex = 0;\n\n if (isChangingImg) {\n imgArrRef.forEach((item, index) => {\n const img = item.current!;\n if (index === curIndex) {\n img.style.opacity = '1';\n img.style.zIndex = '-5';\n } else {\n img.style.opacity = '0';\n img.style.zIndex = '-50';\n }\n });\n interval = setInterval(() => {\n if (curIndex > 4) {\n curIndex = 0;\n } else {\n curIndex++;\n }\n imgArrRef.forEach((item, index) => {\n if (index === curIndex) {\n item.current!.style.opacity = '1';\n } else {\n item.current!.style.opacity = '0';\n }\n });\n }, 3000);\n }\n return () => clearInterval(interval);\n }, [isChangingImg]);\n\n useEffect(() => {\n if (hash) { // 短信链接跳进来的\n history.push({\n pathname: '/vip',\n state: {\n authToken: hash.substring(1),\n },\n });\n }\n }, [hash, search]);\n\n const initDataAnimation = async () => {\n const searchParams = getSearchParams(search);\n const { s } = searchParams;\n const params = {\n event_name: 'omi_web_website_home_page.pageview',\n status: 'un_logged_in',\n };\n if (s === '1') {\n params.show_from = 'message';\n }\n sendPoint(params);\n };\n\n useEffect(() => {\n imgArr.forEach((src) => {\n const img = new Image();\n img.src = src;\n });\n initDataAnimation();\n }, []);\n\n useEffect(() => {\n let timer: NodeJS.Timer;\n if (logged && gotAccessToken) {\n timer = setTimeout(() => {\n if (count <= 0) {\n // 自动跳转也需要打点\n sendPoint({\n event_name: 'omi_web_website_home_page_button.click',\n status: 'logged_in',\n });\n if (vipType.includes(1) || vipType.includes(2)) {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 2 } });\n console.log('自动跳转');\n } else {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 1 } });\n console.log('自动跳转');\n }\n clearTimeout(timer);\n } else {\n setCount((count) => count - 1);\n }\n }, 1000);\n }\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [logged, count]);\n\n useEffect(() => {\n const homeDom = homeDiv.current; // 用于绑定滚动事件\n const menuDom = layoutRef?.current?.menuDom!; // 导航文字(PC)\n const languageDom = layoutRef?.current?.languageDom!; // 小地球(PC)\n\n const handler = () => {\n const centerDom = centerDiv.current!;\n if (centerDom) {\n const { top, bottom } = centerDom.getBoundingClientRect();\n // 控制渐进反色\n if (top < 27) {\n menuDom && (menuDom.style.height = '0'); // 导航文字\n languageDom && (languageDom.style.height = '0'); // 小地球\n } else if (top > 59) {\n menuDom && (menuDom.style.height = `${25}px`);\n languageDom && (languageDom.style.height = `${19}px`);\n } else {\n menuDom && (menuDom.style.height = `${top - 34}px`);\n languageDom && (languageDom.style.height = `${top - 39}px`);\n }\n\n // 控制头部背景色渐变\n if (top >= 0 && top <= 71) {\n setBackgroundColor(`rgba(255,255,255,${(71 - top) / 71})`);\n } else if (top < 0) {\n setBackgroundColor('rgb(255,255,255)');\n } else {\n setBackgroundColor('');\n }\n\n // 控制动画开始\n if (bottom < 1.4 * window.innerHeight) {\n setStart(true);\n }\n }\n };\n\n homeDom && homeDom.addEventListener('scroll', handler); // 绑定滚屏事件\n let timeout1: any; let\n timeout2: any;\n if (showIndex !== -1) {\n showCenterContent(showIndex);\n if (showIndex >= 2) {\n timeout1 = setTimeout(() => {\n setShowIndex(0);\n }, 4000);\n } else {\n timeout2 = setTimeout(() => {\n setShowIndex((val) => val + 1);\n }, 4000);\n }\n }\n\n return () => {\n homeDom && homeDom.removeEventListener('scroll', handler);\n clearTimeout(timeout1);\n clearTimeout(timeout2);\n };\n }, [showIndex]);\n\n useEffect(() => {\n if (start) {\n processWrapper.current!.style.display = 'flex';\n processWrapper.current!.classList.add('animate__fadeInUpBig');\n setTimeout(() => {\n setShowIndex(0);\n }, 1000);\n }\n }, [start]);\n\n const showCenterContent = (targetIndex: number) => {\n contentArr.forEach((content, index) => {\n if (index === targetIndex) {\n content.current!.style.opacity = '1';\n } else {\n content.current!.style.opacity = '0';\n }\n });\n processArr.forEach((process, index) => {\n if (index === targetIndex) {\n processUnderArr[index].current!.style.backgroundColor = '#212121';\n process.current!.style.transition = '0s width';\n process.current!.style.width = '0';\n setTimeout(() => {\n process.current!.style.transition = '3900ms width linear';\n process.current!.style.width = '100%';\n }, 100);\n } else if (index > targetIndex) {\n processUnderArr[index].current!.style.backgroundColor = '#212121';\n process.current!.style.transition = '0s width';\n process.current!.style.width = '0';\n } else {\n process.current!.style.transition = '0s width';\n process.current!.style.width = '100%';\n processUnderArr[index].current!.style.backgroundColor = '#16ec9b';\n }\n });\n };\n\n const setAnimation = (dom: HTMLElement, className: string, delay: number = 0): void => {\n setTimeout(() => {\n dom.style.visibility = 'visible';\n dom.classList.add(className);\n }, delay);\n };\n\n const startAnimation = (): Promise<void> => {\n return new Promise<void>((resolve) => {\n setAnimation(title.current!, 'animate__fadeInRight');\n setAnimation(button.current!, 'animate__fadeInUp');\n setAnimation(layoutRef.current!.headerDiv!, 'animate__fadeInDown');\n setTimeout(() => {\n resolve();\n }, 1100);\n });\n };\n\n const showTwoCodeRef = useRef(showTwoCode);\n useEffect(() => {\n showTwoCodeRef.current = showTwoCode;\n }, [showTwoCode]);\n\n const renderButton = () => {\n if (!logged) { // 如果未登录,展示的是登录按钮\n return (\n <div\n className={styleObj.button}\n onClick={\n // PC端的登录 → 展示二维码\n async () => {\n const { authToken } = await postWithoutAuth('/web-api/web-auth-token', { authType: 'qrCode' });\n const imgStr = await QRCode.toDataURL(authToken, { width: 400, height: 400 });\n setCodeImg(imgStr);\n setShowTwoCode(true);\n webLogin(authToken);\n }\n }\n >\n {t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_LOGIN')}\n <div className={styleObj.save1}>\n <div className={styleObj.save1_text1}>{t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_SAVE')}</div>\n <div className={styleObj.save1_text2}>50<span>%</span></div>\n </div>\n </div>\n );\n } else {\n return (\n <div\n className={styleObj.button_one}\n onClick={\n () => {\n if (vipType.includes(1) || vipType.includes(2)) {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 2 } });\n } else {\n history.push({ pathname: '/vip', state: { linkCurrentVip: 1 } });\n }\n }\n }\n >\n {\n gotAccessToken ?\n `${t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')} (${count})`\n :\n `${t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_CONTINUE')}`\n }\n <div className={styleObj.save1}>\n <div className={styleObj.save1_text1}>{t('h5.OMI_PHONE_WEBSITE_HOME_PAGE_SAVE')}</div>\n <div className={styleObj.save1_text2}>50<span>%</span></div>\n </div>\n </div>\n );\n }\n };\n\n const startStep = (): Promise<void> => {\n let start = 0;\n let previousTimeStamp = 0;\n return new Promise<void>((resolve) => {\n const step = (timestamp: number): void => {\n if (start === 0) start = timestamp;\n const elapsed = timestamp - start;\n if (previousTimeStamp !== timestamp) {\n const count = Math.min(0.1 * elapsed, 100);\n startDiv.current && (startDiv.current.style.height = `${100 - count}vh`);\n }\n if (elapsed < 1000) {\n previousTimeStamp = timestamp;\n window.requestAnimationFrame(step);\n } else { // 结束了\n resolve();\n }\n };\n window.requestAnimationFrame(step);\n });\n };\n\n const { View } = useLottie({\n style: { width: '10vw' },\n animationData: startData,\n loop: false,\n onComplete: async () => {\n imgArrRef[0].current!.style.transform = 'scale(1)';\n await startStep();\n await startAnimation();\n setIsChangingImg(true);\n },\n });\n\n return (\n <Layout\n ref={layoutRef}\n headerStyle={{ backgroundColor, visibility: 'hidden' }}\n isHome\n >\n <div\n ref={homeDiv}\n className={styleObj.home}\n style={{ height: window.innerHeight }}\n >\n\n {/* 开场幕布 */}\n {\n <div\n className={styleObj.start}\n ref={startDiv}\n >\n {View}\n </div>}\n\n {/* 第一屏 */}\n <div className={styleObj.top}>\n {\n imgArr.map((src, index) => (\n <img\n key={index}\n src={src}\n ref={imgArrRef[index]}\n className={styleObj.img}\n />\n ))\n }\n <div className={styleObj.title_area}>\n <div\n ref={title}\n className=\"animate__animated\"\n dangerouslySetInnerHTML={{ __html: t('home.title') }}\n />\n </div>\n <div\n ref={button}\n className={`${styleObj.button_wrapper} animate__animated`}\n >\n <div onClick={\n () => {\n sendPoint({\n event_name: 'omi_web_website_home_page_button.click',\n status: logged ? 'logged_in' : 'un_logged_in',\n });\n }\n }\n >\n {renderButton()}\n </div>\n <div className={styleObj.button_title}>\n {t('home.OMI_PHONE_WEBSITE_HOME_PAGE_PURCHASE_MORE_METHOD')}\n </div>\n <div className={styleObj.pay_card_wrapper}>\n {\n logged &&\n Array.isArray(PAY_CARD[(localStorage.getItem('currencyCode')!)]) &&\n PAY_CARD[(localStorage.getItem('currencyCode')!)].map((src: any) => (<Img\n className={styleObj.pay_card}\n src={src}\n />))\n }\n </div>\n </div>\n </div>\n\n {/* 第二屏 */}\n <div\n className={styleObj.center}\n ref={centerDiv}\n >\n <div className={styleObj.content}>\n <div className={styleObj.text_wrapper}>\n {\n cardData.map(({ cardContent, cardUser }, index) => (\n <div key={index} ref={contentArr[index]}>\n <div>\n <img\n src=\"https://auto.omicdn.com/v1/images/eyJpZCI6IkJYWUtRVzNVSzZNNUlQSjNIVllMNlhONVNYSFRKUCIsInciOjEyOCwiaCI6MTM2LCJkIjowLCJtdCI6ImltYWdlL2pwZWciLCJkaCI6MTM4NDg1NjAyNjU0NjE3NjAsImFiIjowfQ?format=originalOFGHLERTH\"\n alt=\"\"\n />\n </div>\n <div>{cardContent}</div>\n <div>{cardUser}</div>\n </div>\n ))\n }\n </div>\n <div\n ref={processWrapper}\n className={`${styleObj.process_wrapper} animate__animated`}\n >\n {\n Array.from({ length: 3 }).map((_, index) => (\n <div\n key={index}\n onClick={() => setShowIndex(index)}\n >\n <span ref={processUnderArr[index]} />\n <span ref={processArr[index]} />\n </div>\n ))\n }\n </div>\n </div>\n </div>\n\n {/* 第三屏 */}\n <Download />\n <Footer />\n\n {/* 二维码弹窗 */}\n <div className={styleObj.modal} style={{ display: showTwoCode ? 'block' : 'none' }}>\n <div className={styleObj.two_code_wrapper}>\n <img className={styleObj.code_img} src={codeImg} alt=\"\" />\n <div className={styleObj.code_title}>{t('home.OMI_WEB_WEBSITE_QR_CODE_POPUP_TITLE')}</div>\n <div className={styleObj.code_content}>{t('home.OMI_WEB_WEBSITE_QR_CODE_POPUP_SUBTITLE')}</div>\n <div\n className={styleObj.close_button}\n onClick={\n () => {\n setShowTwoCode(false);\n setCodeImg('');\n }\n }\n />\n </div>\n </div>\n </div>\n </Layout>\n );\n};\n\nexport default Home;\n","import React from \"react\";\nimport {useSmallWindow} from \"../../hooks\";\nimport Home1 from './mobile/Home'\nimport Home2 from './pc/Home'\n\nexport default () => {\n const [isMobile] = useSmallWindow(); //用于判断屏幕宽度\n if (isMobile) {\n return <Home1/>\n } else {\n return <Home2/>\n }\n}","import React, { FC, lazy, Suspense, useEffect, useState } from 'react';\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\nimport Home from './pages/Home/Home';\nimport { ToastProvider } from './stores/ToastContext';\nimport { AuthProvider } from './stores/AuthContext';\n\n\nconst Features = lazy(() => import('./pages/Features/Features'));\nconst Toolkit = lazy(() => import('./pages/Toolkit/Toolkit'));\nconst Subscription = lazy(() => import('./pages/Subscription/Subscription'));\nconst WhyOmi = lazy(() => import('./pages/WhyOmi/WhyOmi'));\nconst Press = lazy(() => import('./pages/Press/Press'));\nconst Article = lazy(() => import('./pages/Article/Article'));\nconst Support = lazy(() => import('./pages/Support/Support'));\nconst Apply = lazy(() => import('./pages/Apply/Apply'));\nconst Company = lazy(() => import('./pages/Company/Company'));\nconst Guideline = lazy(() => import('./pages/TextPages/Guideline'));\nconst Help = lazy(() => import('./pages/TextPages/Help'));\nconst Terms = lazy(() => import('./pages/TextPages/Terms'));\nconst Service = lazy(() => import('./pages/TextPages/Service'));\nconst Privacy = lazy(() => import('./pages/TextPages/Privacy'));\nconst SafetyTips = lazy(() => import('./pages/TextPages/SafetyTips'));\nconst Share = lazy(() => import('./pages/Share/Share'));\nconst AntiFraud = lazy(() => import('./pages/AntiFraud/AntiFraud'));\nconst Vip = lazy(() => import('./pages/Vip'));\n// const Test = lazy(() => import('./pages/Test/Test'));\nconst PaySuccess = lazy(() => import('./pages/PaySuccess/PaySuccess'));\nconst PayError = lazy(() => import('./pages/PayError/PayError'));\nconst PayPending = lazy(() => import('./pages/PayPending/PayPending'));\n\nconst App: FC = () => {\n const [normal, setNormal] = useState(true);\n\n useEffect(() => {\n const fn = () => {\n if (window.orientation == 90 || window.orientation == -90) {\n // 横屏\n setTimeout(() => {\n if (window.innerWidth > 1.6 * window.innerHeight && window.innerHeight < 500 && window.innerWidth < 900) {\n setNormal(false);\n }\n }, 100);\n } else {\n setNormal(true);\n }\n };\n window.addEventListener('orientationchange', fn);\n if (window.innerWidth > 1.6 * window.innerHeight && window.innerHeight < 500 && window.innerWidth < 900) {\n setNormal(false);\n }\n return () => {\n window.removeEventListener('orientationchange', fn);\n };\n }, []);\n\n if (normal) {\n return (\n <ToastProvider>\n <AuthProvider>\n <BrowserRouter>\n <Switch>\n <Route path=\"/\" component={Home} exact />\n <Route\n path=\"/features\"\n exact\n render={() => <Suspense><Features /></Suspense>}\n />\n <Route\n path=\"/features/toolkit\"\n exact\n render={() => <Suspense><Toolkit /></Suspense>}\n />\n <Route\n path=\"/features/subscription\"\n exact\n render={() => <Suspense><Subscription /></Suspense>}\n />\n <Route\n path=\"/why\"\n exact\n render={() => <Suspense><WhyOmi /></Suspense>}\n />\n <Route\n path=\"/press\"\n exact\n render={() => <Suspense><Press /></Suspense>}\n />\n <Route\n path=\"/press/:id\"\n exact\n render={() => <Suspense><Article /></Suspense>}\n />\n <Route\n path=\"/support\"\n exact\n render={() => <Suspense><Support /></Suspense>}\n />\n <Route\n path=\"/apply/:job?/:country?\"\n exact\n render={() => <Suspense><Apply /></Suspense>}\n />\n <Route\n path=\"/company/:position?\"\n exact\n render={() => <Suspense><Company /></Suspense>}\n />\n <Route\n path=\"/norms/:language?\"\n render={() => <Suspense><Guideline /></Suspense>}\n />\n <Route\n path=\"/help\"\n exact\n render={() => <Suspense><Help /></Suspense>}\n />\n <Route\n path=\"/terms/:language?\"\n exact\n render={() => <Suspense><Terms /></Suspense>}\n />\n <Route\n path=\"/privacy/:language?\"\n exact\n render={() => <Suspense><Privacy /></Suspense>}\n />\n <Route\n path=\"/safety_tips\"\n exact\n render={() => <Suspense><SafetyTips /></Suspense>}\n />\n {/* 分享页 */}\n <Route\n path=\"/share\"\n exact\n render={() => <Suspense><Share /></Suspense>}\n />\n {/* 反诈页 */}\n <Route\n path=\"/anti_fraud\"\n exact\n render={() => <Suspense><AntiFraud /></Suspense>}\n />\n {/* 会员购买页 */}\n <Route\n path=\"/vip\"\n exact\n render={() => <Suspense><Vip /></Suspense>}\n />\n {/* 支付结果页:成功 */}\n <Route\n path=\"/pay_success\"\n exact\n render={() => <Suspense><PaySuccess /></Suspense>}\n />\n {/* 支付结果页:失败 */}\n <Route\n path=\"/pay_error\"\n exact\n render={() => <Suspense><PayError /></Suspense>}\n />\n {/* 支付结果页:等待 */}\n <Route\n path=\"/pay_pending\"\n exact\n render={() => <Suspense><PayPending /></Suspense>}\n />\n {/* 服务者协议 */}\n <Route\n path=\"/service\"\n exact\n render={() => <Suspense><Service /></Suspense>}\n />\n </Switch>\n </BrowserRouter>\n </AuthProvider>\n </ToastProvider>\n\n );\n } else {\n return (\n <div style={{\n flexDirection: 'column',\n height: '100%',\n width: '100%',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n >\n <div style={{ fontSize: 60, lineHeight: 1.3 }}>🙃</div>\n <h3 style={{ fontWeight: 600, fontSize: 24, marginBottom: 5 }}>Catch Us On The Flip Side</h3>\n <div style={{ color: '#505965', fontSize: 14 }}>Enjoy matching up from a portrait view.</div>\n </div>\n );\n }\n};\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport 'antd/dist/antd.variable.min.css';\nimport 'animate.css';\nimport './index.less';\nimport './i18n'\nimport App from './App';\nimport { ConfigProvider } from 'antd';\n\nConfigProvider.config({\n theme: {\n primaryColor: '#25b864',\n },\n});\n\nconst root = ReactDOM.createRoot(\n document.getElementById('root') as HTMLElement\n);\nroot.render(<App/>);\n"],"names":["isSimple","useTranslation","t","language","i18n","useSmallWindow","isMobile","useAndroid","isAndroid","className","styleObj","to","src","alt","style","height","href","target","rel","props","imgProps","React","ref","timeout","headerStyle","changeLanguage","logoDom","useRef","menuDom","languageDom","languageBoxDom","languageMobileDom","menuLogoDom","menuBoxDom","menuBoxLanguageDom","languageDropdownLogoDom","menuBoxLanguageDropdownLogoDom","useState","showLanguage","setShowLanguage","showLanguageMobile","setShowLanguageMobile","showMenu","setShowMenu","showMenuBoxLanguageBoxDom","setShowMenuBoxLanguageBoxDom","showFeaturesChild","setShowFeaturesChild","showFeaturesChildMobile","setShowFeaturesChildMobile","languageBoxLeft","setLanguageBoxLeft","featureChildLeft","setFeatureChildLeft","useImperativeHandle","current","useEffect","document","addEventListener","e","includes","value","targetLeft","getBoundingClientRect","left","setTimeout","onclick","handleOverFeatures","width","clearTimeout","handleOutFeatures","exact","activeClassName","onMouseOver","onMouseOut","display","onClick","window","localStorage","setItem","val","transform","useMobile","showPay","headerDiv","useAuth","logged","logout","children","isHome","headerRef","PERMISSION_PRY_TYPE","ESPECIAL_PAY_TYPE","PAY_CARD","TWD","IDR","MYR","THB","useWhite","layoutRef","useSystem","isWindows","setIsWindows","agent","navigator","userAgent","toLowerCase","isMac","test","indexOf","useMemo","innerWidth","setIsAndroid","match","useLanguage","setLanguage","useChangeOsLanguage","setMobile","matchMedia","matches","useCountDown","endTime","onEnd","end","setEnd","calculateTimeLeft","difference","Math","max","Date","valueOf","hour","floor","minute","second","timeLeft","setTimeLeft","timer","setInterval","clearInterval","AuthContext","createContext","undefined","AuthProvider","setLogged","Provider","login","removeItem","context","useContext","Error","ToastContext","a","b","useToast","ToastProvider","message","duration","toast","setToast","showToast","useCallback","time","s","getSearchParams","search","length","obj","paramArr","substring","split","forEach","item","itemArr","vipObj","vip","seeWhoLikedMe","supreme","diamond","filterPrice","data","tags","promotion","filterKey","Object","keys","filterArr","filter","category","reduceArr","reduce","did","cur","stockKeepUnit","promotionStockKeepUnits","defaultStockKeepUnits","prices","tagPrice","price","default","Array","isArray","tag","currencySymbol","currencyCode","inAppPrice","month","quantity","price1","id","ceil","toFixed","vipType","push","getApi","url","headers","accessToken","getItem","fetch","method","Authorization","then","res","json","postApi","body","JSON","stringify","sendPoint","params","defineProperty","getMobileOperatingSystem","writable","configurable","enumerable","entries","init","slice","addLink","text","text1","text2","replace","dangerouslySetInnerHTML","__html","thousandsSeparator","n","strSplit","toString","integer","decimal","postWithoutAuth","darkColorMap","index","opacity","toHsv","_ref","r","g","hsv","rgbToHsv","h","v","toHex","_ref2","concat","rgbToHex","mix","rgb1","rgb2","amount","p","getHue","i","light","hue","round","getSaturation","saturation","Number","getValue","generate","color","opts","arguments","patterns","pColor","inputToRGB","colorString","_i","_hsv","_colorString","theme","map","_ref3","backgroundColor","presetPrimaryColors","red","volcano","orange","gold","yellow","lime","green","cyan","blue","geekblue","purple","magenta","grey","presetPalettes","presetDarkPalettes","key","primary","isIconDefinition","_typeof","name","icon","normalizeAttrs","attrs","acc","class","node","rootProps","_objectSpread","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","_excluded","twoToneColorPalette","secondaryColor","calculated","IconBase","valid","restProps","_objectWithoutProperties","colors","styleStr","csp","IconContext","updateCSS","prepend","useInsertStyles","warn","fill","displayName","getTwoToneColors","setTwoToneColors","setTwoToneColor","_normalizeTwoToneColo","_normalizeTwoToneColo2","_slicedToArray","ReactIcon","Icon","_classNames","spin","rotate","tabIndex","_React$useContext$pre","Context","prefixCls","classString","classNames","_defineProperty","iconTabIndex","svgStyle","msTransform","role","getTwoToneColor","CheckCircleFilled","AntdIcon","CheckCircleFilledSvg","CloseCircleFilled","CloseCircleFilledSvg","CloseOutlined","CloseOutlinedSvg","ExclamationCircleFilled","ExclamationCircleFilledSvg","LoadingOutlined","LoadingOutlinedSvg","rgbToRgb","bound01","rgbToHsl","min","l","d","hue2rgb","q","hslToRgb","hsvToRgb","f","mod","allow3Char","hex","pad2","startsWith","charAt","join","rgbaToHex","allow4Char","convertDecimalToHex","parseFloat","convertHexToDecimal","parseIntFromHex","parseInt","numberInputToObject","names","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","goldenrod","gray","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavenderblush","lavender","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","limegreen","linen","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","rebeccapurple","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellowgreen","rgb","ok","format","trim","named","matchers","exec","rgba","hsl","hsla","hsva","hex8","hex6","hex4","hex3","stringInputToObject","isValidCSSUnit","String","substr","convertToPercentage","prototype","hasOwnProperty","call","boundAlpha","CSS_UNIT","PERMISSIVE_MATCH3","PERMISSIVE_MATCH4","RegExp","Boolean","isOnePointZero","isPercent","isPercentage","abs","clamp01","isNaN","c","DisabledContext","DisabledContextProvider","disabled","originDisabled","SizeContext","SizeContextProvider","size","Consumer","originSize","ConfigContext","getPrefixCls","suffixCls","customizePrefixCls","ConfigConsumer","runtimeLocale","_extends","defaultLocale","changeConfirmLocale","newLocale","_props$locale","locale","_ANT_MARK__","Modal","getMemoizedContextValue","exist","LocaleContext","CheckCircleOutlined","CheckCircleOutlinedSvg","CloseCircleOutlined","CloseCircleOutlinedSvg","ExclamationCircleOutlined","ExclamationCircleOutlinedSvg","InfoCircleOutlined","InfoCircleOutlinedSvg","defaultGetContainer","defaultCloseIcon","maxCount","notificationInstance","defaultDuration","defaultTop","defaultBottom","defaultPrefixCls","defaultPlacement","rtl","getPlacementStyle","placement","top","bottom","right","getNotificationInstance","args","callback","_args$placement","_args$getContainer","getContainer","_globalConfig","globalConfig","getIconPrefixCls","iconPrefixCls","cacheKey","cacheInstance","Promise","resolve","instance","notificationClass","Notification","notification","typeToIcon","success","info","error","warning","getRCNoticeProps","durationArg","type","description","btn","onClose","_args$closeIcon","closeIcon","iconNode","closeIconToRender","autoMarginTag","content","ConfigProvider","closable","api","open","notice","close","removeNotice","config","options","destroy","useNotification","innerInstance","proxy","add","noticeProps","holderCallback","component","_useRCNotification","useRCNotification","_useRCNotification2","hookNotify","holder","hookApiRef","mergedPrefixCls","createUseNotification","TinyColor","_a","this","originalInput","roundA","gradientType","isValid","isDark","getBrightness","isLight","toRgb","getLuminance","RsRGB","GsRGB","BsRGB","pow","getAlpha","setAlpha","alpha","toHsvString","toHsl","toHslString","toHexString","toHex8","toHex8String","toRgbString","toPercentageRgb","fmt","x","toPercentageRgbString","rnd","toName","_b","formatSet","formattedString","hasAlpha","toNumber","clone","lighten","brighten","darken","tint","shade","desaturate","saturate","greyscale","analogous","results","slices","part","ret","complement","monochromatic","modification","splitcomplement","onBackground","background","fg","bg","triad","polyad","tetrad","result","increment","equals","dynamicStyleMark","now","random","registerTheme","globalPrefixCls","variables","formatColor","updater","fillColor","colorVal","baseColor","colorPalettes","primaryColors","primaryActiveColor","successColor","warningColor","errorColor","infoColor","cssList","getStyle","canUseDom","globalIconPrefixCls","PASSED_PROPS","getGlobalPrefixCls","getGlobalIconPrefixCls","getRootPrefixCls","rootPrefixCls","ProviderChildren","autoInsertSpaceInButton","form","componentSize","direction","space","virtual","dropdownMatchSelectWidth","legacyLocale","parentContext","componentDisabled","propName","propValue","memoedConfig","prevConfig","currentConfig","prevKeys","currentKeys","some","memoIconContextValue","childNode","validateMessages","Form","defaultValidateMessages","RcFormProvider","LocaleProvider","LocaleReceiver","_","__","_props$componentName","componentName","antLocale","defaultLocaleData","localeFromContext","Function","localeCode","useLocaleReceiver","today","backToToday","clear","year","timeSelect","dateSelect","weekSelect","monthSelect","yearSelect","decadeSelect","yearFormat","dateFormat","dayFormat","dateTimeFormat","monthBeforeYear","previousMonth","nextMonth","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","lang","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeQuarterPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","filterCheckall","filterSearchPlaceholder","emptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","expand","collapse","triggerDesc","triggerAsc","cancelSort","okText","cancelText","justOkText","Popconfirm","Transfer","titles","searchPlaceholder","itemUnit","itemsUnit","remove","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","Text","edit","copy","copied","PageHeader","back","optional","required","whitespace","date","parse","invalid","types","string","array","object","number","regexp","email","len","range","pattern","mismatch","Image","preview","InfoCircleFilled","InfoCircleFilledSvg","messageInstance","localPrefixCls","transitionName","hasTransitionName","getKeyThenIncreaseKey","getRCNotificationInstance","getContextPopupContainer","getPopupContainer","instanceConfig","RCNotification","loading","typeList","IconComponent","messageClass","closePromise","filled","rejected","promise","messageKey","attachTypeApi","originalApi","isArgsProps","useMessage","getRcNotificationInstance","createUseMessage","hasOwn","classes","arg","argType","inner","apply","module","exports","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","u","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","pop","cost","msg","extract_shortest_path_from_predecessor_list","nodes","reverse","find_path","T","queue","sorter","default_sorter","sort","shift","input","point","charCodeAt","Uint8Array","buffer","isAbsolute","pathname","spliceOne","list","k","from","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","unshift","addLeadingSlash","path","stripLeadingSlash","stripBasename","prefix","hasBasename","stripTrailingSlash","createPath","location","hash","createLocation","state","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","fn","isActive","listener","notifyListeners","_len","_key","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","invariant","globalHistory","canUseHistory","ua","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entry","nextIndex","nextEntries","splice","canGo","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","useLottie","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_useState2","animationLoaded","setAnimationLoaded","animationInstanceRef","animationContainer","play","stop","pause","setSpeed","speed","goToAndPlay","isFrame","goToAndStop","setDirection","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","loadAnimation","forcedConfigs","container","lottie","onUnmount","currentRawFrame","setSegment","resetSegments","handler","deregisterList","deregister","View","animationContainerRef","animationItem","getContainerVisibility","innerHeight","getContainerCursorPosition","cursorX","cursorY","y","useInitInteractivity","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","find","visibility","frames","frameToGo","firstFrame","isPaused","cursorModeHandler","handleCursor","_x","_y","pos","position","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","lottieObj","Lottie","_c","interactivity","lottieProps","factory","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","Symbol","iterator","constructor","subframeEnabled","expressionsPlugin","idPrefix$1","isSafari","_shouldRoundValues","bmPow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","styleDiv","element","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","offset","addBrightnessToRGB","addHueToRGB","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","ks","it","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","send","completeData","payload","animation","process","onError","createProcess","processId","origin","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","img","intervalId","getBBox","_imageLoaded","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","animType","RendererClass","globalData","defs","setProjectInterface","autoloadSegments","setupAnimation","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","updateContainerSize","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","pendingFrame","getPath","getAssetData","hide","show","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_create","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","out","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","_rnd","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","m","translate","tx","tz","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","version","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","FontManager","emptyChar","w","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","sc","getCharData","_char","console","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","MaskManagerInterface","MaskInterface","mask","_mask","_data","maskManager","_masksInterfaces","viewData","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","assign","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","LayerExpressionInterface","getMatrix","toWorldMat","_elem","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","hierarchy","fromComp","sampleImage","transformInterface","_thisLayerFunction","shapeInterface","effect","textInterface","toComp","anchorPointDescriptor","defineProperties","hasParent","layerInterface","anchor_point","active","startTime","source","inPoint","outPoint","_name","registerMaskInterface","registerEffectsInterface","effects","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","EffectsExpressionInterface","createGroupInterface","groupInterface","ef","mn","effectElements","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","createEffectsInterface","effectsManager","effectsData","CompExpressionInterface","layer","pixelAspect","compSize","frameDuration","displayStartTime","numLayers","ShapePathInterface","view","propertyIndex","ShapeExpressionInterface","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dataProps","strokeWidth","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","TextExpressionInterface","_prevValue","_sourceText","sourceText","textProperty","stringValue","currentData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectItem","GroupEffect","BaseElement","FrameElement","_typeof$2","eff","checkMasks","effectsInterface","shapesData","itemsData","setBlendMode","blendModeValue","bm","baseElement","layerElement","initBaseData","layerId","getType","prepareProperties","isVisible","_isParent","FootageInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","getFootageData","searchProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","FootageElement","imageLoader","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","solidPath","rect","expansor","feMorph","properties","count","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","getBaseElement","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","lj","ml","of","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","rot","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","appendElementInPos","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","set","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","clearRect","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","lineHeight","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","center","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","me","S","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","linear","tMin","tMax","value1","value2","_tMin","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","_value","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","SVGTintFilter","matrixFilter","feMerge","createMergeNode","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","resultId","ins","feMergeNode","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","PropTypes","canPromise","QRCode","SvgRenderer","renderCanvas","renderFunc","argsNum","isLastArgCb","reject","create","toCanvas","toDataURL","renderToDataURL","getSymbolSize","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","ALPHANUMERIC","getBitsLength","getLength","write","bitBuffer","put","BitBuffer","bufIndex","putBit","getLengthInBits","bit","BitMatrix","reservedBit","row","reserved","xor","isReserved","encodeUtf8","ByteData","BYTE","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","L","M","Q","H","getTotalCodewordsCount","defaultValue","fromString","Utils","G15_BCH","getBCHDigit","getEncodedBits","EXP_TABLE","LOG_TABLE","log","exp","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","Infinity","penalty","VersionCheck","Regex","NUMERIC","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","remainingNum","GF","coeff","divident","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","bits","createData","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","rs","dcData","ecData","maxDataSize","dataSize","encode","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","modules","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","dark","setupData","toSJISFunc","setToSJISFunction","Polynomial","genPoly","paddedData","remainder","buff","numeric","kanji","byte","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","encodeURIComponent","getSegments","regex","getSegmentsFromString","byteSegs","kanjiSegs","numSegs","alphaNumSegs","isKanjiModeEnabled","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","optimizedSegs","curr","prevSeg","mergeSegments","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","currentVersion","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getOptions","getImageWidth","image","qrToImageData","putImageData","rendererOpts","quality","getColorAttrib","attrib","svgCmd","cmd","qrcodesize","moveBy","newRow","qrToPath","viewBox","svgTag","hex2rgba","hexCode","hexValue","getScale","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","HOOK_MARK","warningFunc","getFieldValue","getFieldsValue","getFieldError","getFieldWarning","getFieldsError","isFieldsTouched","isFieldTouched","isFieldValidating","isFieldsValidating","resetFields","setFields","setFieldValue","setFieldsValue","validateFields","submit","getInternalHooks","dispatch","initEntityValue","registerField","useSubscribe","setInitialValues","destroyForm","setCallbacks","registerWatch","getFields","setValidateMessages","setPreserve","getInitialValue","toArray","formatRegExp","convertFieldsError","errors","fields","field","template","isEmptyValue","isNativeStringType","asyncSerialArray","arrLength","next","original","AsyncValidationError","_this","_inheritsLoose","asyncMap","objArr","option","pending","flattenArr","flattenObjArr","firstFields","objArrKeys","objArrLength","total","asyncParallelArray","complementError","rule","oe","fieldValue","fullFields","fullField","deepMerge","urlReg","messages","getTime","getMonth","getYear","word","includeBoundaries","v4","v6seg","v6","v46Exact","v4exact","v6exact","ipv4","ipv6","getUrlRegex","ruleType","enum","rules","boolean","float","dateObject","newMessages","Schema","_messages","defaultMessages","validate","source_","oc","series","_this2","validator","getValidationMethod","errorFields","doIt","deep","defaultField","addFullField","schema","errorList","suppressWarning","filledErrors","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","errs","finalErrors","asyncValidator","suppressValidatorError","complete","validators","messageIndex","register","entity","internalSet","removeIfUndefined","_paths","_toArray","restPath","_toConsumableArray","cloneDeep","cloneArrayDeep","cloneObjectDeep","getNamePath","store","namePath","setValue","newStore","cloneByNamePathList","namePathList","containsNamePath","matchNamePath","isObject","internalSetValues","prevValue","recursive","setValues","restValues","changedNamePath","every","nameUnit","defaultGetValueFromEvent","valuePropName","move","moveIndex","diff","AsyncValidator","RawAsyncValidator","replaceMessage","kv","CODE_LOGIC_ERROR","validateRule","_x2","_x3","_x4","_x5","_validateRule","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","messageVariables","cloneRule","originValidator","subRuleField","subResults","fillVariableResult","wrap","_context2","prev","ruleIndex","_ref4","mergedMessage","all","subValue","sent","abrupt","validateRules","validateFirst","summaryPromise","filledRules","currentRule","originValidatorFunc","hasPromise","catch","w1","warningOnly","w2","_callee","_context","_x6","_x7","rulePromises","_x9","_finishOnFirstFailed","finishOnFirstFailed","_x8","_finishOnAllFailed","finishOnAllFailed","_callee3","_context3","errorsList","_ref5","_callee4","_context4","ruleError","EMPTY_ERRORS","requireUpdate","shouldUpdate","Field","_React$Component","_inherits","_super","_createSuper","_classCallCheck","resetCount","cancelRegisterFunc","mounted","touched","dirty","validatePromise","prevValidating","warnings","cancelRegister","_this$props","preserve","isListField","_this$props2","_fieldContext$prefixN","fieldContext","prefixName","getRules","_this$props3","_this$props3$rules","refresh","triggerMetaEvent","onMetaChange","getMeta","onStoreChange","prevStore","_this$props4","_this$props4$dependen","dependencies","onReset","curValue","namePathMatch","reRender","validating","dependency","relatedFields","rootPromise","_this$props5","_this$props5$validate","triggerName","filteredRules","validateTrigger","ruleErrors","_ruleErrors$forEach","nextErrors","nextWarnings","_ref3$errors","isFieldDirty","initialValue","getErrors","getWarnings","isList","isPreserve","getOnlyChild","meta","getControlled","isFunction","childList","toChildrenArray","childProps","_this$props6","getValueFromEvent","getValueProps","mergedValidateTrigger","_getInternalHooks","mergedGetValueProps","originTriggerFunc","control","validateTriggerList","originTrigger","_assertThisInitialized","_createClass","_this$props7","forceUpdate","returnChildNode","_this$getOnlyChild","FieldContext","keyManager","parentPrefixName","listContext","getKey","pathName","ListContext","_ref3$value","onChange","getNewValue","operations","indexSet","Set","has","valueIndex","_move","listValue","SPLIT","cell","NameMap","kvs","Map","delete","cells","_cell$match","_cell$match2","unit","FormStore","forceRootUpdate","formHooked","subscribable","fieldEntities","initialValues","lastValidatePromise","getForm","_init","prevWithoutPreserves","_this$prevWithoutPres","nextStore","updateStore","getFieldEntities","isMergedPreserve","initValue","watchList","notifyWatch","timeoutId","warningUnhooked","pure","getFieldsMap","getFieldEntitiesForNamePathList","nameList","INVALIDATE_NAME_PATH","filterFunc","filteredNameList","_entity$isListField","arg0","arg1","isAllFieldsTouched","shortNamePath","fieldNamePath","isNamePathListTouched","entities","namePathListEntities","testField","resetWithFieldInitialValue","records","requiredFieldEntities","resetWithFields","originValue","skipExist","_requiredFieldEntitie","notifyObservers","fieldData","fieldPreserve","mergedPreserve","subNamePath","_prevStore","triggerDependenciesUpdate","updateValue","_namePath","mergedInfo","childrenFields","getDependencyChildrenFields","onValuesChange","triggerOnFieldsChange","rootNamePath","dependencies2fields","dependencyNamePath","fillChildren","filedErrors","onFieldsChange","fieldName","provideNameList","promiseList","mergedErrors","mergedWarnings","_ref6","hasError","allPromiseFinish","resultNamePathList","_ref7","returnPromise","outOfDate","onFinish","onFinishFailed","formRef","_React$useState","formStore","FormContext","triggerFormChange","triggerFormFinish","registerForm","unregisterForm","FormProvider","onFormChange","onFormFinish","formContext","formsRef","changedFields","forms","newForms","_ref$component","Component","_ref$validateTrigger","_onFieldsChange","_onFinish","_useForm","useForm","formInstance","_formInstance$getInte","childrenNode","mountRef","childrenRenderProps","prevFieldsRef","sourceKeys","targetKeys","sourceValue","targetValue","isSimilar","formContextValue","wrapperNode","onSubmit","preventDefault","stopPropagation","_restProps$onReset","_args$","_useState","valueStr","valueStrRef","isValidForm","namePathRef","nextValueStr","RefForm","FieldForm","List","useWatch","makePrefixMap","styleProp","prefixes","vendorPrefixes","domSupport","win","animationend","transitionend","transition","getVendorPrefixes","_document$createEleme","prefixedEventNames","getVendorPrefixedEventName","prefixMap","stylePropList","internalAnimationEndName","internalTransitionEndName","supportTransition","animationEndName","transitionEndName","getTransitionName","transitionType","toUpperCase","STATUS_NONE","STATUS_APPEAR","STATUS_ENTER","STATUS_LEAVE","STEP_NONE","STEP_PREPARE","STEP_START","STEP_ACTIVE","STEP_ACTIVATED","useLayoutEffect","STEP_QUEUE","step","setStep","_useNextFrame","nextFrameRef","cancelNextFrame","raf","nextFrame","delay","nextFrameId","isCanceled","useNextFrame","_useNextFrame2","useIsomorphicLayoutEffect","nextStep","doNext","useStatus","supportMotion","visible","getElement","_ref$motionEnter","motionEnter","_ref$motionAppear","motionAppear","_ref$motionLeave","motionLeave","motionDeadline","motionLeaveImmediately","onAppearPrepare","onEnterPrepare","onLeavePrepare","onAppearStart","onEnterStart","onLeaveStart","onAppearActive","onEnterActive","onLeaveActive","onAppearEnd","onEnterEnd","onLeaveEnd","onVisibleChanged","asyncVisible","setAsyncVisible","_useState3","_useState4","setStatus","_useState5","_useState6","setStyle","mountedRef","deadlineRef","getDomElement","activeRef","onInternalMotionEnd","deadline","canEnd","currentActive","_useDomMotionEvents","cacheElementRef","callbackRef","removeMotionEvents","useDomMotionEvents","patchMotionEvents","eventHandlers","_useStepQueue","useStepQueue","newStep","onPrepare","_eventHandlers$step","_useStepQueue2","startStep","nextStatus","isMounted","firstMountChangeRef","mergedStyle","DomWrapper","transitionSupport","isSupportTransition","motionName","CSSMotion","_props$visible","_props$removeOnLeave","removeOnLeave","leavedClassName","eventProps","nodeRef","wrapperNodeRef","_useStatus","HTMLElement","findDOMNode","_useStatus2","statusStep","statusStyle","mergedVisible","renderedRef","motionChildren","setNodeRef","fillRef","mergedProps","statusSuffix","supportRef","STATUS_ADD","STATUS_KEEP","STATUS_REMOVE","STATUS_REMOVED","wrapKeyToObject","keyObj","parseKeys","diffKeys","currentLen","prevKeyObjects","currentKeyObjects","hit","currentKeyObj","duplicatedKeys","matchKey","_excluded2","MOTION_PROP_NAMES","OriginCSSMotion","CSSMotionList","keyEntities","removeKey","nextKeyEntities","_onVisibleChanged","onAllRemoved","motionProps","changedVisible","parsedKeyObjects","prevEntity","Notice","_Component","closeTimer","clearCloseTimer","noticeKey","startCloseTimer","prevProps","updateMark","restartCloseTimer","componentClass","dataOrAriaAttributeProps","onMouseEnter","onMouseLeave","ReactDOM","createRoot","fullClone","reactRender","unmountComponentAtNode","toggleWarning","skip","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","usingClientEntryPoint","MARK","root","modernRender","legacyRender","modernUnmount","_modernUnmount","_container$MARK","unmount","legacyUnmount","_unmount","getUuid","notices","hookRefs","originNotice","_originNotice$key","previousState","noticeIndex","updatedNotices","userPassKey","_ref2$notice","noticePropsMap","noticeKeys","_notice$onClose","motionClassName","motionStyle","_this2$noticePropsMap","newInstance","called","_useNotification","createdRef","_React$useState2","firstMount","noticeEle","originElements","findIndex","ele","cloneList","items_per_page","jump_to","jump_to_confirm","page","prev_page","next_page","prev_5","next_5","prev_3","next_3","page_size","keepEmpty","isFragment","contains","APPEND_ORDER","MARK_KEY","containerCache","getMark","attachTo","getOrder","findStyles","tagName","injectCSS","css","styleNode","nonce","innerHTML","firstChild","existStyle","nextSibling","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","existNode","_option$csp","_option$csp2","_option$csp3","newNode","condition","cacheRef","useSafeState","destroyRef","ignoreDestroy","caf","handle","cancelAnimationFrame","rafUUID","rafIds","cleanup","wrapperRaf","times","callRef","leftTimes","realId","cancel","composeRef","refs","refList","useComposeRef","_len2","_key2","nodeOrComponent","_type$prototype","_nodeOrComponent$prot","warned","aa","ca","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","Na","Oa","prepareStackTrace","Reflect","construct","Pa","Qa","$$typeof","_payload","Ra","Sa","Ta","nodeName","Va","_valueTracker","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","gb","hb","ib","jb","kb","lb","mb","nb","namespaceURI","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","keygen","link","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","clz32","pc","qc","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","Uc","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","password","tel","week","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationiteration","animationstart","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","D","pf","qf","rf","sf","capture","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","Jf","queueMicrotask","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","kh","nh","_reactInternals","enqueueSetState","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","done","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useInsertionEffect","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","autoFocus","createTextNode","Hj","Ij","Jj","Kj","U","Lj","WeakSet","V","Mj","W","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Y","Z","qk","rk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","dl","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unstable_scheduleHydration","tl","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","unstable_strictMode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","matchHtmlEntity","htmlEntities","unescapeHtmlEntity","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptors","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","ns","getI18n","initReactI18next","setDefaults","react","setI18n","_console","alreadyWarned","warnOnce","loadNamespaces","isInitialized","on","off","oldI18nextHasLoadedNamespace","lng","languages","fallbackLng","lastLng","loadNotPending","loadState","services","backendConnector","backend","isLanguageChangingTo","hasResourceBundle","resources","partialBundledLanguages","hasLoadedNamespace","isNewerI18next","ignoreJSONStructure","precheck","usePrevious","ignore","i18nFromProps","i18nFromContext","defaultNSFromContext","defaultNS","reportNamespaces","notReadyT","retNotReady","ready","wait","i18nOptions","keyPrefix","addUsedNamespaces","initializedStoreOnce","getT","getFixedT","nsMode","setT","joinedNS","previousJoinedNS","boundReset","isInitial","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","BrowserRouter","createHistory","Router","resolveToLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","ex","isModifiedEvent","Link","RouterContext","isDuplicateNavigation","NavLink","ariaCurrent","activeStyle","classNameProp","isActiveProp","locationProp","sensitive","strict","escapedPath","matchPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","handlers","changedBits","calculateChangedBits","contextProp","getUniqueId","emitter","nextProps","oldValue","observedBits","onUpdate","createNamedContext","historyContext","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","HistoryContext","cacheCount","matched","pathCache","pathToRegexp","compilePath","memo","Route","computedMatch","isEmptyChildren","createURL","staticHandler","methodName","noop","Switch","useHistory","useLocation","useParams","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","tokens","defaultDelimiter","delimiter","escaped","asterisk","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","pretty","token","TypeError","attachKeys","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","__self","__source","jsx","jsxs","escape","_status","_result","Children","only","PureComponent","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","createRef","isValidElement","lazy","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","_arrayLikeToArray","_arrayWithHoles","self","ReferenceError","asyncGeneratorStep","gen","_next","_throw","Constructor","_defineProperties","protoProps","staticProps","_createForOfIteratorHelper","allowArrayLike","_e","normalCompletion","didErr","_e2","Derived","hasNativeReflectConstruct","sham","Proxy","Super","NewTarget","possibleConstructorReturn","_getPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","_iterableToArray","iter","_nonIterableRest","_objectSpread2","excluded","sourceSymbolKeys","propertyIsEnumerable","_objectWithoutPropertiesLoose","_possibleConstructorReturn","Op","desc","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","makeInvokeMethod","tryCatch","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","_invoke","AsyncIterator","PromiseImpl","invoke","record","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegate","delegateResult","maybeInvokeDelegate","_sent","dispatchException","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","_setPrototypeOf","arrayWithHoles","_arr","_n","_d","unsupportedIterableToArray","nonIterableRest","arrayLikeToArray","iterableToArray","_unsupportedIterableToArray","minLen","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","leafPrototypes","definition","chunkId","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","charset","nc","onScriptComplete","onerror","onload","doneFns","head","nmd","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","linkTag","errorType","realHref","request","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","consoleLogger","output","Logger","concreteLogger","logger","debug","forward","_len3","_key3","_len4","_key4","debugOnly","moduleName","baseLogger","EventEmitter","observers","events","observer","_cloned","defer","rej","makeString","getLastOfPath","cleanKey","canNotTraverseDeeper","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","deepExtend","overwrite","regexEscape","_entityMap","isIE10","userAgentData","ownKeys$1","_objectSpread$1","_isNativeReflectConstruct","deepFind","keySeparator","endsWith","joinedPath","ResourceStore","_EventEmitter","silent","addNamespaces","emit","addResource","pack","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","looksLikeObjectPath","interpolator","nestingRegexp","lastKey","overloadTranslationOptionHandler","returnDetails","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","lngs","fallbackLngs","languageUtils","getFallbackCodes","saveMissingTo","toResolveHierarchy","specificDefaultValue","defaultForMissing","missingKeyHandler","saveMissing","saveMissingPlurals","getSuffixes","suffix","appendNamespaceToMissingKey","parseMissingKeyHandler","_this3","defaultVariables","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","interpolate","nest","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","_this4","extracted","fallbackNS","needsZeroSuffixLookup","ordinal","shouldUseIntlApi","needsContextHandling","codes","utils","possibleKey","finalKeys","addLookupKeys","pluralSuffix","zeroSuffix","pluralSeparator","contextKey","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","cleanCode","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","zero","one","two","few","many","other","createRules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","_unused","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","safeValue","todo","matchedVar","temp","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","matchedSingleQuotes","matchedDoubleQuotes","formatters","doReduce","ownKeys$4","_objectSpread$4","createCachedFormatter","formatter","Formatter","formats","NumberFormat","currency","DateTimeFormat","relativetime","RelativeTimeFormat","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split","_opt$split2","parseFormatStr","formatted","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","waitingReads","maxParallelReads","readingCalls","maxRetries","retryTimeout","toLoad","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","pendingCount","addResourceBundle","_getLastOfPath2","pushPath","removePending","loadedKeys","fcName","tried","read","queueLoad","loadOne","prepareLoading","_this5","fallbackValue","isUpdate","initImmediate","preload","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","external","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","usedCallback","resolvedLanguage","setResolvedLanguage","lngInLngs","hasLanguageSomeTranslations","setLngProps","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","detect","fixedT","resultKey","_this$translator","_this$translator2","exists","_this6","preResult","_this7","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","setDefaultNamespace","loadLanguages","my","lan","imgArr","oSLanguage","showModal","setShowModal","setFrom","setCurrencyCode","setLoading","setVipType","centerDiv","homeDiv","processArr","processUnderArr","processWrapper","contentArr","showIndex","setShowIndex","setBackgroundColor","cardData","cardContent","cardUser","initData","searchParams","authToken","canRedeemed","event_name","show_from","res1","res2","simplePrivileges","resVipType","initDataAnimation","startAnimation","timeout1","timeout2","homeDom","centerDom","showCenterContent","classList","targetIndex","dom","setAnimation","linkToVip","linkCurrentVip","Layout","Img","Download","Footer","getPrize","showTwoCode","setShowTwoCode","codeImg","setCodeImg","setCount","gotAccessToken","setGotAccessToken","isChangingImg","setIsChangingImg","startDiv","imgArrRef","webLogin","showTwoCodeRef","interval","curIndex","previousTimeStamp","timestamp","elapsed","startData","authType","imgStr","Features","Toolkit","Subscription","WhyOmi","Press","Article","Support","Apply","Company","Guideline","Help","Terms","Service","Privacy","SafetyTips","Share","AntiFraud","Vip","PaySuccess","PayError","PayPending","normal","setNormal","Home","flexDirection","justifyContent","alignItems","marginBottom","getElementById"],"sourceRoot":""}