{"version":3,"file":"static/js/main.711217b2.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/invariant/browser.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/path-to-regexp/index.js","../node_modules/path-to-regexp/node_modules/isarray/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/publicPath","../node_modules/primereact/utils/utils.esm.js","../node_modules/primereact/api/api.esm.js","../node_modules/primereact/hooks/hooks.esm.js","../node_modules/primereact/ripple/ripple.esm.js","../node_modules/primereact/menubar/menubar.esm.js","components/menuHeader.jsx","components/footerSheet.jsx","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/hooks/esm/useUpdateEffect.js","../node_modules/@restart/hooks/esm/useWillUnmount.js","../node_modules/@restart/hooks/esm/useUpdatedRef.js","../node_modules/@restart/hooks/esm/useTimeout.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/dom-helpers/esm/camelize.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/createWithBsPrefix.js","../node_modules/react-bootstrap/esm/CarouselCaption.js","../node_modules/react-bootstrap/esm/CarouselItem.js","../node_modules/react-bootstrap/esm/ElementChildren.js","../node_modules/dom-helpers/esm/ownerWindow.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/dom-helpers/esm/hyphenate.js","../node_modules/dom-helpers/esm/hyphenateStyle.js","../node_modules/dom-helpers/esm/isTransform.js","../node_modules/dom-helpers/esm/css.js","../node_modules/dom-helpers/esm/getComputedStyle.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/dom-helpers/esm/transitionEnd.js","../node_modules/dom-helpers/esm/triggerEvent.js","../node_modules/react-bootstrap/esm/transitionEndListener.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/reflow.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/TransitionWrapper.js","../node_modules/react-bootstrap/esm/safeFindDOMNode.js","../node_modules/react-bootstrap/esm/Carousel.js","../node_modules/react-bootstrap/esm/triggerBrowserReflow.js","components/views/public/sobreNosotros.jsx","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/history/esm/history.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-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","components/body.jsx","components/horizontalLottie.jsx","lotties/index.jsx","../node_modules/react-bootstrap/esm/ProgressBar.js","../node_modules/react-icons/lib/esm/iconContext.js","../node_modules/react-icons/lib/esm/iconBase.js","../node_modules/react-icons/fa/index.esm.js","components/progressbar.jsx","components/progressBarLottie.jsx","components/metricas.jsx","logos-aliados/koulutus.svg","components/nuestrosAliados.jsx","components/views/public/main.jsx","../node_modules/react-bootstrap/esm/Button.js","components/views/public/nuestroProposito.jsx","../node_modules/react-bootstrap/esm/Container.js","../node_modules/react-bootstrap/esm/Image.js","components/views/public/nuestroEquipo.jsx","components/views/public/rte.jsx","components/views/public/donar.jsx","App.jsx","index.jsx"],"sourcesContent":["/*!\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\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","/** @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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","import lottie from \"lottie-web\";\nimport React, { useEffect, useRef, useState, } from \"react\";\nconst useLottie = (props, style) => {\n const { animationData, loop, autoplay, initialSegment, onComplete, onLoopComplete, onEnterFrame, onSegmentStart, onConfigReady, onDataReady, onDataFailed, onLoadedImages, onDOMLoaded, onDestroy, \n // Specified here to take them out from the 'rest'\n lottieRef, renderer, name, assetsPath, rendererSettings, \n // TODO: find a better way to extract the html props to avoid specifying\n // all the props that we want to exclude (as you can see above)\n ...rest } = props;\n const [animationLoaded, setAnimationLoaded] = useState(false);\n const animationInstanceRef = useRef();\n const animationContainer = useRef(null);\n /*\n ======================================\n INTERACTION METHODS\n ======================================\n */\n /**\n * Play\n */\n const play = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.play();\n };\n /**\n * Stop\n */\n const stop = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.stop();\n };\n /**\n * Pause\n */\n const pause = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.pause();\n };\n /**\n * Set animation speed\n * @param speed\n */\n const setSpeed = (speed) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSpeed(speed);\n };\n /**\n * Got to frame and play\n * @param value\n * @param isFrame\n */\n const goToAndPlay = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndPlay(value, isFrame);\n };\n /**\n * Got to frame and stop\n * @param value\n * @param isFrame\n */\n const goToAndStop = (value, isFrame) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.goToAndStop(value, isFrame);\n };\n /**\n * Set animation direction\n * @param direction\n */\n const setDirection = (direction) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setDirection(direction);\n };\n /**\n * Play animation segments\n * @param segments\n * @param forceFlag\n */\n const playSegments = (segments, forceFlag) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.playSegments(segments, forceFlag);\n };\n /**\n * Set sub frames\n * @param useSubFrames\n */\n const setSubframe = (useSubFrames) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.setSubframe(useSubFrames);\n };\n /**\n * Get animation duration\n * @param inFrames\n */\n const getDuration = (inFrames) => { var _a; return (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.getDuration(inFrames); };\n /**\n * Destroy animation\n */\n const destroy = () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Removing the reference to the animation so separate cleanups are skipped.\n // Without it the internal `lottie-react` instance throws exceptions as it already cleared itself on destroy.\n animationInstanceRef.current = undefined;\n };\n /*\n ======================================\n LOTTIE\n ======================================\n */\n /**\n * Load a new animation, and if it's the case, destroy the previous one\n * @param {Object} forcedConfigs\n */\n const loadAnimation = (forcedConfigs = {}) => {\n var _a;\n // Return if the container ref is null\n if (!animationContainer.current) {\n return;\n }\n // Destroy any previous instance\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n // Build the animation configuration\n const config = {\n ...props,\n ...forcedConfigs,\n container: animationContainer.current,\n };\n // Save the animation instance\n animationInstanceRef.current = lottie.loadAnimation(config);\n setAnimationLoaded(!!animationInstanceRef.current);\n // Return a function that will clean up\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.destroy();\n animationInstanceRef.current = undefined;\n };\n };\n /**\n * (Re)Initialize when animation data changed\n */\n useEffect(() => {\n const onUnmount = loadAnimation();\n // Clean up on unmount\n return () => onUnmount === null || onUnmount === void 0 ? void 0 : onUnmount();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [animationData, loop]);\n // Update the autoplay state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n animationInstanceRef.current.autoplay = !!autoplay;\n }, [autoplay]);\n // Update the initial segment state\n useEffect(() => {\n if (!animationInstanceRef.current) {\n return;\n }\n // When null should reset to default animation length\n if (!initialSegment) {\n animationInstanceRef.current.resetSegments(true);\n return;\n }\n // If it's not a valid segment, do nothing\n if (!Array.isArray(initialSegment) || !initialSegment.length) {\n return;\n }\n // If the current position it's not in the new segment\n // set the current position to start\n if (animationInstanceRef.current.currentRawFrame < initialSegment[0] ||\n animationInstanceRef.current.currentRawFrame > initialSegment[1]) {\n animationInstanceRef.current.currentRawFrame = initialSegment[0];\n }\n // Update the segment\n animationInstanceRef.current.setSegment(initialSegment[0], initialSegment[1]);\n }, [initialSegment]);\n /*\n ======================================\n EVENTS\n ======================================\n */\n /**\n * Reinitialize listener on change\n */\n useEffect(() => {\n const partialListeners = [\n { name: \"complete\", handler: onComplete },\n { name: \"loopComplete\", handler: onLoopComplete },\n { name: \"enterFrame\", handler: onEnterFrame },\n { name: \"segmentStart\", handler: onSegmentStart },\n { name: \"config_ready\", handler: onConfigReady },\n { name: \"data_ready\", handler: onDataReady },\n { name: \"data_failed\", handler: onDataFailed },\n { name: \"loaded_images\", handler: onLoadedImages },\n { name: \"DOMLoaded\", handler: onDOMLoaded },\n { name: \"destroy\", handler: onDestroy },\n ];\n const listeners = partialListeners.filter((listener) => listener.handler != null);\n if (!listeners.length) {\n return;\n }\n const deregisterList = listeners.map(\n /**\n * Handle the process of adding an event listener\n * @param {Listener} listener\n * @return {Function} Function that deregister the listener\n */\n (listener) => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.addEventListener(listener.name, listener.handler);\n // Return a function to deregister this listener\n return () => {\n var _a;\n (_a = animationInstanceRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(listener.name, listener.handler);\n };\n });\n // Deregister listeners on unmount\n return () => {\n deregisterList.forEach((deregister) => deregister());\n };\n }, [\n onComplete,\n onLoopComplete,\n onEnterFrame,\n onSegmentStart,\n onConfigReady,\n onDataReady,\n onDataFailed,\n onLoadedImages,\n onDOMLoaded,\n onDestroy,\n ]);\n /**\n * Build the animation view\n */\n const View = React.createElement(\"div\", { style: style, ref: animationContainer, ...rest });\n return {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef: animationContainer,\n animationLoaded,\n animationItem: animationInstanceRef.current,\n };\n};\nexport default useLottie;\n","import { useEffect } from \"react\";\n// helpers\nexport function getContainerVisibility(container) {\n const { top, height } = container.getBoundingClientRect();\n const current = window.innerHeight - top;\n const max = window.innerHeight + height;\n return current / max;\n}\nexport function getContainerCursorPosition(container, cursorX, cursorY) {\n const { top, left, width, height } = container.getBoundingClientRect();\n const x = (cursorX - left) / width;\n const y = (cursorY - top) / height;\n return { x, y };\n}\nexport const useInitInteractivity = ({ wrapperRef, animationItem, mode, actions, }) => {\n useEffect(() => {\n const wrapper = wrapperRef.current;\n if (!wrapper || !animationItem || !actions.length) {\n return;\n }\n animationItem.stop();\n const scrollModeHandler = () => {\n let assignedSegment = null;\n const scrollHandler = () => {\n const currentPercent = getContainerVisibility(wrapper);\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ visibility }) => visibility &&\n currentPercent >= visibility[0] &&\n currentPercent <= visibility[1]);\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n if (action.type === \"seek\" &&\n action.visibility &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const frameToGo = action.frames[0] +\n Math.ceil(((currentPercent - action.visibility[0]) /\n (action.visibility[1] - action.visibility[0])) *\n action.frames[1]);\n //! goToAndStop must be relative to the start of the current segment\n animationItem.goToAndStop(frameToGo - animationItem.firstFrame - 1, true);\n }\n if (action.type === \"loop\") {\n // Loop: Loop a given frames\n if (assignedSegment === null) {\n // if not playing any segments currently. play those segments and save to state\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else {\n // if playing any segments currently.\n //check if segments in state are equal to the frames selected by action\n if (assignedSegment !== action.frames) {\n // if they are not equal. new segments are to be loaded\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n else if (animationItem.isPaused) {\n // if they are equal the play method must be called only if lottie is paused\n animationItem.playSegments(action.frames, true);\n assignedSegment = action.frames;\n }\n }\n }\n if (action.type === \"play\" && animationItem.isPaused) {\n // Play: Reset segments and continue playing full animation from current position\n animationItem.resetSegments(true);\n animationItem.play();\n }\n if (action.type === \"stop\") {\n // Stop: Stop playback\n animationItem.goToAndStop(action.frames[0] - animationItem.firstFrame - 1, true);\n }\n };\n document.addEventListener(\"scroll\", scrollHandler);\n return () => {\n document.removeEventListener(\"scroll\", scrollHandler);\n };\n };\n const cursorModeHandler = () => {\n const handleCursor = (_x, _y) => {\n let x = _x;\n let y = _y;\n // Resolve cursor position if cursor is inside container\n if (x !== -1 && y !== -1) {\n // Get container cursor position\n const pos = getContainerCursorPosition(wrapper, x, y);\n // Use the resolved position\n x = pos.x;\n y = pos.y;\n }\n // Find the first action that satisfies the current position conditions\n const action = actions.find(({ position }) => {\n if (position &&\n Array.isArray(position.x) &&\n Array.isArray(position.y)) {\n return (x >= position.x[0] &&\n x <= position.x[1] &&\n y >= position.y[0] &&\n y <= position.y[1]);\n }\n if (position &&\n !Number.isNaN(position.x) &&\n !Number.isNaN(position.y)) {\n return x === position.x && y === position.y;\n }\n return false;\n });\n // Skip if no matching action was found!\n if (!action) {\n return;\n }\n // Process action types:\n if (action.type === \"seek\" &&\n action.position &&\n Array.isArray(action.position.x) &&\n Array.isArray(action.position.y) &&\n action.frames.length === 2) {\n // Seek: Go to a frame based on player scroll position action\n const xPercent = (x - action.position.x[0]) /\n (action.position.x[1] - action.position.x[0]);\n const yPercent = (y - action.position.y[0]) /\n (action.position.y[1] - action.position.y[0]);\n animationItem.playSegments(action.frames, true);\n animationItem.goToAndStop(Math.ceil(((xPercent + yPercent) / 2) *\n (action.frames[1] - action.frames[0])), true);\n }\n if (action.type === \"loop\") {\n animationItem.playSegments(action.frames, true);\n }\n if (action.type === \"play\") {\n // Play: Reset segments and continue playing full animation from current position\n if (animationItem.isPaused) {\n animationItem.resetSegments(false);\n }\n animationItem.playSegments(action.frames);\n }\n if (action.type === \"stop\") {\n animationItem.goToAndStop(action.frames[0], true);\n }\n };\n const mouseMoveHandler = (ev) => {\n handleCursor(ev.clientX, ev.clientY);\n };\n const mouseOutHandler = () => {\n handleCursor(-1, -1);\n };\n wrapper.addEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.addEventListener(\"mouseout\", mouseOutHandler);\n return () => {\n wrapper.removeEventListener(\"mousemove\", mouseMoveHandler);\n wrapper.removeEventListener(\"mouseout\", mouseOutHandler);\n };\n };\n switch (mode) {\n case \"scroll\":\n return scrollModeHandler();\n case \"cursor\":\n return cursorModeHandler();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mode, animationItem]);\n};\nconst useLottieInteractivity = ({ actions, mode, lottieObj, }) => {\n const { animationItem, View, animationContainerRef } = lottieObj;\n useInitInteractivity({\n actions,\n animationItem,\n mode,\n wrapperRef: animationContainerRef,\n });\n return View;\n};\nexport default useLottieInteractivity;\n","import { useEffect } from \"react\";\nimport useLottie from \"../hooks/useLottie\";\nimport useLottieInteractivity from \"../hooks/useLottieInteractivity\";\nconst Lottie = (props) => {\n var _a, _b, _c;\n const { style, interactivity, ...lottieProps } = props;\n /**\n * Initialize the 'useLottie' hook\n */\n const { View, play, stop, pause, setSpeed, goToAndStop, goToAndPlay, setDirection, playSegments, setSubframe, getDuration, destroy, animationContainerRef, animationLoaded, animationItem, } = useLottie(lottieProps, style);\n /**\n * Make the hook variables/methods available through the provided 'lottieRef'\n */\n useEffect(() => {\n if (props.lottieRef) {\n props.lottieRef.current = {\n play,\n stop,\n pause,\n setSpeed,\n goToAndPlay,\n goToAndStop,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n };\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [(_a = props.lottieRef) === null || _a === void 0 ? void 0 : _a.current]);\n return useLottieInteractivity({\n lottieObj: {\n View,\n play,\n stop,\n pause,\n setSpeed,\n goToAndStop,\n goToAndPlay,\n setDirection,\n playSegments,\n setSubframe,\n getDuration,\n destroy,\n animationContainerRef,\n animationLoaded,\n animationItem,\n },\n actions: (_b = interactivity === null || interactivity === void 0 ? void 0 : interactivity.actions) !== null && _b !== void 0 ? _b : [],\n mode: (_c = interactivity === null || interactivity === void 0 ? void 0 : interactivity.mode) !== null && _c !== void 0 ? _c : \"scroll\",\n });\n};\nexport default Lottie;\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\n})(this, (function () { 'use strict';\n\n var svgNS = 'http://www.w3.org/2000/svg';\n var locationHref = '';\n var _useWebWorker = false;\n var initialDefaultFrame = -999999;\n\n var setWebWorker = function setWebWorker(flag) {\n _useWebWorker = !!flag;\n };\n\n var getWebWorker = function getWebWorker() {\n return _useWebWorker;\n };\n\n var setLocationHref = function setLocationHref(value) {\n locationHref = value;\n };\n\n var getLocationHref = function getLocationHref() {\n return locationHref;\n };\n\n function createTag(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElement(type);\n }\n\n function extendPrototype(sources, destination) {\n var i;\n var len = sources.length;\n var sourcePrototype;\n\n for (i = 0; i < len; i += 1) {\n sourcePrototype = sources[i].prototype;\n\n for (var attr in sourcePrototype) {\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\n }\n }\n }\n\n function getDescriptor(object, prop) {\n return Object.getOwnPropertyDescriptor(object, prop);\n }\n\n function createProxyFunction(prototype) {\n function ProxyFunction() {}\n\n ProxyFunction.prototype = prototype;\n return ProxyFunction;\n }\n\n // import Howl from '../../3rd_party/howler';\n var audioControllerFactory = function () {\n function AudioController(audioFactory) {\n this.audios = [];\n this.audioFactory = audioFactory;\n this._volume = 1;\n this._isMuted = false;\n }\n\n AudioController.prototype = {\n addAudio: function addAudio(audio) {\n this.audios.push(audio);\n },\n pause: function pause() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].pause();\n }\n },\n resume: function resume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].resume();\n }\n },\n setRate: function setRate(rateValue) {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].setRate(rateValue);\n }\n },\n createAudio: function createAudio(assetPath) {\n if (this.audioFactory) {\n return this.audioFactory(assetPath);\n }\n\n if (window.Howl) {\n return new window.Howl({\n src: [assetPath]\n });\n }\n\n return {\n isPlaying: false,\n play: function play() {\n this.isPlaying = true;\n },\n seek: function seek() {\n this.isPlaying = false;\n },\n playing: function playing() {},\n rate: function rate() {},\n setVolume: function setVolume() {}\n };\n },\n setAudioFactory: function setAudioFactory(audioFactory) {\n this.audioFactory = audioFactory;\n },\n setVolume: function setVolume(value) {\n this._volume = value;\n\n this._updateVolume();\n },\n mute: function mute() {\n this._isMuted = true;\n\n this._updateVolume();\n },\n unmute: function unmute() {\n this._isMuted = false;\n\n this._updateVolume();\n },\n getVolume: function getVolume() {\n return this._volume;\n },\n _updateVolume: function _updateVolume() {\n var i;\n var len = this.audios.length;\n\n for (i = 0; i < len; i += 1) {\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\n }\n }\n };\n return function () {\n return new AudioController();\n };\n }();\n\n var createTypedArray = function () {\n function createRegularArray(type, len) {\n var i = 0;\n var arr = [];\n var value;\n\n switch (type) {\n case 'int16':\n case 'uint8c':\n value = 1;\n break;\n\n default:\n value = 1.1;\n break;\n }\n\n for (i = 0; i < len; i += 1) {\n arr.push(value);\n }\n\n return arr;\n }\n\n function createTypedArrayFactory(type, len) {\n if (type === 'float32') {\n return new Float32Array(len);\n }\n\n if (type === 'int16') {\n return new Int16Array(len);\n }\n\n if (type === 'uint8c') {\n return new Uint8ClampedArray(len);\n }\n\n return createRegularArray(type, len);\n }\n\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\n return createTypedArrayFactory;\n }\n\n return createRegularArray;\n }();\n\n function createSizedArray(len) {\n return Array.apply(null, {\n length: len\n });\n }\n\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\n var subframeEnabled = true;\n var expressionsPlugin = null;\n var expressionsInterfaces = null;\n var idPrefix$1 = '';\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n var _shouldRoundValues = false;\n var bmPow = Math.pow;\n var bmSqrt = Math.sqrt;\n var bmFloor = Math.floor;\n var bmMax = Math.max;\n var bmMin = Math.min;\n var BMMath = {};\n\n (function () {\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\n var i;\n var len = propertyNames.length;\n\n for (i = 0; i < len; i += 1) {\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\n }\n })();\n\n function ProjectInterface$1() {\n return {};\n }\n\n BMMath.random = Math.random;\n\n BMMath.abs = function (val) {\n var tOfVal = _typeof$6(val);\n\n if (tOfVal === 'object' && val.length) {\n var absArr = createSizedArray(val.length);\n var i;\n var len = val.length;\n\n for (i = 0; i < len; i += 1) {\n absArr[i] = Math.abs(val[i]);\n }\n\n return absArr;\n }\n\n return Math.abs(val);\n };\n\n var defaultCurveSegments = 150;\n var degToRads = Math.PI / 180;\n var roundCorner = 0.5519;\n\n function roundValues(flag) {\n _shouldRoundValues = !!flag;\n }\n\n function bmRnd(value) {\n if (_shouldRoundValues) {\n return Math.round(value);\n }\n\n return value;\n }\n\n function styleDiv(element) {\n element.style.position = 'absolute';\n element.style.top = 0;\n element.style.left = 0;\n element.style.display = 'block';\n element.style.transformOrigin = '0 0';\n element.style.webkitTransformOrigin = '0 0';\n element.style.backfaceVisibility = 'visible';\n element.style.webkitBackfaceVisibility = 'visible';\n element.style.transformStyle = 'preserve-3d';\n element.style.webkitTransformStyle = 'preserve-3d';\n element.style.mozTransformStyle = 'preserve-3d';\n }\n\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\n this.type = type;\n this.currentTime = currentTime;\n this.totalTime = totalTime;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteEvent(type, frameMultiplier) {\n this.type = type;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\n this.type = type;\n this.currentLoop = currentLoop;\n this.totalLoops = totalLoops;\n this.direction = frameMultiplier < 0 ? -1 : 1;\n }\n\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\n this.type = type;\n this.firstFrame = firstFrame;\n this.totalFrames = totalFrames;\n }\n\n function BMDestroyEvent(type, target) {\n this.type = type;\n this.target = target;\n }\n\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\n this.type = 'renderFrameError';\n this.nativeError = nativeError;\n this.currentTime = currentTime;\n }\n\n function BMConfigErrorEvent(nativeError) {\n this.type = 'configError';\n this.nativeError = nativeError;\n }\n\n function BMAnimationConfigErrorEvent(type, nativeError) {\n this.type = type;\n this.nativeError = nativeError;\n }\n\n var createElementID = function () {\n var _count = 0;\n return function createID() {\n _count += 1;\n return idPrefix$1 + '__lottie_element_' + _count;\n };\n }();\n\n function HSVtoRGB(h, s, v) {\n var r;\n var g;\n var b;\n var i;\n var f;\n var p;\n var q;\n var t;\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n\n switch (i % 6) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n\n default:\n break;\n }\n\n return [r, g, b];\n }\n\n function RGBtoHSV(r, g, b) {\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var d = max - min;\n var h;\n var s = max === 0 ? 0 : d / max;\n var v = max / 255;\n\n switch (max) {\n case min:\n h = 0;\n break;\n\n case r:\n h = g - b + d * (g < b ? 6 : 0);\n h /= 6 * d;\n break;\n\n case g:\n h = b - r + d * 2;\n h /= 6 * d;\n break;\n\n case b:\n h = r - g + d * 4;\n h /= 6 * d;\n break;\n\n default:\n break;\n }\n\n return [h, s, v];\n }\n\n function addSaturationToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[1] += offset;\n\n if (hsv[1] > 1) {\n hsv[1] = 1;\n } else if (hsv[1] <= 0) {\n hsv[1] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addBrightnessToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[2] += offset;\n\n if (hsv[2] > 1) {\n hsv[2] = 1;\n } else if (hsv[2] < 0) {\n hsv[2] = 0;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n function addHueToRGB(color, offset) {\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\n hsv[0] += offset / 360;\n\n if (hsv[0] > 1) {\n hsv[0] -= 1;\n } else if (hsv[0] < 0) {\n hsv[0] += 1;\n }\n\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\n }\n\n var rgbToHex = function () {\n var colorMap = [];\n var i;\n var hex;\n\n for (i = 0; i < 256; i += 1) {\n hex = i.toString(16);\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\n }\n\n return function (r, g, b) {\n if (r < 0) {\n r = 0;\n }\n\n if (g < 0) {\n g = 0;\n }\n\n if (b < 0) {\n b = 0;\n }\n\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\n };\n }();\n\n var setSubframeEnabled = function setSubframeEnabled(flag) {\n subframeEnabled = !!flag;\n };\n\n var getSubframeEnabled = function getSubframeEnabled() {\n return subframeEnabled;\n };\n\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\n expressionsPlugin = value;\n };\n\n var getExpressionsPlugin = function getExpressionsPlugin() {\n return expressionsPlugin;\n };\n\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\n expressionsInterfaces = value;\n };\n\n var getExpressionInterfaces = function getExpressionInterfaces() {\n return expressionsInterfaces;\n };\n\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\n defaultCurveSegments = value;\n };\n\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\n return defaultCurveSegments;\n };\n\n var setIdPrefix = function setIdPrefix(value) {\n idPrefix$1 = value;\n };\n\n var getIdPrefix = function getIdPrefix() {\n return idPrefix$1;\n };\n\n function createNS(type) {\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\n return document.createElementNS(svgNS, type);\n }\n\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\n\n var dataManager = function () {\n var _counterId = 1;\n var processes = [];\n var workerFn;\n var workerInstance;\n var workerProxy = {\n onmessage: function onmessage() {},\n postMessage: function postMessage(path) {\n workerFn({\n data: path\n });\n }\n };\n var _workerSelf = {\n postMessage: function postMessage(data) {\n workerProxy.onmessage({\n data: data\n });\n }\n };\n\n function createWorker(fn) {\n if (window.Worker && window.Blob && getWebWorker()) {\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\n type: 'text/javascript'\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\n\n var url = URL.createObjectURL(blob);\n return new Worker(url);\n }\n\n workerFn = fn;\n return workerProxy;\n }\n\n function setupWorker() {\n if (!workerInstance) {\n workerInstance = createWorker(function workerStart(e) {\n function dataFunctionManager() {\n function completeLayers(layers, comps) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if ('ks' in layerData && !layerData.completed) {\n layerData.completed = true;\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\n }\n\n if (maskProps[j].pt.k[k].e) {\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\n }\n }\n }\n }\n }\n\n if (layerData.ty === 0) {\n layerData.layers = findCompLayers(layerData.refId, comps);\n completeLayers(layerData.layers, comps);\n } else if (layerData.ty === 4) {\n completeShapes(layerData.shapes);\n } else if (layerData.ty === 5) {\n completeText(layerData);\n }\n }\n }\n }\n\n function completeChars(chars, assets) {\n if (chars) {\n var i = 0;\n var len = chars.length;\n\n for (i = 0; i < len; i += 1) {\n if (chars[i].t === 1) {\n // var compData = findComp(chars[i].data.refId, assets);\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\n // chars[i].data.op = 99999;\n // chars[i].data.st = 0;\n // chars[i].data.sr = 1;\n // chars[i].w = compData.w;\n // chars[i].data.ks = {\n // a: { k: [0, 0, 0], a: 0 },\n // p: { k: [0, -compData.h, 0], a: 0 },\n // r: { k: 0, a: 0 },\n // s: { k: [100, 100], a: 0 },\n // o: { k: 100, a: 0 },\n // };\n\n completeLayers(chars[i].data.layers, assets);\n }\n }\n }\n }\n\n function findComp(id, comps) {\n var i = 0;\n var len = comps.length;\n\n while (i < len) {\n if (comps[i].id === id) {\n return comps[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function findCompLayers(id, comps) {\n var comp = findComp(id, comps);\n\n if (comp) {\n if (!comp.layers.__used) {\n comp.layers.__used = true;\n return comp.layers;\n }\n\n return JSON.parse(JSON.stringify(comp.layers));\n }\n\n return null;\n }\n\n function completeShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n convertPathsToAbsoluteValues(arr[i].ks.k);\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\n }\n\n if (arr[i].ks.k[j].e) {\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeShapes(arr[i].it);\n }\n }\n }\n\n function convertPathsToAbsoluteValues(path) {\n var i;\n var len = path.i.length;\n\n for (i = 0; i < len; i += 1) {\n path.i[i][0] += path.v[i][0];\n path.i[i][1] += path.v[i][1];\n path.o[i][0] += path.v[i][0];\n path.o[i][1] += path.v[i][1];\n }\n }\n\n function checkVersion(minimum, animVersionString) {\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\n\n if (minimum[0] > animVersion[0]) {\n return true;\n }\n\n if (animVersion[0] > minimum[0]) {\n return false;\n }\n\n if (minimum[1] > animVersion[1]) {\n return true;\n }\n\n if (animVersion[1] > minimum[1]) {\n return false;\n }\n\n if (minimum[2] > animVersion[2]) {\n return true;\n }\n\n if (animVersion[2] > minimum[2]) {\n return false;\n }\n\n return null;\n }\n\n var checkText = function () {\n var minimumVersion = [4, 4, 14];\n\n function updateTextLayer(textLayer) {\n var documentData = textLayer.t.d;\n textLayer.t.d = {\n k: [{\n s: documentData,\n t: 0\n }]\n };\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkChars = function () {\n var minimumVersion = [4, 7, 99];\n return function (animationData) {\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\n var i;\n var len = animationData.chars.length;\n\n for (i = 0; i < len; i += 1) {\n var charData = animationData.chars[i];\n\n if (charData.data && charData.data.shapes) {\n completeShapes(charData.data.shapes);\n charData.data.ip = 0;\n charData.data.op = 99999;\n charData.data.st = 0;\n charData.data.sr = 1;\n charData.data.ks = {\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n }\n };\n\n if (!animationData.chars[i].t) {\n charData.data.shapes.push({\n ty: 'no'\n });\n charData.data.shapes[0].it.push({\n p: {\n k: [0, 0],\n a: 0\n },\n s: {\n k: [100, 100],\n a: 0\n },\n a: {\n k: [0, 0],\n a: 0\n },\n r: {\n k: 0,\n a: 0\n },\n o: {\n k: 100,\n a: 0\n },\n sk: {\n k: 0,\n a: 0\n },\n sa: {\n k: 0,\n a: 0\n },\n ty: 'tr'\n });\n }\n }\n }\n }\n };\n }();\n\n var checkPathProperties = function () {\n var minimumVersion = [5, 7, 15];\n\n function updateTextLayer(textLayer) {\n var pathData = textLayer.t.p;\n\n if (typeof pathData.a === 'number') {\n pathData.a = {\n a: 0,\n k: pathData.a\n };\n }\n\n if (typeof pathData.p === 'number') {\n pathData.p = {\n a: 0,\n k: pathData.p\n };\n }\n\n if (typeof pathData.r === 'number') {\n pathData.r = {\n a: 0,\n k: pathData.r\n };\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 5) {\n updateTextLayer(layers[i]);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkColors = function () {\n var minimumVersion = [4, 1, 9];\n\n function iterateShapes(shapes) {\n var i;\n var len = shapes.length;\n var j;\n var jLen;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n iterateShapes(shapes[i].it);\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\n jLen = shapes[i].c.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[i].c.k[j].s) {\n shapes[i].c.k[j].s[0] /= 255;\n shapes[i].c.k[j].s[1] /= 255;\n shapes[i].c.k[j].s[2] /= 255;\n shapes[i].c.k[j].s[3] /= 255;\n }\n\n if (shapes[i].c.k[j].e) {\n shapes[i].c.k[j].e[0] /= 255;\n shapes[i].c.k[j].e[1] /= 255;\n shapes[i].c.k[j].e[2] /= 255;\n shapes[i].c.k[j].e[3] /= 255;\n }\n }\n } else {\n shapes[i].c.k[0] /= 255;\n shapes[i].c.k[1] /= 255;\n shapes[i].c.k[2] /= 255;\n shapes[i].c.k[3] /= 255;\n }\n }\n }\n }\n\n function iterateLayers(layers) {\n var i;\n var len = layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (layers[i].ty === 4) {\n iterateShapes(layers[i].shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n var checkShapes = function () {\n var minimumVersion = [4, 4, 18];\n\n function completeClosingShapes(arr) {\n var i;\n var len = arr.length;\n var j;\n var jLen;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (arr[i].ty === 'sh') {\n if (arr[i].ks.k.i) {\n arr[i].ks.k.c = arr[i].closed;\n } else {\n jLen = arr[i].ks.k.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (arr[i].ks.k[j].s) {\n arr[i].ks.k[j].s[0].c = arr[i].closed;\n }\n\n if (arr[i].ks.k[j].e) {\n arr[i].ks.k[j].e[0].c = arr[i].closed;\n }\n }\n }\n } else if (arr[i].ty === 'gr') {\n completeClosingShapes(arr[i].it);\n }\n }\n }\n\n function iterateLayers(layers) {\n var layerData;\n var i;\n var len = layers.length;\n var j;\n var jLen;\n var k;\n var kLen;\n\n for (i = 0; i < len; i += 1) {\n layerData = layers[i];\n\n if (layerData.hasMask) {\n var maskProps = layerData.masksProperties;\n jLen = maskProps.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (maskProps[j].pt.k.i) {\n maskProps[j].pt.k.c = maskProps[j].cl;\n } else {\n kLen = maskProps[j].pt.k.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (maskProps[j].pt.k[k].s) {\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\n }\n\n if (maskProps[j].pt.k[k].e) {\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\n }\n }\n }\n }\n }\n\n if (layerData.ty === 4) {\n completeClosingShapes(layerData.shapes);\n }\n }\n }\n\n return function (animationData) {\n if (checkVersion(minimumVersion, animationData.v)) {\n iterateLayers(animationData.layers);\n\n if (animationData.assets) {\n var i;\n var len = animationData.assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (animationData.assets[i].layers) {\n iterateLayers(animationData.assets[i].layers);\n }\n }\n }\n }\n };\n }();\n\n function completeData(animationData) {\n if (animationData.__complete) {\n return;\n }\n\n checkColors(animationData);\n checkText(animationData);\n checkChars(animationData);\n checkPathProperties(animationData);\n checkShapes(animationData);\n completeLayers(animationData.layers, animationData.assets);\n completeChars(animationData.chars, animationData.assets);\n animationData.__complete = true;\n }\n\n function completeText(data) {\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\n }\n }\n\n var moduleOb = {};\n moduleOb.completeData = completeData;\n moduleOb.checkColors = checkColors;\n moduleOb.checkChars = checkChars;\n moduleOb.checkPathProperties = checkPathProperties;\n moduleOb.checkShapes = checkShapes;\n moduleOb.completeLayers = completeLayers;\n return moduleOb;\n }\n\n if (!_workerSelf.dataManager) {\n _workerSelf.dataManager = dataFunctionManager();\n }\n\n if (!_workerSelf.assetLoader) {\n _workerSelf.assetLoader = function () {\n function formatResponse(xhr) {\n // using typeof doubles the time of execution of this method,\n // so if available, it's better to use the header to validate the type\n var contentTypeHeader = xhr.getResponseHeader('content-type');\n\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\n return xhr.response;\n }\n\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\n return xhr.response;\n }\n\n if (xhr.response && typeof xhr.response === 'string') {\n return JSON.parse(xhr.response);\n }\n\n if (xhr.responseText) {\n return JSON.parse(xhr.responseText);\n }\n\n return null;\n }\n\n function loadAsset(path, fullPath, callback, errorCallback) {\n var response;\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\n\n try {\n // This crashes on Android WebView prior to KitKat\n xhr.responseType = 'json';\n } catch (err) {} // eslint-disable-line no-empty\n\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200) {\n response = formatResponse(xhr);\n callback(response);\n } else {\n try {\n response = formatResponse(xhr);\n callback(response);\n } catch (err) {\n if (errorCallback) {\n errorCallback(err);\n }\n }\n }\n }\n };\n\n try {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), path, true);\n } catch (error) {\n // Hack to workaround banner validation\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\n }\n\n xhr.send();\n }\n\n return {\n load: loadAsset\n };\n }();\n }\n\n if (e.data.type === 'loadAnimation') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.dataManager.completeData(data);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n } else if (e.data.type === 'complete') {\n var animation = e.data.animation;\n\n _workerSelf.dataManager.completeData(animation);\n\n _workerSelf.postMessage({\n id: e.data.id,\n payload: animation,\n status: 'success'\n });\n } else if (e.data.type === 'loadData') {\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\n _workerSelf.postMessage({\n id: e.data.id,\n payload: data,\n status: 'success'\n });\n }, function () {\n _workerSelf.postMessage({\n id: e.data.id,\n status: 'error'\n });\n });\n }\n });\n\n workerInstance.onmessage = function (event) {\n var data = event.data;\n var id = data.id;\n var process = processes[id];\n processes[id] = null;\n\n if (data.status === 'success') {\n process.onComplete(data.payload);\n } else if (process.onError) {\n process.onError();\n }\n };\n }\n }\n\n function createProcess(onComplete, onError) {\n _counterId += 1;\n var id = 'processId_' + _counterId;\n processes[id] = {\n onComplete: onComplete,\n onError: onError\n };\n return id;\n }\n\n function loadAnimation(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadAnimation',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function loadData(path, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'loadData',\n path: path,\n fullPath: window.location.origin + window.location.pathname,\n id: processId\n });\n }\n\n function completeAnimation(anim, onComplete, onError) {\n setupWorker();\n var processId = createProcess(onComplete, onError);\n workerInstance.postMessage({\n type: 'complete',\n animation: anim,\n id: processId\n });\n }\n\n return {\n loadAnimation: loadAnimation,\n loadData: loadData,\n completeAnimation: completeAnimation\n };\n }();\n\n var ImagePreloader = function () {\n var proxyImage = function () {\n var canvas = createTag('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n ctx.fillStyle = 'rgba(0,0,0,0)';\n ctx.fillRect(0, 0, 1, 1);\n return canvas;\n }();\n\n function imageLoaded() {\n this.loadedAssets += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function footageLoaded() {\n this.loadedFootagesCount += 1;\n\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\n if (this.imagesLoadedCb) {\n this.imagesLoadedCb(null);\n }\n }\n }\n\n function getAssetsPath(assetData, assetsPath, originalPath) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = assetsPath + imagePath;\n } else {\n path = originalPath;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n }\n\n function testImageLoaded(img) {\n var _count = 0;\n var intervalId = setInterval(function () {\n var box = img.getBBox();\n\n if (box.width || _count > 500) {\n this._imageLoaded();\n\n clearInterval(intervalId);\n }\n\n _count += 1;\n }.bind(this), 50);\n }\n\n function createImageData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createNS('image');\n\n if (isSafari) {\n this.testImageLoaded(img);\n } else {\n img.addEventListener('load', this._imageLoaded, false);\n }\n\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\n\n if (this._elementHelper.append) {\n this._elementHelper.append(img);\n } else {\n this._elementHelper.appendChild(img);\n }\n\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createImgData(assetData) {\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\n var img = createTag('img');\n img.crossOrigin = 'anonymous';\n img.addEventListener('load', this._imageLoaded, false);\n img.addEventListener('error', function () {\n ob.img = proxyImage;\n\n this._imageLoaded();\n }.bind(this), false);\n img.src = path;\n var ob = {\n img: img,\n assetData: assetData\n };\n return ob;\n }\n\n function createFootageData(data) {\n var ob = {\n assetData: data\n };\n var path = getAssetsPath(data, this.assetsPath, this.path);\n dataManager.loadData(path, function (footageData) {\n ob.img = footageData;\n\n this._footageLoaded();\n }.bind(this), function () {\n ob.img = {};\n\n this._footageLoaded();\n }.bind(this));\n return ob;\n }\n\n function loadAssets(assets, cb) {\n this.imagesLoadedCb = cb;\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (!assets[i].layers) {\n if (!assets[i].t || assets[i].t === 'seq') {\n this.totalImages += 1;\n this.images.push(this._createImageData(assets[i]));\n } else if (assets[i].t === 3) {\n this.totalFootages += 1;\n this.images.push(this.createFootageData(assets[i]));\n }\n }\n }\n }\n\n function setPath(path) {\n this.path = path || '';\n }\n\n function setAssetsPath(path) {\n this.assetsPath = path || '';\n }\n\n function getAsset(assetData) {\n var i = 0;\n var len = this.images.length;\n\n while (i < len) {\n if (this.images[i].assetData === assetData) {\n return this.images[i].img;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function destroy() {\n this.imagesLoadedCb = null;\n this.images.length = 0;\n }\n\n function loadedImages() {\n return this.totalImages === this.loadedAssets;\n }\n\n function loadedFootages() {\n return this.totalFootages === this.loadedFootagesCount;\n }\n\n function setCacheType(type, elementHelper) {\n if (type === 'svg') {\n this._elementHelper = elementHelper;\n this._createImageData = this.createImageData.bind(this);\n } else {\n this._createImageData = this.createImgData.bind(this);\n }\n }\n\n function ImagePreloaderFactory() {\n this._imageLoaded = imageLoaded.bind(this);\n this._footageLoaded = footageLoaded.bind(this);\n this.testImageLoaded = testImageLoaded.bind(this);\n this.createFootageData = createFootageData.bind(this);\n this.assetsPath = '';\n this.path = '';\n this.totalImages = 0;\n this.totalFootages = 0;\n this.loadedAssets = 0;\n this.loadedFootagesCount = 0;\n this.imagesLoadedCb = null;\n this.images = [];\n }\n\n ImagePreloaderFactory.prototype = {\n loadAssets: loadAssets,\n setAssetsPath: setAssetsPath,\n setPath: setPath,\n loadedImages: loadedImages,\n loadedFootages: loadedFootages,\n destroy: destroy,\n getAsset: getAsset,\n createImgData: createImgData,\n createImageData: createImageData,\n imageLoaded: imageLoaded,\n footageLoaded: footageLoaded,\n setCacheType: setCacheType\n };\n return ImagePreloaderFactory;\n }();\n\n function BaseEvent() {}\n\n BaseEvent.prototype = {\n triggerEvent: function triggerEvent(eventName, args) {\n if (this._cbs[eventName]) {\n var callbacks = this._cbs[eventName];\n\n for (var i = 0; i < callbacks.length; i += 1) {\n callbacks[i](args);\n }\n }\n },\n addEventListener: function addEventListener(eventName, callback) {\n if (!this._cbs[eventName]) {\n this._cbs[eventName] = [];\n }\n\n this._cbs[eventName].push(callback);\n\n return function () {\n this.removeEventListener(eventName, callback);\n }.bind(this);\n },\n removeEventListener: function removeEventListener(eventName, callback) {\n if (!callback) {\n this._cbs[eventName] = null;\n } else if (this._cbs[eventName]) {\n var i = 0;\n var len = this._cbs[eventName].length;\n\n while (i < len) {\n if (this._cbs[eventName][i] === callback) {\n this._cbs[eventName].splice(i, 1);\n\n i -= 1;\n len -= 1;\n }\n\n i += 1;\n }\n\n if (!this._cbs[eventName].length) {\n this._cbs[eventName] = null;\n }\n }\n }\n };\n\n var markerParser = function () {\n function parsePayloadLines(payload) {\n var lines = payload.split('\\r\\n');\n var keys = {};\n var line;\n var keysCount = 0;\n\n for (var i = 0; i < lines.length; i += 1) {\n line = lines[i].split(':');\n\n if (line.length === 2) {\n keys[line[0]] = line[1].trim();\n keysCount += 1;\n }\n }\n\n if (keysCount === 0) {\n throw new Error();\n }\n\n return keys;\n }\n\n return function (_markers) {\n var markers = [];\n\n for (var i = 0; i < _markers.length; i += 1) {\n var _marker = _markers[i];\n var markerData = {\n time: _marker.tm,\n duration: _marker.dr\n };\n\n try {\n markerData.payload = JSON.parse(_markers[i].cm);\n } catch (_) {\n try {\n markerData.payload = parsePayloadLines(_markers[i].cm);\n } catch (__) {\n markerData.payload = {\n name: _markers[i].cm\n };\n }\n }\n\n markers.push(markerData);\n }\n\n return markers;\n };\n }();\n\n var ProjectInterface = function () {\n function registerComposition(comp) {\n this.compositions.push(comp);\n }\n\n return function () {\n function _thisProjectFunction(name) {\n var i = 0;\n var len = this.compositions.length;\n\n while (i < len) {\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\n this.compositions[i].prepareFrame(this.currentFrame);\n }\n\n return this.compositions[i].compInterface;\n }\n\n i += 1;\n }\n\n return null;\n }\n\n _thisProjectFunction.compositions = [];\n _thisProjectFunction.currentFrame = 0;\n _thisProjectFunction.registerComposition = registerComposition;\n return _thisProjectFunction;\n };\n }();\n\n var renderers = {};\n\n var registerRenderer = function registerRenderer(key, value) {\n renderers[key] = value;\n };\n\n function getRenderer(key) {\n return renderers[key];\n }\n\n function getRegisteredRenderer() {\n // Returns canvas by default for compatibility\n if (renderers.canvas) {\n return 'canvas';\n } // Returns any renderer that is registered\n\n\n for (var key in renderers) {\n if (renderers[key]) {\n return key;\n }\n }\n\n return '';\n }\n\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\n\n var AnimationItem = function AnimationItem() {\n this._cbs = [];\n this.name = '';\n this.path = '';\n this.isLoaded = false;\n this.currentFrame = 0;\n this.currentRawFrame = 0;\n this.firstFrame = 0;\n this.totalFrames = 0;\n this.frameRate = 0;\n this.frameMult = 0;\n this.playSpeed = 1;\n this.playDirection = 1;\n this.playCount = 0;\n this.animationData = {};\n this.assets = [];\n this.isPaused = true;\n this.autoplay = false;\n this.loop = true;\n this.renderer = null;\n this.animationID = createElementID();\n this.assetsPath = '';\n this.timeCompleted = 0;\n this.segmentPos = 0;\n this.isSubframeEnabled = getSubframeEnabled();\n this.segments = [];\n this._idle = true;\n this._completedLoop = false;\n this.projectInterface = ProjectInterface();\n this.imagePreloader = new ImagePreloader();\n this.audioController = audioControllerFactory();\n this.markers = [];\n this.configAnimation = this.configAnimation.bind(this);\n this.onSetupError = this.onSetupError.bind(this);\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\n this.expressionsPlugin = getExpressionsPlugin();\n };\n\n extendPrototype([BaseEvent], AnimationItem);\n\n AnimationItem.prototype.setParams = function (params) {\n if (params.wrapper || params.container) {\n this.wrapper = params.wrapper || params.container;\n }\n\n var animType = 'svg';\n\n if (params.animType) {\n animType = params.animType;\n } else if (params.renderer) {\n animType = params.renderer;\n }\n\n var RendererClass = getRenderer(animType);\n this.renderer = new RendererClass(this, params.rendererSettings);\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\n this.renderer.setProjectInterface(this.projectInterface);\n this.animType = animType;\n\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\n this.loop = true;\n } else if (params.loop === false) {\n this.loop = false;\n } else {\n this.loop = parseInt(params.loop, 10);\n }\n\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\n this.name = params.name ? params.name : '';\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\n this.assetsPath = params.assetsPath;\n this.initialSegment = params.initialSegment;\n\n if (params.audioFactory) {\n this.audioController.setAudioFactory(params.audioFactory);\n }\n\n if (params.animationData) {\n this.setupAnimation(params.animationData);\n } else if (params.path) {\n if (params.path.lastIndexOf('\\\\') !== -1) {\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\n } else {\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\n }\n\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\n }\n };\n\n AnimationItem.prototype.onSetupError = function () {\n this.trigger('data_failed');\n };\n\n AnimationItem.prototype.setupAnimation = function (data) {\n dataManager.completeAnimation(data, this.configAnimation);\n };\n\n AnimationItem.prototype.setData = function (wrapper, animationData) {\n if (animationData) {\n if (_typeof$4(animationData) !== 'object') {\n animationData = JSON.parse(animationData);\n }\n }\n\n var params = {\n wrapper: wrapper,\n animationData: animationData\n };\n var wrapperAttributes = wrapper.attributes;\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : getRegisteredRenderer() || 'canvas';\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\n\n if (loop === 'false') {\n params.loop = false;\n } else if (loop === 'true') {\n params.loop = true;\n } else if (loop !== '') {\n params.loop = parseInt(loop, 10);\n }\n\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\n params.autoplay = autoplay !== 'false';\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\n\n if (prerender === 'false') {\n params.prerender = false;\n }\n\n if (!params.path) {\n this.trigger('destroy');\n } else {\n this.setParams(params);\n }\n };\n\n AnimationItem.prototype.includeLayers = function (data) {\n if (data.op > this.animationData.op) {\n this.animationData.op = data.op;\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\n }\n\n var layers = this.animationData.layers;\n var i;\n var len = layers.length;\n var newLayers = data.layers;\n var j;\n var jLen = newLayers.length;\n\n for (j = 0; j < jLen; j += 1) {\n i = 0;\n\n while (i < len) {\n if (layers[i].id === newLayers[j].id) {\n layers[i] = newLayers[j];\n break;\n }\n\n i += 1;\n }\n }\n\n if (data.chars || data.fonts) {\n this.renderer.globalData.fontManager.addChars(data.chars);\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\n }\n\n if (data.assets) {\n len = data.assets.length;\n\n for (i = 0; i < len; i += 1) {\n this.animationData.assets.push(data.assets[i]);\n }\n }\n\n this.animationData.__complete = false;\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\n };\n\n AnimationItem.prototype.onSegmentComplete = function (data) {\n this.animationData = data;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.loadNextSegment = function () {\n var segments = this.animationData.segments;\n\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\n this.trigger('data_ready');\n this.timeCompleted = this.totalFrames;\n return;\n }\n\n var segment = segments.shift();\n this.timeCompleted = segment.time * this.frameRate;\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\n this.segmentPos += 1;\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\n this.trigger('data_failed');\n }.bind(this));\n };\n\n AnimationItem.prototype.loadSegments = function () {\n var segments = this.animationData.segments;\n\n if (!segments) {\n this.timeCompleted = this.totalFrames;\n }\n\n this.loadNextSegment();\n };\n\n AnimationItem.prototype.imagesLoaded = function () {\n this.trigger('loaded_images');\n this.checkLoaded();\n };\n\n AnimationItem.prototype.preloadImages = function () {\n this.imagePreloader.setAssetsPath(this.assetsPath);\n this.imagePreloader.setPath(this.path);\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\n };\n\n AnimationItem.prototype.configAnimation = function (animData) {\n if (!this.renderer) {\n return;\n }\n\n try {\n this.animationData = animData;\n\n if (this.initialSegment) {\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\n this.firstFrame = Math.round(this.initialSegment[0]);\n } else {\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\n this.firstFrame = Math.round(this.animationData.ip);\n }\n\n this.renderer.configAnimation(animData);\n\n if (!animData.assets) {\n animData.assets = [];\n }\n\n this.assets = this.animationData.assets;\n this.frameRate = this.animationData.fr;\n this.frameMult = this.animationData.fr / 1000;\n this.renderer.searchExtraCompositions(animData.assets);\n this.markers = markerParser(animData.markers || []);\n this.trigger('config_ready');\n this.preloadImages();\n this.loadSegments();\n this.updaFrameModifier();\n this.waitForFontsLoaded();\n\n if (this.isPaused) {\n this.audioController.pause();\n }\n } catch (error) {\n this.triggerConfigError(error);\n }\n };\n\n AnimationItem.prototype.waitForFontsLoaded = function () {\n if (!this.renderer) {\n return;\n }\n\n if (this.renderer.globalData.fontManager.isLoaded) {\n this.checkLoaded();\n } else {\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\n }\n };\n\n AnimationItem.prototype.checkLoaded = function () {\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\n this.isLoaded = true;\n var expressionsPlugin = getExpressionsPlugin();\n\n if (expressionsPlugin) {\n expressionsPlugin.initExpressions(this);\n }\n\n this.renderer.initItems();\n setTimeout(function () {\n this.trigger('DOMLoaded');\n }.bind(this), 0);\n this.gotoFrame();\n\n if (this.autoplay) {\n this.play();\n }\n }\n };\n\n AnimationItem.prototype.resize = function (width, height) {\n // Adding this validation for backwards compatibility in case an event object was being passed down\n var _width = typeof width === 'number' ? width : undefined;\n\n var _height = typeof height === 'number' ? height : undefined;\n\n this.renderer.updateContainerSize(_width, _height);\n };\n\n AnimationItem.prototype.setSubframe = function (flag) {\n this.isSubframeEnabled = !!flag;\n };\n\n AnimationItem.prototype.gotoFrame = function () {\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\n\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\n this.currentFrame = this.timeCompleted;\n }\n\n this.trigger('enterFrame');\n this.renderFrame();\n this.trigger('drawnFrame');\n };\n\n AnimationItem.prototype.renderFrame = function () {\n if (this.isLoaded === false || !this.renderer) {\n return;\n }\n\n try {\n if (this.expressionsPlugin) {\n this.expressionsPlugin.resetFrame();\n }\n\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\n } catch (error) {\n this.triggerRenderFrameError(error);\n }\n };\n\n AnimationItem.prototype.play = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.isPaused = false;\n this.trigger('_play');\n this.audioController.resume();\n\n if (this._idle) {\n this._idle = false;\n this.trigger('_active');\n }\n }\n };\n\n AnimationItem.prototype.pause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === false) {\n this.isPaused = true;\n this.trigger('_pause');\n this._idle = true;\n this.trigger('_idle');\n this.audioController.pause();\n }\n };\n\n AnimationItem.prototype.togglePause = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n if (this.isPaused === true) {\n this.play();\n } else {\n this.pause();\n }\n };\n\n AnimationItem.prototype.stop = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.pause();\n this.playCount = 0;\n this._completedLoop = false;\n this.setCurrentRawFrameValue(0);\n };\n\n AnimationItem.prototype.getMarkerData = function (markerName) {\n var marker;\n\n for (var i = 0; i < this.markers.length; i += 1) {\n marker = this.markers[i];\n\n if (marker.payload && marker.payload.name === markerName) {\n return marker;\n }\n }\n\n return null;\n };\n\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n this.goToAndStop(marker.time, true);\n }\n } else if (isFrame) {\n this.setCurrentRawFrameValue(value);\n } else {\n this.setCurrentRawFrameValue(value * this.frameModifier);\n }\n\n this.pause();\n };\n\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\n if (name && this.name !== name) {\n return;\n }\n\n var numValue = Number(value);\n\n if (isNaN(numValue)) {\n var marker = this.getMarkerData(value);\n\n if (marker) {\n if (!marker.duration) {\n this.goToAndStop(marker.time, true);\n } else {\n this.playSegments([marker.time, marker.time + marker.duration], true);\n }\n }\n } else {\n this.goToAndStop(numValue, isFrame, name);\n }\n\n this.play();\n };\n\n AnimationItem.prototype.advanceTime = function (value) {\n if (this.isPaused === true || this.isLoaded === false) {\n return;\n }\n\n var nextValue = this.currentRawFrame + value * this.frameModifier;\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\n\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\n if (!this.loop || this.playCount === this.loop) {\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\n _isComplete = true;\n nextValue = this.totalFrames - 1;\n }\n } else if (nextValue >= this.totalFrames) {\n this.playCount += 1;\n\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\n this._completedLoop = true;\n this.trigger('loopComplete');\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n } else if (nextValue < 0) {\n if (!this.checkSegments(nextValue % this.totalFrames)) {\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\n // eslint-disable-line no-plusplus\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\n\n if (!this._completedLoop) {\n this._completedLoop = true;\n } else {\n this.trigger('loopComplete');\n }\n } else {\n _isComplete = true;\n nextValue = 0;\n }\n }\n } else {\n this.setCurrentRawFrameValue(nextValue);\n }\n\n if (_isComplete) {\n this.setCurrentRawFrameValue(nextValue);\n this.pause();\n this.trigger('complete');\n }\n };\n\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\n this.playCount = 0;\n\n if (arr[1] < arr[0]) {\n if (this.frameModifier > 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(-1);\n }\n }\n\n this.totalFrames = arr[0] - arr[1];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[1];\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\n } else if (arr[1] > arr[0]) {\n if (this.frameModifier < 0) {\n if (this.playSpeed < 0) {\n this.setSpeed(-this.playSpeed);\n } else {\n this.setDirection(1);\n }\n }\n\n this.totalFrames = arr[1] - arr[0];\n this.timeCompleted = this.totalFrames;\n this.firstFrame = arr[0];\n this.setCurrentRawFrameValue(0.001 + offset);\n }\n\n this.trigger('segmentStart');\n };\n\n AnimationItem.prototype.setSegment = function (init, end) {\n var pendingFrame = -1;\n\n if (this.isPaused) {\n if (this.currentRawFrame + this.firstFrame < init) {\n pendingFrame = init;\n } else if (this.currentRawFrame + this.firstFrame > end) {\n pendingFrame = end - init;\n }\n }\n\n this.firstFrame = init;\n this.totalFrames = end - init;\n this.timeCompleted = this.totalFrames;\n\n if (pendingFrame !== -1) {\n this.goToAndStop(pendingFrame, true);\n }\n };\n\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\n if (forceFlag) {\n this.segments.length = 0;\n }\n\n if (_typeof$4(arr[0]) === 'object') {\n var i;\n var len = arr.length;\n\n for (i = 0; i < len; i += 1) {\n this.segments.push(arr[i]);\n }\n } else {\n this.segments.push(arr);\n }\n\n if (this.segments.length && forceFlag) {\n this.adjustSegment(this.segments.shift(), 0);\n }\n\n if (this.isPaused) {\n this.play();\n }\n };\n\n AnimationItem.prototype.resetSegments = function (forceFlag) {\n this.segments.length = 0;\n this.segments.push([this.animationData.ip, this.animationData.op]);\n\n if (forceFlag) {\n this.checkSegments(0);\n }\n };\n\n AnimationItem.prototype.checkSegments = function (offset) {\n if (this.segments.length) {\n this.adjustSegment(this.segments.shift(), offset);\n return true;\n }\n\n return false;\n };\n\n AnimationItem.prototype.destroy = function (name) {\n if (name && this.name !== name || !this.renderer) {\n return;\n }\n\n this.renderer.destroy();\n this.imagePreloader.destroy();\n this.trigger('destroy');\n this._cbs = null;\n this.onEnterFrame = null;\n this.onLoopComplete = null;\n this.onComplete = null;\n this.onSegmentStart = null;\n this.onDestroy = null;\n this.renderer = null;\n this.expressionsPlugin = null;\n this.imagePreloader = null;\n this.projectInterface = null;\n };\n\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\n this.currentRawFrame = value;\n this.gotoFrame();\n };\n\n AnimationItem.prototype.setSpeed = function (val) {\n this.playSpeed = val;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setDirection = function (val) {\n this.playDirection = val < 0 ? -1 : 1;\n this.updaFrameModifier();\n };\n\n AnimationItem.prototype.setLoop = function (isLooping) {\n this.loop = isLooping;\n };\n\n AnimationItem.prototype.setVolume = function (val, name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.setVolume(val);\n };\n\n AnimationItem.prototype.getVolume = function () {\n return this.audioController.getVolume();\n };\n\n AnimationItem.prototype.mute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.mute();\n };\n\n AnimationItem.prototype.unmute = function (name) {\n if (name && this.name !== name) {\n return;\n }\n\n this.audioController.unmute();\n };\n\n AnimationItem.prototype.updaFrameModifier = function () {\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\n this.audioController.setRate(this.playSpeed * this.playDirection);\n };\n\n AnimationItem.prototype.getPath = function () {\n return this.path;\n };\n\n AnimationItem.prototype.getAssetsPath = function (assetData) {\n var path = '';\n\n if (assetData.e) {\n path = assetData.p;\n } else if (this.assetsPath) {\n var imagePath = assetData.p;\n\n if (imagePath.indexOf('images/') !== -1) {\n imagePath = imagePath.split('/')[1];\n }\n\n path = this.assetsPath + imagePath;\n } else {\n path = this.path;\n path += assetData.u ? assetData.u : '';\n path += assetData.p;\n }\n\n return path;\n };\n\n AnimationItem.prototype.getAssetData = function (id) {\n var i = 0;\n var len = this.assets.length;\n\n while (i < len) {\n if (id === this.assets[i].id) {\n return this.assets[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n AnimationItem.prototype.hide = function () {\n this.renderer.hide();\n };\n\n AnimationItem.prototype.show = function () {\n this.renderer.show();\n };\n\n AnimationItem.prototype.getDuration = function (isFrame) {\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\n };\n\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\n try {\n var element = this.renderer.getElementByPath(path);\n element.updateDocumentData(documentData, index);\n } catch (error) {// TODO: decide how to handle catch case\n }\n };\n\n AnimationItem.prototype.trigger = function (name) {\n if (this._cbs && this._cbs[name]) {\n switch (name) {\n case 'enterFrame':\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\n break;\n\n case 'drawnFrame':\n this.drawnFrameEvent.currentTime = this.currentFrame;\n this.drawnFrameEvent.totalTime = this.totalFrames;\n this.drawnFrameEvent.direction = this.frameModifier;\n this.triggerEvent(name, this.drawnFrameEvent);\n break;\n\n case 'loopComplete':\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n break;\n\n case 'complete':\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\n break;\n\n case 'segmentStart':\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n break;\n\n case 'destroy':\n this.triggerEvent(name, new BMDestroyEvent(name, this));\n break;\n\n default:\n this.triggerEvent(name);\n }\n }\n\n if (name === 'enterFrame' && this.onEnterFrame) {\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\n }\n\n if (name === 'loopComplete' && this.onLoopComplete) {\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\n }\n\n if (name === 'complete' && this.onComplete) {\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\n }\n\n if (name === 'segmentStart' && this.onSegmentStart) {\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\n }\n\n if (name === 'destroy' && this.onDestroy) {\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\n }\n };\n\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\n this.triggerEvent('error', error);\n\n if (this.onError) {\n this.onError.call(this, error);\n }\n };\n\n var animationManager = function () {\n var moduleOb = {};\n var registeredAnimations = [];\n var initTime = 0;\n var len = 0;\n var playingAnimationsNum = 0;\n var _stopped = true;\n var _isFrozen = false;\n\n function removeElement(ev) {\n var i = 0;\n var animItem = ev.target;\n\n while (i < len) {\n if (registeredAnimations[i].animation === animItem) {\n registeredAnimations.splice(i, 1);\n i -= 1;\n len -= 1;\n\n if (!animItem.isPaused) {\n subtractPlayingCount();\n }\n }\n\n i += 1;\n }\n }\n\n function registerAnimation(element, animationData) {\n if (!element) {\n return null;\n }\n\n var i = 0;\n\n while (i < len) {\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\n return registeredAnimations[i].animation;\n }\n\n i += 1;\n }\n\n var animItem = new AnimationItem();\n setupAnimation(animItem, element);\n animItem.setData(element, animationData);\n return animItem;\n }\n\n function getRegisteredAnimations() {\n var i;\n var lenAnims = registeredAnimations.length;\n var animations = [];\n\n for (i = 0; i < lenAnims; i += 1) {\n animations.push(registeredAnimations[i].animation);\n }\n\n return animations;\n }\n\n function addPlayingCount() {\n playingAnimationsNum += 1;\n activate();\n }\n\n function subtractPlayingCount() {\n playingAnimationsNum -= 1;\n }\n\n function setupAnimation(animItem, element) {\n animItem.addEventListener('destroy', removeElement);\n animItem.addEventListener('_active', addPlayingCount);\n animItem.addEventListener('_idle', subtractPlayingCount);\n registeredAnimations.push({\n elem: element,\n animation: animItem\n });\n len += 1;\n }\n\n function loadAnimation(params) {\n var animItem = new AnimationItem();\n setupAnimation(animItem, null);\n animItem.setParams(params);\n return animItem;\n }\n\n function setSpeed(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setSpeed(val, animation);\n }\n }\n\n function setDirection(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setDirection(val, animation);\n }\n }\n\n function play(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.play(animation);\n }\n }\n\n function resume(nowTime) {\n var elapsedTime = nowTime - initTime;\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.advanceTime(elapsedTime);\n }\n\n initTime = nowTime;\n\n if (playingAnimationsNum && !_isFrozen) {\n window.requestAnimationFrame(resume);\n } else {\n _stopped = true;\n }\n }\n\n function first(nowTime) {\n initTime = nowTime;\n window.requestAnimationFrame(resume);\n }\n\n function pause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.pause(animation);\n }\n }\n\n function goToAndStop(value, isFrame, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\n }\n }\n\n function stop(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.stop(animation);\n }\n }\n\n function togglePause(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.togglePause(animation);\n }\n }\n\n function destroy(animation) {\n var i;\n\n for (i = len - 1; i >= 0; i -= 1) {\n registeredAnimations[i].animation.destroy(animation);\n }\n }\n\n function searchAnimations(animationData, standalone, renderer) {\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\n var i;\n var lenAnims = animElements.length;\n\n for (i = 0; i < lenAnims; i += 1) {\n if (renderer) {\n animElements[i].setAttribute('data-bm-type', renderer);\n }\n\n registerAnimation(animElements[i], animationData);\n }\n\n if (standalone && lenAnims === 0) {\n if (!renderer) {\n renderer = 'svg';\n }\n\n var body = document.getElementsByTagName('body')[0];\n body.innerText = '';\n var div = createTag('div');\n div.style.width = '100%';\n div.style.height = '100%';\n div.setAttribute('data-bm-type', renderer);\n body.appendChild(div);\n registerAnimation(div, animationData);\n }\n }\n\n function resize() {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.resize();\n }\n }\n\n function activate() {\n if (!_isFrozen && playingAnimationsNum) {\n if (_stopped) {\n window.requestAnimationFrame(first);\n _stopped = false;\n }\n }\n }\n\n function freeze() {\n _isFrozen = true;\n }\n\n function unfreeze() {\n _isFrozen = false;\n activate();\n }\n\n function setVolume(val, animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.setVolume(val, animation);\n }\n }\n\n function mute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.mute(animation);\n }\n }\n\n function unmute(animation) {\n var i;\n\n for (i = 0; i < len; i += 1) {\n registeredAnimations[i].animation.unmute(animation);\n }\n }\n\n moduleOb.registerAnimation = registerAnimation;\n moduleOb.loadAnimation = loadAnimation;\n moduleOb.setSpeed = setSpeed;\n moduleOb.setDirection = setDirection;\n moduleOb.play = play;\n moduleOb.pause = pause;\n moduleOb.stop = stop;\n moduleOb.togglePause = togglePause;\n moduleOb.searchAnimations = searchAnimations;\n moduleOb.resize = resize; // moduleOb.start = start;\n\n moduleOb.goToAndStop = goToAndStop;\n moduleOb.destroy = destroy;\n moduleOb.freeze = freeze;\n moduleOb.unfreeze = unfreeze;\n moduleOb.setVolume = setVolume;\n moduleOb.mute = mute;\n moduleOb.unmute = unmute;\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\n return moduleOb;\n }();\n\n /* eslint-disable */\n var BezierFactory = function () {\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\n var ob = {};\n ob.getBezierEasing = getBezierEasing;\n var beziers = {};\n\n function getBezierEasing(a, b, c, d, nm) {\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\n\n if (beziers[str]) {\n return beziers[str];\n }\n\n var bezEasing = new BezierEasing([a, b, c, d]);\n beziers[str] = bezEasing;\n return bezEasing;\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\n\n\n var NEWTON_ITERATIONS = 4;\n var NEWTON_MIN_SLOPE = 0.001;\n var SUBDIVISION_PRECISION = 0.0000001;\n var SUBDIVISION_MAX_ITERATIONS = 10;\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n var float32ArraySupported = typeof Float32Array === 'function';\n\n function A(aA1, aA2) {\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\n }\n\n function B(aA1, aA2) {\n return 3.0 * aA2 - 6.0 * aA1;\n }\n\n function C(aA1) {\n return 3.0 * aA1;\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\n\n\n function calcBezier(aT, aA1, aA2) {\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\n\n\n function getSlope(aT, aA1, aA2) {\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\n }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX,\n currentT,\n i = 0;\n\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) return aGuessT;\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n\n return aGuessT;\n }\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\n\n\n function BezierEasing(points) {\n this._p = points;\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n this._precomputed = false;\n this.get = this.get.bind(this);\n }\n\n BezierEasing.prototype = {\n get: function get(x) {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n if (!this._precomputed) this._precompute();\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n\n if (x === 0) return 0;\n if (x === 1) return 1;\n return calcBezier(this._getTForX(x), mY1, mY2);\n },\n // Private part\n _precompute: function _precompute() {\n var mX1 = this._p[0],\n mY1 = this._p[1],\n mX2 = this._p[2],\n mY2 = this._p[3];\n this._precomputed = true;\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n this._calcSampleValues();\n }\n },\n _calcSampleValues: function _calcSampleValues() {\n var mX1 = this._p[0],\n mX2 = this._p[2];\n\n for (var i = 0; i < kSplineTableSize; ++i) {\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n },\n\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\n _getTForX: function _getTForX(aX) {\n var mX1 = this._p[0],\n mX2 = this._p[2],\n mSampleValues = this._mSampleValues;\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample; // Interpolate to provide an initial guess for t\n\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n\n if (initialSlope === 0.0) {\n return guessForT;\n }\n\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n };\n return ob;\n }();\n\n var pooling = function () {\n function _double(arr) {\n return arr.concat(createSizedArray(arr.length));\n }\n\n return {\n \"double\": _double\n };\n }();\n\n var poolFactory = function () {\n return function (initialLength, _create, _release) {\n var _length = 0;\n var _maxLength = initialLength;\n var pool = createSizedArray(_maxLength);\n var ob = {\n newElement: newElement,\n release: release\n };\n\n function newElement() {\n var element;\n\n if (_length) {\n _length -= 1;\n element = pool[_length];\n } else {\n element = _create();\n }\n\n return element;\n }\n\n function release(element) {\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n if (_release) {\n _release(element);\n }\n\n pool[_length] = element;\n _length += 1;\n }\n\n return ob;\n };\n }();\n\n var bezierLengthPool = function () {\n function create() {\n return {\n addedLength: 0,\n percents: createTypedArray('float32', getDefaultCurveSegments()),\n lengths: createTypedArray('float32', getDefaultCurveSegments())\n };\n }\n\n return poolFactory(8, create);\n }();\n\n var segmentsLengthPool = function () {\n function create() {\n return {\n lengths: [],\n totalLength: 0\n };\n }\n\n function release(element) {\n var i;\n var len = element.lengths.length;\n\n for (i = 0; i < len; i += 1) {\n bezierLengthPool.release(element.lengths[i]);\n }\n\n element.lengths.length = 0;\n }\n\n return poolFactory(8, create, release);\n }();\n\n function bezFunction() {\n var math = Math;\n\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\n var det1 = x1 * y2 + y1 * x3 + x2 * y3 - x3 * y2 - y3 * x1 - x2 * y1;\n return det1 > -0.001 && det1 < 0.001;\n }\n\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\n if (z1 === 0 && z2 === 0 && z3 === 0) {\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\n }\n\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\n var diffDist;\n\n if (dist1 > dist2) {\n if (dist1 > dist3) {\n diffDist = dist1 - dist2 - dist3;\n } else {\n diffDist = dist3 - dist2 - dist1;\n }\n } else if (dist3 > dist2) {\n diffDist = dist3 - dist2 - dist1;\n } else {\n diffDist = dist2 - dist1 - dist3;\n }\n\n return diffDist > -0.0001 && diffDist < 0.0001;\n }\n\n var getBezierLength = function () {\n return function (pt1, pt2, pt3, pt4) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point = [];\n var lastPoint = [];\n var lengthData = bezierLengthPool.newElement();\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint[i] !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n\n lastPoint[i] = point[i];\n }\n\n if (ptDistance) {\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n }\n\n lengthData.percents[k] = perc;\n lengthData.lengths[k] = addedLength;\n }\n\n lengthData.addedLength = addedLength;\n return lengthData;\n };\n }();\n\n function getSegmentsLength(shapeData) {\n var segmentsLength = segmentsLengthPool.newElement();\n var closed = shapeData.c;\n var pathV = shapeData.v;\n var pathO = shapeData.o;\n var pathI = shapeData.i;\n var i;\n var len = shapeData._length;\n var lengths = segmentsLength.lengths;\n var totalLength = 0;\n\n for (i = 0; i < len - 1; i += 1) {\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\n totalLength += lengths[i].addedLength;\n }\n\n if (closed && len) {\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\n totalLength += lengths[i].addedLength;\n }\n\n segmentsLength.totalLength = totalLength;\n return segmentsLength;\n }\n\n function BezierData(length) {\n this.segmentLength = 0;\n this.points = new Array(length);\n }\n\n function PointData(partial, point) {\n this.partialLength = partial;\n this.point = point;\n }\n\n var buildBezierData = function () {\n var storedData = {};\n return function (pt1, pt2, pt3, pt4) {\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\n\n if (!storedData[bezierName]) {\n var curveSegments = getDefaultCurveSegments();\n var k;\n var i;\n var len;\n var ptCoord;\n var perc;\n var addedLength = 0;\n var ptDistance;\n var point;\n var lastPoint = null;\n\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\n curveSegments = 2;\n }\n\n var bezierData = new BezierData(curveSegments);\n len = pt3.length;\n\n for (k = 0; k < curveSegments; k += 1) {\n point = createSizedArray(len);\n perc = k / (curveSegments - 1);\n ptDistance = 0;\n\n for (i = 0; i < len; i += 1) {\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\n point[i] = ptCoord;\n\n if (lastPoint !== null) {\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\n }\n }\n\n ptDistance = bmSqrt(ptDistance);\n addedLength += ptDistance;\n bezierData.points[k] = new PointData(ptDistance, point);\n lastPoint = point;\n }\n\n bezierData.segmentLength = addedLength;\n storedData[bezierName] = bezierData;\n }\n\n return storedData[bezierName];\n };\n }();\n\n function getDistancePerc(perc, bezierData) {\n var percents = bezierData.percents;\n var lengths = bezierData.lengths;\n var len = percents.length;\n var initPos = bmFloor((len - 1) * perc);\n var lengthPos = perc * bezierData.addedLength;\n var lPerc = 0;\n\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\n return percents[initPos];\n }\n\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\n var flag = true;\n\n while (flag) {\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\n flag = false;\n } else {\n initPos += dir;\n }\n\n if (initPos < 0 || initPos >= len - 1) {\n // FIX for TypedArrays that don't store floating point values with enough accuracy\n if (initPos === len - 1) {\n return percents[initPos];\n }\n\n flag = false;\n }\n }\n\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\n }\n\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\n var t1 = getDistancePerc(percent, bezierData);\n var u1 = 1 - t1;\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\n return [ptX, ptY];\n }\n\n var bezierSegmentPoints = createTypedArray('float32', 8);\n\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\n if (startPerc < 0) {\n startPerc = 0;\n } else if (startPerc > 1) {\n startPerc = 1;\n }\n\n var t0 = getDistancePerc(startPerc, bezierData);\n endPerc = endPerc > 1 ? 1 : endPerc;\n var t1 = getDistancePerc(endPerc, bezierData);\n var i;\n var len = pt1.length;\n var u0 = 1 - t0;\n var u1 = 1 - t1;\n var u0u0u0 = u0 * u0 * u0;\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\n\n var t0t0t0 = t0 * t0 * t0; //\n\n var u0u0u1 = u0 * u0 * u1;\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\n\n var t0t0t1 = t0 * t0 * t1; //\n\n var u0u1u1 = u0 * u1 * u1;\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\n\n var t0t1t1 = t0 * t1 * t1; //\n\n var u1u1u1 = u1 * u1 * u1;\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\n\n var t1t1t1 = t1 * t1 * t1;\n\n for (i = 0; i < len; i += 1) {\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\n }\n\n return bezierSegmentPoints;\n }\n\n return {\n getSegmentsLength: getSegmentsLength,\n getNewSegment: getNewSegment,\n getPointInSegment: getPointInSegment,\n buildBezierData: buildBezierData,\n pointOnLine2D: pointOnLine2D,\n pointOnLine3D: pointOnLine3D\n };\n }\n\n var bez = bezFunction();\n\n var initFrame = initialDefaultFrame;\n var mathAbs = Math.abs;\n\n function interpolateValue(frameNum, caching) {\n var offsetTime = this.offsetTime;\n var newValue;\n\n if (this.propType === 'multidimensional') {\n newValue = createTypedArray('float32', this.pv.length);\n }\n\n var iterationIndex = caching.lastIndex;\n var i = iterationIndex;\n var len = this.keyframes.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = this.keyframes[i];\n nextKeyData = this.keyframes[i + 1];\n\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\n if (keyData.h) {\n keyData = nextKeyData;\n }\n\n iterationIndex = 0;\n break;\n }\n\n if (nextKeyData.t - offsetTime > frameNum) {\n iterationIndex = i;\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n iterationIndex = 0;\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n var k;\n var kLen;\n var perc;\n var jLen;\n var j;\n var fnc;\n var nextKeyTime = nextKeyData.t - offsetTime;\n var keyTime = keyData.t - offsetTime;\n var endValue;\n\n if (keyData.to) {\n if (!keyframeMetadata.bezierData) {\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\n }\n\n var bezierData = keyframeMetadata.bezierData;\n\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\n kLen = bezierData.points[ind].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[ind].point[k];\n } // caching._lastKeyframeIndex = -1;\n\n } else {\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n var distanceInLine = bezierData.segmentLength * perc;\n var segmentPerc;\n var addedLength = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastAddedLength : 0;\n j = caching.lastFrame < frameNum && caching._lastKeyframeIndex === i ? caching._lastPoint : 0;\n flag = true;\n jLen = bezierData.points.length;\n\n while (flag) {\n addedLength += bezierData.points[j].partialLength;\n\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k];\n }\n\n break;\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\n kLen = bezierData.points[j].point.length;\n\n for (k = 0; k < kLen; k += 1) {\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\n }\n\n break;\n }\n\n if (j < jLen - 1) {\n j += 1;\n } else {\n flag = false;\n }\n }\n\n caching._lastPoint = j;\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\n caching._lastKeyframeIndex = i;\n }\n } else {\n var outX;\n var outY;\n var inX;\n var inY;\n var keyValue;\n len = keyData.s.length;\n endValue = nextKeyData.s || keyData.e;\n\n if (this.sh && keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n newValue[0] = endValue[0];\n newValue[1] = endValue[1];\n newValue[2] = endValue[2];\n } else if (frameNum <= keyTime) {\n newValue[0] = keyData.s[0];\n newValue[1] = keyData.s[1];\n newValue[2] = keyData.s[2];\n } else {\n var quatStart = createQuaternion(keyData.s);\n var quatEnd = createQuaternion(endValue);\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\n }\n } else {\n for (i = 0; i < len; i += 1) {\n if (keyData.h !== 1) {\n if (frameNum >= nextKeyTime) {\n perc = 1;\n } else if (frameNum < keyTime) {\n perc = 0;\n } else {\n if (keyData.o.x.constructor === Array) {\n if (!keyframeMetadata.__fnct) {\n keyframeMetadata.__fnct = [];\n }\n\n if (!keyframeMetadata.__fnct[i]) {\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\n inY = keyData.i.y[i] === undefined ? keyData.i.y[0] : keyData.i.y[i];\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyframeMetadata.__fnct[i] = fnc;\n } else {\n fnc = keyframeMetadata.__fnct[i];\n }\n } else if (!keyframeMetadata.__fnct) {\n outX = keyData.o.x;\n outY = keyData.o.y;\n inX = keyData.i.x;\n inY = keyData.i.y;\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\n keyData.keyframeMetadata = fnc;\n } else {\n fnc = keyframeMetadata.__fnct;\n }\n\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\n }\n }\n\n endValue = nextKeyData.s || keyData.e;\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\n\n if (this.propType === 'multidimensional') {\n newValue[i] = keyValue;\n } else {\n newValue = keyValue;\n }\n }\n }\n }\n\n caching.lastIndex = iterationIndex;\n return newValue;\n } // based on @Toji's https://github.com/toji/gl-matrix/\n\n\n function slerp(a, b, t) {\n var out = [];\n var ax = a[0];\n var ay = a[1];\n var az = a[2];\n var aw = a[3];\n var bx = b[0];\n var by = b[1];\n var bz = b[2];\n var bw = b[3];\n var omega;\n var cosom;\n var sinom;\n var scale0;\n var scale1;\n cosom = ax * bx + ay * by + az * bz + aw * bw;\n\n if (cosom < 0.0) {\n cosom = -cosom;\n bx = -bx;\n by = -by;\n bz = -bz;\n bw = -bw;\n }\n\n if (1.0 - cosom > 0.000001) {\n omega = Math.acos(cosom);\n sinom = Math.sin(omega);\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\n scale1 = Math.sin(t * omega) / sinom;\n } else {\n scale0 = 1.0 - t;\n scale1 = t;\n }\n\n out[0] = scale0 * ax + scale1 * bx;\n out[1] = scale0 * ay + scale1 * by;\n out[2] = scale0 * az + scale1 * bz;\n out[3] = scale0 * aw + scale1 * bw;\n return out;\n }\n\n function quaternionToEuler(out, quat) {\n var qx = quat[0];\n var qy = quat[1];\n var qz = quat[2];\n var qw = quat[3];\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\n out[0] = heading / degToRads;\n out[1] = attitude / degToRads;\n out[2] = bank / degToRads;\n }\n\n function createQuaternion(values) {\n var heading = values[0] * degToRads;\n var attitude = values[1] * degToRads;\n var bank = values[2] * degToRads;\n var c1 = Math.cos(heading / 2);\n var c2 = Math.cos(attitude / 2);\n var c3 = Math.cos(bank / 2);\n var s1 = Math.sin(heading / 2);\n var s2 = Math.sin(attitude / 2);\n var s3 = Math.sin(bank / 2);\n var w = c1 * c2 * c3 - s1 * s2 * s3;\n var x = s1 * s2 * c3 + c1 * c2 * s3;\n var y = s1 * c2 * c3 + c1 * s2 * s3;\n var z = c1 * s2 * c3 - s1 * c2 * s3;\n return [x, y, z, w];\n }\n\n function getValueAtCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n\n if (!(frameNum === this._caching.lastFrame || this._caching.lastFrame !== initFrame && (this._caching.lastFrame >= endTime && frameNum >= endTime || this._caching.lastFrame < initTime && frameNum < initTime))) {\n if (this._caching.lastFrame >= frameNum) {\n this._caching._lastKeyframeIndex = -1;\n this._caching.lastIndex = 0;\n }\n\n var renderResult = this.interpolateValue(frameNum, this._caching);\n this.pv = renderResult;\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function setVValue(val) {\n var multipliedValue;\n\n if (this.propType === 'unidimensional') {\n multipliedValue = val * this.mult;\n\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\n this.v = multipliedValue;\n this._mdf = true;\n }\n } else {\n var i = 0;\n var len = this.v.length;\n\n while (i < len) {\n multipliedValue = val[i] * this.mult;\n\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\n this.v[i] = multipliedValue;\n this._mdf = true;\n }\n\n i += 1;\n }\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = this._isFirstFrame;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = this.kf ? this.pv : this.data.k;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this._isFirstFrame = false;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n function ValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.mult = mult || 1;\n this.data = data;\n this.v = mult ? data.k * mult : data.k;\n this.pv = data.k;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.vel = 0;\n this.effectsSequence = [];\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function MultiDimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n this.mult = mult || 1;\n this.data = data;\n this._mdf = false;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.k = false;\n this.kf = false;\n this.frameId = -1;\n var i;\n var len = data.k.length;\n this.v = createTypedArray('float32', len);\n this.pv = createTypedArray('float32', len);\n this.vel = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n this.v[i] = data.k[i] * this.mult;\n this.pv[i] = data.k[i];\n }\n\n this._isFirstFrame = true;\n this.effectsSequence = [];\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.addEffect = addEffect;\n }\n\n function KeyframedValueProperty(elem, data, mult, container) {\n this.propType = 'unidimensional';\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.frameId = -1;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: 0,\n _lastKeyframeIndex: -1\n };\n this.k = true;\n this.kf = true;\n this.data = data;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.v = initFrame;\n this.pv = initFrame;\n this._isFirstFrame = true;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.addEffect = addEffect;\n }\n\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\n this.propType = 'multidimensional';\n var i;\n var len = data.k.length;\n var s;\n var e;\n var to;\n var ti;\n\n for (i = 0; i < len - 1; i += 1) {\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\n s = data.k[i].s;\n e = data.k[i + 1].s;\n to = data.k[i].to;\n ti = data.k[i].ti;\n\n if (s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1]) || s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2])) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\n if (s.length === 2 || s[2] === e[2] && to[2] === 0 && ti[2] === 0) {\n data.k[i].to = null;\n data.k[i].ti = null;\n }\n }\n }\n }\n\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\n this.data = data;\n this.keyframes = data.k;\n this.keyframesMetadata = [];\n this.offsetTime = elem.data.st;\n this.k = true;\n this.kf = true;\n this._isFirstFrame = true;\n this.mult = mult || 1;\n this.elem = elem;\n this.container = container;\n this.comp = elem.comp;\n this.getValue = processEffectsSequence;\n this.setVValue = setVValue;\n this.interpolateValue = interpolateValue;\n this.frameId = -1;\n var arrLen = data.k[0].s.length;\n this.v = createTypedArray('float32', arrLen);\n this.pv = createTypedArray('float32', arrLen);\n\n for (i = 0; i < arrLen; i += 1) {\n this.v[i] = initFrame;\n this.pv[i] = initFrame;\n }\n\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0,\n value: createTypedArray('float32', arrLen)\n };\n this.addEffect = addEffect;\n }\n\n var PropertyFactory = function () {\n function getProp(elem, data, type, mult, container) {\n if (data.sid) {\n data = elem.globalData.slotManager.getProp(data);\n }\n\n var p;\n\n if (!data.k.length) {\n p = new ValueProperty(elem, data, mult, container);\n } else if (typeof data.k[0] === 'number') {\n p = new MultiDimensionalProperty(elem, data, mult, container);\n } else {\n switch (type) {\n case 0:\n p = new KeyframedValueProperty(elem, data, mult, container);\n break;\n\n case 1:\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\n break;\n\n default:\n break;\n }\n }\n\n if (p.effectsSequence.length) {\n container.addDynamicProperty(p);\n }\n\n return p;\n }\n\n var ob = {\n getProp: getProp\n };\n return ob;\n }();\n\n function DynamicPropertyContainer() {}\n\n DynamicPropertyContainer.prototype = {\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n this.container.addDynamicProperty(this);\n this._isAnimated = true;\n }\n },\n iterateDynamicProperties: function iterateDynamicProperties() {\n this._mdf = false;\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this._mdf = true;\n }\n }\n },\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\n this.container = container;\n this.dynamicProperties = [];\n this._mdf = false;\n this._isAnimated = false;\n }\n };\n\n var pointPool = function () {\n function create() {\n return createTypedArray('float32', 2);\n }\n\n return poolFactory(8, create);\n }();\n\n function ShapePath() {\n this.c = false;\n this._length = 0;\n this._maxLength = 8;\n this.v = createSizedArray(this._maxLength);\n this.o = createSizedArray(this._maxLength);\n this.i = createSizedArray(this._maxLength);\n }\n\n ShapePath.prototype.setPathData = function (closed, len) {\n this.c = closed;\n this.setLength(len);\n var i = 0;\n\n while (i < len) {\n this.v[i] = pointPool.newElement();\n this.o[i] = pointPool.newElement();\n this.i[i] = pointPool.newElement();\n i += 1;\n }\n };\n\n ShapePath.prototype.setLength = function (len) {\n while (this._maxLength < len) {\n this.doubleArrayLength();\n }\n\n this._length = len;\n };\n\n ShapePath.prototype.doubleArrayLength = function () {\n this.v = this.v.concat(createSizedArray(this._maxLength));\n this.i = this.i.concat(createSizedArray(this._maxLength));\n this.o = this.o.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n };\n\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\n var arr;\n this._length = Math.max(this._length, pos + 1);\n\n if (this._length >= this._maxLength) {\n this.doubleArrayLength();\n }\n\n switch (type) {\n case 'v':\n arr = this.v;\n break;\n\n case 'i':\n arr = this.i;\n break;\n\n case 'o':\n arr = this.o;\n break;\n\n default:\n arr = [];\n break;\n }\n\n if (!arr[pos] || arr[pos] && !replace) {\n arr[pos] = pointPool.newElement();\n }\n\n arr[pos][0] = x;\n arr[pos][1] = y;\n };\n\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\n this.setXYAt(vX, vY, 'v', pos, replace);\n this.setXYAt(oX, oY, 'o', pos, replace);\n this.setXYAt(iX, iY, 'i', pos, replace);\n };\n\n ShapePath.prototype.reverse = function () {\n var newPath = new ShapePath();\n newPath.setPathData(this.c, this._length);\n var vertices = this.v;\n var outPoints = this.o;\n var inPoints = this.i;\n var init = 0;\n\n if (this.c) {\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\n init = 1;\n }\n\n var cnt = this._length - 1;\n var len = this._length;\n var i;\n\n for (i = init; i < len; i += 1) {\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\n cnt -= 1;\n }\n\n return newPath;\n };\n\n ShapePath.prototype.length = function () {\n return this._length;\n };\n\n var shapePool = function () {\n function create() {\n return new ShapePath();\n }\n\n function release(shapePath) {\n var len = shapePath._length;\n var i;\n\n for (i = 0; i < len; i += 1) {\n pointPool.release(shapePath.v[i]);\n pointPool.release(shapePath.i[i]);\n pointPool.release(shapePath.o[i]);\n shapePath.v[i] = null;\n shapePath.i[i] = null;\n shapePath.o[i] = null;\n }\n\n shapePath._length = 0;\n shapePath.c = false;\n }\n\n function clone(shape) {\n var cloned = factory.newElement();\n var i;\n var len = shape._length === undefined ? shape.v.length : shape._length;\n cloned.setLength(len);\n cloned.c = shape.c;\n\n for (i = 0; i < len; i += 1) {\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\n }\n\n return cloned;\n }\n\n var factory = poolFactory(4, create, release);\n factory.clone = clone;\n return factory;\n }();\n\n function ShapeCollection() {\n this._length = 0;\n this._maxLength = 4;\n this.shapes = createSizedArray(this._maxLength);\n }\n\n ShapeCollection.prototype.addShape = function (shapeData) {\n if (this._length === this._maxLength) {\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\n this._maxLength *= 2;\n }\n\n this.shapes[this._length] = shapeData;\n this._length += 1;\n };\n\n ShapeCollection.prototype.releaseShapes = function () {\n var i;\n\n for (i = 0; i < this._length; i += 1) {\n shapePool.release(this.shapes[i]);\n }\n\n this._length = 0;\n };\n\n var shapeCollectionPool = function () {\n var ob = {\n newShapeCollection: newShapeCollection,\n release: release\n };\n var _length = 0;\n var _maxLength = 4;\n var pool = createSizedArray(_maxLength);\n\n function newShapeCollection() {\n var shapeCollection;\n\n if (_length) {\n _length -= 1;\n shapeCollection = pool[_length];\n } else {\n shapeCollection = new ShapeCollection();\n }\n\n return shapeCollection;\n }\n\n function release(shapeCollection) {\n var i;\n var len = shapeCollection._length;\n\n for (i = 0; i < len; i += 1) {\n shapePool.release(shapeCollection.shapes[i]);\n }\n\n shapeCollection._length = 0;\n\n if (_length === _maxLength) {\n pool = pooling[\"double\"](pool);\n _maxLength *= 2;\n }\n\n pool[_length] = shapeCollection;\n _length += 1;\n }\n\n return ob;\n }();\n\n var ShapePropertyFactory = function () {\n var initFrame = -999999;\n\n function interpolateShape(frameNum, previousValue, caching) {\n var iterationIndex = caching.lastIndex;\n var keyPropS;\n var keyPropE;\n var isHold;\n var j;\n var k;\n var jLen;\n var kLen;\n var perc;\n var vertexValue;\n var kf = this.keyframes;\n\n if (frameNum < kf[0].t - this.offsetTime) {\n keyPropS = kf[0].s[0];\n isHold = true;\n iterationIndex = 0;\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\n\n isHold = true;\n } else {\n var i = iterationIndex;\n var len = kf.length - 1;\n var flag = true;\n var keyData;\n var nextKeyData;\n var keyframeMetadata;\n\n while (flag) {\n keyData = kf[i];\n nextKeyData = kf[i + 1];\n\n if (nextKeyData.t - this.offsetTime > frameNum) {\n break;\n }\n\n if (i < len - 1) {\n i += 1;\n } else {\n flag = false;\n }\n }\n\n keyframeMetadata = this.keyframesMetadata[i] || {};\n isHold = keyData.h === 1;\n iterationIndex = i;\n\n if (!isHold) {\n if (frameNum >= nextKeyData.t - this.offsetTime) {\n perc = 1;\n } else if (frameNum < keyData.t - this.offsetTime) {\n perc = 0;\n } else {\n var fnc;\n\n if (keyframeMetadata.__fnct) {\n fnc = keyframeMetadata.__fnct;\n } else {\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\n keyframeMetadata.__fnct = fnc;\n }\n\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\n }\n\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\n }\n\n keyPropS = keyData.s[0];\n }\n\n jLen = previousValue._length;\n kLen = keyPropS.i[0].length;\n caching.lastIndex = iterationIndex;\n\n for (j = 0; j < jLen; j += 1) {\n for (k = 0; k < kLen; k += 1) {\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\n previousValue.i[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\n previousValue.o[j][k] = vertexValue;\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\n previousValue.v[j][k] = vertexValue;\n }\n }\n }\n\n function interpolateShapeCurrentTime() {\n var frameNum = this.comp.renderedFrame - this.offsetTime;\n var initTime = this.keyframes[0].t - this.offsetTime;\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\n var lastFrame = this._caching.lastFrame;\n\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > endTime && frameNum > endTime))) {\n /// /\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\n this.interpolateShape(frameNum, this.pv, this._caching); /// /\n }\n\n this._caching.lastFrame = frameNum;\n return this.pv;\n }\n\n function resetShape() {\n this.paths = this.localShapeCollection;\n }\n\n function shapesEqual(shape1, shape2) {\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\n return false;\n }\n\n var i;\n var len = shape1._length;\n\n for (i = 0; i < len; i += 1) {\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\n return false;\n }\n }\n\n return true;\n }\n\n function setVValue(newPath) {\n if (!shapesEqual(this.v, newPath)) {\n this.v = shapePool.clone(newPath);\n this.localShapeCollection.releaseShapes();\n this.localShapeCollection.addShape(this.v);\n this._mdf = true;\n this.paths = this.localShapeCollection;\n }\n }\n\n function processEffectsSequence() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (!this.effectsSequence.length) {\n this._mdf = false;\n return;\n }\n\n if (this.lock) {\n this.setVValue(this.pv);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var finalValue;\n\n if (this.kf) {\n finalValue = this.pv;\n } else if (this.data.ks) {\n finalValue = this.data.ks.k;\n } else {\n finalValue = this.data.pt.k;\n }\n\n var i;\n var len = this.effectsSequence.length;\n\n for (i = 0; i < len; i += 1) {\n finalValue = this.effectsSequence[i](finalValue);\n }\n\n this.setVValue(finalValue);\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n }\n\n function ShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.container = elem;\n this.elem = elem;\n this.data = data;\n this.k = false;\n this.kf = false;\n this._mdf = false;\n var pathData = type === 3 ? data.pt.k : data.ks.k;\n this.v = shapePool.clone(pathData);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.reset = resetShape;\n this.effectsSequence = [];\n }\n\n function addEffect(effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.container.addDynamicProperty(this);\n }\n\n ShapeProperty.prototype.interpolateShape = interpolateShape;\n ShapeProperty.prototype.getValue = processEffectsSequence;\n ShapeProperty.prototype.setVValue = setVValue;\n ShapeProperty.prototype.addEffect = addEffect;\n\n function KeyframedShapeProperty(elem, data, type) {\n this.propType = 'shape';\n this.comp = elem.comp;\n this.elem = elem;\n this.container = elem;\n this.offsetTime = elem.data.st;\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\n this.keyframesMetadata = [];\n this.k = true;\n this.kf = true;\n var len = this.keyframes[0].s[0].i.length;\n this.v = shapePool.newElement();\n this.v.setPathData(this.keyframes[0].s[0].c, len);\n this.pv = shapePool.clone(this.v);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.paths.addShape(this.v);\n this.lastFrame = initFrame;\n this.reset = resetShape;\n this._caching = {\n lastFrame: initFrame,\n lastIndex: 0\n };\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\n }\n\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\n KeyframedShapeProperty.prototype.setVValue = setVValue;\n KeyframedShapeProperty.prototype.addEffect = addEffect;\n\n var EllShapeProperty = function () {\n var cPoint = roundCorner;\n\n function EllShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 4);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.paths = this.localShapeCollection;\n this.localShapeCollection.addShape(this.v);\n this.d = data.d;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertEllToPath();\n }\n }\n\n EllShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertEllToPath();\n }\n },\n convertEllToPath: function convertEllToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var s0 = this.s.v[0] / 2;\n var s1 = this.s.v[1] / 2;\n\n var _cw = this.d !== 3;\n\n var _v = this.v;\n _v.v[0][0] = p0;\n _v.v[0][1] = p1 - s1;\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.v[1][1] = p1;\n _v.v[2][0] = p0;\n _v.v[2][1] = p1 + s1;\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.v[3][1] = p1;\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.i[0][1] = p1 - s1;\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.i[1][1] = p1 - s1 * cPoint;\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.i[2][1] = p1 + s1;\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.i[3][1] = p1 + s1 * cPoint;\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\n _v.o[0][1] = p1 - s1;\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\n _v.o[1][1] = p1 + s1 * cPoint;\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\n _v.o[2][1] = p1 + s1;\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\n _v.o[3][1] = p1 - s1 * cPoint;\n }\n };\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\n return EllShapePropertyFactory;\n }();\n\n var StarShapeProperty = function () {\n function StarShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.setPathData(true, 0);\n this.elem = elem;\n this.comp = elem.comp;\n this.data = data;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n\n if (data.sy === 1) {\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\n this.convertToPath = this.convertStarToPath;\n } else {\n this.convertToPath = this.convertPolygonToPath;\n }\n\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertToPath();\n }\n }\n\n StarShapePropertyFactory.prototype = {\n reset: resetShape,\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertToPath();\n }\n },\n convertStarToPath: function convertStarToPath() {\n var numPts = Math.floor(this.pt.v) * 2;\n var angle = Math.PI * 2 / numPts;\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\n\n var longFlag = true;\n var longRad = this.or.v;\n var shortRad = this.ir.v;\n var longRound = this.os.v;\n var shortRound = this.is.v;\n var longPerimSegment = 2 * Math.PI * longRad / (numPts * 2);\n var shortPerimSegment = 2 * Math.PI * shortRad / (numPts * 2);\n var i;\n var rad;\n var roundness;\n var perimSegment;\n var currentAng = -Math.PI / 2;\n currentAng += this.r.v;\n var dir = this.data.d === 3 ? -1 : 1;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n rad = longFlag ? longRad : shortRad;\n roundness = longFlag ? longRound : shortRound;\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\n\n longFlag = !longFlag;\n currentAng += angle * dir;\n }\n },\n convertPolygonToPath: function convertPolygonToPath() {\n var numPts = Math.floor(this.pt.v);\n var angle = Math.PI * 2 / numPts;\n var rad = this.or.v;\n var roundness = this.os.v;\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\n var i;\n var currentAng = -Math.PI * 0.5;\n var dir = this.data.d === 3 ? -1 : 1;\n currentAng += this.r.v;\n this.v._length = 0;\n\n for (i = 0; i < numPts; i += 1) {\n var x = rad * Math.cos(currentAng);\n var y = rad * Math.sin(currentAng);\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\n x += +this.p.v[0];\n y += +this.p.v[1];\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\n currentAng += angle * dir;\n }\n\n this.paths.length = 0;\n this.paths[0] = this.v;\n }\n };\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\n return StarShapePropertyFactory;\n }();\n\n var RectShapeProperty = function () {\n function RectShapePropertyFactory(elem, data) {\n this.v = shapePool.newElement();\n this.v.c = true;\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\n this.localShapeCollection.addShape(this.v);\n this.paths = this.localShapeCollection;\n this.elem = elem;\n this.comp = elem.comp;\n this.frameId = -1;\n this.d = data.d;\n this.initDynamicPropertyContainer(elem);\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.k = false;\n this.convertRectToPath();\n }\n }\n\n RectShapePropertyFactory.prototype = {\n convertRectToPath: function convertRectToPath() {\n var p0 = this.p.v[0];\n var p1 = this.p.v[1];\n var v0 = this.s.v[0] / 2;\n var v1 = this.s.v[1] / 2;\n var round = bmMin(v0, v1, this.r.v);\n var cPoint = round * (1 - roundCorner);\n this.v._length = 0;\n\n if (this.d === 2 || this.d === 1) {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\n }\n } else {\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\n\n if (round !== 0) {\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\n } else {\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\n }\n }\n },\n getValue: function getValue() {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n\n if (this._mdf) {\n this.convertRectToPath();\n }\n },\n reset: resetShape\n };\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\n return RectShapePropertyFactory;\n }();\n\n function getShapeProp(elem, data, type) {\n var prop;\n\n if (type === 3 || type === 4) {\n var dataProp = type === 3 ? data.pt : data.ks;\n var keys = dataProp.k;\n\n if (keys.length) {\n prop = new KeyframedShapeProperty(elem, data, type);\n } else {\n prop = new ShapeProperty(elem, data, type);\n }\n } else if (type === 5) {\n prop = new RectShapeProperty(elem, data);\n } else if (type === 6) {\n prop = new EllShapeProperty(elem, data);\n } else if (type === 7) {\n prop = new StarShapeProperty(elem, data);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n }\n\n function getConstructorFunction() {\n return ShapeProperty;\n }\n\n function getKeyframedConstructorFunction() {\n return KeyframedShapeProperty;\n }\n\n var ob = {};\n ob.getShapeProp = getShapeProp;\n ob.getConstructorFunction = getConstructorFunction;\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\n return ob;\n }();\n\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\n\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\n\n var Matrix = function () {\n var _cos = Math.cos;\n var _sin = Math.sin;\n var _tan = Math.tan;\n var _rnd = Math.round;\n\n function reset() {\n this.props[0] = 1;\n this.props[1] = 0;\n this.props[2] = 0;\n this.props[3] = 0;\n this.props[4] = 0;\n this.props[5] = 1;\n this.props[6] = 0;\n this.props[7] = 0;\n this.props[8] = 0;\n this.props[9] = 0;\n this.props[10] = 1;\n this.props[11] = 0;\n this.props[12] = 0;\n this.props[13] = 0;\n this.props[14] = 0;\n this.props[15] = 1;\n return this;\n }\n\n function rotate(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function rotateX(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateY(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\n }\n\n function rotateZ(angle) {\n if (angle === 0) {\n return this;\n }\n\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\n }\n\n function shear(sx, sy) {\n return this._t(1, sy, sx, 1, 0, 0);\n }\n\n function skew(ax, ay) {\n return this.shear(_tan(ax), _tan(ay));\n }\n\n function skewFromAxis(ax, angle) {\n var mCos = _cos(angle);\n\n var mSin = _sin(angle);\n\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\n }\n\n function scale(sx, sy, sz) {\n if (!sz && sz !== 0) {\n sz = 1;\n }\n\n if (sx === 1 && sy === 1 && sz === 1) {\n return this;\n }\n\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\n }\n\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\n this.props[0] = a;\n this.props[1] = b;\n this.props[2] = c;\n this.props[3] = d;\n this.props[4] = e;\n this.props[5] = f;\n this.props[6] = g;\n this.props[7] = h;\n this.props[8] = i;\n this.props[9] = j;\n this.props[10] = k;\n this.props[11] = l;\n this.props[12] = m;\n this.props[13] = n;\n this.props[14] = o;\n this.props[15] = p;\n return this;\n }\n\n function translate(tx, ty, tz) {\n tz = tz || 0;\n\n if (tx !== 0 || ty !== 0 || tz !== 0) {\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\n }\n\n return this;\n }\n\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\n var _p = this.props;\n\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\n _p[12] = _p[12] * a2 + _p[15] * m2;\n _p[13] = _p[13] * f2 + _p[15] * n2;\n _p[14] = _p[14] * k2 + _p[15] * o2;\n _p[15] *= p2; // }\n\n this._identityCalculated = false;\n return this;\n }\n\n var a1 = _p[0];\n var b1 = _p[1];\n var c1 = _p[2];\n var d1 = _p[3];\n var e1 = _p[4];\n var f1 = _p[5];\n var g1 = _p[6];\n var h1 = _p[7];\n var i1 = _p[8];\n var j1 = _p[9];\n var k1 = _p[10];\n var l1 = _p[11];\n var m1 = _p[12];\n var n1 = _p[13];\n var o1 = _p[14];\n var p1 = _p[15];\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\n\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\n this._identityCalculated = false;\n return this;\n }\n\n function multiply(matrix) {\n var matrixProps = matrix.props;\n return this.transform(matrixProps[0], matrixProps[1], matrixProps[2], matrixProps[3], matrixProps[4], matrixProps[5], matrixProps[6], matrixProps[7], matrixProps[8], matrixProps[9], matrixProps[10], matrixProps[11], matrixProps[12], matrixProps[13], matrixProps[14], matrixProps[15]);\n }\n\n function isIdentity() {\n if (!this._identityCalculated) {\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\n this._identityCalculated = true;\n }\n\n return this._identity;\n }\n\n function equals(matr) {\n var i = 0;\n\n while (i < 16) {\n if (matr.props[i] !== this.props[i]) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n }\n\n function clone(matr) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n matr.props[i] = this.props[i];\n }\n\n return matr;\n }\n\n function cloneFromProps(props) {\n var i;\n\n for (i = 0; i < 16; i += 1) {\n this.props[i] = props[i];\n }\n }\n\n function applyToPoint(x, y, z) {\n return {\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\n };\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\n }\n\n function applyToX(x, y, z) {\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\n }\n\n function applyToY(x, y, z) {\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\n }\n\n function applyToZ(x, y, z) {\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\n }\n\n function getInverseMatrix() {\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\n var a = this.props[5] / determinant;\n var b = -this.props[1] / determinant;\n var c = -this.props[4] / determinant;\n var d = this.props[0] / determinant;\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\n var inverseMatrix = new Matrix();\n inverseMatrix.props[0] = a;\n inverseMatrix.props[1] = b;\n inverseMatrix.props[4] = c;\n inverseMatrix.props[5] = d;\n inverseMatrix.props[12] = e;\n inverseMatrix.props[13] = f;\n return inverseMatrix;\n }\n\n function inversePoint(pt) {\n var inverseMatrix = this.getInverseMatrix();\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\n }\n\n function inversePoints(pts) {\n var i;\n var len = pts.length;\n var retPts = [];\n\n for (i = 0; i < len; i += 1) {\n retPts[i] = inversePoint(pts[i]);\n }\n\n return retPts;\n }\n\n function applyToTriplePoints(pt1, pt2, pt3) {\n var arr = createTypedArray('float32', 6);\n\n if (this.isIdentity()) {\n arr[0] = pt1[0];\n arr[1] = pt1[1];\n arr[2] = pt2[0];\n arr[3] = pt2[1];\n arr[4] = pt3[0];\n arr[5] = pt3[1];\n } else {\n var p0 = this.props[0];\n var p1 = this.props[1];\n var p4 = this.props[4];\n var p5 = this.props[5];\n var p12 = this.props[12];\n var p13 = this.props[13];\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\n }\n\n return arr;\n }\n\n function applyToPointArray(x, y, z) {\n var arr;\n\n if (this.isIdentity()) {\n arr = [x, y, z];\n } else {\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\n }\n\n return arr;\n }\n\n function applyToPointStringified(x, y) {\n if (this.isIdentity()) {\n return x + ',' + y;\n }\n\n var _p = this.props;\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\n }\n\n function toCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var i = 0;\n var props = this.props;\n var cssValue = 'matrix3d(';\n var v = 10000;\n\n while (i < 16) {\n cssValue += _rnd(props[i] * v) / v;\n cssValue += i === 15 ? ')' : ',';\n i += 1;\n }\n\n return cssValue;\n }\n\n function roundMatrixProperty(val) {\n var v = 10000;\n\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\n return _rnd(val * v) / v;\n }\n\n return val;\n }\n\n function to2dCSS() {\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\n\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\n var props = this.props;\n\n var _a = roundMatrixProperty(props[0]);\n\n var _b = roundMatrixProperty(props[1]);\n\n var _c = roundMatrixProperty(props[4]);\n\n var _d = roundMatrixProperty(props[5]);\n\n var _e = roundMatrixProperty(props[12]);\n\n var _f = roundMatrixProperty(props[13]);\n\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\n }\n\n return function () {\n this.reset = reset;\n this.rotate = rotate;\n this.rotateX = rotateX;\n this.rotateY = rotateY;\n this.rotateZ = rotateZ;\n this.skew = skew;\n this.skewFromAxis = skewFromAxis;\n this.shear = shear;\n this.scale = scale;\n this.setTransform = setTransform;\n this.translate = translate;\n this.transform = transform;\n this.multiply = multiply;\n this.applyToPoint = applyToPoint;\n this.applyToX = applyToX;\n this.applyToY = applyToY;\n this.applyToZ = applyToZ;\n this.applyToPointArray = applyToPointArray;\n this.applyToTriplePoints = applyToTriplePoints;\n this.applyToPointStringified = applyToPointStringified;\n this.toCSS = toCSS;\n this.to2dCSS = to2dCSS;\n this.clone = clone;\n this.cloneFromProps = cloneFromProps;\n this.equals = equals;\n this.inversePoints = inversePoints;\n this.inversePoint = inversePoint;\n this.getInverseMatrix = getInverseMatrix;\n this._t = this.transform;\n this.isIdentity = isIdentity;\n this._identity = true;\n this._identityCalculated = false;\n this.props = createTypedArray('float32', 16);\n this.reset();\n };\n }();\n\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\n var lottie = {};\n var standalone = '__[STANDALONE]__';\n var animationData = '__[ANIMATIONDATA]__';\n var renderer = '';\n\n function setLocation(href) {\n setLocationHref(href);\n }\n\n function searchAnimations() {\n if (standalone === true) {\n animationManager.searchAnimations(animationData, standalone, renderer);\n } else {\n animationManager.searchAnimations();\n }\n }\n\n function setSubframeRendering(flag) {\n setSubframeEnabled(flag);\n }\n\n function setPrefix(prefix) {\n setIdPrefix(prefix);\n }\n\n function loadAnimation(params) {\n if (standalone === true) {\n params.animationData = JSON.parse(animationData);\n }\n\n return animationManager.loadAnimation(params);\n }\n\n function setQuality(value) {\n if (typeof value === 'string') {\n switch (value) {\n case 'high':\n setDefaultCurveSegments(200);\n break;\n\n default:\n case 'medium':\n setDefaultCurveSegments(50);\n break;\n\n case 'low':\n setDefaultCurveSegments(10);\n break;\n }\n } else if (!isNaN(value) && value > 1) {\n setDefaultCurveSegments(value);\n }\n\n if (getDefaultCurveSegments() >= 50) {\n roundValues(false);\n } else {\n roundValues(true);\n }\n }\n\n function inBrowser() {\n return typeof navigator !== 'undefined';\n }\n\n function installPlugin(type, plugin) {\n if (type === 'expressions') {\n setExpressionsPlugin(plugin);\n }\n }\n\n function getFactory(name) {\n switch (name) {\n case 'propertyFactory':\n return PropertyFactory;\n\n case 'shapePropertyFactory':\n return ShapePropertyFactory;\n\n case 'matrix':\n return Matrix;\n\n default:\n return null;\n }\n }\n\n lottie.play = animationManager.play;\n lottie.pause = animationManager.pause;\n lottie.setLocationHref = setLocation;\n lottie.togglePause = animationManager.togglePause;\n lottie.setSpeed = animationManager.setSpeed;\n lottie.setDirection = animationManager.setDirection;\n lottie.stop = animationManager.stop;\n lottie.searchAnimations = searchAnimations;\n lottie.registerAnimation = animationManager.registerAnimation;\n lottie.loadAnimation = loadAnimation;\n lottie.setSubframeRendering = setSubframeRendering;\n lottie.resize = animationManager.resize; // lottie.start = start;\n\n lottie.goToAndStop = animationManager.goToAndStop;\n lottie.destroy = animationManager.destroy;\n lottie.setQuality = setQuality;\n lottie.inBrowser = inBrowser;\n lottie.installPlugin = installPlugin;\n lottie.freeze = animationManager.freeze;\n lottie.unfreeze = animationManager.unfreeze;\n lottie.setVolume = animationManager.setVolume;\n lottie.mute = animationManager.mute;\n lottie.unmute = animationManager.unmute;\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\n lottie.useWebWorker = setWebWorker;\n lottie.setIDPrefix = setPrefix;\n lottie.__getFactory = getFactory;\n lottie.version = '5.12.2';\n\n function checkReady() {\n if (document.readyState === 'complete') {\n clearInterval(readyStateCheckInterval);\n searchAnimations();\n }\n }\n\n function getQueryVariable(variable) {\n var vars = queryString.split('&');\n\n for (var i = 0; i < vars.length; i += 1) {\n var pair = vars[i].split('=');\n\n if (decodeURIComponent(pair[0]) == variable) {\n // eslint-disable-line eqeqeq\n return decodeURIComponent(pair[1]);\n }\n }\n\n return null;\n }\n\n var queryString = '';\n\n if (standalone) {\n var scripts = document.getElementsByTagName('script');\n var index = scripts.length - 1;\n var myScript = scripts[index] || {\n src: ''\n };\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\n\n renderer = getQueryVariable('renderer');\n }\n\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\n\n try {\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\n ) {\n window.bodymovin = lottie;\n }\n } catch (err) {//\n }\n\n var ShapeModifiers = function () {\n var ob = {};\n var modifiers = {};\n ob.registerModifier = registerModifier;\n ob.getModifier = getModifier;\n\n function registerModifier(nm, factory) {\n if (!modifiers[nm]) {\n modifiers[nm] = factory;\n }\n }\n\n function getModifier(nm, elem, data) {\n return new modifiers[nm](elem, data);\n }\n\n return ob;\n }();\n\n function ShapeModifier() {}\n\n ShapeModifier.prototype.initModifierProperties = function () {};\n\n ShapeModifier.prototype.addShapeToModifier = function () {};\n\n ShapeModifier.prototype.addShape = function (data) {\n if (!this.closed) {\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\n data.sh.container.addDynamicProperty(data.sh);\n var shapeData = {\n shape: data.sh,\n data: data,\n localShapeCollection: shapeCollectionPool.newShapeCollection()\n };\n this.shapes.push(shapeData);\n this.addShapeToModifier(shapeData);\n\n if (this._isAnimated) {\n data.setAsAnimated();\n }\n }\n };\n\n ShapeModifier.prototype.init = function (elem, data) {\n this.shapes = [];\n this.elem = elem;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, data);\n this.frameId = initialDefaultFrame;\n this.closed = false;\n this.k = false;\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n ShapeModifier.prototype.processKeys = function () {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\n\n function TrimModifier() {}\n\n extendPrototype([ShapeModifier], TrimModifier);\n\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\n this.sValue = 0;\n this.eValue = 0;\n this.getValue = this.processKeys;\n this.m = data.m;\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\n };\n\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\n shapeData.pathsData = [];\n };\n\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\n var segments = [];\n\n if (e <= 1) {\n segments.push({\n s: s,\n e: e\n });\n } else if (s >= 1) {\n segments.push({\n s: s - 1,\n e: e - 1\n });\n } else {\n segments.push({\n s: s,\n e: 1\n });\n segments.push({\n s: 0,\n e: e - 1\n });\n }\n\n var shapeSegments = [];\n var i;\n var len = segments.length;\n var segmentOb;\n\n for (i = 0; i < len; i += 1) {\n segmentOb = segments[i];\n\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\n var shapeS;\n var shapeE;\n\n if (segmentOb.s * totalModifierLength <= addedLength) {\n shapeS = 0;\n } else {\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\n }\n\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\n shapeE = 1;\n } else {\n shapeE = (segmentOb.e * totalModifierLength - addedLength) / shapeLength;\n }\n\n shapeSegments.push([shapeS, shapeE]);\n }\n }\n\n if (!shapeSegments.length) {\n shapeSegments.push([0, 0]);\n }\n\n return shapeSegments;\n };\n\n TrimModifier.prototype.releasePathsData = function (pathsData) {\n var i;\n var len = pathsData.length;\n\n for (i = 0; i < len; i += 1) {\n segmentsLengthPool.release(pathsData[i]);\n }\n\n pathsData.length = 0;\n return pathsData;\n };\n\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\n var s;\n var e;\n\n if (this._mdf || _isFirstFrame) {\n var o = this.o.v % 360 / 360;\n\n if (o < 0) {\n o += 1;\n }\n\n if (this.s.v > 1) {\n s = 1 + o;\n } else if (this.s.v < 0) {\n s = 0 + o;\n } else {\n s = this.s.v + o;\n }\n\n if (this.e.v > 1) {\n e = 1 + o;\n } else if (this.e.v < 0) {\n e = 0 + o;\n } else {\n e = this.e.v + o;\n }\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n s = Math.round(s * 10000) * 0.0001;\n e = Math.round(e * 10000) * 0.0001;\n this.sValue = s;\n this.eValue = e;\n } else {\n s = this.sValue;\n e = this.eValue;\n }\n\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var pathsData;\n var pathData;\n var totalShapeLength;\n var totalModifierLength = 0;\n\n if (e === s) {\n for (i = 0; i < len; i += 1) {\n this.shapes[i].localShapeCollection.releaseShapes();\n this.shapes[i].shape._mdf = true;\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\n\n if (this._mdf) {\n this.shapes[i].pathsData.length = 0;\n }\n }\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\n var segments = [];\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\n\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\n shapeData.shape.paths = shapeData.localShapeCollection;\n } else {\n shapePaths = shapeData.shape.paths;\n jLen = shapePaths._length;\n totalShapeLength = 0;\n\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\n totalShapeLength = shapeData.totalShapeLength;\n } else {\n pathsData = this.releasePathsData(shapeData.pathsData);\n\n for (j = 0; j < jLen; j += 1) {\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\n pathsData.push(pathData);\n totalShapeLength += pathData.totalLength;\n }\n\n shapeData.totalShapeLength = totalShapeLength;\n shapeData.pathsData = pathsData;\n }\n\n totalModifierLength += totalShapeLength;\n shapeData.shape._mdf = true;\n }\n }\n\n var shapeS = s;\n var shapeE = e;\n var addedLength = 0;\n var edges;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shapeData = this.shapes[i];\n\n if (shapeData.shape._mdf) {\n localShapeCollection = shapeData.localShapeCollection;\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\n\n if (this.m === 2 && len > 1) {\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\n addedLength += shapeData.totalShapeLength;\n } else {\n edges = [[shapeS, shapeE]];\n }\n\n jLen = edges.length;\n\n for (j = 0; j < jLen; j += 1) {\n shapeS = edges[j][0];\n shapeE = edges[j][1];\n segments.length = 0;\n\n if (shapeE <= 1) {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength * shapeE\n });\n } else if (shapeS >= 1) {\n segments.push({\n s: shapeData.totalShapeLength * (shapeS - 1),\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n } else {\n segments.push({\n s: shapeData.totalShapeLength * shapeS,\n e: shapeData.totalShapeLength\n });\n segments.push({\n s: 0,\n e: shapeData.totalShapeLength * (shapeE - 1)\n });\n }\n\n var newShapesData = this.addShapes(shapeData, segments[0]);\n\n if (segments[0].s !== segments[0].e) {\n if (segments.length > 1) {\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\n\n if (lastShapeInCollection.c) {\n var lastShape = newShapesData.pop();\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\n } else {\n this.addPaths(newShapesData, localShapeCollection);\n newShapesData = this.addShapes(shapeData, segments[1]);\n }\n }\n\n this.addPaths(newShapesData, localShapeCollection);\n }\n }\n\n shapeData.shape.paths = localShapeCollection;\n }\n }\n } else if (this._mdf) {\n for (i = 0; i < len; i += 1) {\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\n // Don't remove this even if it's losing cached info.\n this.shapes[i].pathsData.length = 0;\n this.shapes[i].shape._mdf = true;\n }\n }\n };\n\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\n var i;\n var len = newPaths.length;\n\n for (i = 0; i < len; i += 1) {\n localShapeCollection.addShape(newPaths[i]);\n }\n };\n\n TrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\n }\n\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\n shapePath.setXYAt(points[1], points[5], 'o', pos);\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\n\n if (newShape) {\n shapePath.setXYAt(points[0], points[4], 'v', pos);\n }\n\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\n };\n\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\n var pathsData = shapeData.pathsData;\n var shapePaths = shapeData.shape.paths.shapes;\n var i;\n var len = shapeData.shape.paths._length;\n var j;\n var jLen;\n var addedLength = 0;\n var currentLengthData;\n var segmentCount;\n var lengths;\n var segment;\n var shapes = [];\n var initPos;\n var newShape = true;\n\n if (!shapePath) {\n shapePath = shapePool.newElement();\n segmentCount = 0;\n initPos = 0;\n } else {\n segmentCount = shapePath._length;\n initPos = shapePath._length;\n }\n\n shapes.push(shapePath);\n\n for (i = 0; i < len; i += 1) {\n lengths = pathsData[i].lengths;\n shapePath.c = shapePaths[i].c;\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\n\n for (j = 1; j < jLen; j += 1) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\n addedLength += currentLengthData.addedLength;\n shapePath.c = false;\n } else if (addedLength > shapeSegment.e) {\n shapePath.c = false;\n break;\n } else {\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n }\n\n if (shapePaths[i].c && lengths.length) {\n currentLengthData = lengths[j - 1];\n\n if (addedLength <= shapeSegment.e) {\n var segmentLength = lengths[j - 1].addedLength;\n\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\n newShape = false;\n } else {\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\n\n newShape = false;\n shapePath.c = false;\n }\n } else {\n shapePath.c = false;\n }\n\n addedLength += currentLengthData.addedLength;\n segmentCount += 1;\n }\n\n if (shapePath._length) {\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\n }\n\n if (addedLength > shapeSegment.e) {\n break;\n }\n\n if (i < len - 1) {\n shapePath = shapePool.newElement();\n newShape = true;\n shapes.push(shapePath);\n segmentCount = 0;\n }\n }\n\n return shapes;\n };\n\n function PuckerAndBloatModifier() {}\n\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\n\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this._isAnimated = !!this.amount.effectsSequence.length;\n };\n\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\n var percent = amount / 100;\n var centerPoint = [0, 0];\n var pathLength = path._length;\n var i = 0;\n\n for (i = 0; i < pathLength; i += 1) {\n centerPoint[0] += path.v[i][0];\n centerPoint[1] += path.v[i][1];\n }\n\n centerPoint[0] /= pathLength;\n centerPoint[1] /= pathLength;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < pathLength; i += 1) {\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\n }\n\n return clonedPath;\n };\n\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n var TransformPropertyFactory = function () {\n var defaultVector = [0, 0];\n\n function applyToMatrix(mat) {\n var _mdf = this._mdf;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || _mdf;\n\n if (this.a) {\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.s) {\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk) {\n mat.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r) {\n mat.rotate(-this.r.v);\n } else {\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.data.p.s) {\n if (this.data.p.z) {\n mat.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n mat.translate(this.px.v, this.py.v, 0);\n }\n } else {\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n function processKeys(forceRender) {\n if (this.elem.globalData.frameId === this.frameId) {\n return;\n }\n\n if (this._isDirty) {\n this.precalculateMatrix();\n this._isDirty = false;\n }\n\n this.iterateDynamicProperties();\n\n if (this._mdf || forceRender) {\n var frameRate;\n this.v.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n }\n\n if (this.appliedTransformations < 2) {\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n this.v.rotate(-this.r.v);\n } else if (!this.r && this.appliedTransformations < 4) {\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n }\n\n if (this.autoOriented) {\n var v1;\n var v2;\n frameRate = this.elem.globalData.frameRate;\n\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\n } else {\n v1 = this.p.pv;\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\n }\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\n v1 = [];\n v2 = [];\n var px = this.px;\n var py = this.py;\n\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\n } else {\n v1 = [px.pv, py.pv];\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\n }\n } else {\n v2 = defaultVector;\n v1 = v2;\n }\n\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\n }\n\n if (this.data.p && this.data.p.s) {\n if (this.data.p.z) {\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\n } else {\n this.v.translate(this.px.v, this.py.v, 0);\n }\n } else {\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\n }\n }\n\n this.frameId = this.elem.globalData.frameId;\n }\n\n function precalculateMatrix() {\n this.appliedTransformations = 0;\n this.pre.reset();\n\n if (!this.a.effectsSequence.length) {\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\n this.appliedTransformations = 1;\n } else {\n return;\n }\n\n if (!this.s.effectsSequence.length) {\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\n this.appliedTransformations = 2;\n } else {\n return;\n }\n\n if (this.sk) {\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\n this.appliedTransformations = 3;\n } else {\n return;\n }\n }\n\n if (this.r) {\n if (!this.r.effectsSequence.length) {\n this.pre.rotate(-this.r.v);\n this.appliedTransformations = 4;\n }\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\n this.appliedTransformations = 4;\n }\n }\n\n function autoOrient() {//\n // var prevP = this.getValueAtTime();\n }\n\n function addDynamicProperty(prop) {\n this._addDynamicProperty(prop);\n\n this.elem.addDynamicProperty(prop);\n this._isDirty = true;\n }\n\n function TransformProperty(elem, data, container) {\n this.elem = elem;\n this.frameId = -1;\n this.propType = 'transform';\n this.data = data;\n this.v = new Matrix(); // Precalculated matrix with non animated properties\n\n this.pre = new Matrix();\n this.appliedTransformations = 0;\n this.initDynamicPropertyContainer(container || elem);\n\n if (data.p && data.p.s) {\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\n\n if (data.p.z) {\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\n }\n } else {\n this.p = PropertyFactory.getProp(elem, data.p || {\n k: [0, 0, 0]\n }, 1, 0, this);\n }\n\n if (data.rx) {\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\n\n if (data.or.k[0].ti) {\n var i;\n var len = data.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.or.k[i].to = null;\n data.or.k[i].ti = null;\n }\n }\n\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\n\n this.or.sh = true;\n } else {\n this.r = PropertyFactory.getProp(elem, data.r || {\n k: 0\n }, 0, degToRads, this);\n }\n\n if (data.sk) {\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\n }\n\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: [0, 0, 0]\n }, 1, 0, this);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: [100, 100, 100]\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\n\n if (data.o) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\n } else {\n this.o = {\n _mdf: false,\n v: 1\n };\n }\n\n this._isDirty = true;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n }\n\n TransformProperty.prototype = {\n applyToMatrix: applyToMatrix,\n getValue: processKeys,\n precalculateMatrix: precalculateMatrix,\n autoOrient: autoOrient\n };\n extendPrototype([DynamicPropertyContainer], TransformProperty);\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\n\n function getTransformProperty(elem, data, container) {\n return new TransformProperty(elem, data, container);\n }\n\n return {\n getTransformProperty: getTransformProperty\n };\n }();\n\n function RepeaterModifier() {}\n\n extendPrototype([ShapeModifier], RepeaterModifier);\n\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\n this.data = data;\n\n if (!this.dynamicProperties.length) {\n this.getValue(true);\n }\n\n this._isAnimated = !!this.dynamicProperties.length;\n this.pMatrix = new Matrix();\n this.rMatrix = new Matrix();\n this.sMatrix = new Matrix();\n this.tMatrix = new Matrix();\n this.matrix = new Matrix();\n };\n\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\n var dir = inv ? -1 : 1;\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n rMatrix.rotate(-transform.r.v * dir * perc);\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\n };\n\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\n this.elem = elem;\n this.arr = arr;\n this.pos = pos;\n this.elemsData = elemsData;\n this._currentCopies = 0;\n this._elements = [];\n this._groups = [];\n this.frameId = -1;\n this.initDynamicPropertyContainer(elem);\n this.initModifierProperties(elem, arr[pos]);\n\n while (pos > 0) {\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\n\n this._elements.unshift(arr[pos]);\n }\n\n if (this.dynamicProperties.length) {\n this.k = true;\n } else {\n this.getValue(true);\n }\n };\n\n RepeaterModifier.prototype.resetElements = function (elements) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._processed = false;\n\n if (elements[i].ty === 'gr') {\n this.resetElements(elements[i].it);\n }\n }\n };\n\n RepeaterModifier.prototype.cloneElements = function (elements) {\n var newElements = JSON.parse(JSON.stringify(elements));\n this.resetElements(newElements);\n return newElements;\n };\n\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\n var i;\n var len = elements.length;\n\n for (i = 0; i < len; i += 1) {\n elements[i]._render = renderFlag;\n\n if (elements[i].ty === 'gr') {\n this.changeGroupRender(elements[i].it, renderFlag);\n }\n }\n };\n\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\n var items;\n var itemsTransform;\n var i;\n var dir;\n var cont;\n var hasReloaded = false;\n\n if (this._mdf || _isFirstFrame) {\n var copies = Math.ceil(this.c.v);\n\n if (this._groups.length < copies) {\n while (this._groups.length < copies) {\n var group = {\n it: this.cloneElements(this._elements),\n ty: 'gr'\n };\n group.it.push({\n a: {\n a: 0,\n ix: 1,\n k: [0, 0]\n },\n nm: 'Transform',\n o: {\n a: 0,\n ix: 7,\n k: 100\n },\n p: {\n a: 0,\n ix: 2,\n k: [0, 0]\n },\n r: {\n a: 1,\n ix: 6,\n k: [{\n s: 0,\n e: 0,\n t: 0\n }, {\n s: 0,\n e: 0,\n t: 1\n }]\n },\n s: {\n a: 0,\n ix: 3,\n k: [100, 100]\n },\n sa: {\n a: 0,\n ix: 5,\n k: 0\n },\n sk: {\n a: 0,\n ix: 4,\n k: 0\n },\n ty: 'tr'\n });\n this.arr.splice(0, 0, group);\n\n this._groups.splice(0, 0, group);\n\n this._currentCopies += 1;\n }\n\n this.elem.reloadShapes();\n hasReloaded = true;\n }\n\n cont = 0;\n var renderFlag;\n\n for (i = 0; i <= this._groups.length - 1; i += 1) {\n renderFlag = cont < copies;\n this._groups[i]._render = renderFlag;\n this.changeGroupRender(this._groups[i].it, renderFlag);\n\n if (!renderFlag) {\n var elems = this.elemsData[i].it;\n var transformData = elems[elems.length - 1];\n\n if (transformData.transform.op.v !== 0) {\n transformData.transform.op._mdf = true;\n transformData.transform.op.v = 0;\n } else {\n transformData.transform.op._mdf = false;\n }\n }\n\n cont += 1;\n }\n\n this._currentCopies = copies; /// /\n\n var offset = this.o.v;\n var offsetModulo = offset % 1;\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\n var pProps = this.pMatrix.props;\n var rProps = this.rMatrix.props;\n var sProps = this.sMatrix.props;\n this.pMatrix.reset();\n this.rMatrix.reset();\n this.sMatrix.reset();\n this.tMatrix.reset();\n this.matrix.reset();\n var iteration = 0;\n\n if (offset > 0) {\n while (iteration < roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n iteration += 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\n iteration += offsetModulo;\n }\n } else if (offset < 0) {\n while (iteration > roundOffset) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\n iteration -= 1;\n }\n\n if (offsetModulo) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\n iteration -= offsetModulo;\n }\n }\n\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\n dir = this.data.m === 1 ? 1 : -1;\n cont = this._currentCopies;\n var j;\n var jLen;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n jLen = itemsTransform.length;\n items[items.length - 1].transform.mProps._mdf = true;\n items[items.length - 1].transform.op._mdf = true;\n items[items.length - 1].transform.op.v = this._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\n\n if (iteration !== 0) {\n if (i !== 0 && dir === 1 || i !== this._currentCopies - 1 && dir === -1) {\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\n }\n\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n\n this.matrix.reset();\n } else {\n this.matrix.reset();\n\n for (j = 0; j < jLen; j += 1) {\n itemsTransform[j] = this.matrix.props[j];\n }\n }\n\n iteration += 1;\n cont -= 1;\n i += dir;\n }\n } else {\n cont = this._currentCopies;\n i = 0;\n dir = 1;\n\n while (cont) {\n items = this.elemsData[i].it;\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\n items[items.length - 1].transform.mProps._mdf = false;\n items[items.length - 1].transform.op._mdf = false;\n cont -= 1;\n i += dir;\n }\n }\n\n return hasReloaded;\n };\n\n RepeaterModifier.prototype.addShape = function () {};\n\n function RoundCornersModifier() {}\n\n extendPrototype([ShapeModifier], RoundCornersModifier);\n\n RoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this._isAnimated = !!this.rd.effectsSequence.length;\n };\n\n RoundCornersModifier.prototype.processPath = function (path, round) {\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n var i;\n var len = path._length;\n var currentV;\n var currentI;\n var currentO;\n var closerV;\n var distance;\n var newPosPerc;\n var index = 0;\n var vX;\n var vY;\n var oX;\n var oY;\n var iX;\n var iY;\n\n for (i = 0; i < len; i += 1) {\n currentV = path.v[i];\n currentO = path.o[i];\n currentI = path.i[i];\n\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\n if ((i === 0 || i === len - 1) && !path.c) {\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\n\n index += 1;\n } else {\n if (i === 0) {\n closerV = path.v[len - 1];\n } else {\n closerV = path.v[i - 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = iX;\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\n vY = iY;\n oX = vX - (vX - currentV[0]) * roundCorner;\n oY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n\n if (i === len - 1) {\n closerV = path.v[0];\n } else {\n closerV = path.v[i + 1];\n }\n\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\n vX = oX;\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\n vY = oY;\n iX = vX - (vX - currentV[0]) * roundCorner;\n iY = vY - (vY - currentV[1]) * roundCorner;\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\n index += 1;\n }\n } else {\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\n index += 1;\n }\n }\n\n return clonedPath;\n };\n\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var rd = this.rd.v;\n\n if (rd !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function floatEqual(a, b) {\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\n }\n\n function floatZero(f) {\n return Math.abs(f) <= 0.00001;\n }\n\n function lerp(p0, p1, amount) {\n return p0 * (1 - amount) + p1 * amount;\n }\n\n function lerpPoint(p0, p1, amount) {\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\n }\n\n function quadRoots(a, b, c) {\n // no root\n if (a === 0) return [];\n var s = b * b - 4 * a * c; // Complex roots\n\n if (s < 0) return [];\n var singleRoot = -b / (2 * a); // 1 root\n\n if (s === 0) return [singleRoot];\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\n\n return [singleRoot - delta, singleRoot + delta];\n }\n\n function polynomialCoefficients(p0, p1, p2, p3) {\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\n }\n\n function singlePoint(p) {\n return new PolynomialBezier(p, p, p, p, false);\n }\n\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\n if (linearize && pointEqual(p0, p1)) {\n p1 = lerpPoint(p0, p3, 1 / 3);\n }\n\n if (linearize && pointEqual(p2, p3)) {\n p2 = lerpPoint(p0, p3, 2 / 3);\n }\n\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\n this.a = [coeffx[0], coeffy[0]];\n this.b = [coeffx[1], coeffy[1]];\n this.c = [coeffx[2], coeffy[2]];\n this.d = [coeffx[3], coeffy[3]];\n this.points = [p0, p1, p2, p3];\n }\n\n PolynomialBezier.prototype.point = function (t) {\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\n };\n\n PolynomialBezier.prototype.derivative = function (t) {\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\n };\n\n PolynomialBezier.prototype.tangentAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[1], p[0]);\n };\n\n PolynomialBezier.prototype.normalAngle = function (t) {\n var p = this.derivative(t);\n return Math.atan2(p[0], p[1]);\n };\n\n PolynomialBezier.prototype.inflectionPoints = function () {\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\n if (floatZero(denom)) return [];\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\n if (square < 0) return [];\n var root = Math.sqrt(square);\n\n if (floatZero(root)) {\n if (root > 0 && root < 1) return [tcusp];\n return [];\n }\n\n return [tcusp - root, tcusp + root].filter(function (r) {\n return r > 0 && r < 1;\n });\n };\n\n PolynomialBezier.prototype.split = function (t) {\n if (t <= 0) return [singlePoint(this.points[0]), this];\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\n var p10 = lerpPoint(this.points[0], this.points[1], t);\n var p11 = lerpPoint(this.points[1], this.points[2], t);\n var p12 = lerpPoint(this.points[2], this.points[3], t);\n var p20 = lerpPoint(p10, p11, t);\n var p21 = lerpPoint(p11, p12, t);\n var p3 = lerpPoint(p20, p21, t);\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\n };\n\n function extrema(bez, comp) {\n var min = bez.points[0][comp];\n var max = bez.points[bez.points.length - 1][comp];\n\n if (min > max) {\n var e = max;\n max = min;\n min = e;\n } // Derivative roots to find min/max\n\n\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\n\n for (var i = 0; i < f.length; i += 1) {\n if (f[i] > 0 && f[i] < 1) {\n var val = bez.point(f[i])[comp];\n if (val < min) min = val;else if (val > max) max = val;\n }\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n PolynomialBezier.prototype.bounds = function () {\n return {\n x: extrema(this, 0),\n y: extrema(this, 1)\n };\n };\n\n PolynomialBezier.prototype.boundingBox = function () {\n var bounds = this.bounds();\n return {\n left: bounds.x.min,\n right: bounds.x.max,\n top: bounds.y.min,\n bottom: bounds.y.max,\n width: bounds.x.max - bounds.x.min,\n height: bounds.y.max - bounds.y.min,\n cx: (bounds.x.max + bounds.x.min) / 2,\n cy: (bounds.y.max + bounds.y.min) / 2\n };\n };\n\n function intersectData(bez, t1, t2) {\n var box = bez.boundingBox();\n return {\n cx: box.cx,\n cy: box.cy,\n width: box.width,\n height: box.height,\n bez: bez,\n t: (t1 + t2) / 2,\n t1: t1,\n t2: t2\n };\n }\n\n function splitData(data) {\n var split = data.bez.split(0.5);\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\n }\n\n function boxIntersect(b1, b2) {\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\n }\n\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\n if (!boxIntersect(d1, d2)) return;\n\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\n intersections.push([d1.t, d2.t]);\n return;\n }\n\n var d1s = splitData(d1);\n var d2s = splitData(d2);\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\n }\n\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\n if (tolerance === undefined) tolerance = 2;\n if (maxRecursion === undefined) maxRecursion = 7;\n var intersections = [];\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\n return intersections;\n };\n\n PolynomialBezier.shapeSegment = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\n };\n\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\n var nextIndex = (index + 1) % shapePath.length();\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\n };\n\n function crossProduct(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n }\n\n function lineIntersection(start1, end1, start2, end2) {\n var v1 = [start1[0], start1[1], 1];\n var v2 = [end1[0], end1[1], 1];\n var v3 = [start2[0], start2[1], 1];\n var v4 = [end2[0], end2[1], 1];\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\n if (floatZero(r[2])) return null;\n return [r[0] / r[2], r[1] / r[2]];\n }\n\n function polarOffset(p, angle, length) {\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\n }\n\n function pointDistance(p1, p2) {\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\n }\n\n function pointEqual(p1, p2) {\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\n }\n\n function ZigZagModifier() {}\n\n extendPrototype([ShapeModifier], ZigZagModifier);\n\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\n };\n\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\n var angO = angle - Math.PI / 2;\n var angI = angle + Math.PI / 2;\n var px = point[0] + Math.cos(angle) * direction * amplitude;\n var py = point[1] - Math.sin(angle) * direction * amplitude;\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\n }\n\n function getPerpendicularVector(pt1, pt2) {\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\n var rot = -Math.PI * 0.5;\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\n return rotatedVector;\n }\n\n function getProjectingAngle(path, cur) {\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\n var nextIndex = (cur + 1) % path.length();\n var prevPoint = path.v[prevIndex];\n var nextPoint = path.v[nextIndex];\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\n }\n\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\n var angle = getProjectingAngle(path, cur);\n var point = path.v[cur % path._length];\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\n var nextPoint = path.v[(cur + 1) % path._length];\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\n }\n\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\n for (var i = 0; i < frequency; i += 1) {\n var t = (i + 1) / (frequency + 1);\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\n var angle = segment.normalAngle(t);\n var point = segment.point(t);\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\n direction = -direction;\n }\n\n return direction;\n }\n\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\n var count = path._length;\n var clonedPath = shapePool.newElement();\n clonedPath.c = path.c;\n\n if (!path.c) {\n count -= 1;\n }\n\n if (count === 0) return clonedPath;\n var direction = -1;\n var segment = PolynomialBezier.shapeSegment(path, 0);\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\n\n for (var i = 0; i < count; i += 1) {\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\n\n if (i === count - 1 && !path.c) {\n segment = null;\n } else {\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\n }\n\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\n }\n\n return clonedPath;\n };\n\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amplitude = this.amplitude.v;\n var frequency = Math.max(0, Math.round(this.frequency.v));\n var pointType = this.pointsType.v;\n\n if (amplitude !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function linearOffset(p1, p2, amount) {\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\n }\n\n function offsetSegment(segment, amount) {\n var p0;\n var p1a;\n var p1b;\n var p2b;\n var p2a;\n var p3;\n var e;\n e = linearOffset(segment.points[0], segment.points[1], amount);\n p0 = e[0];\n p1a = e[1];\n e = linearOffset(segment.points[1], segment.points[2], amount);\n p1b = e[0];\n p2b = e[1];\n e = linearOffset(segment.points[2], segment.points[3], amount);\n p2a = e[0];\n p3 = e[1];\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\n if (p1 === null) p1 = p1a;\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\n if (p2 === null) p2 = p2a;\n return new PolynomialBezier(p0, p1, p2, p3);\n }\n\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\n var p0 = seg1.points[3];\n var p1 = seg2.points[0]; // Bevel\n\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\n\n if (pointEqual(p0, p1)) return p0; // Round\n\n if (lineJoin === 2) {\n var angleOut = -seg1.tangentAngle(1);\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\n return p1;\n } // Miter\n\n\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\n var intersection = lineIntersection(t0, p0, p1, t1);\n\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\n return intersection;\n }\n\n return p0;\n }\n\n function getIntersection(a, b) {\n var intersect = a.intersections(b);\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\n if (intersect.length) return intersect[0];\n return null;\n }\n\n function pruneSegmentIntersection(a, b) {\n var outa = a.slice();\n var outb = b.slice();\n var intersect = getIntersection(a[a.length - 1], b[0]);\n\n if (intersect) {\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\n outb[0] = b[0].split(intersect[1])[1];\n }\n\n if (a.length > 1 && b.length > 1) {\n intersect = getIntersection(a[0], b[b.length - 1]);\n\n if (intersect) {\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\n }\n }\n\n return [outa, outb];\n }\n\n function pruneIntersections(segments) {\n var e;\n\n for (var i = 1; i < segments.length; i += 1) {\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\n segments[i - 1] = e[0];\n segments[i] = e[1];\n }\n\n if (segments.length > 1) {\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\n segments[segments.length - 1] = e[0];\n segments[0] = e[1];\n }\n\n return segments;\n }\n\n function offsetSegmentSplit(segment, amount) {\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\n var flex = segment.inflectionPoints();\n var left;\n var right;\n var split;\n var mid;\n\n if (flex.length === 0) {\n return [offsetSegment(segment, amount)];\n }\n\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\n split = segment.split(flex[0]);\n left = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\n }\n\n split = segment.split(flex[0]);\n left = split[0];\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\n split = split[1].split(t);\n mid = split[0];\n right = split[1];\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\n }\n\n function OffsetPathModifier() {}\n\n extendPrototype([ShapeModifier], OffsetPathModifier);\n\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\n this.getValue = this.processKeys;\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\n this.lineJoin = data.lj;\n this._isAnimated = this.amount.effectsSequence.length !== 0;\n };\n\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\n var outputBezier = shapePool.newElement();\n outputBezier.c = inputBezier.c;\n var count = inputBezier.length();\n\n if (!inputBezier.c) {\n count -= 1;\n }\n\n var i;\n var j;\n var segment;\n var multiSegments = [];\n\n for (i = 0; i < count; i += 1) {\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n\n if (!inputBezier.c) {\n for (i = count - 1; i >= 0; i -= 1) {\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\n multiSegments.push(offsetSegmentSplit(segment, amount));\n }\n }\n\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\n\n var lastPoint = null;\n var lastSeg = null;\n\n for (i = 0; i < multiSegments.length; i += 1) {\n var multiSegment = multiSegments[i];\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\n lastSeg = multiSegment[multiSegment.length - 1];\n\n for (j = 0; j < multiSegment.length; j += 1) {\n segment = multiSegment[j];\n\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\n } else {\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\n }\n\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\n lastPoint = segment.points[3];\n }\n }\n\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\n return outputBezier;\n };\n\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\n var shapePaths;\n var i;\n var len = this.shapes.length;\n var j;\n var jLen;\n var amount = this.amount.v;\n var miterLimit = this.miterLimit.v;\n var lineJoin = this.lineJoin;\n\n if (amount !== 0) {\n var shapeData;\n var localShapeCollection;\n\n for (i = 0; i < len; i += 1) {\n shapeData = this.shapes[i];\n localShapeCollection = shapeData.localShapeCollection;\n\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\n localShapeCollection.releaseShapes();\n shapeData.shape._mdf = true;\n shapePaths = shapeData.shape.paths.shapes;\n jLen = shapeData.shape.paths._length;\n\n for (j = 0; j < jLen; j += 1) {\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\n }\n }\n\n shapeData.shape.paths = shapeData.localShapeCollection;\n }\n }\n\n if (!this.dynamicProperties.length) {\n this._mdf = false;\n }\n };\n\n function getFontProperties(fontData) {\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\n var fWeight = 'normal';\n var fStyle = 'normal';\n var len = styles.length;\n var styleName;\n\n for (var i = 0; i < len; i += 1) {\n styleName = styles[i].toLowerCase();\n\n switch (styleName) {\n case 'italic':\n fStyle = 'italic';\n break;\n\n case 'bold':\n fWeight = '700';\n break;\n\n case 'black':\n fWeight = '900';\n break;\n\n case 'medium':\n fWeight = '500';\n break;\n\n case 'regular':\n case 'normal':\n fWeight = '400';\n break;\n\n case 'light':\n case 'thin':\n fWeight = '200';\n break;\n\n default:\n break;\n }\n }\n\n return {\n style: fStyle,\n weight: fontData.fWeight || fWeight\n };\n }\n\n var FontManager = function () {\n var maxWaitingTime = 5000;\n var emptyChar = {\n w: 0,\n size: 0,\n shapes: [],\n data: {\n shapes: []\n }\n };\n var combinedCharacters = []; // Hindi characters\n\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\n var BLACK_FLAG_CODE_POINT = 127988;\n var CANCEL_TAG_CODE_POINT = 917631;\n var A_TAG_CODE_POINT = 917601;\n var Z_TAG_CODE_POINT = 917626;\n var VARIATION_SELECTOR_16_CODE_POINT = 65039;\n var ZERO_WIDTH_JOINER_CODE_POINT = 8205;\n var REGIONAL_CHARACTER_A_CODE_POINT = 127462;\n var REGIONAL_CHARACTER_Z_CODE_POINT = 127487;\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\n\n function trimFontOptions(font) {\n var familyArray = font.split(',');\n var i;\n var len = familyArray.length;\n var enabledFamilies = [];\n\n for (i = 0; i < len; i += 1) {\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\n enabledFamilies.push(familyArray[i]);\n }\n }\n\n return enabledFamilies.join(',');\n }\n\n function setUpNode(font, family) {\n var parentNode = createTag('span'); // Node is invisible to screen readers.\n\n parentNode.setAttribute('aria-hidden', true);\n parentNode.style.fontFamily = family;\n var node = createTag('span'); // Characters that vary significantly among different fonts\n\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\n\n parentNode.style.position = 'absolute';\n parentNode.style.left = '-10000px';\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\n\n parentNode.style.fontSize = '300px'; // Reset any font properties\n\n parentNode.style.fontVariant = 'normal';\n parentNode.style.fontStyle = 'normal';\n parentNode.style.fontWeight = 'normal';\n parentNode.style.letterSpacing = '0';\n parentNode.appendChild(node);\n document.body.appendChild(parentNode); // Remember width with no applied web font\n\n var width = node.offsetWidth;\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\n return {\n node: node,\n w: width,\n parent: parentNode\n };\n }\n\n function checkLoadedFonts() {\n var i;\n var len = this.fonts.length;\n var node;\n var w;\n var loadedCount = len;\n\n for (i = 0; i < len; i += 1) {\n if (this.fonts[i].loaded) {\n loadedCount -= 1;\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].monoCase.node;\n w = this.fonts[i].monoCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n } else {\n node = this.fonts[i].sansCase.node;\n w = this.fonts[i].sansCase.w;\n\n if (node.offsetWidth !== w) {\n loadedCount -= 1;\n this.fonts[i].loaded = true;\n }\n }\n\n if (this.fonts[i].loaded) {\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\n }\n }\n }\n\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\n setTimeout(this.checkLoadedFontsBinded, 20);\n } else {\n setTimeout(this.setIsLoadedBinded, 10);\n }\n }\n\n function createHelper(fontData, def) {\n var engine = document.body && def ? 'svg' : 'canvas';\n var helper;\n var fontProps = getFontProperties(fontData);\n\n if (engine === 'svg') {\n var tHelper = createNS('text');\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\n\n tHelper.setAttribute('font-family', fontData.fFamily);\n tHelper.setAttribute('font-style', fontProps.style);\n tHelper.setAttribute('font-weight', fontProps.weight);\n tHelper.textContent = '1';\n\n if (fontData.fClass) {\n tHelper.style.fontFamily = 'inherit';\n tHelper.setAttribute('class', fontData.fClass);\n } else {\n tHelper.style.fontFamily = fontData.fFamily;\n }\n\n def.appendChild(tHelper);\n helper = tHelper;\n } else {\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\n helper = tCanvasHelper;\n }\n\n function measure(text) {\n if (engine === 'svg') {\n helper.textContent = text;\n return helper.getComputedTextLength();\n }\n\n return helper.measureText(text).width;\n }\n\n return {\n measureText: measure\n };\n }\n\n function addFonts(fontData, defs) {\n if (!fontData) {\n this.isLoaded = true;\n return;\n }\n\n if (this.chars) {\n this.isLoaded = true;\n this.fonts = fontData.list;\n return;\n }\n\n if (!document.body) {\n this.isLoaded = true;\n fontData.list.forEach(function (data) {\n data.helper = createHelper(data);\n data.cache = {};\n });\n this.fonts = fontData.list;\n return;\n }\n\n var fontArr = fontData.list;\n var i;\n var len = fontArr.length;\n var _pendingFonts = len;\n\n for (i = 0; i < len; i += 1) {\n var shouldLoadFont = true;\n var loadedSelector;\n var j;\n fontArr[i].loaded = false;\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\n\n if (!fontArr[i].fPath) {\n fontArr[i].loaded = true;\n _pendingFonts -= 1;\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\n\n if (loadedSelector.length > 0) {\n shouldLoadFont = false;\n }\n\n if (shouldLoadFont) {\n var s = createTag('style');\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\n s.setAttribute('f-origin', fontArr[i].origin);\n s.setAttribute('f-family', fontArr[i].fFamily);\n s.type = 'text/css';\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\n defs.appendChild(s);\n }\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var l = createTag('link');\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\n l.setAttribute('f-origin', fontArr[i].origin);\n l.type = 'text/css';\n l.rel = 'stylesheet';\n l.href = fontArr[i].fPath;\n document.body.appendChild(l);\n }\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\n\n for (j = 0; j < loadedSelector.length; j += 1) {\n if (fontArr[i].fPath === loadedSelector[j].src) {\n // Font is already loaded\n shouldLoadFont = false;\n }\n }\n\n if (shouldLoadFont) {\n var sc = createTag('link');\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\n sc.setAttribute('f-origin', fontArr[i].origin);\n sc.setAttribute('rel', 'stylesheet');\n sc.setAttribute('href', fontArr[i].fPath);\n defs.appendChild(sc);\n }\n }\n\n fontArr[i].helper = createHelper(fontArr[i], defs);\n fontArr[i].cache = {};\n this.fonts.push(fontArr[i]);\n }\n\n if (_pendingFonts === 0) {\n this.isLoaded = true;\n } else {\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\n // Adding this timeout seems to fix it\n setTimeout(this.checkLoadedFonts.bind(this), 100);\n }\n }\n\n function addChars(chars) {\n if (!chars) {\n return;\n }\n\n if (!this.chars) {\n this.chars = [];\n }\n\n var i;\n var len = chars.length;\n var j;\n var jLen = this.chars.length;\n var found;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n found = false;\n\n while (j < jLen) {\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\n found = true;\n }\n\n j += 1;\n }\n\n if (!found) {\n this.chars.push(chars[i]);\n jLen += 1;\n }\n }\n }\n\n function getCharData(_char, style, font) {\n var i = 0;\n var len = this.chars.length;\n\n while (i < len) {\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\n return this.chars[i];\n }\n\n i += 1;\n }\n\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\n && !this._warned) {\n this._warned = true;\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\n }\n\n return emptyChar;\n }\n\n function measureText(_char2, fontName, size) {\n var fontData = this.getFontByName(fontName); // Using the char instead of char.charCodeAt(0)\n // to avoid collisions between equal chars\n\n var index = _char2;\n\n if (!fontData.cache[index]) {\n var tHelper = fontData.helper;\n\n if (_char2 === ' ') {\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\n var singleSize = tHelper.measureText('||');\n fontData.cache[index] = (doubleSize - singleSize) / 100;\n } else {\n fontData.cache[index] = tHelper.measureText(_char2) / 100;\n }\n }\n\n return fontData.cache[index] * size;\n }\n\n function getFontByName(name) {\n var i = 0;\n var len = this.fonts.length;\n\n while (i < len) {\n if (this.fonts[i].fName === name) {\n return this.fonts[i];\n }\n\n i += 1;\n }\n\n return this.fonts[0];\n }\n\n function getCodePoint(string) {\n var codePoint = 0;\n var first = string.charCodeAt(0);\n\n if (first >= 0xD800 && first <= 0xDBFF) {\n var second = string.charCodeAt(1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return codePoint;\n } // Skin tone modifiers\n\n\n function isModifier(firstCharCode, secondCharCode) {\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\n return surrogateModifiers.indexOf(sum) !== -1;\n }\n\n function isZeroWidthJoiner(charCode) {\n return charCode === ZERO_WIDTH_JOINER_CODE_POINT;\n } // This codepoint may change the appearance of the preceding character.\n // If that is a symbol, dingbat or emoji, U+FE0F forces it to be rendered\n // as a colorful image as compared to a monochrome text variant.\n\n\n function isVariationSelector(charCode) {\n return charCode === VARIATION_SELECTOR_16_CODE_POINT;\n } // The regional indicator symbols are a set of 26 alphabetic Unicode\n /// characters (A–Z) intended to be used to encode ISO 3166-1 alpha-2\n // two-letter country codes in a way that allows optional special treatment.\n\n\n function isRegionalCode(string) {\n var codePoint = getCodePoint(string);\n\n if (codePoint >= REGIONAL_CHARACTER_A_CODE_POINT && codePoint <= REGIONAL_CHARACTER_Z_CODE_POINT) {\n return true;\n }\n\n return false;\n } // Some Emoji implementations represent combinations of\n // two “regional indicator” letters as a single flag symbol.\n\n\n function isFlagEmoji(string) {\n return isRegionalCode(string.substr(0, 2)) && isRegionalCode(string.substr(2, 2));\n }\n\n function isCombinedCharacter(_char3) {\n return combinedCharacters.indexOf(_char3) !== -1;\n } // Regional flags start with a BLACK_FLAG_CODE_POINT\n // folowed by 5 chars in the TAG range\n // and end with a CANCEL_TAG_CODE_POINT\n\n\n function isRegionalFlag(text, index) {\n var codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint !== BLACK_FLAG_CODE_POINT) {\n return false;\n }\n\n var count = 0;\n index += 2;\n\n while (count < 5) {\n codePoint = getCodePoint(text.substr(index, 2));\n\n if (codePoint < A_TAG_CODE_POINT || codePoint > Z_TAG_CODE_POINT) {\n return false;\n }\n\n count += 1;\n index += 2;\n }\n\n return getCodePoint(text.substr(index, 2)) === CANCEL_TAG_CODE_POINT;\n }\n\n function setIsLoaded() {\n this.isLoaded = true;\n }\n\n var Font = function Font() {\n this.fonts = [];\n this.chars = null;\n this.typekitLoaded = 0;\n this.isLoaded = false;\n this._warned = false;\n this.initTime = Date.now();\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\n };\n\n Font.isModifier = isModifier;\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\n Font.isFlagEmoji = isFlagEmoji;\n Font.isRegionalCode = isRegionalCode;\n Font.isCombinedCharacter = isCombinedCharacter;\n Font.isRegionalFlag = isRegionalFlag;\n Font.isVariationSelector = isVariationSelector;\n Font.BLACK_FLAG_CODE_POINT = BLACK_FLAG_CODE_POINT;\n var fontPrototype = {\n addChars: addChars,\n addFonts: addFonts,\n getCharData: getCharData,\n getFontByName: getFontByName,\n measureText: measureText,\n checkLoadedFonts: checkLoadedFonts,\n setIsLoaded: setIsLoaded\n };\n Font.prototype = fontPrototype;\n return Font;\n }();\n\n function SlotManager(animationData) {\n this.animationData = animationData;\n }\n\n SlotManager.prototype.getProp = function (data) {\n if (this.animationData.slots && this.animationData.slots[data.sid]) {\n return Object.assign(data, this.animationData.slots[data.sid].p);\n }\n\n return data;\n };\n\n function slotFactory(animationData) {\n return new SlotManager(animationData);\n }\n\n function RenderableElement() {}\n\n RenderableElement.prototype = {\n initRenderable: function initRenderable() {\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\n this.isInRange = false; // layer's display state\n\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\n\n this.isTransparent = false; // list of animated components\n\n this.renderableComponents = [];\n },\n addRenderableComponent: function addRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) === -1) {\n this.renderableComponents.push(component);\n }\n },\n removeRenderableComponent: function removeRenderableComponent(component) {\n if (this.renderableComponents.indexOf(component) !== -1) {\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\n }\n },\n prepareRenderableFrame: function prepareRenderableFrame(num) {\n this.checkLayerLimits(num);\n },\n checkTransparency: function checkTransparency() {\n if (this.finalTransform.mProp.o.v <= 0) {\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\n this.isTransparent = true;\n this.hide();\n }\n } else if (this.isTransparent) {\n this.isTransparent = false;\n this.show();\n }\n },\n\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\n checkLayerLimits: function checkLayerLimits(num) {\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\n if (this.isInRange !== true) {\n this.globalData._mdf = true;\n this._mdf = true;\n this.isInRange = true;\n this.show();\n }\n } else if (this.isInRange !== false) {\n this.globalData._mdf = true;\n this.isInRange = false;\n this.hide();\n }\n },\n renderRenderable: function renderRenderable() {\n var i;\n var len = this.renderableComponents.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\n }\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\n\n },\n sourceRectAtTime: function sourceRectAtTime() {\n return {\n top: 0,\n left: 0,\n width: 100,\n height: 100\n };\n },\n getLayerSize: function getLayerSize() {\n if (this.data.ty === 5) {\n return {\n w: this.data.textData.width,\n h: this.data.textData.height\n };\n }\n\n return {\n w: this.data.width,\n h: this.data.height\n };\n }\n };\n\n var getBlendMode = function () {\n var blendModeEnums = {\n 0: 'source-over',\n 1: 'multiply',\n 2: 'screen',\n 3: 'overlay',\n 4: 'darken',\n 5: 'lighten',\n 6: 'color-dodge',\n 7: 'color-burn',\n 8: 'hard-light',\n 9: 'soft-light',\n 10: 'difference',\n 11: 'exclusion',\n 12: 'hue',\n 13: 'saturation',\n 14: 'color',\n 15: 'luminosity'\n };\n return function (mode) {\n return blendModeEnums[mode] || '';\n };\n }();\n\n function SliderEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function AngleEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function ColorEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function PointEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\n }\n\n function LayerIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function MaskIndexEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function CheckboxEffect(data, elem, container) {\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\n }\n\n function NoValueEffect() {\n this.p = {};\n }\n\n function EffectsManager(data, element) {\n var effects = data.ef || [];\n this.effectElements = [];\n var i;\n var len = effects.length;\n var effectItem;\n\n for (i = 0; i < len; i += 1) {\n effectItem = new GroupEffect(effects[i], element);\n this.effectElements.push(effectItem);\n }\n }\n\n function GroupEffect(data, element) {\n this.init(data, element);\n }\n\n extendPrototype([DynamicPropertyContainer], GroupEffect);\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\n\n GroupEffect.prototype.init = function (data, element) {\n this.data = data;\n this.effectElements = [];\n this.initDynamicPropertyContainer(element);\n var i;\n var len = this.data.ef.length;\n var eff;\n var effects = this.data.ef;\n\n for (i = 0; i < len; i += 1) {\n eff = null;\n\n switch (effects[i].ty) {\n case 0:\n eff = new SliderEffect(effects[i], element, this);\n break;\n\n case 1:\n eff = new AngleEffect(effects[i], element, this);\n break;\n\n case 2:\n eff = new ColorEffect(effects[i], element, this);\n break;\n\n case 3:\n eff = new PointEffect(effects[i], element, this);\n break;\n\n case 4:\n case 7:\n eff = new CheckboxEffect(effects[i], element, this);\n break;\n\n case 10:\n eff = new LayerIndexEffect(effects[i], element, this);\n break;\n\n case 11:\n eff = new MaskIndexEffect(effects[i], element, this);\n break;\n\n case 5:\n eff = new EffectsManager(effects[i], element, this);\n break;\n // case 6:\n\n default:\n eff = new NoValueEffect(effects[i], element, this);\n break;\n }\n\n if (eff) {\n this.effectElements.push(eff);\n }\n }\n };\n\n function BaseElement() {}\n\n BaseElement.prototype = {\n checkMasks: function checkMasks() {\n if (!this.data.hasMask) {\n return false;\n }\n\n var i = 0;\n var len = this.data.masksProperties.length;\n\n while (i < len) {\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\n return true;\n }\n\n i += 1;\n }\n\n return false;\n },\n initExpressions: function initExpressions() {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var LayerExpressionInterface = expressionsInterfaces('layer');\n var EffectsExpressionInterface = expressionsInterfaces('effects');\n var ShapeExpressionInterface = expressionsInterfaces('shape');\n var TextExpressionInterface = expressionsInterfaces('text');\n var CompExpressionInterface = expressionsInterfaces('comp');\n this.layerInterface = LayerExpressionInterface(this);\n\n if (this.data.hasMask && this.maskManager) {\n this.layerInterface.registerMaskInterface(this.maskManager);\n }\n\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\n this.layerInterface.registerEffectsInterface(effectsInterface);\n\n if (this.data.ty === 0 || this.data.xt) {\n this.compInterface = CompExpressionInterface(this);\n } else if (this.data.ty === 4) {\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\n this.layerInterface.content = this.layerInterface.shapeInterface;\n } else if (this.data.ty === 5) {\n this.layerInterface.textInterface = TextExpressionInterface(this);\n this.layerInterface.text = this.layerInterface.textInterface;\n }\n },\n setBlendMode: function setBlendMode() {\n var blendModeValue = getBlendMode(this.data.bm);\n var elem = this.baseElement || this.layerElement;\n elem.style['mix-blend-mode'] = blendModeValue;\n },\n initBaseData: function initBaseData(data, globalData, comp) {\n this.globalData = globalData;\n this.comp = comp;\n this.data = data;\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\n\n if (!this.data.sr) {\n this.data.sr = 1;\n } // effects manager\n\n\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\n },\n getType: function getType() {\n return this.type;\n },\n sourceRectAtTime: function sourceRectAtTime() {}\n };\n\n /**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\n function FrameElement() {}\n\n FrameElement.prototype = {\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\n initFrame: function initFrame() {\n // set to true when inpoint is rendered\n this._isFirstFrame = false; // list of animated properties\n\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\n\n this._mdf = false;\n },\n\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\n prepareProperties: function prepareProperties(num, isVisible) {\n var i;\n var len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (isVisible || this._isParent && this.dynamicProperties[i].propType === 'transform') {\n this.dynamicProperties[i].getValue();\n\n if (this.dynamicProperties[i]._mdf) {\n this.globalData._mdf = true;\n this._mdf = true;\n }\n }\n }\n },\n addDynamicProperty: function addDynamicProperty(prop) {\n if (this.dynamicProperties.indexOf(prop) === -1) {\n this.dynamicProperties.push(prop);\n }\n }\n };\n\n function FootageElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\n this.initBaseData(data, globalData, comp);\n }\n\n FootageElement.prototype.prepareFrame = function () {};\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\n\n FootageElement.prototype.getBaseElement = function () {\n return null;\n };\n\n FootageElement.prototype.renderFrame = function () {};\n\n FootageElement.prototype.destroy = function () {};\n\n FootageElement.prototype.initExpressions = function () {\n var expressionsInterfaces = getExpressionInterfaces();\n\n if (!expressionsInterfaces) {\n return;\n }\n\n var FootageInterface = expressionsInterfaces('footage');\n this.layerInterface = FootageInterface(this);\n };\n\n FootageElement.prototype.getFootageData = function () {\n return this.footageData;\n };\n\n function AudioElement(data, globalData, comp) {\n this.initFrame();\n this.initRenderable();\n this.assetData = globalData.getAssetData(data.refId);\n this.initBaseData(data, globalData, comp);\n this._isPlaying = false;\n this._canPlay = false;\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.audio = this.globalData.audioController.createAudio(assetPath);\n this._currentTime = 0;\n this.globalData.audioController.addAudio(this);\n this._volumeMultiplier = 1;\n this._volume = 1;\n this._previousVolume = null;\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\n k: [100]\n }, 1, 0.01, this);\n }\n\n AudioElement.prototype.prepareFrame = function (num) {\n this.prepareRenderableFrame(num, true);\n this.prepareProperties(num, true);\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n this._currentTime = timeRemapped;\n } else {\n this._currentTime = num / this.data.sr;\n }\n\n this._volume = this.lv.v[0];\n var totalVolume = this._volume * this._volumeMultiplier;\n\n if (this._previousVolume !== totalVolume) {\n this._previousVolume = totalVolume;\n this.audio.volume(totalVolume);\n }\n };\n\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\n\n AudioElement.prototype.renderFrame = function () {\n if (this.isInRange && this._canPlay) {\n if (!this._isPlaying) {\n this.audio.play();\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n this._isPlaying = true;\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\n this.audio.seek(this._currentTime / this.globalData.frameRate);\n }\n }\n };\n\n AudioElement.prototype.show = function () {// this.audio.play()\n };\n\n AudioElement.prototype.hide = function () {\n this.audio.pause();\n this._isPlaying = false;\n };\n\n AudioElement.prototype.pause = function () {\n this.audio.pause();\n this._isPlaying = false;\n this._canPlay = false;\n };\n\n AudioElement.prototype.resume = function () {\n this._canPlay = true;\n };\n\n AudioElement.prototype.setRate = function (rateValue) {\n this.audio.rate(rateValue);\n };\n\n AudioElement.prototype.volume = function (volumeValue) {\n this._volumeMultiplier = volumeValue;\n this._previousVolume = volumeValue * this._volume;\n this.audio.volume(this._previousVolume);\n };\n\n AudioElement.prototype.getBaseElement = function () {\n return null;\n };\n\n AudioElement.prototype.destroy = function () {};\n\n AudioElement.prototype.sourceRectAtTime = function () {};\n\n AudioElement.prototype.initExpressions = function () {};\n\n function BaseRenderer() {}\n\n BaseRenderer.prototype.checkLayers = function (num) {\n var i;\n var len = this.layers.length;\n var data;\n this.completeLayers = true;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (!this.elements[i]) {\n data = this.layers[i];\n\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\n this.buildItem(i);\n }\n }\n\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.createItem = function (layer) {\n switch (layer.ty) {\n case 2:\n return this.createImage(layer);\n\n case 0:\n return this.createComp(layer);\n\n case 1:\n return this.createSolid(layer);\n\n case 3:\n return this.createNull(layer);\n\n case 4:\n return this.createShape(layer);\n\n case 5:\n return this.createText(layer);\n\n case 6:\n return this.createAudio(layer);\n\n case 13:\n return this.createCamera(layer);\n\n case 15:\n return this.createFootage(layer);\n\n default:\n return this.createNull(layer);\n }\n };\n\n BaseRenderer.prototype.createCamera = function () {\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\n };\n\n BaseRenderer.prototype.createAudio = function (data) {\n return new AudioElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.createFootage = function (data) {\n return new FootageElement(data, this.globalData, this);\n };\n\n BaseRenderer.prototype.buildAllItems = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n this.buildItem(i);\n }\n\n this.checkPendingElements();\n };\n\n BaseRenderer.prototype.includeLayers = function (newLayers) {\n this.completeLayers = false;\n var i;\n var len = newLayers.length;\n var j;\n var jLen = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n j = 0;\n\n while (j < jLen) {\n if (this.layers[j].id === newLayers[i].id) {\n this.layers[j] = newLayers[i];\n break;\n }\n\n j += 1;\n }\n }\n };\n\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\n this.globalData.projectInterface = pInterface;\n };\n\n BaseRenderer.prototype.initItems = function () {\n if (!this.globalData.progressiveLoad) {\n this.buildAllItems();\n }\n };\n\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\n var elements = this.elements;\n var layers = this.layers;\n var i = 0;\n var len = layers.length;\n\n while (i < len) {\n if (layers[i].ind == parentName) {\n // eslint-disable-line eqeqeq\n if (!elements[i] || elements[i] === true) {\n this.buildItem(i);\n this.addPendingElement(element);\n } else {\n hierarchy.push(elements[i]);\n elements[i].setAsParent();\n\n if (layers[i].parent !== undefined) {\n this.buildElementParenting(element, layers[i].parent, hierarchy);\n } else {\n element.setHierarchy(hierarchy);\n }\n }\n }\n\n i += 1;\n }\n };\n\n BaseRenderer.prototype.addPendingElement = function (element) {\n this.pendingElements.push(element);\n };\n\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i]);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n BaseRenderer.prototype.getElementById = function (ind) {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.ind === ind) {\n return this.elements[i];\n }\n }\n\n return null;\n };\n\n BaseRenderer.prototype.getElementByPath = function (path) {\n var pathValue = path.shift();\n var element;\n\n if (typeof pathValue === 'number') {\n element = this.elements[pathValue];\n } else {\n var i;\n var len = this.elements.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i].data.nm === pathValue) {\n element = this.elements[i];\n break;\n }\n }\n }\n\n if (path.length === 0) {\n return element;\n }\n\n return element.getElementByPath(path);\n };\n\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\n this.globalData.fontManager = new FontManager();\n this.globalData.slotManager = slotFactory(animData);\n this.globalData.fontManager.addChars(animData.chars);\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\n this.globalData.imageLoader = this.animationItem.imagePreloader;\n this.globalData.audioController = this.animationItem.audioController;\n this.globalData.frameId = 0;\n this.globalData.frameRate = animData.fr;\n this.globalData.nm = animData.nm;\n this.globalData.compSize = {\n w: animData.w,\n h: animData.h\n };\n };\n\n var effectTypes = {\n TRANSFORM_EFFECT: 'transformEFfect'\n };\n\n function TransformElement() {}\n\n TransformElement.prototype = {\n initTransform: function initTransform() {\n var mat = new Matrix();\n this.finalTransform = {\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\n o: 0\n },\n _matMdf: false,\n _localMatMdf: false,\n _opMdf: false,\n mat: mat,\n localMat: mat,\n localOpacity: 1\n };\n\n if (this.data.ao) {\n this.finalTransform.mProp.autoOriented = true;\n } // TODO: check TYPE 11: Guided elements\n\n\n if (this.data.ty !== 11) {// this.createElements();\n }\n },\n renderTransform: function renderTransform() {\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\n\n if (this.hierarchy) {\n var mat;\n var finalMat = this.finalTransform.mat;\n var i = 0;\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\n\n if (!this.finalTransform._matMdf) {\n while (i < len) {\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\n this.finalTransform._matMdf = true;\n break;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._matMdf) {\n mat = this.finalTransform.mProp.v.props;\n finalMat.cloneFromProps(mat);\n\n for (i = 0; i < len; i += 1) {\n finalMat.multiply(this.hierarchy[i].finalTransform.mProp.v);\n }\n }\n }\n\n if (this.finalTransform._matMdf) {\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n }\n\n if (this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n }\n },\n renderLocalTransform: function renderLocalTransform() {\n if (this.localTransforms) {\n var i = 0;\n var len = this.localTransforms.length;\n this.finalTransform._localMatMdf = this.finalTransform._matMdf;\n\n if (!this.finalTransform._localMatMdf || !this.finalTransform._opMdf) {\n while (i < len) {\n if (this.localTransforms[i]._mdf) {\n this.finalTransform._localMatMdf = true;\n }\n\n if (this.localTransforms[i]._opMdf && !this.finalTransform._opMdf) {\n this.finalTransform.localOpacity = this.finalTransform.mProp.o.v;\n this.finalTransform._opMdf = true;\n }\n\n i += 1;\n }\n }\n\n if (this.finalTransform._localMatMdf) {\n var localMat = this.finalTransform.localMat;\n this.localTransforms[0].matrix.clone(localMat);\n\n for (i = 1; i < len; i += 1) {\n var lmat = this.localTransforms[i].matrix;\n localMat.multiply(lmat);\n }\n\n localMat.multiply(this.finalTransform.mat);\n }\n\n if (this.finalTransform._opMdf) {\n var localOp = this.finalTransform.localOpacity;\n\n for (i = 0; i < len; i += 1) {\n localOp *= this.localTransforms[i].opacity * 0.01;\n }\n\n this.finalTransform.localOpacity = localOp;\n }\n }\n },\n searchEffectTransforms: function searchEffectTransforms() {\n if (this.renderableEffectsManager) {\n var transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n\n if (transformEffects.length) {\n this.localTransforms = [];\n this.finalTransform.localMat = new Matrix();\n var i = 0;\n var len = transformEffects.length;\n\n for (i = 0; i < len; i += 1) {\n this.localTransforms.push(transformEffects[i]);\n }\n }\n }\n },\n globalToLocal: function globalToLocal(pt) {\n var transforms = [];\n transforms.push(this.finalTransform);\n var flag = true;\n var comp = this.comp;\n\n while (flag) {\n if (comp.finalTransform) {\n if (comp.data.hasMask) {\n transforms.splice(0, 0, comp.finalTransform);\n }\n\n comp = comp.comp;\n } else {\n flag = false;\n }\n }\n\n var i;\n var len = transforms.length;\n var ptNew;\n\n for (i = 0; i < len; i += 1) {\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\n\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\n }\n\n return pt;\n },\n mHelper: new Matrix()\n };\n\n function MaskElement(data, element, globalData) {\n this.data = data;\n this.element = element;\n this.globalData = globalData;\n this.storedData = [];\n this.masksProperties = this.data.masksProperties || [];\n this.maskElement = null;\n var defs = this.globalData.defs;\n var i;\n var len = this.masksProperties ? this.masksProperties.length : 0;\n this.viewData = createSizedArray(len);\n this.solidPath = '';\n var path;\n var properties = this.masksProperties;\n var count = 0;\n var currentMasks = [];\n var j;\n var jLen;\n var layerId = createElementID();\n var rect;\n var expansor;\n var feMorph;\n var x;\n var maskType = 'clipPath';\n var maskRef = 'clip-path';\n\n for (i = 0; i < len; i += 1) {\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\n maskType = 'mask';\n maskRef = 'mask';\n }\n\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\n rect = createNS('rect');\n rect.setAttribute('fill', '#ffffff');\n rect.setAttribute('width', this.element.comp.data.w || 0);\n rect.setAttribute('height', this.element.comp.data.h || 0);\n currentMasks.push(rect);\n } else {\n rect = null;\n }\n\n path = createNS('path');\n\n if (properties[i].mode === 'n') {\n // TODO move this to a factory or to a constructor\n this.viewData[i] = {\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n elem: path,\n lastPath: ''\n };\n defs.appendChild(path);\n } else {\n count += 1;\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\n path.setAttribute('clip-rule', 'nonzero');\n var filterID;\n\n if (properties[i].x.k !== 0) {\n maskType = 'mask';\n maskRef = 'mask';\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\n filterID = createElementID();\n expansor = createNS('filter');\n expansor.setAttribute('id', filterID);\n feMorph = createNS('feMorphology');\n feMorph.setAttribute('operator', 'erode');\n feMorph.setAttribute('in', 'SourceGraphic');\n feMorph.setAttribute('radius', '0');\n expansor.appendChild(feMorph);\n defs.appendChild(expansor);\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\n } else {\n feMorph = null;\n x = null;\n } // TODO move this to a factory or to a constructor\n\n\n this.storedData[i] = {\n elem: path,\n x: x,\n expan: feMorph,\n lastPath: '',\n lastOperator: '',\n filterId: filterID,\n lastRadius: 0\n };\n\n if (properties[i].mode === 'i') {\n jLen = currentMasks.length;\n var g = createNS('g');\n\n for (j = 0; j < jLen; j += 1) {\n g.appendChild(currentMasks[j]);\n }\n\n var mask = createNS('mask');\n mask.setAttribute('mask-type', 'alpha');\n mask.setAttribute('id', layerId + '_' + count);\n mask.appendChild(path);\n defs.appendChild(mask);\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\n currentMasks.length = 0;\n currentMasks.push(g);\n } else {\n currentMasks.push(path);\n }\n\n if (properties[i].inv && !this.solidPath) {\n this.solidPath = this.createLayerSolidPath();\n } // TODO move this to a factory or to a constructor\n\n\n this.viewData[i] = {\n elem: path,\n lastPath: '',\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\n invRect: rect\n };\n\n if (!this.viewData[i].prop.k) {\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n }\n }\n\n this.maskElement = createNS(maskType);\n len = currentMasks.length;\n\n for (i = 0; i < len; i += 1) {\n this.maskElement.appendChild(currentMasks[i]);\n }\n\n if (count > 0) {\n this.maskElement.setAttribute('id', layerId);\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\n defs.appendChild(this.maskElement);\n }\n\n if (this.viewData.length) {\n this.element.addRenderableComponent(this);\n }\n }\n\n MaskElement.prototype.getMaskProperty = function (pos) {\n return this.viewData[pos].prop;\n };\n\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\n var finalMat = this.element.finalTransform.mat;\n var i;\n var len = this.masksProperties.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.viewData[i].prop._mdf || isFirstFrame) {\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\n }\n\n if (this.viewData[i].op._mdf || isFirstFrame) {\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\n }\n\n if (this.masksProperties[i].mode !== 'n') {\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\n }\n\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\n var feMorph = this.storedData[i].expan;\n\n if (this.storedData[i].x.v < 0) {\n if (this.storedData[i].lastOperator !== 'erode') {\n this.storedData[i].lastOperator = 'erode';\n this.storedData[i].elem.setAttribute('filter', 'url(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\n }\n\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\n } else {\n if (this.storedData[i].lastOperator !== 'dilate') {\n this.storedData[i].lastOperator = 'dilate';\n this.storedData[i].elem.setAttribute('filter', null);\n }\n\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\n }\n }\n }\n }\n };\n\n MaskElement.prototype.getMaskelement = function () {\n return this.maskElement;\n };\n\n MaskElement.prototype.createLayerSolidPath = function () {\n var path = 'M0,0 ';\n path += ' h' + this.globalData.compSize.w;\n path += ' v' + this.globalData.compSize.h;\n path += ' h-' + this.globalData.compSize.w;\n path += ' v-' + this.globalData.compSize.h + ' ';\n return path;\n };\n\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n var i;\n var len;\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\n } // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\n\n\n if (pathNodes.c && len > 1) {\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\n } // pathNodes.__renderedString = pathString;\n\n\n if (viewData.lastPath !== pathString) {\n var pathShapeValue = '';\n\n if (viewData.elem) {\n if (pathNodes.c) {\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\n }\n\n viewData.elem.setAttribute('d', pathShapeValue);\n }\n\n viewData.lastPath = pathString;\n }\n };\n\n MaskElement.prototype.destroy = function () {\n this.element = null;\n this.globalData = null;\n this.maskElement = null;\n this.data = null;\n this.masksProperties = null;\n };\n\n var filtersFactory = function () {\n var ob = {};\n ob.createFilter = createFilter;\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\n\n function createFilter(filId, skipCoordinates) {\n var fil = createNS('filter');\n fil.setAttribute('id', filId);\n\n if (skipCoordinates !== true) {\n fil.setAttribute('filterUnits', 'objectBoundingBox');\n fil.setAttribute('x', '0%');\n fil.setAttribute('y', '0%');\n fil.setAttribute('width', '100%');\n fil.setAttribute('height', '100%');\n }\n\n return fil;\n }\n\n function createAlphaToLuminanceFilter() {\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\n return feColorMatrix;\n }\n\n return ob;\n }();\n\n var featureSupport = function () {\n var ob = {\n maskType: true,\n svgLumaHidden: true,\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\n };\n\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\n ob.maskType = false;\n }\n\n if (/firefox/i.test(navigator.userAgent)) {\n ob.svgLumaHidden = false;\n }\n\n return ob;\n }();\n\n var registeredEffects$1 = {};\n var idPrefix = 'filter_result_';\n\n function SVGEffects(elem) {\n var i;\n var source = 'SourceGraphic';\n var len = elem.data.ef ? elem.data.ef.length : 0;\n var filId = createElementID();\n var fil = filtersFactory.createFilter(filId, true);\n var count = 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects$1[type]) {\n var Effect = registeredEffects$1[type].effect;\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\n source = idPrefix + count;\n\n if (registeredEffects$1[type].countsAsEffect) {\n count += 1;\n }\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (count) {\n elem.globalData.defs.appendChild(fil);\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n SVGEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect$1(id, effect, countsAsEffect) {\n registeredEffects$1[id] = {\n effect: effect,\n countsAsEffect: countsAsEffect\n };\n }\n\n function SVGBaseElement() {}\n\n SVGBaseElement.prototype = {\n initRendererElement: function initRendererElement() {\n this.layerElement = createNS('g');\n },\n createContainerElements: function createContainerElements() {\n this.matteElement = createNS('g');\n this.transformedElement = this.layerElement;\n this.maskedElement = this.layerElement;\n this._sizeChanged = false;\n var layerElementParent = null; // If this layer acts as a mask for the following layer\n\n if (this.data.td) {\n this.matteMasks = {};\n var gg = createNS('g');\n gg.setAttribute('id', this.layerId);\n gg.appendChild(this.layerElement);\n layerElementParent = gg;\n this.globalData.defs.appendChild(gg);\n } else if (this.data.tt) {\n this.matteElement.appendChild(this.layerElement);\n layerElementParent = this.matteElement;\n this.baseElement = this.matteElement;\n } else {\n this.baseElement = this.layerElement;\n }\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\n\n\n if (this.data.ty === 0 && !this.data.hd) {\n var cp = createNS('clipPath');\n var pt = createNS('path');\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\n var clipId = createElementID();\n cp.setAttribute('id', clipId);\n cp.appendChild(pt);\n this.globalData.defs.appendChild(cp);\n\n if (this.checkMasks()) {\n var cpGroup = createNS('g');\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n cpGroup.appendChild(this.layerElement);\n this.transformedElement = cpGroup;\n\n if (layerElementParent) {\n layerElementParent.appendChild(this.transformedElement);\n } else {\n this.baseElement = this.transformedElement;\n }\n } else {\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\n }\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n if (this.finalTransform._localMatMdf) {\n this.transformedElement.setAttribute('transform', this.finalTransform.localMat.to2dCSS());\n }\n\n if (this.finalTransform._opMdf) {\n this.transformedElement.setAttribute('opacity', this.finalTransform.localOpacity);\n }\n },\n destroyBaseElement: function destroyBaseElement() {\n this.layerElement = null;\n this.matteElement = null;\n this.maskManager.destroy();\n },\n getBaseElement: function getBaseElement() {\n if (this.data.hd) {\n return null;\n }\n\n return this.baseElement;\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n this.renderableEffectsManager = new SVGEffects(this);\n this.searchEffectTransforms();\n },\n getMatte: function getMatte(matteType) {\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\n // It solves animations that have two consecutive layers marked as matte masks.\n // Which is an undefined behavior in AE.\n if (!this.matteMasks) {\n this.matteMasks = {};\n }\n\n if (!this.matteMasks[matteType]) {\n var id = this.layerId + '_' + matteType;\n var filId;\n var fil;\n var useElement;\n var gg;\n\n if (matteType === 1 || matteType === 3) {\n var masker = createNS('mask');\n masker.setAttribute('id', id);\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n masker.appendChild(useElement);\n this.globalData.defs.appendChild(masker);\n\n if (!featureSupport.maskType && matteType === 1) {\n masker.setAttribute('mask-type', 'luminance');\n filId = createElementID();\n fil = filtersFactory.createFilter(filId);\n this.globalData.defs.appendChild(fil);\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n gg.appendChild(useElement);\n masker.appendChild(gg);\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n }\n } else if (matteType === 2) {\n var maskGroup = createNS('mask');\n maskGroup.setAttribute('id', id);\n maskGroup.setAttribute('mask-type', 'alpha');\n var maskGrouper = createNS('g');\n maskGroup.appendChild(maskGrouper);\n filId = createElementID();\n fil = filtersFactory.createFilter(filId); /// /\n\n var feCTr = createNS('feComponentTransfer');\n feCTr.setAttribute('in', 'SourceGraphic');\n fil.appendChild(feCTr);\n var feFunc = createNS('feFuncA');\n feFunc.setAttribute('type', 'table');\n feFunc.setAttribute('tableValues', '1.0 0.0');\n feCTr.appendChild(feFunc); /// /\n\n this.globalData.defs.appendChild(fil);\n var alphaRect = createNS('rect');\n alphaRect.setAttribute('width', this.comp.data.w);\n alphaRect.setAttribute('height', this.comp.data.h);\n alphaRect.setAttribute('x', '0');\n alphaRect.setAttribute('y', '0');\n alphaRect.setAttribute('fill', '#ffffff');\n alphaRect.setAttribute('opacity', '0');\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\n maskGrouper.appendChild(alphaRect);\n useElement = createNS('use');\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\n maskGrouper.appendChild(useElement);\n\n if (!featureSupport.maskType) {\n maskGroup.setAttribute('mask-type', 'luminance');\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\n gg = createNS('g');\n maskGrouper.appendChild(alphaRect);\n gg.appendChild(this.layerElement);\n maskGrouper.appendChild(gg);\n }\n\n this.globalData.defs.appendChild(maskGroup);\n }\n\n this.matteMasks[matteType] = id;\n }\n\n return this.matteMasks[matteType];\n },\n setMatte: function setMatte(id) {\n if (!this.matteElement) {\n return;\n }\n\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n }\n };\n\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\n function HierarchyElement() {}\n\n HierarchyElement.prototype = {\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\n initHierarchy: function initHierarchy() {\n // element's parent list\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\n\n this._isParent = false;\n this.checkParenting();\n },\n\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\n setHierarchy: function setHierarchy(hierarchy) {\n this.hierarchy = hierarchy;\n },\n\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\n setAsParent: function setAsParent() {\n this._isParent = true;\n },\n\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\n checkParenting: function checkParenting() {\n if (this.data.parent !== undefined) {\n this.comp.buildElementParenting(this, this.data.parent, []);\n }\n }\n };\n\n function RenderableDOMElement() {}\n\n (function () {\n var _prototype = {\n initElement: function initElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n },\n hide: function hide() {\n // console.log('HIDE', this);\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'none';\n this.hidden = true;\n }\n },\n show: function show() {\n // console.log('SHOW', this);\n if (this.isInRange && !this.isTransparent) {\n if (!this.data.hd) {\n var elem = this.baseElement || this.layerElement;\n elem.style.display = 'block';\n }\n\n this.hidden = false;\n this._isFirstFrame = true;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n renderInnerContent: function renderInnerContent() {},\n prepareFrame: function prepareFrame(num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n this.checkTransparency();\n },\n destroy: function destroy() {\n this.innerElem = null;\n this.destroyBaseElement();\n }\n };\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\n })();\n\n function IImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n\n if (this.assetData && this.assetData.sid) {\n this.assetData = globalData.slotManager.getProp(this.assetData);\n }\n\n this.initElement(data, globalData, comp);\n this.sourceRect = {\n top: 0,\n left: 0,\n width: this.assetData.w,\n height: this.assetData.h\n };\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\n\n IImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n this.innerElem = createNS('image');\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.innerElem);\n };\n\n IImageElement.prototype.sourceRectAtTime = function () {\n return this.sourceRect;\n };\n\n function ProcessedElement(element, position) {\n this.elem = element;\n this.pos = position;\n }\n\n function IShapeElement() {}\n\n IShapeElement.prototype = {\n addShapeToModifiers: function addShapeToModifiers(data) {\n var i;\n var len = this.shapeModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapeModifiers[i].addShape(data);\n }\n },\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\n var i = 0;\n var len = this.shapeModifiers.length;\n\n while (i < len) {\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\n return true;\n }\n }\n\n return false;\n },\n renderModifiers: function renderModifiers() {\n if (!this.shapeModifiers.length) {\n return;\n }\n\n var i;\n var len = this.shapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.shapes[i].sh.reset();\n }\n\n len = this.shapeModifiers.length;\n var shouldBreakProcess;\n\n for (i = len - 1; i >= 0; i -= 1) {\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\n // TODO: find a better solution for this\n\n if (shouldBreakProcess) {\n break;\n }\n }\n },\n searchProcessedElement: function searchProcessedElement(elem) {\n var elements = this.processedElements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i].elem === elem) {\n return elements[i].pos;\n }\n\n i += 1;\n }\n\n return 0;\n },\n addProcessedElement: function addProcessedElement(elem, pos) {\n var elements = this.processedElements;\n var i = elements.length;\n\n while (i) {\n i -= 1;\n\n if (elements[i].elem === elem) {\n elements[i].pos = pos;\n return;\n }\n }\n\n elements.push(new ProcessedElement(elem, pos));\n },\n prepareFrame: function prepareFrame(num) {\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n }\n };\n\n var lineCapEnum = {\n 1: 'butt',\n 2: 'round',\n 3: 'square'\n };\n var lineJoinEnum = {\n 1: 'miter',\n 2: 'round',\n 3: 'bevel'\n };\n\n function SVGShapeData(transformers, level, shape) {\n this.caches = [];\n this.styles = [];\n this.transformers = transformers;\n this.lStr = '';\n this.sh = shape;\n this.lvl = level; // TODO find if there are some cases where _isAnimated can be false.\n // For now, since shapes add up with other shapes. They have to be calculated every time.\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\n\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\n\n var i = 0;\n var len = transformers.length;\n\n while (i < len) {\n if (transformers[i].mProps.dynamicProperties.length) {\n this._isAnimated = true;\n break;\n }\n\n i += 1;\n }\n }\n\n SVGShapeData.prototype.setAsAnimated = function () {\n this._isAnimated = true;\n };\n\n function SVGStyleData(data, level) {\n this.data = data;\n this.type = data.ty;\n this.d = '';\n this.lvl = level;\n this._mdf = false;\n this.closed = data.hd === true;\n this.pElem = createNS('path');\n this.msElem = null;\n }\n\n SVGStyleData.prototype.reset = function () {\n this.d = '';\n this._mdf = false;\n };\n\n function DashProperty(elem, data, renderer, container) {\n this.elem = elem;\n this.frameId = -1;\n this.dataProps = createSizedArray(data.length);\n this.renderer = renderer;\n this.k = false;\n this.dashStr = '';\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\n this.dashoffset = createTypedArray('float32', 1);\n this.initDynamicPropertyContainer(container);\n var i;\n var len = data.length || 0;\n var prop;\n\n for (i = 0; i < len; i += 1) {\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\n this.k = prop.k || this.k;\n this.dataProps[i] = {\n n: data[i].n,\n p: prop\n };\n }\n\n if (!this.k) {\n this.getValue(true);\n }\n\n this._isAnimated = this.k;\n }\n\n DashProperty.prototype.getValue = function (forceRender) {\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\n return;\n }\n\n this.frameId = this.elem.globalData.frameId;\n this.iterateDynamicProperties();\n this._mdf = this._mdf || forceRender;\n\n if (this._mdf) {\n var i = 0;\n var len = this.dataProps.length;\n\n if (this.renderer === 'svg') {\n this.dashStr = '';\n }\n\n for (i = 0; i < len; i += 1) {\n if (this.dataProps[i].n !== 'o') {\n if (this.renderer === 'svg') {\n this.dashStr += ' ' + this.dataProps[i].p.v;\n } else {\n this.dashArray[i] = this.dataProps[i].p.v;\n }\n } else {\n this.dashoffset[0] = this.dataProps[i].p.v;\n }\n }\n }\n };\n\n extendPrototype([DynamicPropertyContainer], DashProperty);\n\n function SVGStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\n\n function SVGFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\n\n function SVGNoStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.style = styleOb;\n }\n\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\n\n function GradientProperty(elem, data, container) {\n this.data = data;\n this.c = createTypedArray('uint8c', data.p * 4);\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\n this.o = createTypedArray('float32', cLength);\n this._cmdf = false;\n this._omdf = false;\n this._collapsable = this.checkCollapsable();\n this._hasOpacity = cLength;\n this.initDynamicPropertyContainer(container);\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\n this.k = this.prop.k;\n this.getValue(true);\n }\n\n GradientProperty.prototype.comparePoints = function (values, points) {\n var i = 0;\n var len = this.o.length / 2;\n var diff;\n\n while (i < len) {\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\n\n if (diff > 0.01) {\n return false;\n }\n\n i += 1;\n }\n\n return true;\n };\n\n GradientProperty.prototype.checkCollapsable = function () {\n if (this.o.length / 2 !== this.c.length / 4) {\n return false;\n }\n\n if (this.data.k.k[0].s) {\n var i = 0;\n var len = this.data.k.k.length;\n\n while (i < len) {\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\n return false;\n }\n\n i += 1;\n }\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\n return false;\n }\n\n return true;\n };\n\n GradientProperty.prototype.getValue = function (forceRender) {\n this.prop.getValue();\n this._mdf = false;\n this._cmdf = false;\n this._omdf = false;\n\n if (this.prop._mdf || forceRender) {\n var i;\n var len = this.data.p * 4;\n var mult;\n var val;\n\n for (i = 0; i < len; i += 1) {\n mult = i % 4 === 0 ? 100 : 255;\n val = Math.round(this.prop.v[i] * mult);\n\n if (this.c[i] !== val) {\n this.c[i] = val;\n this._cmdf = !forceRender;\n }\n }\n\n if (this.o.length) {\n len = this.prop.v.length;\n\n for (i = this.data.p * 4; i < len; i += 1) {\n mult = i % 2 === 0 ? 100 : 1;\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\n\n if (this.o[i - this.data.p * 4] !== val) {\n this.o[i - this.data.p * 4] = val;\n this._omdf = !forceRender;\n }\n }\n }\n\n this._mdf = !forceRender;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], GradientProperty);\n\n function SVGGradientFillStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.initGradientData(elem, data, styleOb);\n }\n\n SVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\n this.h = PropertyFactory.getProp(elem, data.h || {\n k: 0\n }, 0, 0.01, this);\n this.a = PropertyFactory.getProp(elem, data.a || {\n k: 0\n }, 0, degToRads, this);\n this.g = new GradientProperty(elem, data.g, this);\n this.style = styleOb;\n this.stops = [];\n this.setGradientData(styleOb.pElem, data);\n this.setGradientOpacity(data, styleOb);\n this._isAnimated = !!this._isAnimated;\n };\n\n SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\n var gradientId = createElementID();\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n gfill.setAttribute('id', gradientId);\n gfill.setAttribute('spreadMethod', 'pad');\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\n var stops = [];\n var stop;\n var j;\n var jLen;\n jLen = data.g.p * 4;\n\n for (j = 0; j < jLen; j += 4) {\n stop = createNS('stop');\n gfill.appendChild(stop);\n stops.push(stop);\n }\n\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\n this.gf = gfill;\n this.cst = stops;\n };\n\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\n if (this.g._hasOpacity && !this.g._collapsable) {\n var stop;\n var j;\n var jLen;\n var mask = createNS('mask');\n var maskElement = createNS('path');\n mask.appendChild(maskElement);\n var opacityId = createElementID();\n var maskId = createElementID();\n mask.setAttribute('id', maskId);\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\n opFill.setAttribute('id', opacityId);\n opFill.setAttribute('spreadMethod', 'pad');\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\n var stops = this.stops;\n\n for (j = data.g.p * 4; j < jLen; j += 2) {\n stop = createNS('stop');\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\n opFill.appendChild(stop);\n stops.push(stop);\n }\n\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\n\n if (data.ty === 'gs') {\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n\n if (data.lj === 1) {\n maskElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n this.of = opFill;\n this.ms = mask;\n this.ost = stops;\n this.maskId = maskId;\n styleOb.msElem = maskElement;\n }\n };\n\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\n\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\n this.initDynamicPropertyContainer(elem);\n this.getValue = this.iterateDynamicProperties;\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\n this.initGradientData(elem, data, styleOb);\n this._isAnimated = !!this._isAnimated;\n }\n\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\n\n function ShapeGroupData() {\n this.it = [];\n this.prevViewData = [];\n this.gr = createNS('g');\n }\n\n function SVGTransformData(mProps, op, container) {\n this.transform = {\n mProps: mProps,\n op: op,\n container: container\n };\n this.elements = [];\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\n }\n\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\n if (length === 0) {\n return '';\n }\n\n var _o = pathNodes.o;\n var _i = pathNodes.i;\n var _v = pathNodes.v;\n var i;\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n\n for (i = 1; i < length; i += 1) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\n }\n\n if (closed && length) {\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\n shapeString += 'z';\n }\n\n return shapeString;\n };\n\n var SVGElementsRenderer = function () {\n var _identityMatrix = new Matrix();\n\n var _matrixHelper = new Matrix();\n\n var ob = {\n createRenderFunction: createRenderFunction\n };\n\n function createRenderFunction(data) {\n switch (data.ty) {\n case 'fl':\n return renderFill;\n\n case 'gf':\n return renderGradient;\n\n case 'gs':\n return renderGradientStroke;\n\n case 'st':\n return renderStroke;\n\n case 'sh':\n case 'el':\n case 'rc':\n case 'sr':\n return renderPath;\n\n case 'tr':\n return renderContentTransform;\n\n case 'no':\n return renderNoop;\n\n default:\n return null;\n }\n }\n\n function renderContentTransform(styleData, itemData, isFirstFrame) {\n if (isFirstFrame || itemData.transform.op._mdf) {\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\n }\n\n if (isFirstFrame || itemData.transform.mProps._mdf) {\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\n }\n }\n\n function renderNoop() {}\n\n function renderPath(styleData, itemData, isFirstFrame) {\n var j;\n var jLen;\n var pathStringTransformed;\n var redraw;\n var pathNodes;\n var l;\n var lLen = itemData.styles.length;\n var lvl = itemData.lvl;\n var paths;\n var mat;\n var iterations;\n var k;\n\n for (l = 0; l < lLen; l += 1) {\n redraw = itemData.sh._mdf || isFirstFrame;\n\n if (itemData.styles[l].lvl < lvl) {\n mat = _matrixHelper.reset();\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (!redraw && iterations > 0) {\n redraw = itemData.transformers[k].mProps._mdf || redraw;\n iterations -= 1;\n k -= 1;\n }\n\n if (redraw) {\n iterations = lvl - itemData.styles[l].lvl;\n k = itemData.transformers.length - 1;\n\n while (iterations > 0) {\n mat.multiply(itemData.transformers[k].mProps.v);\n iterations -= 1;\n k -= 1;\n }\n }\n } else {\n mat = _identityMatrix;\n }\n\n paths = itemData.sh.paths;\n jLen = paths._length;\n\n if (redraw) {\n pathStringTransformed = '';\n\n for (j = 0; j < jLen; j += 1) {\n pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes._length) {\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\n }\n }\n\n itemData.caches[l] = pathStringTransformed;\n } else {\n pathStringTransformed = itemData.caches[l];\n }\n\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\n }\n }\n\n function renderFill(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\n }\n }\n\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\n renderGradient(styleData, itemData, isFirstFrame);\n renderStroke(styleData, itemData, isFirstFrame);\n }\n\n function renderGradient(styleData, itemData, isFirstFrame) {\n var gfill = itemData.gf;\n var hasOpacity = itemData.g._hasOpacity;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (itemData.o._mdf || isFirstFrame) {\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\n }\n\n if (itemData.s._mdf || isFirstFrame) {\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\n gfill.setAttribute(attr1, pt1[0]);\n gfill.setAttribute(attr2, pt1[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute(attr1, pt1[0]);\n itemData.of.setAttribute(attr2, pt1[1]);\n }\n }\n\n var stops;\n var i;\n var len;\n var stop;\n\n if (itemData.g._cmdf || isFirstFrame) {\n stops = itemData.cst;\n var cValues = itemData.g.c;\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n stop.setAttribute('offset', cValues[i * 4] + '%');\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\n }\n }\n\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\n var oValues = itemData.g.o;\n\n if (itemData.g._collapsable) {\n stops = itemData.cst;\n } else {\n stops = itemData.ost;\n }\n\n len = stops.length;\n\n for (i = 0; i < len; i += 1) {\n stop = stops[i];\n\n if (!itemData.g._collapsable) {\n stop.setAttribute('offset', oValues[i * 2] + '%');\n }\n\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\n }\n }\n\n if (styleData.t === 1) {\n if (itemData.e._mdf || isFirstFrame) {\n gfill.setAttribute('x2', pt2[0]);\n gfill.setAttribute('y2', pt2[1]);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('x2', pt2[0]);\n itemData.of.setAttribute('y2', pt2[1]);\n }\n }\n } else {\n var rad;\n\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n gfill.setAttribute('r', rad);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('r', rad);\n }\n }\n\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\n if (!rad) {\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n }\n\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n gfill.setAttribute('fx', x);\n gfill.setAttribute('fy', y);\n\n if (hasOpacity && !itemData.g._collapsable) {\n itemData.of.setAttribute('fx', x);\n itemData.of.setAttribute('fy', y);\n }\n } // gfill.setAttribute('fy','200');\n\n }\n }\n\n function renderStroke(styleData, itemData, isFirstFrame) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\n }\n\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\n }\n\n if (itemData.o._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\n }\n\n if (itemData.w._mdf || isFirstFrame) {\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\n\n if (styleElem.msElem) {\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\n }\n }\n }\n\n return ob;\n }();\n\n function SVGShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\n\n SVGShapeElement.prototype.initSecondaryElement = function () {};\n\n SVGShapeElement.prototype.identityMatrix = new Matrix();\n\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\n\n SVGShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n };\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\n\n\n SVGShapeElement.prototype.filterUniqueShapes = function () {\n var i;\n var len = this.shapes.length;\n var shape;\n var j;\n var jLen = this.stylesList.length;\n var style;\n var tempShapes = [];\n var areAnimated = false;\n\n for (j = 0; j < jLen; j += 1) {\n style = this.stylesList[j];\n areAnimated = false;\n tempShapes.length = 0;\n\n for (i = 0; i < len; i += 1) {\n shape = this.shapes[i];\n\n if (shape.styles.indexOf(style) !== -1) {\n tempShapes.push(shape);\n areAnimated = shape._isAnimated || areAnimated;\n }\n }\n\n if (tempShapes.length > 1 && areAnimated) {\n this.setShapesAsAnimated(tempShapes);\n }\n }\n };\n\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\n var i;\n var len = shapes.length;\n\n for (i = 0; i < len; i += 1) {\n shapes[i].setAsAnimated();\n }\n };\n\n SVGShapeElement.prototype.createStyleElement = function (data, level) {\n // TODO: prevent drawing of hidden styles\n var elementData;\n var styleOb = new SVGStyleData(data, level);\n var pathElement = styleOb.pElem;\n\n if (data.ty === 'st') {\n elementData = new SVGStrokeStyleData(this, data, styleOb);\n } else if (data.ty === 'fl') {\n elementData = new SVGFillStyleData(this, data, styleOb);\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\n elementData = new GradientConstructor(this, data, styleOb);\n this.globalData.defs.appendChild(elementData.gf);\n\n if (elementData.maskId) {\n this.globalData.defs.appendChild(elementData.ms);\n this.globalData.defs.appendChild(elementData.of);\n pathElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + elementData.maskId + ')');\n }\n } else if (data.ty === 'no') {\n elementData = new SVGNoStyleData(this, data, styleOb);\n }\n\n if (data.ty === 'st' || data.ty === 'gs') {\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\n pathElement.setAttribute('fill-opacity', '0');\n\n if (data.lj === 1) {\n pathElement.setAttribute('stroke-miterlimit', data.ml);\n }\n }\n\n if (data.r === 2) {\n pathElement.setAttribute('fill-rule', 'evenodd');\n }\n\n if (data.ln) {\n pathElement.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n pathElement.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n this.stylesList.push(styleOb);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createGroupElement = function (data) {\n var elementData = new ShapeGroupData();\n\n if (data.ln) {\n elementData.gr.setAttribute('id', data.ln);\n }\n\n if (data.cl) {\n elementData.gr.setAttribute('class', data.cl);\n }\n\n if (data.bm) {\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\n }\n\n return elementData;\n };\n\n SVGShapeElement.prototype.createTransformElement = function (data, container) {\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n this.addToAnimatedContents(data, elementData);\n return elementData;\n };\n\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\n var i = 0;\n var len = this.animatedContents.length;\n\n while (i < len) {\n if (this.animatedContents[i].element === element) {\n return;\n }\n\n i += 1;\n }\n\n this.animatedContents.push({\n fn: SVGElementsRenderer.createRenderFunction(data),\n element: element,\n data: data\n });\n };\n\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\n var arr = elementData.styles;\n var j;\n var jLen = this.stylesList.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (!this.stylesList[j].closed) {\n arr.push(this.stylesList[j]);\n }\n }\n };\n\n SVGShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\n this.filterUniqueShapes();\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n };\n\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\n var ownTransformers = [].concat(transformers);\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var currentTransform;\n var modifier;\n var processedPos;\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._render = render;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], level);\n } else {\n itemsData[i].style.closed = false;\n }\n\n if (arr[i]._render) {\n if (itemsData[i].style.pElem.parentNode !== container) {\n container.appendChild(itemsData[i].style.pElem);\n }\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\n\n if (arr[i]._render) {\n if (itemsData[i].gr.parentNode !== container) {\n container.appendChild(itemsData[i].gr);\n }\n }\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n itemsData[i] = this.createTransformElement(arr[i], container);\n }\n\n currentTransform = itemsData[i].transform;\n ownTransformers.push(currentTransform);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\n }\n\n this.setElementStyles(itemsData[i]);\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n render = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n len = ownStyles.length;\n\n for (i = 0; i < len; i += 1) {\n ownStyles[i].closed = true;\n }\n\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n SVGShapeElement.prototype.renderInnerContent = function () {\n this.renderModifiers();\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n this.stylesList[i].reset();\n }\n\n this.renderShape();\n\n for (i = 0; i < len; i += 1) {\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\n if (this.stylesList[i].msElem) {\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\n\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\n }\n\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\n }\n }\n };\n\n SVGShapeElement.prototype.renderShape = function () {\n var i;\n var len = this.animatedContents.length;\n var animatedContent;\n\n for (i = 0; i < len; i += 1) {\n animatedContent = this.animatedContents[i];\n\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\n }\n }\n };\n\n SVGShapeElement.prototype.destroy = function () {\n this.destroyBaseElement();\n this.shapesData = null;\n this.itemsData = null;\n };\n\n function LetterProps(o, sw, sc, fc, m, p) {\n this.o = o;\n this.sw = sw;\n this.sc = sc;\n this.fc = fc;\n this.m = m;\n this.p = p;\n this._mdf = {\n o: true,\n sw: !!sw,\n sc: !!sc,\n fc: !!fc,\n m: true,\n p: true\n };\n }\n\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\n this._mdf.o = false;\n this._mdf.sw = false;\n this._mdf.sc = false;\n this._mdf.fc = false;\n this._mdf.m = false;\n this._mdf.p = false;\n var updated = false;\n\n if (this.o !== o) {\n this.o = o;\n this._mdf.o = true;\n updated = true;\n }\n\n if (this.sw !== sw) {\n this.sw = sw;\n this._mdf.sw = true;\n updated = true;\n }\n\n if (this.sc !== sc) {\n this.sc = sc;\n this._mdf.sc = true;\n updated = true;\n }\n\n if (this.fc !== fc) {\n this.fc = fc;\n this._mdf.fc = true;\n updated = true;\n }\n\n if (this.m !== m) {\n this.m = m;\n this._mdf.m = true;\n updated = true;\n }\n\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\n this.p = p;\n this._mdf.p = true;\n updated = true;\n }\n\n return updated;\n };\n\n function TextProperty(elem, data) {\n this._frameId = initialDefaultFrame;\n this.pv = '';\n this.v = '';\n this.kf = false;\n this._isFirstFrame = true;\n this._mdf = false;\n\n if (data.d && data.d.sid) {\n data.d = elem.globalData.slotManager.getProp(data.d);\n }\n\n this.data = data;\n this.elem = elem;\n this.comp = this.elem.comp;\n this.keysIndex = 0;\n this.canResize = false;\n this.minimumFontSize = 1;\n this.effectsSequence = [];\n this.currentData = {\n ascent: 0,\n boxWidth: this.defaultBoxWidth,\n f: '',\n fStyle: '',\n fWeight: '',\n fc: '',\n j: '',\n justifyOffset: '',\n l: [],\n lh: 0,\n lineWidths: [],\n ls: '',\n of: '',\n s: '',\n sc: '',\n sw: 0,\n t: 0,\n tr: 0,\n sz: 0,\n ps: null,\n fillColorAnim: false,\n strokeColorAnim: false,\n strokeWidthAnim: false,\n yOffset: 0,\n finalSize: 0,\n finalText: [],\n finalLineHeight: 0,\n __complete: false\n };\n this.copyData(this.currentData, this.data.d.k[0].s);\n\n if (!this.searchProperty()) {\n this.completeTextData(this.currentData);\n }\n }\n\n TextProperty.prototype.defaultBoxWidth = [0, 0];\n\n TextProperty.prototype.copyData = function (obj, data) {\n for (var s in data) {\n if (Object.prototype.hasOwnProperty.call(data, s)) {\n obj[s] = data[s];\n }\n }\n\n return obj;\n };\n\n TextProperty.prototype.setCurrentData = function (data) {\n if (!data.__complete) {\n this.completeTextData(data);\n }\n\n this.currentData = data;\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\n this._mdf = true;\n };\n\n TextProperty.prototype.searchProperty = function () {\n return this.searchKeyframes();\n };\n\n TextProperty.prototype.searchKeyframes = function () {\n this.kf = this.data.d.k.length > 1;\n\n if (this.kf) {\n this.addEffect(this.getKeyframeValue.bind(this));\n }\n\n return this.kf;\n };\n\n TextProperty.prototype.addEffect = function (effectFunction) {\n this.effectsSequence.push(effectFunction);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.getValue = function (_finalValue) {\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\n return;\n }\n\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\n var currentValue = this.currentData;\n var currentIndex = this.keysIndex;\n\n if (this.lock) {\n this.setCurrentData(this.currentData);\n return;\n }\n\n this.lock = true;\n this._mdf = false;\n var i;\n var len = this.effectsSequence.length;\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\n\n for (i = 0; i < len; i += 1) {\n // Checking if index changed to prevent creating a new object every time the expression updates.\n if (currentIndex !== this.keysIndex) {\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\n } else {\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\n }\n }\n\n if (currentValue !== finalValue) {\n this.setCurrentData(finalValue);\n }\n\n this.v = this.currentData;\n this.pv = this.v;\n this.lock = false;\n this.frameId = this.elem.globalData.frameId;\n };\n\n TextProperty.prototype.getKeyframeValue = function () {\n var textKeys = this.data.d.k;\n var frameNum = this.elem.comp.renderedFrame;\n var i = 0;\n var len = textKeys.length;\n\n while (i <= len - 1) {\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\n break;\n }\n\n i += 1;\n }\n\n if (this.keysIndex !== i) {\n this.keysIndex = i;\n }\n\n return this.data.d.k[this.keysIndex].s;\n };\n\n TextProperty.prototype.buildFinalText = function (text) {\n var charactersArray = [];\n var i = 0;\n var len = text.length;\n var charCode;\n var secondCharCode;\n var shouldCombine = false;\n var shouldCombineNext = false;\n var currentChars = '';\n\n while (i < len) {\n shouldCombine = shouldCombineNext;\n shouldCombineNext = false;\n charCode = text.charCodeAt(i);\n currentChars = text.charAt(i);\n\n if (FontManager.isCombinedCharacter(charCode)) {\n shouldCombine = true; // It's a potential surrogate pair (this is the High surrogate)\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\n if (FontManager.isRegionalFlag(text, i)) {\n currentChars = text.substr(i, 14);\n } else {\n secondCharCode = text.charCodeAt(i + 1); // It's a surrogate pair (this is the Low surrogate)\n\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\n if (FontManager.isModifier(charCode, secondCharCode)) {\n currentChars = text.substr(i, 2);\n shouldCombine = true;\n } else if (FontManager.isFlagEmoji(text.substr(i, 4))) {\n currentChars = text.substr(i, 4);\n } else {\n currentChars = text.substr(i, 2);\n }\n }\n }\n } else if (charCode > 0xDBFF) {\n secondCharCode = text.charCodeAt(i + 1);\n\n if (FontManager.isVariationSelector(charCode)) {\n shouldCombine = true;\n }\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\n shouldCombine = true;\n shouldCombineNext = true;\n }\n\n if (shouldCombine) {\n charactersArray[charactersArray.length - 1] += currentChars;\n shouldCombine = false;\n } else {\n charactersArray.push(currentChars);\n }\n\n i += currentChars.length;\n }\n\n return charactersArray;\n };\n\n TextProperty.prototype.completeTextData = function (documentData) {\n documentData.__complete = true;\n var fontManager = this.elem.globalData.fontManager;\n var data = this.data;\n var letters = [];\n var i;\n var len;\n var newLineFlag;\n var index = 0;\n var val;\n var anchorGrouping = data.m.g;\n var currentSize = 0;\n var currentPos = 0;\n var currentLine = 0;\n var lineWidths = [];\n var lineWidth = 0;\n var maxLineWidth = 0;\n var j;\n var jLen;\n var fontData = fontManager.getFontByName(documentData.f);\n var charData;\n var cLength = 0;\n var fontProps = getFontProperties(fontData);\n documentData.fWeight = fontProps.weight;\n documentData.fStyle = fontProps.style;\n documentData.finalSize = documentData.s;\n documentData.finalText = this.buildFinalText(documentData.t);\n len = documentData.finalText.length;\n documentData.finalLineHeight = documentData.lh;\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var charCode;\n\n if (documentData.sz) {\n var flag = true;\n var boxWidth = documentData.sz[0];\n var boxHeight = documentData.sz[1];\n var currentHeight;\n var finalText;\n\n while (flag) {\n finalText = this.buildFinalText(documentData.t);\n currentHeight = 0;\n lineWidth = 0;\n len = finalText.length;\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\n var lastSpaceIndex = -1;\n\n for (i = 0; i < len; i += 1) {\n charCode = finalText[i].charCodeAt(0);\n newLineFlag = false;\n\n if (finalText[i] === ' ') {\n lastSpaceIndex = i;\n } else if (charCode === 13 || charCode === 3) {\n lineWidth = 0;\n newLineFlag = true;\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\n }\n\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\n if (lastSpaceIndex === -1) {\n len += 1;\n } else {\n i = lastSpaceIndex;\n }\n\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\n\n lastSpaceIndex = -1;\n lineWidth = 0;\n } else {\n lineWidth += cLength;\n lineWidth += trackingOffset;\n }\n }\n\n currentHeight += fontData.ascent * documentData.finalSize / 100;\n\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\n documentData.finalSize -= 1;\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\n } else {\n documentData.finalText = finalText;\n len = documentData.finalText.length;\n flag = false;\n }\n }\n }\n\n lineWidth = -trackingOffset;\n cLength = 0;\n var uncollapsedSpaces = 0;\n var currentChar;\n\n for (i = 0; i < len; i += 1) {\n newLineFlag = false;\n currentChar = documentData.finalText[i];\n charCode = currentChar.charCodeAt(0);\n\n if (charCode === 13 || charCode === 3) {\n uncollapsedSpaces = 0;\n lineWidths.push(lineWidth);\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidth = -2 * trackingOffset;\n val = '';\n newLineFlag = true;\n currentLine += 1;\n } else {\n val = currentChar;\n }\n\n if (fontManager.chars) {\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\n } else {\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\n } //\n\n\n if (currentChar === ' ') {\n uncollapsedSpaces += cLength + trackingOffset;\n } else {\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\n uncollapsedSpaces = 0;\n }\n\n letters.push({\n l: cLength,\n an: cLength,\n add: currentSize,\n n: newLineFlag,\n anIndexes: [],\n val: val,\n line: currentLine,\n animatorJustifyOffset: 0\n });\n\n if (anchorGrouping == 2) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || val === ' ' || i === len - 1) {\n if (val === '' || val === ' ') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n index += 1;\n currentSize = 0;\n }\n } else if (anchorGrouping == 3) {\n // eslint-disable-line eqeqeq\n currentSize += cLength;\n\n if (val === '' || i === len - 1) {\n if (val === '') {\n currentSize -= cLength;\n }\n\n while (currentPos <= i) {\n letters[currentPos].an = currentSize;\n letters[currentPos].ind = index;\n letters[currentPos].extra = cLength;\n currentPos += 1;\n }\n\n currentSize = 0;\n index += 1;\n }\n } else {\n letters[index].ind = index;\n letters[index].extra = 0;\n index += 1;\n }\n }\n\n documentData.l = letters;\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\n lineWidths.push(lineWidth);\n\n if (documentData.sz) {\n documentData.boxWidth = documentData.sz[0];\n documentData.justifyOffset = 0;\n } else {\n documentData.boxWidth = maxLineWidth;\n\n switch (documentData.j) {\n case 1:\n documentData.justifyOffset = -documentData.boxWidth;\n break;\n\n case 2:\n documentData.justifyOffset = -documentData.boxWidth / 2;\n break;\n\n default:\n documentData.justifyOffset = 0;\n }\n }\n\n documentData.lineWidths = lineWidths;\n var animators = data.a;\n var animatorData;\n var letterData;\n jLen = animators.length;\n var based;\n var ind;\n var indexes = [];\n\n for (j = 0; j < jLen; j += 1) {\n animatorData = animators[j];\n\n if (animatorData.a.sc) {\n documentData.strokeColorAnim = true;\n }\n\n if (animatorData.a.sw) {\n documentData.strokeWidthAnim = true;\n }\n\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\n documentData.fillColorAnim = true;\n }\n\n ind = 0;\n based = animatorData.s.b;\n\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n letterData.anIndexes[j] = ind;\n\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\n // eslint-disable-line eqeqeq\n if (animatorData.s.rn === 1) {\n indexes.push(ind);\n }\n\n ind += 1;\n }\n }\n\n data.a[j].s.totalChars = ind;\n var currentInd = -1;\n var newInd;\n\n if (animatorData.s.rn === 1) {\n for (i = 0; i < len; i += 1) {\n letterData = letters[i];\n\n if (currentInd != letterData.anIndexes[j]) {\n // eslint-disable-line eqeqeq\n currentInd = letterData.anIndexes[j];\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\n }\n\n letterData.anIndexes[j] = newInd;\n }\n }\n }\n\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\n documentData.ls = documentData.ls || 0;\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\n };\n\n TextProperty.prototype.updateDocumentData = function (newData, index) {\n index = index === undefined ? this.keysIndex : index;\n var dData = this.copyData({}, this.data.d.k[index].s);\n dData = this.copyData(dData, newData);\n this.data.d.k[index].s = dData;\n this.recalculate(index);\n this.setCurrentData(dData);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.recalculate = function (index) {\n var dData = this.data.d.k[index].s;\n dData.__complete = false;\n this.keysIndex = 0;\n this._isFirstFrame = true;\n this.getValue(dData);\n };\n\n TextProperty.prototype.canResizeFont = function (_canResize) {\n this.canResize = _canResize;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\n this.minimumFontSize = Math.floor(_fontValue) || 1;\n this.recalculate(this.keysIndex);\n this.elem.addDynamicProperty(this);\n };\n\n var TextSelectorProp = function () {\n var max = Math.max;\n var min = Math.min;\n var floor = Math.floor;\n\n function TextSelectorPropFactory(elem, data) {\n this._currentTextLength = -1;\n this.k = false;\n this.data = data;\n this.elem = elem;\n this.comp = elem.comp;\n this.finalS = 0;\n this.finalE = 0;\n this.initDynamicPropertyContainer(elem);\n this.s = PropertyFactory.getProp(elem, data.s || {\n k: 0\n }, 0, 0, this);\n\n if ('e' in data) {\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\n } else {\n this.e = {\n v: 100\n };\n }\n\n this.o = PropertyFactory.getProp(elem, data.o || {\n k: 0\n }, 0, 0, this);\n this.xe = PropertyFactory.getProp(elem, data.xe || {\n k: 0\n }, 0, 0, this);\n this.ne = PropertyFactory.getProp(elem, data.ne || {\n k: 0\n }, 0, 0, this);\n this.sm = PropertyFactory.getProp(elem, data.sm || {\n k: 100\n }, 0, 0, this);\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\n\n if (!this.dynamicProperties.length) {\n this.getValue();\n }\n }\n\n TextSelectorPropFactory.prototype = {\n getMult: function getMult(ind) {\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\n this.getValue();\n }\n\n var x1 = 0;\n var y1 = 0;\n var x2 = 1;\n var y2 = 1;\n\n if (this.ne.v > 0) {\n x1 = this.ne.v / 100.0;\n } else {\n y1 = -this.ne.v / 100.0;\n }\n\n if (this.xe.v > 0) {\n x2 = 1.0 - this.xe.v / 100.0;\n } else {\n y2 = 1.0 + this.xe.v / 100.0;\n }\n\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\n var mult = 0;\n var s = this.finalS;\n var e = this.finalE;\n var type = this.data.sh;\n\n if (type === 2) {\n if (e === s) {\n mult = ind >= e ? 1 : 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 3) {\n if (e === s) {\n mult = ind >= e ? 0 : 1;\n } else {\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n }\n\n mult = easer(mult);\n } else if (type === 4) {\n if (e === s) {\n mult = 0;\n } else {\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\n\n if (mult < 0.5) {\n mult *= 2;\n } else {\n mult = 1 - 2 * (mult - 0.5);\n }\n }\n\n mult = easer(mult);\n } else if (type === 5) {\n if (e === s) {\n mult = 0;\n } else {\n var tot = e - s;\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\n\n ind = min(max(0, ind + 0.5 - s), e - s);\n var x = -tot / 2 + ind;\n var a = tot / 2;\n mult = Math.sqrt(1 - x * x / (a * a));\n }\n\n mult = easer(mult);\n } else if (type === 6) {\n if (e === s) {\n mult = 0;\n } else {\n ind = min(max(0, ind + 0.5 - s), e - s);\n mult = (1 + Math.cos(Math.PI + Math.PI * 2 * ind / (e - s))) / 2; // eslint-disable-line\n }\n\n mult = easer(mult);\n } else {\n if (ind >= floor(s)) {\n if (ind - s < 0) {\n mult = max(0, min(min(e, 1) - (s - ind), 1));\n } else {\n mult = max(0, min(e - ind, 1));\n }\n }\n\n mult = easer(mult);\n } // Smoothness implementation.\n // The smoothness represents a reduced range of the original [0; 1] range.\n // if smoothness is 25%, the new range will be [0.375; 0.625]\n // Steps are:\n // - find the lower value of the new range (threshold)\n // - if multiplier is smaller than that value, floor it to 0\n // - if it is larger,\n // - subtract the threshold\n // - divide it by the smoothness (this will return the range to [0; 1])\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\n\n\n if (this.sm.v !== 100) {\n var smoothness = this.sm.v * 0.01;\n\n if (smoothness === 0) {\n smoothness = 0.00000001;\n }\n\n var threshold = 0.5 - smoothness * 0.5;\n\n if (mult < threshold) {\n mult = 0;\n } else {\n mult = (mult - threshold) / smoothness;\n\n if (mult > 1) {\n mult = 1;\n }\n }\n }\n\n return mult * this.a.v;\n },\n getValue: function getValue(newCharsFlag) {\n this.iterateDynamicProperties();\n this._mdf = newCharsFlag || this._mdf;\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\n\n if (newCharsFlag && this.data.r === 2) {\n this.e.v = this._currentTextLength;\n }\n\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\n var o = this.o.v / divisor;\n var s = this.s.v / divisor + o;\n var e = this.e.v / divisor + o;\n\n if (s > e) {\n var _s = s;\n s = e;\n e = _s;\n }\n\n this.finalS = s;\n this.finalE = e;\n }\n };\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\n\n function getTextSelectorProp(elem, data, arr) {\n return new TextSelectorPropFactory(elem, data, arr);\n }\n\n return {\n getTextSelectorProp: getTextSelectorProp\n };\n }();\n\n function TextAnimatorDataProperty(elem, animatorProps, container) {\n var defaultData = {\n propType: false\n };\n var getProp = PropertyFactory.getProp;\n var textAnimatorAnimatables = animatorProps.a;\n this.a = {\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\n };\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\n this.s.t = animatorProps.s.t;\n }\n\n function TextAnimatorProperty(textData, renderType, elem) {\n this._isFirstFrame = true;\n this._hasMaskedPath = false;\n this._frameId = -1;\n this._textData = textData;\n this._renderType = renderType;\n this._elem = elem;\n this._animatorsData = createSizedArray(this._textData.a.length);\n this._pathData = {};\n this._moreOptions = {\n alignment: {}\n };\n this.renderedLetters = [];\n this.lettersChangedFlag = false;\n this.initDynamicPropertyContainer(elem);\n }\n\n TextAnimatorProperty.prototype.searchProperties = function () {\n var i;\n var len = this._textData.a.length;\n var animatorProps;\n var getProp = PropertyFactory.getProp;\n\n for (i = 0; i < len; i += 1) {\n animatorProps = this._textData.a[i];\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\n }\n\n if (this._textData.p && 'm' in this._textData.p) {\n this._pathData = {\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\n };\n this._hasMaskedPath = true;\n } else {\n this._hasMaskedPath = false;\n }\n\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\n };\n\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\n this.lettersChangedFlag = lettersChangedFlag;\n\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\n return;\n }\n\n this._isFirstFrame = false;\n var alignment = this._moreOptions.alignment.v;\n var animators = this._animatorsData;\n var textData = this._textData;\n var matrixHelper = this.mHelper;\n var renderType = this._renderType;\n var renderedLettersCount = this.renderedLetters.length;\n var xPos;\n var yPos;\n var i;\n var len;\n var letters = documentData.l;\n var pathInfo;\n var currentLength;\n var currentPoint;\n var segmentLength;\n var flag;\n var pointInd;\n var segmentInd;\n var prevPoint;\n var points;\n var segments;\n var partialLength;\n var totalLength;\n var perc;\n var tanAngle;\n var mask;\n\n if (this._hasMaskedPath) {\n mask = this._pathData.m;\n\n if (!this._pathData.n || this._pathData._mdf) {\n var paths = mask.v;\n\n if (this._pathData.r.v) {\n paths = paths.reverse();\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\n\n\n pathInfo = {\n tLength: 0,\n segments: []\n };\n len = paths._length - 1;\n var bezierData;\n totalLength = 0;\n\n for (i = 0; i < len; i += 1) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n i = len;\n\n if (mask.v.c) {\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\n pathInfo.tLength += bezierData.segmentLength;\n pathInfo.segments.push(bezierData);\n totalLength += bezierData.segmentLength;\n }\n\n this._pathData.pi = pathInfo;\n }\n\n pathInfo = this._pathData.pi;\n currentLength = this._pathData.f.v;\n segmentInd = 0;\n pointInd = 1;\n segmentLength = 0;\n flag = true;\n segments = pathInfo.segments;\n\n if (currentLength < 0 && mask.v.c) {\n if (pathInfo.tLength < Math.abs(currentLength)) {\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\n }\n\n segmentInd = segments.length - 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n\n while (currentLength < 0) {\n currentLength += points[pointInd].partialLength;\n pointInd -= 1;\n\n if (pointInd < 0) {\n segmentInd -= 1;\n points = segments[segmentInd].points;\n pointInd = points.length - 1;\n }\n }\n }\n\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n\n len = letters.length;\n xPos = 0;\n yPos = 0;\n var yOff = documentData.finalSize * 1.2 * 0.714;\n var firstLine = true;\n var animatorProps;\n var animatorSelector;\n var j;\n var jLen;\n var letterValue;\n jLen = animators.length;\n var mult;\n var ind = -1;\n var offf;\n var xPathPos;\n var yPathPos;\n var initPathPos = currentLength;\n var initSegmentInd = segmentInd;\n var initPointInd = pointInd;\n var currentLine = -1;\n var elemOpacity;\n var sc;\n var sw;\n var fc;\n var k;\n var letterSw;\n var letterSc;\n var letterFc;\n var letterM = '';\n var letterP = this.defaultPropsArray;\n var letterO; //\n\n if (documentData.j === 2 || documentData.j === 1) {\n var animatorJustifyOffset = 0;\n var animatorFirstCharOffset = 0;\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\n var lastIndex = 0;\n var isNewLine = true;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n\n animatorJustifyOffset = 0;\n isNewLine = true;\n } else {\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n if (isNewLine && documentData.j === 2) {\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\n }\n\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\n } else {\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\n }\n }\n }\n\n isNewLine = false;\n }\n }\n\n if (animatorJustifyOffset) {\n animatorJustifyOffset += animatorFirstCharOffset;\n }\n\n while (lastIndex < i) {\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\n lastIndex += 1;\n }\n } //\n\n\n for (i = 0; i < len; i += 1) {\n matrixHelper.reset();\n elemOpacity = 1;\n\n if (letters[i].n) {\n xPos = 0;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n currentLength = initPathPos;\n firstLine = false;\n\n if (this._hasMaskedPath) {\n segmentInd = initSegmentInd;\n pointInd = initPointInd;\n points = segments[segmentInd].points;\n prevPoint = points[pointInd - 1];\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n segmentLength = 0;\n }\n\n letterM = '';\n letterFc = '';\n letterSw = '';\n letterO = '';\n letterP = this.defaultPropsArray;\n } else {\n if (this._hasMaskedPath) {\n if (currentLine !== letters[i].line) {\n switch (documentData.j) {\n case 1:\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\n break;\n\n case 2:\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\n break;\n\n default:\n break;\n }\n\n currentLine = letters[i].line;\n }\n\n if (ind !== letters[i].ind) {\n if (letters[ind]) {\n currentLength += letters[ind].extra;\n }\n\n currentLength += letters[i].an / 2;\n ind = letters[i].ind;\n }\n\n currentLength += alignment[0] * letters[i].an * 0.005;\n var animatorOffset = 0;\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.p.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.p.v[0] * mult;\n }\n }\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n animatorOffset += animatorProps.a.v[0] * mult[0];\n } else {\n animatorOffset += animatorProps.a.v[0] * mult;\n }\n }\n }\n\n flag = true; // Force alignment only works with a single line for now\n\n if (this._pathData.a.v) {\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\n currentLength += this._pathData.f.v;\n }\n\n while (flag) {\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -(alignment[1] * yOff) * 0.01);\n flag = false;\n } else if (points) {\n segmentLength += currentPoint.partialLength;\n pointInd += 1;\n\n if (pointInd >= points.length) {\n pointInd = 0;\n segmentInd += 1;\n\n if (!segments[segmentInd]) {\n if (mask.v.c) {\n pointInd = 0;\n segmentInd = 0;\n points = segments[segmentInd].points;\n } else {\n segmentLength -= currentPoint.partialLength;\n points = null;\n }\n } else {\n points = segments[segmentInd].points;\n }\n }\n\n if (points) {\n prevPoint = currentPoint;\n currentPoint = points[pointInd];\n partialLength = currentPoint.partialLength;\n }\n }\n }\n\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0);\n } else {\n offf = letters[i].an / 2 - letters[i].add;\n matrixHelper.translate(-offf, 0, 0); // Grouping alignment\n\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.t.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\n\n if (xPos !== 0 || documentData.j !== 0) {\n if (this._hasMaskedPath) {\n if (mult.length) {\n currentLength += animatorProps.t.v * mult[0];\n } else {\n currentLength += animatorProps.t.v * mult;\n }\n } else if (mult.length) {\n xPos += animatorProps.t.v * mult[0];\n } else {\n xPos += animatorProps.t.v * mult;\n }\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n sw = documentData.sw || 0;\n }\n\n if (documentData.strokeColorAnim) {\n if (documentData.sc) {\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\n } else {\n sc = [0, 0, 0];\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.a.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\n } else {\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.s.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (mult.length) {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\n } else {\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (animatorProps.sk.propType) {\n if (mult.length) {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\n } else {\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\n }\n }\n\n if (animatorProps.r.propType) {\n if (mult.length) {\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\n } else {\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\n }\n }\n\n if (animatorProps.ry.propType) {\n if (mult.length) {\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\n } else {\n matrixHelper.rotateY(animatorProps.ry.v * mult);\n }\n }\n\n if (animatorProps.rx.propType) {\n if (mult.length) {\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\n } else {\n matrixHelper.rotateX(animatorProps.rx.v * mult);\n }\n }\n\n if (animatorProps.o.propType) {\n if (mult.length) {\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\n } else {\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\n }\n }\n\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\n if (mult.length) {\n sw += animatorProps.sw.v * mult[0];\n } else {\n sw += animatorProps.sw.v * mult;\n }\n }\n\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\n } else {\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\n }\n }\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n if (animatorProps.fc.propType) {\n for (k = 0; k < 3; k += 1) {\n if (mult.length) {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\n } else {\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\n }\n }\n }\n\n if (animatorProps.fh.propType) {\n if (mult.length) {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\n } else {\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\n }\n }\n\n if (animatorProps.fs.propType) {\n if (mult.length) {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\n } else {\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\n }\n }\n\n if (animatorProps.fb.propType) {\n if (mult.length) {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\n } else {\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\n }\n }\n }\n }\n\n for (j = 0; j < jLen; j += 1) {\n animatorProps = animators[j].a;\n\n if (animatorProps.p.propType) {\n animatorSelector = animators[j].s;\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\n\n if (this._hasMaskedPath) {\n if (mult.length) {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\n } else {\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n } else if (mult.length) {\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\n } else {\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\n }\n }\n }\n\n if (documentData.strokeWidthAnim) {\n letterSw = sw < 0 ? 0 : sw;\n }\n\n if (documentData.strokeColorAnim) {\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\n }\n\n if (documentData.fillColorAnim && documentData.fc) {\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\n }\n\n if (this._hasMaskedPath) {\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\n\n if (this._pathData.p.v) {\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\n\n if (currentPoint.point[0] < prevPoint.point[0]) {\n rot += 180;\n }\n\n matrixHelper.rotate(-rot * Math.PI / 180);\n }\n\n matrixHelper.translate(xPathPos, yPathPos, 0);\n currentLength -= alignment[0] * letters[i].an * 0.005;\n\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\n currentLength += letters[i].an / 2;\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\n }\n } else {\n matrixHelper.translate(xPos, yPos, 0);\n\n if (documentData.ps) {\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(0, -documentData.ls);\n matrixHelper.translate(offf, 0, 0);\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\n }\n\n if (renderType === 'html') {\n letterM = matrixHelper.toCSS();\n } else if (renderType === 'svg') {\n letterM = matrixHelper.to2dCSS();\n } else {\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\n }\n\n letterO = elemOpacity;\n }\n\n if (renderedLettersCount <= i) {\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\n this.renderedLetters.push(letterValue);\n renderedLettersCount += 1;\n this.lettersChangedFlag = true;\n } else {\n letterValue = this.renderedLetters[i];\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\n }\n }\n };\n\n TextAnimatorProperty.prototype.getValue = function () {\n if (this._elem.globalData.frameId === this._frameId) {\n return;\n }\n\n this._frameId = this._elem.globalData.frameId;\n this.iterateDynamicProperties();\n };\n\n TextAnimatorProperty.prototype.mHelper = new Matrix();\n TextAnimatorProperty.prototype.defaultPropsArray = [];\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\n\n function ITextElement() {}\n\n ITextElement.prototype.initElement = function (data, globalData, comp) {\n this.lettersChangedFlag = true;\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n this.initRenderable();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n this.createContent();\n this.hide();\n this.textAnimator.searchProperties(this.dynamicProperties);\n };\n\n ITextElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n };\n\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\n var j;\n var jLen = shapes.length;\n var pathNodes;\n var shapeStr = '';\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n pathNodes = shapes[j].ks.k;\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\n }\n }\n\n return shapeStr;\n };\n\n ITextElement.prototype.updateDocumentData = function (newData, index) {\n this.textProperty.updateDocumentData(newData, index);\n };\n\n ITextElement.prototype.canResizeFont = function (_canResize) {\n this.textProperty.canResizeFont(_canResize);\n };\n\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\n this.textProperty.setMinimumFontSize(_fontSize);\n };\n\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\n if (documentData.ps) {\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\n }\n\n matrixHelper.translate(0, -documentData.ls, 0);\n\n switch (documentData.j) {\n case 1:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\n break;\n\n case 2:\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\n break;\n\n default:\n break;\n }\n\n matrixHelper.translate(xPos, yPos, 0);\n };\n\n ITextElement.prototype.buildColor = function (colorData) {\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\n };\n\n ITextElement.prototype.emptyProp = new LetterProps();\n\n ITextElement.prototype.destroy = function () {};\n\n ITextElement.prototype.validateText = function () {\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\n this.buildNewText();\n this.textProperty._isFirstFrame = false;\n this.textProperty._mdf = false;\n }\n };\n\n var emptyShapeData = {\n shapes: []\n };\n\n function SVGTextLottieElement(data, globalData, comp) {\n this.textSpans = [];\n this.renderType = 'svg';\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\n\n SVGTextLottieElement.prototype.createContent = function () {\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\n this.textContainer = createNS('text');\n }\n };\n\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\n var i = 0;\n var len = textArray.length;\n var textContents = [];\n var currentTextContent = '';\n\n while (i < len) {\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\n textContents.push(currentTextContent);\n currentTextContent = '';\n } else {\n currentTextContent += textArray[i];\n }\n\n i += 1;\n }\n\n textContents.push(currentTextContent);\n return textContents;\n };\n\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\n // but since text internal content gets only rendered once and then it's never rerendered,\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\n // Avoiding cloning is preferred since cloning each character shape data is expensive\n if (data.shapes && data.shapes.length) {\n var shape = data.shapes[0];\n\n if (shape.it) {\n var shapeItem = shape.it[shape.it.length - 1];\n\n if (shapeItem.s) {\n shapeItem.s.k[0] = scale;\n shapeItem.s.k[1] = scale;\n }\n }\n }\n\n return data;\n };\n\n SVGTextLottieElement.prototype.buildNewText = function () {\n this.addDynamicProperty(this);\n var i;\n var len;\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\n\n if (documentData.fc) {\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\n } else {\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\n }\n\n if (documentData.sc) {\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\n this.layerElement.setAttribute('stroke-width', documentData.sw);\n }\n\n this.layerElement.setAttribute('font-size', documentData.finalSize);\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (fontData.fClass) {\n this.layerElement.setAttribute('class', fontData.fClass);\n } else {\n this.layerElement.setAttribute('font-family', fontData.fFamily);\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n this.layerElement.setAttribute('font-style', fStyle);\n this.layerElement.setAttribute('font-weight', fWeight);\n }\n\n this.layerElement.setAttribute('aria-label', documentData.t);\n var letters = documentData.l || [];\n var usesGlyphs = !!this.globalData.fontManager.chars;\n len = letters.length;\n var tSpan;\n var matrixHelper = this.mHelper;\n var shapeStr = '';\n var singleShape = this.data.singleShape;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n\n if (singleShape && !usesGlyphs && !documentData.sz) {\n var tElement = this.textContainer;\n var justify = 'start';\n\n switch (documentData.j) {\n case 1:\n justify = 'end';\n break;\n\n case 2:\n justify = 'middle';\n break;\n\n default:\n justify = 'start';\n break;\n }\n\n tElement.setAttribute('text-anchor', justify);\n tElement.setAttribute('letter-spacing', trackingOffset);\n var textContent = this.buildTextContents(documentData.finalText);\n len = textContent.length;\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\n\n for (i = 0; i < len; i += 1) {\n tSpan = this.textSpans[i].span || createNS('tspan');\n tSpan.textContent = textContent[i];\n tSpan.setAttribute('x', 0);\n tSpan.setAttribute('y', yPos);\n tSpan.style.display = 'inherit';\n tElement.appendChild(tSpan);\n\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n glyph: null\n };\n }\n\n this.textSpans[i].span = tSpan;\n yPos += documentData.finalLineHeight;\n }\n\n this.layerElement.appendChild(tElement);\n } else {\n var cachedSpansLength = this.textSpans.length;\n var charData;\n\n for (i = 0; i < len; i += 1) {\n if (!this.textSpans[i]) {\n this.textSpans[i] = {\n span: null,\n childSpan: null,\n glyph: null\n };\n }\n\n if (!usesGlyphs || !singleShape || i === 0) {\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\n\n if (cachedSpansLength <= i) {\n tSpan.setAttribute('stroke-linecap', 'butt');\n tSpan.setAttribute('stroke-linejoin', 'round');\n tSpan.setAttribute('stroke-miterlimit', '4');\n this.textSpans[i].span = tSpan;\n\n if (usesGlyphs) {\n var childSpan = createNS('g');\n tSpan.appendChild(childSpan);\n this.textSpans[i].childSpan = childSpan;\n }\n\n this.textSpans[i].span = tSpan;\n this.layerElement.appendChild(tSpan);\n }\n\n tSpan.style.display = 'inherit';\n }\n\n matrixHelper.reset();\n\n if (singleShape) {\n if (letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\n\n xPos += trackingOffset;\n }\n\n if (usesGlyphs) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var glyphElement; // t === 1 means the character has been replaced with an animated shaped\n\n if (charData.t === 1) {\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\n } else {\n var data = emptyShapeData;\n\n if (charData.data && charData.data.shapes) {\n data = this.buildShapeData(charData.data, documentData.finalSize);\n }\n\n glyphElement = new SVGShapeElement(data, this.globalData, this);\n }\n\n if (this.textSpans[i].glyph) {\n var glyph = this.textSpans[i].glyph;\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\n glyph.destroy();\n }\n\n this.textSpans[i].glyph = glyphElement;\n glyphElement._debug = true;\n glyphElement.prepareFrame(0);\n glyphElement.renderFrame();\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\n // this might have issues with strokes and might need a different solution\n\n if (charData.t === 1) {\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\n }\n } else {\n if (singleShape) {\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\n }\n\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n } //\n\n }\n\n if (singleShape && tSpan) {\n tSpan.setAttribute('d', shapeStr);\n }\n }\n\n while (i < this.textSpans.length) {\n this.textSpans[i].span.style.display = 'none';\n i += 1;\n }\n\n this._sizeChanged = true;\n };\n\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\n this.renderInnerContent();\n\n if (this._sizeChanged) {\n this._sizeChanged = false;\n var textBox = this.layerElement.getBBox();\n this.bbox = {\n top: textBox.y,\n left: textBox.x,\n width: textBox.width,\n height: textBox.height\n };\n }\n\n return this.bbox;\n };\n\n SVGTextLottieElement.prototype.getValue = function () {\n var i;\n var len = this.textSpans.length;\n var glyphElement;\n this.renderedFrame = this.comp.renderedFrame;\n\n for (i = 0; i < len; i += 1) {\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\n\n if (glyphElement._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n SVGTextLottieElement.prototype.renderInnerContent = function () {\n this.validateText();\n\n if (!this.data.singleShape || this._mdf) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\n this._sizeChanged = true;\n var i;\n var len;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var glyphElement;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n textSpan = this.textSpans[i].span;\n glyphElement = this.textSpans[i].glyph;\n\n if (glyphElement) {\n glyphElement.renderFrame();\n }\n\n if (renderedLetter._mdf.m) {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n\n if (renderedLetter._mdf.o) {\n textSpan.setAttribute('opacity', renderedLetter.o);\n }\n\n if (renderedLetter._mdf.sw) {\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter._mdf.sc) {\n textSpan.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter._mdf.fc) {\n textSpan.setAttribute('fill', renderedLetter.fc);\n }\n }\n }\n }\n }\n };\n\n function ISolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([IImageElement], ISolidElement);\n\n ISolidElement.prototype.createContent = function () {\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\n /// /rect.style.height = this.data.sh;\n /// /rect.style.fill = this.data.sc;\n\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.layerElement.appendChild(rect);\n };\n\n function NullElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initFrame();\n this.initTransform(data, globalData, comp);\n this.initHierarchy();\n }\n\n NullElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n NullElement.prototype.renderFrame = function () {};\n\n NullElement.prototype.getBaseElement = function () {\n return null;\n };\n\n NullElement.prototype.destroy = function () {};\n\n NullElement.prototype.sourceRectAtTime = function () {};\n\n NullElement.prototype.hide = function () {};\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\n\n function SVGRendererBase() {}\n\n extendPrototype([BaseRenderer], SVGRendererBase);\n\n SVGRendererBase.prototype.createNull = function (data) {\n return new NullElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createShape = function (data) {\n return new SVGShapeElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createText = function (data) {\n return new SVGTextLottieElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createImage = function (data) {\n return new IImageElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.createSolid = function (data) {\n return new ISolidElement(data, this.globalData, this);\n };\n\n SVGRendererBase.prototype.configAnimation = function (animData) {\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n\n if (this.renderConfig.viewBoxSize) {\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\n } else {\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\n }\n\n if (!this.renderConfig.viewBoxOnly) {\n this.svgElement.setAttribute('width', animData.w);\n this.svgElement.setAttribute('height', animData.h);\n this.svgElement.style.width = '100%';\n this.svgElement.style.height = '100%';\n this.svgElement.style.transform = 'translate3d(0,0,0)';\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\n }\n\n if (this.renderConfig.width) {\n this.svgElement.setAttribute('width', this.renderConfig.width);\n }\n\n if (this.renderConfig.height) {\n this.svgElement.setAttribute('height', this.renderConfig.height);\n }\n\n if (this.renderConfig.className) {\n this.svgElement.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.svgElement.setAttribute('id', this.renderConfig.id);\n }\n\n if (this.renderConfig.focusable !== undefined) {\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\n }\n\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\n\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\n\n var defs = this.globalData.defs;\n this.setupGlobalData(animData, defs);\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.data = animData;\n var maskElement = createNS('clipPath');\n var rect = createNS('rect');\n rect.setAttribute('width', animData.w);\n rect.setAttribute('height', animData.h);\n rect.setAttribute('x', 0);\n rect.setAttribute('y', 0);\n var maskId = createElementID();\n maskElement.setAttribute('id', maskId);\n maskElement.appendChild(rect);\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\n defs.appendChild(maskElement);\n this.layers = animData.layers;\n this.elements = createSizedArray(animData.layers.length);\n };\n\n SVGRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.layerElement = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n SVGRendererBase.prototype.updateContainerSize = function () {};\n\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\n var i = 0;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ind === ind) {\n return i;\n }\n }\n\n return -1;\n };\n\n SVGRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n elements[pos] = true;\n var element = this.createItem(this.layers[pos]);\n elements[pos] = element;\n\n if (getExpressionsPlugin()) {\n if (this.layers[pos].ty === 0) {\n this.globalData.projectInterface.registerComposition(element);\n }\n\n element.initExpressions();\n }\n\n this.appendElementInPos(element, pos);\n\n if (this.layers[pos].tt) {\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\n\n if (elementIndex === -1) {\n return;\n }\n\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\n this.buildItem(elementIndex);\n this.addPendingElement(element);\n } else {\n var matteElement = elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\n element.setMatte(matteMask);\n }\n }\n };\n\n SVGRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n\n if (element.data.tt) {\n var i = 0;\n var len = this.elements.length;\n\n while (i < len) {\n if (this.elements[i] === element) {\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\n var matteElement = this.elements[elementIndex];\n var matteMask = matteElement.getMatte(this.layers[i].tt);\n element.setMatte(matteMask);\n break;\n }\n\n i += 1;\n }\n }\n }\n };\n\n SVGRendererBase.prototype.renderFrame = function (num) {\n if (this.renderedFrame === num || this.destroyed) {\n return;\n }\n\n if (num === null) {\n num = this.renderedFrame;\n } else {\n this.renderedFrame = num;\n } // console.log('-------');\n // console.log('FRAME ',num);\n\n\n this.globalData.frameNum = num;\n this.globalData.frameId += 1;\n this.globalData.projectInterface.currentFrame = num;\n this.globalData._mdf = false;\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n }\n };\n\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newElement = element.getBaseElement();\n\n if (!newElement) {\n return;\n }\n\n var i = 0;\n var nextElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\n nextElement = this.elements[i].getBaseElement();\n }\n\n i += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(newElement, nextElement);\n } else {\n this.layerElement.appendChild(newElement);\n }\n };\n\n SVGRendererBase.prototype.hide = function () {\n this.layerElement.style.display = 'none';\n };\n\n SVGRendererBase.prototype.show = function () {\n this.layerElement.style.display = 'block';\n };\n\n function ICompElement() {}\n\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\n\n ICompElement.prototype.initElement = function (data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initTransform(data, globalData, comp);\n this.initRenderable();\n this.initHierarchy();\n this.initRendererElement();\n this.createContainerElements();\n this.createRenderableComponents();\n\n if (this.data.xt || !globalData.progressiveLoad) {\n this.buildAllItems();\n }\n\n this.hide();\n };\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\n\n\n ICompElement.prototype.prepareFrame = function (num) {\n this._mdf = false;\n this.prepareRenderableFrame(num);\n this.prepareProperties(num, this.isInRange);\n\n if (!this.isInRange && !this.data.xt) {\n return;\n }\n\n if (!this.tm._placeholder) {\n var timeRemapped = this.tm.v;\n\n if (timeRemapped === this.data.op) {\n timeRemapped = this.data.op - 1;\n }\n\n this.renderedFrame = timeRemapped;\n } else {\n this.renderedFrame = num / this.data.sr;\n }\n\n var i;\n var len = this.elements.length;\n\n if (!this.completeLayers) {\n this.checkLayers(this.renderedFrame);\n } // This iteration needs to be backwards because of how expressions connect between each other\n\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\n\n if (this.elements[i]._mdf) {\n this._mdf = true;\n }\n }\n }\n };\n\n ICompElement.prototype.renderInnerContent = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n ICompElement.prototype.setElements = function (elems) {\n this.elements = elems;\n };\n\n ICompElement.prototype.getElements = function () {\n return this.elements;\n };\n\n ICompElement.prototype.destroyElements = function () {\n var i;\n var len = this.layers.length;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n };\n\n ICompElement.prototype.destroy = function () {\n this.destroyElements();\n this.destroyBaseElement();\n };\n\n function SVGCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = true;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\n\n SVGCompElement.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function SVGRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.svgElement = createNS('svg');\n var ariaLabel = '';\n\n if (config && config.title) {\n var titleElement = createNS('title');\n var titleId = createElementID();\n titleElement.setAttribute('id', titleId);\n titleElement.textContent = config.title;\n this.svgElement.appendChild(titleElement);\n ariaLabel += titleId;\n }\n\n if (config && config.description) {\n var descElement = createNS('desc');\n var descId = createElementID();\n descElement.setAttribute('id', descId);\n descElement.textContent = config.description;\n this.svgElement.appendChild(descElement);\n ariaLabel += ' ' + descId;\n }\n\n if (ariaLabel) {\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\n }\n\n var defs = createNS('defs');\n this.svgElement.appendChild(defs);\n var maskElement = createNS('g');\n this.svgElement.appendChild(maskElement);\n this.layerElement = maskElement;\n this.renderConfig = {\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n progressiveLoad: config && config.progressiveLoad || false,\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n viewBoxOnly: config && config.viewBoxOnly || false,\n viewBoxSize: config && config.viewBoxSize || false,\n className: config && config.className || '',\n id: config && config.id || '',\n focusable: config && config.focusable,\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '100%',\n height: config && config.filterSize && config.filterSize.height || '100%',\n x: config && config.filterSize && config.filterSize.x || '0%',\n y: config && config.filterSize && config.filterSize.y || '0%'\n },\n width: config && config.width,\n height: config && config.height,\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n defs: defs,\n renderConfig: this.renderConfig\n };\n this.elements = [];\n this.pendingElements = [];\n this.destroyed = false;\n this.rendererType = 'svg';\n }\n\n extendPrototype([SVGRendererBase], SVGRenderer);\n\n SVGRenderer.prototype.createComp = function (data) {\n return new SVGCompElement(data, this.globalData, this);\n };\n\n function ShapeTransformManager() {\n this.sequences = {};\n this.sequenceList = [];\n this.transform_key_count = 0;\n }\n\n ShapeTransformManager.prototype = {\n addTransformSequence: function addTransformSequence(transforms) {\n var i;\n var len = transforms.length;\n var key = '_';\n\n for (i = 0; i < len; i += 1) {\n key += transforms[i].transform.key + '_';\n }\n\n var sequence = this.sequences[key];\n\n if (!sequence) {\n sequence = {\n transforms: [].concat(transforms),\n finalTransform: new Matrix(),\n _mdf: false\n };\n this.sequences[key] = sequence;\n this.sequenceList.push(sequence);\n }\n\n return sequence;\n },\n processSequence: function processSequence(sequence, isFirstFrame) {\n var i = 0;\n var len = sequence.transforms.length;\n var _mdf = isFirstFrame;\n\n while (i < len && !isFirstFrame) {\n if (sequence.transforms[i].transform.mProps._mdf) {\n _mdf = true;\n break;\n }\n\n i += 1;\n }\n\n if (_mdf) {\n sequence.finalTransform.reset();\n\n for (i = len - 1; i >= 0; i -= 1) {\n sequence.finalTransform.multiply(sequence.transforms[i].transform.mProps.v);\n }\n }\n\n sequence._mdf = _mdf;\n },\n processSequences: function processSequences(isFirstFrame) {\n var i;\n var len = this.sequenceList.length;\n\n for (i = 0; i < len; i += 1) {\n this.processSequence(this.sequenceList[i], isFirstFrame);\n }\n },\n getNewKey: function getNewKey() {\n this.transform_key_count += 1;\n return '_' + this.transform_key_count;\n }\n };\n\n var lumaLoader = function lumaLoader() {\n var id = '__lottie_element_luma_buffer';\n var lumaBuffer = null;\n var lumaBufferCtx = null;\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\n // Naming it solution 2 to mark the extra comment lines.\n\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\n\n function createLumaSvgFilter() {\n var _svg = createNS('svg');\n\n var fil = createNS('filter');\n var matrix = createNS('feColorMatrix');\n fil.setAttribute('id', id);\n matrix.setAttribute('type', 'matrix');\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\n fil.appendChild(matrix);\n\n _svg.appendChild(fil);\n\n _svg.setAttribute('id', id + '_svg');\n\n if (featureSupport.svgLumaHidden) {\n _svg.style.display = 'none';\n }\n\n return _svg;\n }\n\n function loadLuma() {\n if (!lumaBuffer) {\n svg = createLumaSvgFilter();\n document.body.appendChild(svg);\n lumaBuffer = createTag('canvas');\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\n lumaBufferCtx.fillRect(0, 0, 1, 1);\n }\n }\n\n function getLuma(canvas) {\n if (!lumaBuffer) {\n loadLuma();\n }\n\n lumaBuffer.width = canvas.width;\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\n\n lumaBufferCtx.filter = 'url(#' + id + ')';\n return lumaBuffer;\n }\n\n return {\n load: loadLuma,\n get: getLuma\n };\n };\n\n function createCanvas(width, height) {\n if (featureSupport.offscreenCanvas) {\n return new OffscreenCanvas(width, height);\n }\n\n var canvas = createTag('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n var assetLoader = function () {\n return {\n loadLumaCanvas: lumaLoader.load,\n getLumaCanvas: lumaLoader.get,\n createCanvas: createCanvas\n };\n }();\n\n var registeredEffects = {};\n\n function CVEffects(elem) {\n var i;\n var len = elem.data.ef ? elem.data.ef.length : 0;\n this.filters = [];\n var filterManager;\n\n for (i = 0; i < len; i += 1) {\n filterManager = null;\n var type = elem.data.ef[i].ty;\n\n if (registeredEffects[type]) {\n var Effect = registeredEffects[type].effect;\n filterManager = new Effect(elem.effectsManager.effectElements[i], elem);\n }\n\n if (filterManager) {\n this.filters.push(filterManager);\n }\n }\n\n if (this.filters.length) {\n elem.addRenderableComponent(this);\n }\n }\n\n CVEffects.prototype.renderFrame = function (_isFirstFrame) {\n var i;\n var len = this.filters.length;\n\n for (i = 0; i < len; i += 1) {\n this.filters[i].renderFrame(_isFirstFrame);\n }\n };\n\n CVEffects.prototype.getEffects = function (type) {\n var i;\n var len = this.filters.length;\n var effects = [];\n\n for (i = 0; i < len; i += 1) {\n if (this.filters[i].type === type) {\n effects.push(this.filters[i]);\n }\n }\n\n return effects;\n };\n\n function registerEffect(id, effect) {\n registeredEffects[id] = {\n effect: effect\n };\n }\n\n function CVMaskElement(data, element) {\n this.data = data;\n this.element = element;\n this.masksProperties = this.data.masksProperties || [];\n this.viewData = createSizedArray(this.masksProperties.length);\n var i;\n var len = this.masksProperties.length;\n var hasMasks = false;\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n hasMasks = true;\n }\n\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\n }\n\n this.hasMasks = hasMasks;\n\n if (hasMasks) {\n this.element.addRenderableComponent(this);\n }\n }\n\n CVMaskElement.prototype.renderFrame = function () {\n if (!this.hasMasks) {\n return;\n }\n\n var transform = this.element.finalTransform.mat;\n var ctx = this.element.canvasContext;\n var i;\n var len = this.masksProperties.length;\n var pt;\n var pts;\n var data;\n ctx.beginPath();\n\n for (i = 0; i < len; i += 1) {\n if (this.masksProperties[i].mode !== 'n') {\n if (this.masksProperties[i].inv) {\n ctx.moveTo(0, 0);\n ctx.lineTo(this.element.globalData.compSize.w, 0);\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\n ctx.lineTo(0, this.element.globalData.compSize.h);\n ctx.lineTo(0, 0);\n }\n\n data = this.viewData[i].v;\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\n ctx.moveTo(pt[0], pt[1]);\n var j;\n var jLen = data._length;\n\n for (j = 1; j < jLen; j += 1) {\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\n }\n }\n\n this.element.globalData.renderer.save(true);\n ctx.clip();\n };\n\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\n\n CVMaskElement.prototype.destroy = function () {\n this.element = null;\n };\n\n function CVBaseElement() {}\n\n var operationsMap = {\n 1: 'source-in',\n 2: 'source-out',\n 3: 'source-in',\n 4: 'source-out'\n };\n CVBaseElement.prototype = {\n createElements: function createElements() {},\n initRendererElement: function initRendererElement() {},\n createContainerElements: function createContainerElements() {\n // If the layer is masked we will use two buffers to store each different states of the drawing\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\n // It might be challenging because the layer most likely is transformed in some way\n if (this.data.tt >= 1) {\n this.buffers = [];\n var canvasContext = this.globalData.canvasContext;\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas);\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\n this.buffers.push(bufferCanvas2);\n\n if (this.data.tt >= 3 && !document._isProxy) {\n assetLoader.loadLumaCanvas();\n }\n }\n\n this.canvasContext = this.globalData.canvasContext;\n this.transformCanvas = this.globalData.transformCanvas;\n this.renderableEffectsManager = new CVEffects(this);\n this.searchEffectTransforms();\n },\n createContent: function createContent() {},\n setBlendMode: function setBlendMode() {\n var globalData = this.globalData;\n\n if (globalData.blendMode !== this.data.bm) {\n globalData.blendMode = this.data.bm;\n var blendModeValue = getBlendMode(this.data.bm);\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new CVMaskElement(this.data, this);\n this.transformEffects = this.renderableEffectsManager.getEffects(effectTypes.TRANSFORM_EFFECT);\n },\n hideElement: function hideElement() {\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\n this.hidden = true;\n }\n },\n showElement: function showElement() {\n if (this.isInRange && !this.isTransparent) {\n this.hidden = false;\n this._isFirstFrame = true;\n this.maskManager._isFirstFrame = true;\n }\n },\n clearCanvas: function clearCanvas(canvasContext) {\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\n },\n prepareLayer: function prepareLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[0];\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\n\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\n // TODO: Check if there is a way to clear the canvas without resetting the transform\n\n this.currentTransform = this.canvasContext.getTransform();\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform);\n }\n },\n exitLayer: function exitLayer() {\n if (this.data.tt >= 1) {\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\n // that only contains the content of this layer\n // (if it is a composition, it also includes the nested layers)\n\n var bufferCtx = buffer.getContext('2d');\n this.clearCanvas(bufferCtx);\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\n this.clearCanvas(this.canvasContext);\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\n\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\n\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\n\n if (this.data.tt >= 3 && !document._isProxy) {\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\n // that applies the rgb values to the alpha channel\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\n var lumaBufferCtx = lumaBuffer.getContext('2d');\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\n\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\n }\n\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\n // We use destination-over to draw the global drawing below the current layer\n\n this.canvasContext.globalCompositeOperation = 'destination-over';\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\n\n this.canvasContext.globalCompositeOperation = 'source-over';\n }\n },\n renderFrame: function renderFrame(forceRender) {\n if (this.hidden || this.data.hd) {\n return;\n }\n\n if (this.data.td === 1 && !forceRender) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderLocalTransform();\n this.setBlendMode();\n var forceRealStack = this.data.ty === 0;\n this.prepareLayer();\n this.globalData.renderer.save(forceRealStack);\n this.globalData.renderer.ctxTransform(this.finalTransform.localMat.props);\n this.globalData.renderer.ctxOpacity(this.finalTransform.localOpacity);\n this.renderInnerContent();\n this.globalData.renderer.restore(forceRealStack);\n this.exitLayer();\n\n if (this.maskManager.hasMasks) {\n this.globalData.renderer.restore(true);\n }\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.canvasContext = null;\n this.data = null;\n this.globalData = null;\n this.maskManager.destroy();\n },\n mHelper: new Matrix()\n };\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\n\n function CVShapeData(element, data, styles, transformsManager) {\n this.styledShapes = [];\n this.tr = [0, 0, 0, 0, 0, 0];\n var ty = 4;\n\n if (data.ty === 'rc') {\n ty = 5;\n } else if (data.ty === 'el') {\n ty = 6;\n } else if (data.ty === 'sr') {\n ty = 7;\n }\n\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\n var i;\n var len = styles.length;\n var styledShape;\n\n for (i = 0; i < len; i += 1) {\n if (!styles[i].closed) {\n styledShape = {\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\n trNodes: []\n };\n this.styledShapes.push(styledShape);\n styles[i].elements.push(styledShape);\n }\n }\n }\n\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\n\n function CVShapeElement(data, globalData, comp) {\n this.shapes = [];\n this.shapesData = data.shapes;\n this.stylesList = [];\n this.itemsData = [];\n this.prevViewData = [];\n this.shapeModifiers = [];\n this.processedElements = [];\n this.transformsManager = new ShapeTransformManager();\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\n CVShapeElement.prototype.transformHelper = {\n opacity: 1,\n _opMdf: false\n };\n CVShapeElement.prototype.dashResetter = [];\n\n CVShapeElement.prototype.createContent = function () {\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n };\n\n CVShapeElement.prototype.createStyleElement = function (data, transforms) {\n var styleElem = {\n data: data,\n type: data.ty,\n preTransforms: this.transformsManager.addTransformSequence(transforms),\n transforms: [],\n elements: [],\n closed: data.hd === true\n };\n var elementData = {};\n\n if (data.ty === 'fl' || data.ty === 'st') {\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\n\n if (!elementData.c.k) {\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\n }\n } else if (data.ty === 'gf' || data.ty === 'gs') {\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\n elementData.h = PropertyFactory.getProp(this, data.h || {\n k: 0\n }, 0, 0.01, this);\n elementData.a = PropertyFactory.getProp(this, data.a || {\n k: 0\n }, 0, degToRads, this);\n elementData.g = new GradientProperty(this, data.g, this);\n }\n\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\n\n if (data.ty === 'st' || data.ty === 'gs') {\n styleElem.lc = lineCapEnum[data.lc || 2];\n styleElem.lj = lineJoinEnum[data.lj || 2];\n\n if (data.lj == 1) {\n // eslint-disable-line eqeqeq\n styleElem.ml = data.ml;\n }\n\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\n\n if (!elementData.w.k) {\n styleElem.wi = elementData.w.v;\n }\n\n if (data.d) {\n var d = new DashProperty(this, data.d, 'canvas', this);\n elementData.d = d;\n\n if (!elementData.d.k) {\n styleElem.da = elementData.d.dashArray;\n styleElem[\"do\"] = elementData.d.dashoffset[0];\n }\n }\n } else {\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\n }\n\n this.stylesList.push(styleElem);\n elementData.style = styleElem;\n return elementData;\n };\n\n CVShapeElement.prototype.createGroupElement = function () {\n var elementData = {\n it: [],\n prevViewData: []\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createTransformElement = function (data) {\n var elementData = {\n transform: {\n opacity: 1,\n _opMdf: false,\n key: this.transformsManager.getNewKey(),\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this)\n }\n };\n return elementData;\n };\n\n CVShapeElement.prototype.createShapeElement = function (data) {\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\n this.shapes.push(elementData);\n this.addShapeToModifiers(elementData);\n return elementData;\n };\n\n CVShapeElement.prototype.reloadShapes = function () {\n this._isFirstFrame = true;\n var i;\n var len = this.itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n this.prevViewData[i] = this.itemsData[i];\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\n len = this.dynamicProperties.length;\n\n for (i = 0; i < len; i += 1) {\n this.dynamicProperties[i].getValue();\n }\n\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n };\n\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.push(transform);\n }\n }\n };\n\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\n var i;\n var len = this.stylesList.length;\n\n for (i = 0; i < len; i += 1) {\n if (!this.stylesList[i].closed) {\n this.stylesList[i].transforms.pop();\n }\n }\n };\n\n CVShapeElement.prototype.closeStyles = function (styles) {\n var i;\n var len = styles.length;\n\n for (i = 0; i < len; i += 1) {\n styles[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\n var i;\n var len = arr.length - 1;\n var j;\n var jLen;\n var ownStyles = [];\n var ownModifiers = [];\n var processedPos;\n var modifier;\n var currentTransform;\n var ownTransforms = [].concat(transforms);\n\n for (i = len; i >= 0; i -= 1) {\n processedPos = this.searchProcessedElement(arr[i]);\n\n if (!processedPos) {\n arr[i]._shouldRender = shouldRender;\n } else {\n itemsData[i] = prevViewData[processedPos - 1];\n }\n\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\n if (!processedPos) {\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\n } else {\n itemsData[i].style.closed = false;\n }\n\n ownStyles.push(itemsData[i].style);\n } else if (arr[i].ty === 'gr') {\n if (!processedPos) {\n itemsData[i] = this.createGroupElement(arr[i]);\n } else {\n jLen = itemsData[i].it.length;\n\n for (j = 0; j < jLen; j += 1) {\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\n }\n }\n\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\n } else if (arr[i].ty === 'tr') {\n if (!processedPos) {\n currentTransform = this.createTransformElement(arr[i]);\n itemsData[i] = currentTransform;\n }\n\n ownTransforms.push(itemsData[i]);\n this.addTransformToStyleList(itemsData[i]);\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\n if (!processedPos) {\n itemsData[i] = this.createShapeElement(arr[i]);\n }\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n modifier.init(this, arr[i]);\n itemsData[i] = modifier;\n this.shapeModifiers.push(modifier);\n } else {\n modifier = itemsData[i];\n modifier.closed = false;\n }\n\n ownModifiers.push(modifier);\n } else if (arr[i].ty === 'rp') {\n if (!processedPos) {\n modifier = ShapeModifiers.getModifier(arr[i].ty);\n itemsData[i] = modifier;\n modifier.init(this, arr, i, itemsData);\n this.shapeModifiers.push(modifier);\n shouldRender = false;\n } else {\n modifier = itemsData[i];\n modifier.closed = true;\n }\n\n ownModifiers.push(modifier);\n }\n\n this.addProcessedElement(arr[i], i + 1);\n }\n\n this.removeTransformFromStyleList();\n this.closeStyles(ownStyles);\n len = ownModifiers.length;\n\n for (i = 0; i < len; i += 1) {\n ownModifiers[i].closed = true;\n }\n };\n\n CVShapeElement.prototype.renderInnerContent = function () {\n this.transformHelper.opacity = 1;\n this.transformHelper._opMdf = false;\n this.renderModifiers();\n this.transformsManager.processSequences(this._isFirstFrame);\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\n };\n\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\n groupTransform.opacity = parentTransform.opacity;\n groupTransform.opacity *= groupTransform.op.v;\n groupTransform._opMdf = true;\n }\n };\n\n CVShapeElement.prototype.drawLayer = function () {\n var i;\n var len = this.stylesList.length;\n var j;\n var jLen;\n var k;\n var kLen;\n var elems;\n var nodes;\n var renderer = this.globalData.renderer;\n var ctx = this.globalData.canvasContext;\n var type;\n var currentStyle;\n\n for (i = 0; i < len; i += 1) {\n currentStyle = this.stylesList[i];\n type = currentStyle.type; // Skipping style when\n // Stroke width equals 0\n // style should not be rendered (extra unused repeaters)\n // current opacity equals 0\n // global opacity equals 0\n\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\n renderer.save();\n elems = currentStyle.elements;\n\n if (type === 'st' || type === 'gs') {\n renderer.ctxStrokeStyle(type === 'st' ? currentStyle.co : currentStyle.grd); // ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\n\n renderer.ctxLineWidth(currentStyle.wi); // ctx.lineWidth = currentStyle.wi;\n\n renderer.ctxLineCap(currentStyle.lc); // ctx.lineCap = currentStyle.lc;\n\n renderer.ctxLineJoin(currentStyle.lj); // ctx.lineJoin = currentStyle.lj;\n\n renderer.ctxMiterLimit(currentStyle.ml || 0); // ctx.miterLimit = currentStyle.ml || 0;\n } else {\n renderer.ctxFillStyle(type === 'fl' ? currentStyle.co : currentStyle.grd); // ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\n }\n\n renderer.ctxOpacity(currentStyle.coOp);\n\n if (type !== 'st' && type !== 'gs') {\n ctx.beginPath();\n }\n\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\n jLen = elems.length;\n\n for (j = 0; j < jLen; j += 1) {\n if (type === 'st' || type === 'gs') {\n ctx.beginPath();\n\n if (currentStyle.da) {\n ctx.setLineDash(currentStyle.da);\n ctx.lineDashOffset = currentStyle[\"do\"];\n }\n }\n\n nodes = elems[j].trNodes;\n kLen = nodes.length;\n\n for (k = 0; k < kLen; k += 1) {\n if (nodes[k].t === 'm') {\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\n } else if (nodes[k].t === 'c') {\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\n } else {\n ctx.closePath();\n }\n }\n\n if (type === 'st' || type === 'gs') {\n // ctx.stroke();\n renderer.ctxStroke();\n\n if (currentStyle.da) {\n ctx.setLineDash(this.dashResetter);\n }\n }\n }\n\n if (type !== 'st' && type !== 'gs') {\n // ctx.fill(currentStyle.r);\n this.globalData.renderer.ctxFill(currentStyle.r);\n }\n\n renderer.restore();\n }\n }\n };\n\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\n var i;\n var len = items.length - 1;\n var groupTransform;\n groupTransform = parentTransform;\n\n for (i = len; i >= 0; i -= 1) {\n if (items[i].ty === 'tr') {\n groupTransform = data[i].transform;\n this.renderShapeTransform(parentTransform, groupTransform);\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\n this.renderPath(items[i], data[i]);\n } else if (items[i].ty === 'fl') {\n this.renderFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'st') {\n this.renderStroke(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\n this.renderGradientFill(items[i], data[i], groupTransform);\n } else if (items[i].ty === 'gr') {\n this.renderShape(groupTransform, items[i].it, data[i].it);\n } else if (items[i].ty === 'tm') {//\n }\n }\n\n if (isMain) {\n this.drawLayer();\n }\n };\n\n CVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\n var shapeNodes = styledShape.trNodes;\n var paths = shape.paths;\n var i;\n var len;\n var j;\n var jLen = paths._length;\n shapeNodes.length = 0;\n var groupTransformMat = styledShape.transforms.finalTransform;\n\n for (j = 0; j < jLen; j += 1) {\n var pathNodes = paths.shapes[j];\n\n if (pathNodes && pathNodes.v) {\n len = pathNodes._length;\n\n for (i = 1; i < len; i += 1) {\n if (i === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\n });\n }\n\n if (len === 1) {\n shapeNodes.push({\n t: 'm',\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\n });\n }\n\n if (pathNodes.c && len) {\n shapeNodes.push({\n t: 'c',\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\n });\n shapeNodes.push({\n t: 'z'\n });\n }\n }\n }\n\n styledShape.trNodes = shapeNodes;\n }\n };\n\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\n if (pathData.hd !== true && pathData._shouldRender) {\n var i;\n var len = itemData.styledShapes.length;\n\n for (i = 0; i < len; i += 1) {\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\n }\n }\n };\n\n CVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n };\n\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var grd;\n\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf)) {\n var ctx = this.globalData.canvasContext;\n var pt1 = itemData.s.v;\n var pt2 = itemData.e.v;\n\n if (styleData.t === 1) {\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\n } else {\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\n var percent = itemData.h.v;\n\n if (percent >= 1) {\n percent = 0.99;\n } else if (percent <= -1) {\n percent = -0.99;\n }\n\n var dist = rad * percent;\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\n }\n\n var i;\n var len = styleData.g.p;\n var cValues = itemData.g.c;\n var opacity = 1;\n\n for (i = 0; i < len; i += 1) {\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\n opacity = itemData.g.o[i * 2 + 1];\n }\n\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\n }\n\n styleElem.grd = grd;\n }\n\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n };\n\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\n var styleElem = itemData.style;\n var d = itemData.d;\n\n if (d && (d._mdf || this._isFirstFrame)) {\n styleElem.da = d.dashArray;\n styleElem[\"do\"] = d.dashoffset[0];\n }\n\n if (itemData.c._mdf || this._isFirstFrame) {\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\n }\n\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\n }\n\n if (itemData.w._mdf || this._isFirstFrame) {\n styleElem.wi = itemData.w.v;\n }\n };\n\n CVShapeElement.prototype.destroy = function () {\n this.shapesData = null;\n this.globalData = null;\n this.canvasContext = null;\n this.stylesList.length = 0;\n this.itemsData.length = 0;\n };\n\n function CVTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.yOffset = 0;\n this.fillColorAnim = false;\n this.strokeColorAnim = false;\n this.strokeWidthAnim = false;\n this.stroke = false;\n this.fill = false;\n this.justifyOffset = 0;\n this.currentRender = null;\n this.renderType = 'canvas';\n this.values = {\n fill: 'rgba(0,0,0,0)',\n stroke: 'rgba(0,0,0,0)',\n sWidth: 0,\n fValue: ''\n };\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\n\n CVTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var hasFill = false;\n\n if (documentData.fc) {\n hasFill = true;\n this.values.fill = this.buildColor(documentData.fc);\n } else {\n this.values.fill = 'rgba(0,0,0,0)';\n }\n\n this.fill = hasFill;\n var hasStroke = false;\n\n if (documentData.sc) {\n hasStroke = true;\n this.values.stroke = this.buildColor(documentData.sc);\n this.values.sWidth = documentData.sw;\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n var i;\n var len;\n var letters = documentData.l;\n var matrixHelper = this.mHelper;\n this.stroke = hasStroke;\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\n len = documentData.finalText.length; // this.tHelper.font = this.values.fValue;\n\n var charData;\n var shapeData;\n var k;\n var kLen;\n var shapes;\n var j;\n var jLen;\n var pathNodes;\n var commands;\n var pathArr;\n var singleShape = this.data.singleShape;\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\n var xPos = 0;\n var yPos = 0;\n var firstLine = true;\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n shapeData = charData && charData.data || {};\n matrixHelper.reset();\n\n if (singleShape && letters[i].n) {\n xPos = -trackingOffset;\n yPos += documentData.yOffset;\n yPos += firstLine ? 1 : 0;\n firstLine = false;\n }\n\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\n jLen = shapes.length;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n\n if (singleShape) {\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\n }\n\n commands = createSizedArray(jLen - 1);\n var commandsCounter = 0;\n\n for (j = 0; j < jLen; j += 1) {\n if (shapes[j].ty === 'sh') {\n kLen = shapes[j].ks.k.i.length;\n pathNodes = shapes[j].ks.k;\n pathArr = [];\n\n for (k = 1; k < kLen; k += 1) {\n if (k === 1) {\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\n }\n\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\n commands[commandsCounter] = pathArr;\n commandsCounter += 1;\n }\n }\n\n if (singleShape) {\n xPos += letters[i].l;\n xPos += trackingOffset;\n }\n\n if (this.textSpans[cnt]) {\n this.textSpans[cnt].elem = commands;\n } else {\n this.textSpans[cnt] = {\n elem: commands\n };\n }\n\n cnt += 1;\n }\n };\n\n CVTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var ctx = this.canvasContext;\n ctx.font = this.values.fValue;\n this.globalData.renderer.ctxLineCap('butt'); // ctx.lineCap = 'butt';\n\n this.globalData.renderer.ctxLineJoin('miter'); // ctx.lineJoin = 'miter';\n\n this.globalData.renderer.ctxMiterLimit(4); // ctx.miterLimit = 4;\n\n if (!this.data.singleShape) {\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n }\n\n var i;\n var len;\n var j;\n var jLen;\n var k;\n var kLen;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var lastFill = null;\n var lastStroke = null;\n var lastStrokeW = null;\n var commands;\n var pathArr;\n var renderer = this.globalData.renderer;\n\n for (i = 0; i < len; i += 1) {\n if (!letters[i].n) {\n renderedLetter = renderedLetters[i];\n\n if (renderedLetter) {\n renderer.save();\n renderer.ctxTransform(renderedLetter.p);\n renderer.ctxOpacity(renderedLetter.o);\n }\n\n if (this.fill) {\n if (renderedLetter && renderedLetter.fc) {\n if (lastFill !== renderedLetter.fc) {\n renderer.ctxFillStyle(renderedLetter.fc);\n lastFill = renderedLetter.fc; // ctx.fillStyle = renderedLetter.fc;\n }\n } else if (lastFill !== this.values.fill) {\n lastFill = this.values.fill;\n renderer.ctxFillStyle(this.values.fill); // ctx.fillStyle = this.values.fill;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxFill(); // this.globalData.canvasContext.fill();\n /// ctx.fillText(this.textSpans[i].val,0,0);\n }\n\n if (this.stroke) {\n if (renderedLetter && renderedLetter.sw) {\n if (lastStrokeW !== renderedLetter.sw) {\n lastStrokeW = renderedLetter.sw;\n renderer.ctxLineWidth(renderedLetter.sw); // ctx.lineWidth = renderedLetter.sw;\n }\n } else if (lastStrokeW !== this.values.sWidth) {\n lastStrokeW = this.values.sWidth;\n renderer.ctxLineWidth(this.values.sWidth); // ctx.lineWidth = this.values.sWidth;\n }\n\n if (renderedLetter && renderedLetter.sc) {\n if (lastStroke !== renderedLetter.sc) {\n lastStroke = renderedLetter.sc;\n renderer.ctxStrokeStyle(renderedLetter.sc); // ctx.strokeStyle = renderedLetter.sc;\n }\n } else if (lastStroke !== this.values.stroke) {\n lastStroke = this.values.stroke;\n renderer.ctxStrokeStyle(this.values.stroke); // ctx.strokeStyle = this.values.stroke;\n }\n\n commands = this.textSpans[i].elem;\n jLen = commands.length;\n this.globalData.canvasContext.beginPath();\n\n for (j = 0; j < jLen; j += 1) {\n pathArr = commands[j];\n kLen = pathArr.length;\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\n\n for (k = 2; k < kLen; k += 6) {\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\n }\n }\n\n this.globalData.canvasContext.closePath();\n renderer.ctxStroke(); // this.globalData.canvasContext.stroke();\n /// ctx.strokeText(letters[i].val,0,0);\n }\n\n if (renderedLetter) {\n this.globalData.renderer.restore();\n }\n }\n }\n };\n\n function CVImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.img = globalData.imageLoader.getAsset(this.assetData);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVImageElement.prototype.createContent = function () {\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\n var canvas = createTag('canvas');\n canvas.width = this.assetData.w;\n canvas.height = this.assetData.h;\n var ctx = canvas.getContext('2d');\n var imgW = this.img.width;\n var imgH = this.img.height;\n var imgRel = imgW / imgH;\n var canvasRel = this.assetData.w / this.assetData.h;\n var widthCrop;\n var heightCrop;\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\n\n if (imgRel > canvasRel && par === 'xMidYMid slice' || imgRel < canvasRel && par !== 'xMidYMid slice') {\n heightCrop = imgH;\n widthCrop = heightCrop * canvasRel;\n } else {\n widthCrop = imgW;\n heightCrop = widthCrop / canvasRel;\n }\n\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\n this.img = canvas;\n }\n };\n\n CVImageElement.prototype.renderInnerContent = function () {\n this.canvasContext.drawImage(this.img, 0, 0);\n };\n\n CVImageElement.prototype.destroy = function () {\n this.img = null;\n };\n\n function CVSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\n\n CVSolidElement.prototype.renderInnerContent = function () {\n // var ctx = this.canvasContext;\n this.globalData.renderer.ctxFillStyle(this.data.sc); // ctx.fillStyle = this.data.sc;\n\n this.globalData.renderer.ctxFillRect(0, 0, this.data.sw, this.data.sh); // ctx.fillRect(0, 0, this.data.sw, this.data.sh);\n //\n };\n\n function CanvasRendererBase() {}\n\n extendPrototype([BaseRenderer], CanvasRendererBase);\n\n CanvasRendererBase.prototype.createShape = function (data) {\n return new CVShapeElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createText = function (data) {\n return new CVTextElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createImage = function (data) {\n return new CVImageElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createSolid = function (data) {\n return new CVSolidElement(data, this.globalData, this);\n };\n\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n CanvasRendererBase.prototype.ctxTransform = function (props) {\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\n return;\n }\n\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\n };\n\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\n };\n\n CanvasRendererBase.prototype.ctxFillStyle = function (value) {\n this.canvasContext.fillStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxStrokeStyle = function (value) {\n this.canvasContext.strokeStyle = value;\n };\n\n CanvasRendererBase.prototype.ctxLineWidth = function (value) {\n this.canvasContext.lineWidth = value;\n };\n\n CanvasRendererBase.prototype.ctxLineCap = function (value) {\n this.canvasContext.lineCap = value;\n };\n\n CanvasRendererBase.prototype.ctxLineJoin = function (value) {\n this.canvasContext.lineJoin = value;\n };\n\n CanvasRendererBase.prototype.ctxMiterLimit = function (value) {\n this.canvasContext.miterLimit = value;\n };\n\n CanvasRendererBase.prototype.ctxFill = function (rule) {\n this.canvasContext.fill(rule);\n };\n\n CanvasRendererBase.prototype.ctxFillRect = function (x, y, w, h) {\n this.canvasContext.fillRect(x, y, w, h);\n };\n\n CanvasRendererBase.prototype.ctxStroke = function () {\n this.canvasContext.stroke();\n };\n\n CanvasRendererBase.prototype.reset = function () {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n this.contextData.reset();\n };\n\n CanvasRendererBase.prototype.save = function () {\n this.canvasContext.save();\n };\n\n CanvasRendererBase.prototype.restore = function (actionFlag) {\n if (!this.renderConfig.clearCanvas) {\n this.canvasContext.restore();\n return;\n }\n\n if (actionFlag) {\n this.globalData.blendMode = 'source-over';\n }\n\n this.contextData.restore(actionFlag);\n };\n\n CanvasRendererBase.prototype.configAnimation = function (animData) {\n if (this.animationItem.wrapper) {\n this.animationItem.container = createTag('canvas');\n var containerStyle = this.animationItem.container.style;\n containerStyle.width = '100%';\n containerStyle.height = '100%';\n var origin = '0px 0px 0px';\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n containerStyle['-webkit-transform'] = origin;\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\n this.animationItem.wrapper.appendChild(this.animationItem.container);\n this.canvasContext = this.animationItem.container.getContext('2d');\n\n if (this.renderConfig.className) {\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\n }\n\n if (this.renderConfig.id) {\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\n }\n } else {\n this.canvasContext = this.renderConfig.context;\n }\n\n this.contextData.setContext(this.canvasContext);\n this.data = animData;\n this.layers = animData.layers;\n this.transformCanvas = {\n w: animData.w,\n h: animData.h,\n sx: 0,\n sy: 0,\n tx: 0,\n ty: 0\n };\n this.setupGlobalData(animData, document.body);\n this.globalData.canvasContext = this.canvasContext;\n this.globalData.renderer = this;\n this.globalData.isDashed = false;\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\n this.globalData.transformCanvas = this.transformCanvas;\n this.elements = createSizedArray(animData.layers.length);\n this.updateContainerSize();\n };\n\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\n this.reset();\n var elementWidth;\n var elementHeight;\n\n if (width) {\n elementWidth = width;\n elementHeight = height;\n this.canvasContext.canvas.width = elementWidth;\n this.canvasContext.canvas.height = elementHeight;\n } else {\n if (this.animationItem.wrapper && this.animationItem.container) {\n elementWidth = this.animationItem.wrapper.offsetWidth;\n elementHeight = this.animationItem.wrapper.offsetHeight;\n } else {\n elementWidth = this.canvasContext.canvas.width;\n elementHeight = this.canvasContext.canvas.height;\n }\n\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\n }\n\n var elementRel;\n var animationRel;\n\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\n var par = this.renderConfig.preserveAspectRatio.split(' ');\n var fillType = par[1] || 'meet';\n var pos = par[0] || 'xMidYMid';\n var xPos = pos.substr(0, 4);\n var yPos = pos.substr(4);\n elementRel = elementWidth / elementHeight;\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\n\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n } else {\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n }\n\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2 * this.renderConfig.dpr;\n } else if (xPos === 'xMax' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && fillType === 'slice')) {\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.tx = 0;\n }\n\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\n } else {\n this.transformCanvas.ty = 0;\n }\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n } else {\n this.transformCanvas.sx = this.renderConfig.dpr;\n this.transformCanvas.sy = this.renderConfig.dpr;\n this.transformCanvas.tx = 0;\n this.transformCanvas.ty = 0;\n }\n\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.globalData.canvasContext = null;\n this.animationItem.container = null;\n this.destroyed = true;\n };\n\n CanvasRendererBase.prototype.renderFrame = function (num, forceRender) {\n if (this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender || this.destroyed || num === -1) {\n return;\n }\n\n this.renderedFrame = num;\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\n this.globalData.frameId += 1;\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\n this.globalData.projectInterface.currentFrame = num; // console.log('--------');\n // console.log('NEW: ',num);\n\n var i;\n var len = this.layers.length;\n\n if (!this.completeLayers) {\n this.checkLayers(num);\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].prepareFrame(num - this.layers[i].st);\n }\n }\n\n if (this.globalData._mdf) {\n if (this.renderConfig.clearCanvas === true) {\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\n } else {\n this.save();\n }\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n\n if (this.renderConfig.clearCanvas !== true) {\n this.restore();\n }\n }\n };\n\n CanvasRendererBase.prototype.buildItem = function (pos) {\n var elements = this.elements;\n\n if (elements[pos] || this.layers[pos].ty === 99) {\n return;\n }\n\n var element = this.createItem(this.layers[pos], this, this.globalData);\n elements[pos] = element;\n element.initExpressions();\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\n };\n\n CanvasRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n CanvasRendererBase.prototype.hide = function () {\n this.animationItem.container.style.display = 'none';\n };\n\n CanvasRendererBase.prototype.show = function () {\n this.animationItem.container.style.display = 'block';\n };\n\n function CanvasContext() {\n this.opacity = -1;\n this.transform = createTypedArray('float32', 16);\n this.fillStyle = '';\n this.strokeStyle = '';\n this.lineWidth = '';\n this.lineCap = '';\n this.lineJoin = '';\n this.miterLimit = '';\n this.id = Math.random();\n }\n\n function CVContextData() {\n this.stack = [];\n this.cArrPos = 0;\n this.cTr = new Matrix();\n var i;\n var len = 15;\n\n for (i = 0; i < len; i += 1) {\n var canvasContext = new CanvasContext();\n this.stack[i] = canvasContext;\n }\n\n this._length = len;\n this.nativeContext = null;\n this.transformMat = new Matrix();\n this.currentOpacity = 1; //\n\n this.currentFillStyle = '';\n this.appliedFillStyle = ''; //\n\n this.currentStrokeStyle = '';\n this.appliedStrokeStyle = ''; //\n\n this.currentLineWidth = '';\n this.appliedLineWidth = ''; //\n\n this.currentLineCap = '';\n this.appliedLineCap = ''; //\n\n this.currentLineJoin = '';\n this.appliedLineJoin = ''; //\n\n this.appliedMiterLimit = '';\n this.currentMiterLimit = '';\n }\n\n CVContextData.prototype.duplicate = function () {\n var newLength = this._length * 2;\n var i = 0;\n\n for (i = this._length; i < newLength; i += 1) {\n this.stack[i] = new CanvasContext();\n }\n\n this._length = newLength;\n };\n\n CVContextData.prototype.reset = function () {\n this.cArrPos = 0;\n this.cTr.reset();\n this.stack[this.cArrPos].opacity = 1;\n };\n\n CVContextData.prototype.restore = function (forceRestore) {\n this.cArrPos -= 1;\n var currentContext = this.stack[this.cArrPos];\n var transform = currentContext.transform;\n var i;\n var arr = this.cTr.props;\n\n for (i = 0; i < 16; i += 1) {\n arr[i] = transform[i];\n }\n\n if (forceRestore) {\n this.nativeContext.restore();\n var prevStack = this.stack[this.cArrPos + 1];\n this.appliedFillStyle = prevStack.fillStyle;\n this.appliedStrokeStyle = prevStack.strokeStyle;\n this.appliedLineWidth = prevStack.lineWidth;\n this.appliedLineCap = prevStack.lineCap;\n this.appliedLineJoin = prevStack.lineJoin;\n this.appliedMiterLimit = prevStack.miterLimit;\n }\n\n this.nativeContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\n\n if (forceRestore || currentContext.opacity !== -1 && this.currentOpacity !== currentContext.opacity) {\n this.nativeContext.globalAlpha = currentContext.opacity;\n this.currentOpacity = currentContext.opacity;\n }\n\n this.currentFillStyle = currentContext.fillStyle;\n this.currentStrokeStyle = currentContext.strokeStyle;\n this.currentLineWidth = currentContext.lineWidth;\n this.currentLineCap = currentContext.lineCap;\n this.currentLineJoin = currentContext.lineJoin;\n this.currentMiterLimit = currentContext.miterLimit;\n };\n\n CVContextData.prototype.save = function (saveOnNativeFlag) {\n if (saveOnNativeFlag) {\n this.nativeContext.save();\n }\n\n var props = this.cTr.props;\n\n if (this._length <= this.cArrPos) {\n this.duplicate();\n }\n\n var currentStack = this.stack[this.cArrPos];\n var i;\n\n for (i = 0; i < 16; i += 1) {\n currentStack.transform[i] = props[i];\n }\n\n this.cArrPos += 1;\n var newStack = this.stack[this.cArrPos];\n newStack.opacity = currentStack.opacity;\n newStack.fillStyle = currentStack.fillStyle;\n newStack.strokeStyle = currentStack.strokeStyle;\n newStack.lineWidth = currentStack.lineWidth;\n newStack.lineCap = currentStack.lineCap;\n newStack.lineJoin = currentStack.lineJoin;\n newStack.miterLimit = currentStack.miterLimit;\n };\n\n CVContextData.prototype.setOpacity = function (value) {\n this.stack[this.cArrPos].opacity = value;\n };\n\n CVContextData.prototype.setContext = function (value) {\n this.nativeContext = value;\n };\n\n CVContextData.prototype.fillStyle = function (value) {\n if (this.stack[this.cArrPos].fillStyle !== value) {\n this.currentFillStyle = value;\n this.stack[this.cArrPos].fillStyle = value;\n }\n };\n\n CVContextData.prototype.strokeStyle = function (value) {\n if (this.stack[this.cArrPos].strokeStyle !== value) {\n this.currentStrokeStyle = value;\n this.stack[this.cArrPos].strokeStyle = value;\n }\n };\n\n CVContextData.prototype.lineWidth = function (value) {\n if (this.stack[this.cArrPos].lineWidth !== value) {\n this.currentLineWidth = value;\n this.stack[this.cArrPos].lineWidth = value;\n }\n };\n\n CVContextData.prototype.lineCap = function (value) {\n if (this.stack[this.cArrPos].lineCap !== value) {\n this.currentLineCap = value;\n this.stack[this.cArrPos].lineCap = value;\n }\n };\n\n CVContextData.prototype.lineJoin = function (value) {\n if (this.stack[this.cArrPos].lineJoin !== value) {\n this.currentLineJoin = value;\n this.stack[this.cArrPos].lineJoin = value;\n }\n };\n\n CVContextData.prototype.miterLimit = function (value) {\n if (this.stack[this.cArrPos].miterLimit !== value) {\n this.currentMiterLimit = value;\n this.stack[this.cArrPos].miterLimit = value;\n }\n };\n\n CVContextData.prototype.transform = function (props) {\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\n\n var currentTransform = this.cTr; // Applying the last transform value after the new transform to respect the order of transformations\n\n this.transformMat.multiply(currentTransform); // Storing the new transformed value in the stored transform\n\n currentTransform.cloneFromProps(this.transformMat.props);\n var trProps = currentTransform.props; // Applying the new transform to the canvas\n\n this.nativeContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\n };\n\n CVContextData.prototype.opacity = function (op) {\n var currentOpacity = this.stack[this.cArrPos].opacity;\n currentOpacity *= op < 0 ? 0 : op;\n\n if (this.stack[this.cArrPos].opacity !== currentOpacity) {\n if (this.currentOpacity !== op) {\n this.nativeContext.globalAlpha = op;\n this.currentOpacity = op;\n }\n\n this.stack[this.cArrPos].opacity = currentOpacity;\n }\n };\n\n CVContextData.prototype.fill = function (rule) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fill(rule);\n };\n\n CVContextData.prototype.fillRect = function (x, y, w, h) {\n if (this.appliedFillStyle !== this.currentFillStyle) {\n this.appliedFillStyle = this.currentFillStyle;\n this.nativeContext.fillStyle = this.appliedFillStyle;\n }\n\n this.nativeContext.fillRect(x, y, w, h);\n };\n\n CVContextData.prototype.stroke = function () {\n if (this.appliedStrokeStyle !== this.currentStrokeStyle) {\n this.appliedStrokeStyle = this.currentStrokeStyle;\n this.nativeContext.strokeStyle = this.appliedStrokeStyle;\n }\n\n if (this.appliedLineWidth !== this.currentLineWidth) {\n this.appliedLineWidth = this.currentLineWidth;\n this.nativeContext.lineWidth = this.appliedLineWidth;\n }\n\n if (this.appliedLineCap !== this.currentLineCap) {\n this.appliedLineCap = this.currentLineCap;\n this.nativeContext.lineCap = this.appliedLineCap;\n }\n\n if (this.appliedLineJoin !== this.currentLineJoin) {\n this.appliedLineJoin = this.currentLineJoin;\n this.nativeContext.lineJoin = this.appliedLineJoin;\n }\n\n if (this.appliedMiterLimit !== this.currentMiterLimit) {\n this.appliedMiterLimit = this.currentMiterLimit;\n this.nativeContext.miterLimit = this.appliedMiterLimit;\n }\n\n this.nativeContext.stroke();\n };\n\n function CVCompElement(data, globalData, comp) {\n this.completeLayers = false;\n this.layers = data.layers;\n this.pendingElements = [];\n this.elements = createSizedArray(this.layers.length);\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\n\n CVCompElement.prototype.renderInnerContent = function () {\n var ctx = this.canvasContext;\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(this.data.w, 0);\n ctx.lineTo(this.data.w, this.data.h);\n ctx.lineTo(0, this.data.h);\n ctx.lineTo(0, 0);\n ctx.clip();\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.completeLayers || this.elements[i]) {\n this.elements[i].renderFrame();\n }\n }\n };\n\n CVCompElement.prototype.destroy = function () {\n var i;\n var len = this.layers.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n if (this.elements[i]) {\n this.elements[i].destroy();\n }\n }\n\n this.layers = null;\n this.elements = null;\n };\n\n CVCompElement.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function CanvasRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.renderConfig = {\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\n context: config && config.context || null,\n progressiveLoad: config && config.progressiveLoad || false,\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n contentVisibility: config && config.contentVisibility || 'visible',\n className: config && config.className || '',\n id: config && config.id || '',\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.renderConfig.dpr = config && config.dpr || 1;\n\n if (this.animationItem.wrapper) {\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\n }\n\n this.renderedFrame = -1;\n this.globalData = {\n frameNum: -1,\n _mdf: false,\n renderConfig: this.renderConfig,\n currentGlobalAlpha: -1\n };\n this.contextData = new CVContextData();\n this.elements = [];\n this.pendingElements = [];\n this.transformMat = new Matrix();\n this.completeLayers = false;\n this.rendererType = 'canvas';\n\n if (this.renderConfig.clearCanvas) {\n this.ctxTransform = this.contextData.transform.bind(this.contextData);\n this.ctxOpacity = this.contextData.opacity.bind(this.contextData);\n this.ctxFillStyle = this.contextData.fillStyle.bind(this.contextData);\n this.ctxStrokeStyle = this.contextData.strokeStyle.bind(this.contextData);\n this.ctxLineWidth = this.contextData.lineWidth.bind(this.contextData);\n this.ctxLineCap = this.contextData.lineCap.bind(this.contextData);\n this.ctxLineJoin = this.contextData.lineJoin.bind(this.contextData);\n this.ctxMiterLimit = this.contextData.miterLimit.bind(this.contextData);\n this.ctxFill = this.contextData.fill.bind(this.contextData);\n this.ctxFillRect = this.contextData.fillRect.bind(this.contextData);\n this.ctxStroke = this.contextData.stroke.bind(this.contextData);\n this.save = this.contextData.save.bind(this.contextData);\n }\n }\n\n extendPrototype([CanvasRendererBase], CanvasRenderer);\n\n CanvasRenderer.prototype.createComp = function (data) {\n return new CVCompElement(data, this.globalData, this);\n };\n\n function HBaseElement() {}\n\n HBaseElement.prototype = {\n checkBlendMode: function checkBlendMode() {},\n initRendererElement: function initRendererElement() {\n this.baseElement = createTag(this.data.tg || 'div');\n\n if (this.data.hasMask) {\n this.svgElement = createNS('svg');\n this.layerElement = createNS('g');\n this.maskedElement = this.layerElement;\n this.svgElement.appendChild(this.layerElement);\n this.baseElement.appendChild(this.svgElement);\n } else {\n this.layerElement = this.baseElement;\n }\n\n styleDiv(this.baseElement);\n },\n createContainerElements: function createContainerElements() {\n this.renderableEffectsManager = new CVEffects(this);\n this.transformedElement = this.baseElement;\n this.maskedElement = this.layerElement;\n\n if (this.data.ln) {\n this.layerElement.setAttribute('id', this.data.ln);\n }\n\n if (this.data.cl) {\n this.layerElement.setAttribute('class', this.data.cl);\n }\n\n if (this.data.bm !== 0) {\n this.setBlendMode();\n }\n },\n renderElement: function renderElement() {\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\n\n if (this.finalTransform._matMdf) {\n var matrixValue = this.finalTransform.mat.toCSS();\n transformedElementStyle.transform = matrixValue;\n transformedElementStyle.webkitTransform = matrixValue;\n }\n\n if (this.finalTransform._opMdf) {\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\n }\n },\n renderFrame: function renderFrame() {\n // If it is exported as hidden (data.hd === true) no need to render\n // If it is not visible no need to render\n if (this.data.hd || this.hidden) {\n return;\n }\n\n this.renderTransform();\n this.renderRenderable();\n this.renderElement();\n this.renderInnerContent();\n\n if (this._isFirstFrame) {\n this._isFirstFrame = false;\n }\n },\n destroy: function destroy() {\n this.layerElement = null;\n this.transformedElement = null;\n\n if (this.matteElement) {\n this.matteElement = null;\n }\n\n if (this.maskManager) {\n this.maskManager.destroy();\n this.maskManager = null;\n }\n },\n createRenderableComponents: function createRenderableComponents() {\n this.maskManager = new MaskElement(this.data, this, this.globalData);\n },\n addEffects: function addEffects() {},\n setMatte: function setMatte() {}\n };\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\n\n function HSolidElement(data, globalData, comp) {\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\n\n HSolidElement.prototype.createContent = function () {\n var rect;\n\n if (this.data.hasMask) {\n rect = createNS('rect');\n rect.setAttribute('width', this.data.sw);\n rect.setAttribute('height', this.data.sh);\n rect.setAttribute('fill', this.data.sc);\n this.svgElement.setAttribute('width', this.data.sw);\n this.svgElement.setAttribute('height', this.data.sh);\n } else {\n rect = createTag('div');\n rect.style.width = this.data.sw + 'px';\n rect.style.height = this.data.sh + 'px';\n rect.style.backgroundColor = this.data.sc;\n }\n\n this.layerElement.appendChild(rect);\n };\n\n function HShapeElement(data, globalData, comp) {\n // List of drawable elements\n this.shapes = []; // Full shape data\n\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\n\n this.stylesList = []; // List of modifiers that will be applied to shapes\n\n this.shapeModifiers = []; // List of items in shape tree\n\n this.itemsData = []; // List of items in previous shape tree\n\n this.processedElements = []; // List of animated components\n\n this.animatedContents = [];\n this.shapesContainer = createNS('g');\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\n // List of elements that have been created\n\n this.prevViewData = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n }\n\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\n\n HShapeElement.prototype.createContent = function () {\n var cont;\n this.baseElement.style.fontSize = 0;\n\n if (this.data.hasMask) {\n this.layerElement.appendChild(this.shapesContainer);\n cont = this.svgElement;\n } else {\n cont = createNS('svg');\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\n cont.setAttribute('width', size.w);\n cont.setAttribute('height', size.h);\n cont.appendChild(this.shapesContainer);\n this.layerElement.appendChild(cont);\n }\n\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\n this.filterUniqueShapes();\n this.shapeCont = cont;\n };\n\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\n var i;\n var len = transformers.length;\n\n for (i = 0; i < len; i += 1) {\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\n }\n\n return point;\n };\n\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\n var shape = item.sh.v;\n var transformers = item.transformers;\n var i;\n var len = shape._length;\n var vPoint;\n var oPoint;\n var nextIPoint;\n var nextVPoint;\n\n if (len <= 1) {\n return;\n }\n\n for (i = 0; i < len - 1; i += 1) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n\n if (shape.c) {\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\n }\n };\n\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\n var bounds = this.shapeBoundingBox;\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\n };\n\n HShapeElement.prototype.shapeBoundingBox = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n HShapeElement.prototype.tempBoundingBox = {\n x: 0,\n xMax: 0,\n y: 0,\n yMax: 0,\n width: 0,\n height: 0\n };\n\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\n\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\n // eslint-disable-line no-plusplus\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\n c = 3 * p1[i] - 3 * p0[i];\n b |= 0; // eslint-disable-line no-bitwise\n\n a |= 0; // eslint-disable-line no-bitwise\n\n c |= 0; // eslint-disable-line no-bitwise\n\n if (a === 0 && b === 0) {//\n } else if (a === 0) {\n t = -c / b;\n\n if (t > 0 && t < 1) {\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\n }\n } else {\n b2ac = b * b - 4 * c * a;\n\n if (b2ac >= 0) {\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\n }\n }\n }\n\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\n };\n\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\n };\n\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\n var i;\n var len = itemsData.length;\n\n for (i = 0; i < len; i += 1) {\n if (itemsData[i] && itemsData[i].sh) {\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\n } else if (itemsData[i] && itemsData[i].it) {\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\n }\n }\n };\n\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\n var width = 0;\n\n if (widthProperty.keyframes) {\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\n var kfw = widthProperty.keyframes[i].s;\n\n if (kfw > width) {\n width = kfw;\n }\n }\n\n width *= widthProperty.mult;\n } else {\n width = widthProperty.v * widthProperty.mult;\n }\n\n boundingBox.x -= width;\n boundingBox.xMax += width;\n boundingBox.y -= width;\n boundingBox.yMax += width;\n };\n\n HShapeElement.prototype.currentBoxContains = function (box) {\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\n };\n\n HShapeElement.prototype.renderInnerContent = function () {\n this._renderShapeFrame();\n\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\n var tempBoundingBox = this.tempBoundingBox;\n var max = 999999;\n tempBoundingBox.x = max;\n tempBoundingBox.xMax = -max;\n tempBoundingBox.y = max;\n tempBoundingBox.yMax = -max;\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\n\n if (this.currentBoxContains(tempBoundingBox)) {\n return;\n }\n\n var changed = false;\n\n if (this.currentBBox.w !== tempBoundingBox.width) {\n this.currentBBox.w = tempBoundingBox.width;\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\n changed = true;\n }\n\n if (this.currentBBox.h !== tempBoundingBox.height) {\n this.currentBBox.h = tempBoundingBox.height;\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\n changed = true;\n }\n\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\n this.currentBBox.w = tempBoundingBox.width;\n this.currentBBox.h = tempBoundingBox.height;\n this.currentBBox.x = tempBoundingBox.x;\n this.currentBBox.y = tempBoundingBox.y;\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n var shapeStyle = this.shapeCont.style;\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n shapeStyle.transform = shapeTransform;\n shapeStyle.webkitTransform = shapeTransform;\n }\n }\n };\n\n function HTextElement(data, globalData, comp) {\n this.textSpans = [];\n this.textPaths = [];\n this.currentBBox = {\n x: 999999,\n y: -999999,\n h: 0,\n w: 0\n };\n this.renderType = 'svg';\n this.isMasked = false;\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\n\n HTextElement.prototype.createContent = function () {\n this.isMasked = this.checkMasks();\n\n if (this.isMasked) {\n this.renderType = 'svg';\n this.compW = this.comp.data.w;\n this.compH = this.comp.data.h;\n this.svgElement.setAttribute('width', this.compW);\n this.svgElement.setAttribute('height', this.compH);\n var g = createNS('g');\n this.maskedElement.appendChild(g);\n this.innerElem = g;\n } else {\n this.renderType = 'html';\n this.innerElem = this.layerElement;\n }\n\n this.checkParenting();\n };\n\n HTextElement.prototype.buildNewText = function () {\n var documentData = this.textProperty.currentData;\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\n var innerElemStyle = this.innerElem.style;\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\n innerElemStyle.fill = textColor;\n innerElemStyle.color = textColor;\n\n if (documentData.sc) {\n innerElemStyle.stroke = this.buildColor(documentData.sc);\n innerElemStyle.strokeWidth = documentData.sw + 'px';\n }\n\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\n\n if (!this.globalData.fontManager.chars) {\n innerElemStyle.fontSize = documentData.finalSize + 'px';\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\n\n if (fontData.fClass) {\n this.innerElem.className = fontData.fClass;\n } else {\n innerElemStyle.fontFamily = fontData.fFamily;\n var fWeight = documentData.fWeight;\n var fStyle = documentData.fStyle;\n innerElemStyle.fontStyle = fStyle;\n innerElemStyle.fontWeight = fWeight;\n }\n }\n\n var i;\n var len;\n var letters = documentData.l;\n len = letters.length;\n var tSpan;\n var tParent;\n var tCont;\n var matrixHelper = this.mHelper;\n var shapes;\n var shapeStr = '';\n var cnt = 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.globalData.fontManager.chars) {\n if (!this.textPaths[cnt]) {\n tSpan = createNS('path');\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\n tSpan.setAttribute('stroke-miterlimit', '4');\n } else {\n tSpan = this.textPaths[cnt];\n }\n\n if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tCont = tParent.children[0];\n } else {\n tParent = createTag('div');\n tParent.style.lineHeight = 0;\n tCont = createNS('svg');\n tCont.appendChild(tSpan);\n styleDiv(tParent);\n }\n }\n } else if (!this.isMasked) {\n if (this.textSpans[cnt]) {\n tParent = this.textSpans[cnt];\n tSpan = this.textPaths[cnt];\n } else {\n tParent = createTag('span');\n styleDiv(tParent);\n tSpan = createTag('span');\n styleDiv(tSpan);\n tParent.appendChild(tSpan);\n }\n } else {\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\n } // tSpan.setAttribute('visibility', 'hidden');\n\n\n if (this.globalData.fontManager.chars) {\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\n var shapeData;\n\n if (charData) {\n shapeData = charData.data;\n } else {\n shapeData = null;\n }\n\n matrixHelper.reset();\n\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\n shapes = shapeData.shapes[0].it;\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\n shapeStr = this.createPathShape(matrixHelper, shapes);\n tSpan.setAttribute('d', shapeStr);\n }\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent);\n\n if (shapeData && shapeData.shapes) {\n // document.body.appendChild is needed to get exact measure of shape\n document.body.appendChild(tCont);\n var boundingBox = tCont.getBBox();\n tCont.setAttribute('width', boundingBox.width + 2);\n tCont.setAttribute('height', boundingBox.height + 2);\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\n var tContStyle = tCont.style;\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\n tContStyle.transform = tContTranslation;\n tContStyle.webkitTransform = tContTranslation;\n letters[i].yOffset = boundingBox.y - 1;\n } else {\n tCont.setAttribute('width', 1);\n tCont.setAttribute('height', 1);\n }\n\n tParent.appendChild(tCont);\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } else {\n tSpan.textContent = letters[i].val;\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\n\n if (!this.isMasked) {\n this.innerElem.appendChild(tParent); //\n\n var tStyle = tSpan.style;\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\n tStyle.transform = tSpanTranslation;\n tStyle.webkitTransform = tSpanTranslation;\n } else {\n this.innerElem.appendChild(tSpan);\n }\n } //\n\n\n if (!this.isMasked) {\n this.textSpans[cnt] = tParent;\n } else {\n this.textSpans[cnt] = tSpan;\n }\n\n this.textSpans[cnt].style.display = 'block';\n this.textPaths[cnt] = tSpan;\n cnt += 1;\n }\n\n while (cnt < this.textSpans.length) {\n this.textSpans[cnt].style.display = 'none';\n cnt += 1;\n }\n };\n\n HTextElement.prototype.renderInnerContent = function () {\n this.validateText();\n var svgStyle;\n\n if (this.data.singleShape) {\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\n return;\n }\n\n if (this.isMasked && this.finalTransform._matMdf) {\n // Todo Benchmark if using this is better than getBBox\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\n svgStyle = this.svgElement.style;\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\n svgStyle.transform = translation;\n svgStyle.webkitTransform = translation;\n }\n }\n\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\n\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\n return;\n }\n\n var i;\n var len;\n var count = 0;\n var renderedLetters = this.textAnimator.renderedLetters;\n var letters = this.textProperty.currentData.l;\n len = letters.length;\n var renderedLetter;\n var textSpan;\n var textPath;\n\n for (i = 0; i < len; i += 1) {\n if (letters[i].n) {\n count += 1;\n } else {\n textSpan = this.textSpans[i];\n textPath = this.textPaths[i];\n renderedLetter = renderedLetters[count];\n count += 1;\n\n if (renderedLetter._mdf.m) {\n if (!this.isMasked) {\n textSpan.style.webkitTransform = renderedLetter.m;\n textSpan.style.transform = renderedLetter.m;\n } else {\n textSpan.setAttribute('transform', renderedLetter.m);\n }\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\n\n\n textSpan.style.opacity = renderedLetter.o;\n\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\n textPath.setAttribute('stroke-width', renderedLetter.sw);\n }\n\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\n textPath.setAttribute('stroke', renderedLetter.sc);\n }\n\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\n textPath.setAttribute('fill', renderedLetter.fc);\n textPath.style.color = renderedLetter.fc;\n }\n }\n }\n\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\n var boundingBox = this.innerElem.getBBox();\n\n if (this.currentBBox.w !== boundingBox.width) {\n this.currentBBox.w = boundingBox.width;\n this.svgElement.setAttribute('width', boundingBox.width);\n }\n\n if (this.currentBBox.h !== boundingBox.height) {\n this.currentBBox.h = boundingBox.height;\n this.svgElement.setAttribute('height', boundingBox.height);\n }\n\n var margin = 1;\n\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\n this.currentBBox.w = boundingBox.width + margin * 2;\n this.currentBBox.h = boundingBox.height + margin * 2;\n this.currentBBox.x = boundingBox.x - margin;\n this.currentBBox.y = boundingBox.y - margin;\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\n svgStyle = this.svgElement.style;\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\n svgStyle.transform = svgTransform;\n svgStyle.webkitTransform = svgTransform;\n }\n }\n };\n\n function HCameraElement(data, globalData, comp) {\n this.initFrame();\n this.initBaseData(data, globalData, comp);\n this.initHierarchy();\n var getProp = PropertyFactory.getProp;\n this.pe = getProp(this, data.pe, 0, 0, this);\n\n if (data.ks.p.s) {\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\n } else {\n this.p = getProp(this, data.ks.p, 1, 0, this);\n }\n\n if (data.ks.a) {\n this.a = getProp(this, data.ks.a, 1, 0, this);\n }\n\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\n var i;\n var len = data.ks.or.k.length;\n\n for (i = 0; i < len; i += 1) {\n data.ks.or.k[i].to = null;\n data.ks.or.k[i].ti = null;\n }\n }\n\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\n this.or.sh = true;\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\n this.mat = new Matrix();\n this._prevMat = new Matrix();\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\n\n this.finalTransform = {\n mProp: this\n };\n }\n\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\n\n HCameraElement.prototype.setup = function () {\n var i;\n var len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n // [perspectiveElem,container]\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n perspectiveStyle = comp.perspectiveElem.style;\n containerStyle = comp.container.style;\n var perspective = this.pe.v + 'px';\n var origin = '0px 0px 0px';\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n perspectiveStyle.perspective = perspective;\n perspectiveStyle.webkitPerspective = perspective;\n containerStyle.transformOrigin = origin;\n containerStyle.mozTransformOrigin = origin;\n containerStyle.webkitTransformOrigin = origin;\n perspectiveStyle.transform = matrix;\n perspectiveStyle.webkitTransform = matrix;\n }\n }\n };\n\n HCameraElement.prototype.createElements = function () {};\n\n HCameraElement.prototype.hide = function () {};\n\n HCameraElement.prototype.renderFrame = function () {\n var _mdf = this._isFirstFrame;\n var i;\n var len;\n\n if (this.hierarchy) {\n len = this.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\n }\n }\n\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\n this.mat.reset();\n\n if (this.hierarchy) {\n len = this.hierarchy.length - 1;\n\n for (i = len; i >= 0; i -= 1) {\n var mTransf = this.hierarchy[i].finalTransform.mProp;\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\n }\n }\n\n if (this.p) {\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\n } else {\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\n }\n\n if (this.a) {\n var diffVector;\n\n if (this.p) {\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\n } else {\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\n }\n\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\n\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\n }\n\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\n this.mat.translate(0, 0, this.pe.v);\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\n\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\n len = this.comp.threeDElements.length;\n var comp;\n var perspectiveStyle;\n var containerStyle;\n\n for (i = 0; i < len; i += 1) {\n comp = this.comp.threeDElements[i];\n\n if (comp.type === '3d') {\n if (hasMatrixChanged) {\n var matValue = this.mat.toCSS();\n containerStyle = comp.container.style;\n containerStyle.transform = matValue;\n containerStyle.webkitTransform = matValue;\n }\n\n if (this.pe._mdf) {\n perspectiveStyle = comp.perspectiveElem.style;\n perspectiveStyle.perspective = this.pe.v + 'px';\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\n }\n }\n }\n\n this.mat.clone(this._prevMat);\n }\n }\n\n this._isFirstFrame = false;\n };\n\n HCameraElement.prototype.prepareFrame = function (num) {\n this.prepareProperties(num, true);\n };\n\n HCameraElement.prototype.destroy = function () {};\n\n HCameraElement.prototype.getBaseElement = function () {\n return null;\n };\n\n function HImageElement(data, globalData, comp) {\n this.assetData = globalData.getAssetData(data.refId);\n this.initElement(data, globalData, comp);\n }\n\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\n\n HImageElement.prototype.createContent = function () {\n var assetPath = this.globalData.getAssetsPath(this.assetData);\n var img = new Image();\n\n if (this.data.hasMask) {\n this.imageElem = createNS('image');\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\n this.layerElement.appendChild(this.imageElem);\n this.baseElement.setAttribute('width', this.assetData.w);\n this.baseElement.setAttribute('height', this.assetData.h);\n } else {\n this.layerElement.appendChild(img);\n }\n\n img.crossOrigin = 'anonymous';\n img.src = assetPath;\n\n if (this.data.ln) {\n this.baseElement.setAttribute('id', this.data.ln);\n }\n };\n\n function HybridRendererBase(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n }\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([BaseRenderer], HybridRendererBase);\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\n\n HybridRendererBase.prototype.checkPendingElements = function () {\n while (this.pendingElements.length) {\n var element = this.pendingElements.pop();\n element.checkParenting();\n }\n };\n\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\n var newDOMElement = element.getBaseElement();\n\n if (!newDOMElement) {\n return;\n }\n\n var layer = this.layers[pos];\n\n if (!layer.ddd || !this.supports3d) {\n if (this.threeDElements) {\n this.addTo3dContainer(newDOMElement, pos);\n } else {\n var i = 0;\n var nextDOMElement;\n var nextLayer;\n var tmpDOMElement;\n\n while (i < pos) {\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\n nextLayer = this.elements[i];\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\n nextDOMElement = tmpDOMElement || nextDOMElement;\n }\n\n i += 1;\n }\n\n if (nextDOMElement) {\n if (!layer.ddd || !this.supports3d) {\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\n }\n } else if (!layer.ddd || !this.supports3d) {\n this.layerElement.appendChild(newDOMElement);\n }\n }\n } else {\n this.addTo3dContainer(newDOMElement, pos);\n }\n };\n\n HybridRendererBase.prototype.createShape = function (data) {\n if (!this.supports3d) {\n return new SVGShapeElement(data, this.globalData, this);\n }\n\n return new HShapeElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createText = function (data) {\n if (!this.supports3d) {\n return new SVGTextLottieElement(data, this.globalData, this);\n }\n\n return new HTextElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createCamera = function (data) {\n this.camera = new HCameraElement(data, this.globalData, this);\n return this.camera;\n };\n\n HybridRendererBase.prototype.createImage = function (data) {\n if (!this.supports3d) {\n return new IImageElement(data, this.globalData, this);\n }\n\n return new HImageElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createSolid = function (data) {\n if (!this.supports3d) {\n return new ISolidElement(data, this.globalData, this);\n }\n\n return new HSolidElement(data, this.globalData, this);\n };\n\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\n\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\n return this.threeDElements[i].perspectiveElem;\n }\n\n i += 1;\n }\n\n return null;\n };\n\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\n var perspectiveElem = createTag('div');\n var style;\n var containerStyle;\n styleDiv(perspectiveElem);\n var container = createTag('div');\n styleDiv(container);\n\n if (type === '3d') {\n style = perspectiveElem.style;\n style.width = this.globalData.compSize.w + 'px';\n style.height = this.globalData.compSize.h + 'px';\n var center = '50% 50%';\n style.webkitTransformOrigin = center;\n style.mozTransformOrigin = center;\n style.transformOrigin = center;\n containerStyle = container.style;\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\n containerStyle.transform = matrix;\n containerStyle.webkitTransform = matrix;\n }\n\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\n\n var threeDContainerData = {\n container: container,\n perspectiveElem: perspectiveElem,\n startPos: pos,\n endPos: pos,\n type: type\n };\n this.threeDElements.push(threeDContainerData);\n return threeDContainerData;\n };\n\n HybridRendererBase.prototype.build3dContainers = function () {\n var i;\n var len = this.layers.length;\n var lastThreeDContainerData;\n var currentContainer = '';\n\n for (i = 0; i < len; i += 1) {\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\n if (currentContainer !== '3d') {\n currentContainer = '3d';\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n } else {\n if (currentContainer !== '2d') {\n currentContainer = '2d';\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\n }\n\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\n }\n }\n\n len = this.threeDElements.length;\n\n for (i = len - 1; i >= 0; i -= 1) {\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\n }\n };\n\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\n var i = 0;\n var len = this.threeDElements.length;\n\n while (i < len) {\n if (pos <= this.threeDElements[i].endPos) {\n var j = this.threeDElements[i].startPos;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.threeDElements[i].container.insertBefore(elem, nextElement);\n } else {\n this.threeDElements[i].container.appendChild(elem);\n }\n\n break;\n }\n\n i += 1;\n }\n };\n\n HybridRendererBase.prototype.configAnimation = function (animData) {\n var resizerElem = createTag('div');\n var wrapper = this.animationItem.wrapper;\n var style = resizerElem.style;\n style.width = animData.w + 'px';\n style.height = animData.h + 'px';\n this.resizerElem = resizerElem;\n styleDiv(resizerElem);\n style.transformStyle = 'flat';\n style.mozTransformStyle = 'flat';\n style.webkitTransformStyle = 'flat';\n\n if (this.renderConfig.className) {\n resizerElem.setAttribute('class', this.renderConfig.className);\n }\n\n wrapper.appendChild(resizerElem);\n style.overflow = 'hidden';\n var svg = createNS('svg');\n svg.setAttribute('width', '1');\n svg.setAttribute('height', '1');\n styleDiv(svg);\n this.resizerElem.appendChild(svg);\n var defs = createNS('defs');\n svg.appendChild(defs);\n this.data = animData; // Mask animation\n\n this.setupGlobalData(animData, svg);\n this.globalData.defs = defs;\n this.layers = animData.layers;\n this.layerElement = this.resizerElem;\n this.build3dContainers();\n this.updateContainerSize();\n };\n\n HybridRendererBase.prototype.destroy = function () {\n if (this.animationItem.wrapper) {\n this.animationItem.wrapper.innerText = '';\n }\n\n this.animationItem.container = null;\n this.globalData.defs = null;\n var i;\n var len = this.layers ? this.layers.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (this.elements[i] && this.elements[i].destroy) {\n this.elements[i].destroy();\n }\n }\n\n this.elements.length = 0;\n this.destroyed = true;\n this.animationItem = null;\n };\n\n HybridRendererBase.prototype.updateContainerSize = function () {\n var elementWidth = this.animationItem.wrapper.offsetWidth;\n var elementHeight = this.animationItem.wrapper.offsetHeight;\n var elementRel = elementWidth / elementHeight;\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\n var sx;\n var sy;\n var tx;\n var ty;\n\n if (animationRel > elementRel) {\n sx = elementWidth / this.globalData.compSize.w;\n sy = elementWidth / this.globalData.compSize.w;\n tx = 0;\n ty = (elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2;\n } else {\n sx = elementHeight / this.globalData.compSize.h;\n sy = elementHeight / this.globalData.compSize.h;\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\n ty = 0;\n }\n\n var style = this.resizerElem.style;\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\n style.transform = style.webkitTransform;\n };\n\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\n\n HybridRendererBase.prototype.hide = function () {\n this.resizerElem.style.display = 'none';\n };\n\n HybridRendererBase.prototype.show = function () {\n this.resizerElem.style.display = 'block';\n };\n\n HybridRendererBase.prototype.initItems = function () {\n this.buildAllItems();\n\n if (this.camera) {\n this.camera.setup();\n } else {\n var cWidth = this.globalData.compSize.w;\n var cHeight = this.globalData.compSize.h;\n var i;\n var len = this.threeDElements.length;\n\n for (i = 0; i < len; i += 1) {\n var style = this.threeDElements[i].perspectiveElem.style;\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\n style.perspective = style.webkitPerspective;\n }\n }\n };\n\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\n var i;\n var len = assets.length;\n var floatingContainer = createTag('div');\n\n for (i = 0; i < len; i += 1) {\n if (assets[i].xt) {\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\n comp.initExpressions();\n this.globalData.projectInterface.registerComposition(comp);\n }\n }\n };\n\n function HCompElement(data, globalData, comp) {\n this.layers = data.layers;\n this.supports3d = !data.hasMask;\n this.completeLayers = false;\n this.pendingElements = [];\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\n this.initElement(data, globalData, comp);\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\n _placeholder: true\n };\n }\n\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\n\n HCompElement.prototype.createContainerElements = function () {\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\n\n\n if (this.data.hasMask) {\n this.svgElement.setAttribute('width', this.data.w);\n this.svgElement.setAttribute('height', this.data.h);\n this.transformedElement = this.baseElement;\n } else {\n this.transformedElement = this.layerElement;\n }\n };\n\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\n var j = 0;\n var nextElement;\n\n while (j < pos) {\n if (this.elements[j] && this.elements[j].getBaseElement) {\n nextElement = this.elements[j].getBaseElement();\n }\n\n j += 1;\n }\n\n if (nextElement) {\n this.layerElement.insertBefore(elem, nextElement);\n } else {\n this.layerElement.appendChild(elem);\n }\n };\n\n HCompElement.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n function HybridRenderer(animationItem, config) {\n this.animationItem = animationItem;\n this.layers = null;\n this.renderedFrame = -1;\n this.renderConfig = {\n className: config && config.className || '',\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\n hideOnTransparent: !(config && config.hideOnTransparent === false),\n filterSize: {\n width: config && config.filterSize && config.filterSize.width || '400%',\n height: config && config.filterSize && config.filterSize.height || '400%',\n x: config && config.filterSize && config.filterSize.x || '-100%',\n y: config && config.filterSize && config.filterSize.y || '-100%'\n },\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\n };\n this.globalData = {\n _mdf: false,\n frameNum: -1,\n renderConfig: this.renderConfig\n };\n this.pendingElements = [];\n this.elements = [];\n this.threeDElements = [];\n this.destroyed = false;\n this.camera = null;\n this.supports3d = true;\n this.rendererType = 'html';\n }\n\n extendPrototype([HybridRendererBase], HybridRenderer);\n\n HybridRenderer.prototype.createComp = function (data) {\n if (!this.supports3d) {\n return new SVGCompElement(data, this.globalData, this);\n }\n\n return new HCompElement(data, this.globalData, this);\n };\n\n var CompExpressionInterface = function () {\n return function (comp) {\n function _thisLayerFunction(name) {\n var i = 0;\n var len = comp.layers.length;\n\n while (i < len) {\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\n return comp.elements[i].layerInterface;\n }\n\n i += 1;\n }\n\n return null; // return {active:false};\n }\n\n Object.defineProperty(_thisLayerFunction, '_name', {\n value: comp.data.nm\n });\n _thisLayerFunction.layer = _thisLayerFunction;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\n _thisLayerFunction.pixelAspect = 1;\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\n _thisLayerFunction.displayStartTime = 0;\n _thisLayerFunction.numLayers = comp.layers.length;\n return _thisLayerFunction;\n };\n }();\n\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\n\n /* eslint-disable */\n\n /*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\n function seedRandom(pool, math) {\n //\n // The following constants are related to IEEE 754 limits.\n //\n var global = this,\n width = 256,\n // each RC4 output is 0 <= x < 256\n chunks = 6,\n // at least six RC4 outputs for each double\n digits = 52,\n // there are 52 significant digits in a double\n rngname = 'random',\n // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n //\n // seedrandom()\n // This is the seedrandom function described above.\n //\n\n function seedrandom(seed, options, callback) {\n var key = [];\n options = options === true ? {\n entropy: true\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\n\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\n\n var arc4 = new ARC4(key); // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n\n var prng = function prng() {\n var n = arc4.g(chunks),\n // Start with a numerator n < 2 ^ 48\n d = startdenom,\n // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n\n while (n < significance) {\n // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n\n d *= width; // denominator and generating a\n\n x = arc4.g(1); // new least-significant-byte.\n }\n\n while (n >= overflow) {\n // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n\n d /= 2; // right using integer math until\n\n x >>>= 1; // we have exactly the desired bits.\n }\n\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function () {\n return arc4.g(4) | 0;\n };\n\n prng.quick = function () {\n return arc4.g(4) / 0x100000000;\n };\n\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\n\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\n\n return (options.pass || callback || function (prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) {\n copy(state, arc4);\n } // Only provide the .state method if requested via options.state.\n\n\n prng.state = function () {\n return copy(arc4, {});\n };\n } // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n\n\n if (is_math_call) {\n math[rngname] = prng;\n return seed;\n } // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\n }\n\n math['seed' + rngname] = seedrandom; //\n // ARC4\n //\n // An ARC4 implementation. The constructor takes a key in the form of\n // an array of at most (width) integers that should be 0 <= x < (width).\n //\n // The g(count) method returns a pseudorandom integer that concatenates\n // the next (count) outputs from ARC4. Its return value is a number x\n // that is in the range 0 <= x < (width ^ count).\n //\n\n function ARC4(key) {\n var t,\n keylen = key.length,\n me = this,\n i = 0,\n j = me.i = me.j = 0,\n s = me.S = []; // The empty key [] is treated as [0].\n\n if (!keylen) {\n key = [keylen++];\n } // Set up S using the standard key scheduling algorithm.\n\n\n while (i < width) {\n s[i] = i++;\n }\n\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & j + key[i % keylen] + (t = s[i])];\n s[j] = t;\n } // The \"g\" method returns the next (count) outputs as one number.\n\n\n me.g = function (count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t,\n r = 0,\n i = me.i,\n j = me.j,\n s = me.S;\n\n while (count--) {\n t = s[i = mask & i + 1];\n r = r * width + s[mask & (s[i] = s[j = mask & j + t]) + (s[j] = t)];\n }\n\n me.i = i;\n me.j = j;\n return r; // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n };\n } //\n // copy()\n // Copies internal state of ARC4 to or from a plain object.\n //\n\n\n function copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n } //\n // flatten()\n // Converts an object tree to nested arrays of strings.\n //\n\n\n function flatten(obj, depth) {\n var result = [],\n typ = _typeof$2(obj),\n prop;\n\n if (depth && typ == 'object') {\n for (prop in obj) {\n try {\n result.push(flatten(obj[prop], depth - 1));\n } catch (e) {}\n }\n }\n\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\n } //\n // mixkey()\n // Mixes a string seed into a key that is an array of integers, and\n // returns a shortened string seed that is equivalent to the result key.\n //\n\n\n function mixkey(seed, key) {\n var stringseed = seed + '',\n smear,\n j = 0;\n\n while (j < stringseed.length) {\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\n }\n\n return tostring(key);\n } //\n // autoseed()\n // Returns an object for autoseeding, using window.crypto and Node crypto\n // module if available.\n //\n\n\n function autoseed() {\n try {\n if (nodecrypto) {\n return tostring(nodecrypto.randomBytes(width));\n }\n\n var out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\n }\n } //\n // tostring()\n // Converts an array of charcodes to a string\n //\n\n\n function tostring(a) {\n return String.fromCharCode.apply(0, a);\n } //\n // When seedrandom.js is loaded, we immediately mix a few bits\n // from the built-in RNG into the entropy pool. Because we do\n // not want to interfere with deterministic PRNG state later,\n // seedrandom will not call math.random on its own again after\n // initialization.\n //\n\n\n mixkey(math.random(), pool); //\n // Nodejs and AMD support: export the implementation as a module using\n // either convention.\n //\n // End anonymous scope, and pass initial values.\n }\n\n ;\n\n function initialize$2(BMMath) {\n seedRandom([], BMMath);\n }\n\n var propTypes = {\n SHAPE: 'shape'\n };\n\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\n\n var ExpressionManager = function () {\n 'use strict';\n\n var ob = {};\n var Math = BMMath;\n var window = null;\n var document = null;\n var XMLHttpRequest = null;\n var fetch = null;\n var frames = null;\n var _lottieGlobal = {};\n initialize$2(BMMath);\n\n function resetFrame() {\n _lottieGlobal = {};\n }\n\n function $bm_isInstanceOfArray(arr) {\n return arr.constructor === Array || arr.constructor === Float32Array;\n }\n\n function isNumerable(tOfV, v) {\n return tOfV === 'number' || v instanceof Number || tOfV === 'boolean' || tOfV === 'string';\n }\n\n function $bm_neg(a) {\n var tOfA = _typeof$1(a);\n\n if (tOfA === 'number' || a instanceof Number || tOfA === 'boolean') {\n return -a;\n }\n\n if ($bm_isInstanceOfArray(a)) {\n var i;\n var lenA = a.length;\n var retArr = [];\n\n for (i = 0; i < lenA; i += 1) {\n retArr[i] = -a[i];\n }\n\n return retArr;\n }\n\n if (a.propType) {\n return a.v;\n }\n\n return -a;\n }\n\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\n\n function sum(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b) || tOfA === 'string' || tOfB === 'string') {\n return a + b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] += b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a + b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] + b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n var add = sum;\n\n function sub(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n if (tOfA === 'string') {\n a = parseInt(a, 10);\n }\n\n if (tOfB === 'string') {\n b = parseInt(b, 10);\n }\n\n return a - b;\n }\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n a = a.slice(0);\n a[0] -= b;\n return a;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n b = b.slice(0);\n b[0] = a - b[0];\n return b;\n }\n\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\n var i = 0;\n var lenA = a.length;\n var lenB = b.length;\n var retArr = [];\n\n while (i < lenA || i < lenB) {\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\n retArr[i] = a[i] - b[i];\n } else {\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\n }\n\n i += 1;\n }\n\n return retArr;\n }\n\n return 0;\n }\n\n function mul(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a * b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] * b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a * b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function div(a, b) {\n var tOfA = _typeof$1(a);\n\n var tOfB = _typeof$1(b);\n\n var arr;\n\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\n return a / b;\n }\n\n var i;\n var len;\n\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\n len = a.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a[i] / b;\n }\n\n return arr;\n }\n\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\n len = b.length;\n arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = a / b[i];\n }\n\n return arr;\n }\n\n return 0;\n }\n\n function mod(a, b) {\n if (typeof a === 'string') {\n a = parseInt(a, 10);\n }\n\n if (typeof b === 'string') {\n b = parseInt(b, 10);\n }\n\n return a % b;\n }\n\n var $bm_sum = sum;\n var $bm_sub = sub;\n var $bm_mul = mul;\n var $bm_div = div;\n var $bm_mod = mod;\n\n function clamp(num, min, max) {\n if (min > max) {\n var mm = max;\n max = min;\n min = mm;\n }\n\n return Math.min(Math.max(num, min), max);\n }\n\n function radiansToDegrees(val) {\n return val / degToRads;\n }\n\n var radians_to_degrees = radiansToDegrees;\n\n function degreesToRadians(val) {\n return val * degToRads;\n }\n\n var degrees_to_radians = radiansToDegrees;\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\n\n function length(arr1, arr2) {\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\n arr2 = arr2 || 0;\n return Math.abs(arr1 - arr2);\n }\n\n if (!arr2) {\n arr2 = helperLengthArray;\n }\n\n var i;\n var len = Math.min(arr1.length, arr2.length);\n var addedLength = 0;\n\n for (i = 0; i < len; i += 1) {\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\n }\n\n return Math.sqrt(addedLength);\n }\n\n function normalize(vec) {\n return div(vec, length(vec));\n }\n\n function rgbToHsl(val) {\n var r = val[0];\n var g = val[1];\n var b = val[2];\n var max = Math.max(r, g, b);\n var min = Math.min(r, g, b);\n var h;\n var s;\n var l = (max + min) / 2;\n\n if (max === min) {\n h = 0; // achromatic\n\n s = 0; // achromatic\n } else {\n var d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n switch (max) {\n case r:\n h = (g - b) / d + (g < b ? 6 : 0);\n break;\n\n case g:\n h = (b - r) / d + 2;\n break;\n\n case b:\n h = (r - g) / d + 4;\n break;\n\n default:\n break;\n }\n\n h /= 6;\n }\n\n return [h, s, l, val[3]];\n }\n\n function hue2rgb(p, q, t) {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n }\n\n function hslToRgb(val) {\n var h = val[0];\n var s = val[1];\n var l = val[2];\n var r;\n var g;\n var b;\n\n if (s === 0) {\n r = l; // achromatic\n\n b = l; // achromatic\n\n g = l; // achromatic\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return [r, g, b, val[3]];\n }\n\n function linear(t, tMin, tMax, value1, value2) {\n if (value1 === undefined || value2 === undefined) {\n value1 = tMin;\n value2 = tMax;\n tMin = 0;\n tMax = 1;\n }\n\n if (tMax < tMin) {\n var _tMin = tMax;\n tMax = tMin;\n tMin = _tMin;\n }\n\n if (t <= tMin) {\n return value1;\n }\n\n if (t >= tMax) {\n return value2;\n }\n\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\n\n if (!value1.length) {\n return value1 + (value2 - value1) * perc;\n }\n\n var i;\n var len = value1.length;\n var arr = createTypedArray('float32', len);\n\n for (i = 0; i < len; i += 1) {\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\n }\n\n return arr;\n }\n\n function random(min, max) {\n if (max === undefined) {\n if (min === undefined) {\n min = 0;\n max = 1;\n } else {\n max = min;\n min = undefined;\n }\n }\n\n if (max.length) {\n var i;\n var len = max.length;\n\n if (!min) {\n min = createTypedArray('float32', len);\n }\n\n var arr = createTypedArray('float32', len);\n var rnd = BMMath.random();\n\n for (i = 0; i < len; i += 1) {\n arr[i] = min[i] + rnd * (max[i] - min[i]);\n }\n\n return arr;\n }\n\n if (min === undefined) {\n min = 0;\n }\n\n var rndm = BMMath.random();\n return min + rndm * (max - min);\n }\n\n function createPath(points, inTangents, outTangents, closed) {\n var i;\n var len = points.length;\n var path = shapePool.newElement();\n path.setPathData(!!closed, len);\n var arrPlaceholder = [0, 0];\n var inVertexPoint;\n var outVertexPoint;\n\n for (i = 0; i < len; i += 1) {\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\n }\n\n return path;\n }\n\n function initiateExpression(elem, data, property) {\n // Bail out if we don't want expressions\n function noOp(_value) {\n return _value;\n }\n\n if (!elem.globalData.renderConfig.runExpressions) {\n return noOp;\n }\n\n var val = data.x;\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\n\n var _needsRandom = val.indexOf('random') !== -1;\n\n var elemType = elem.data.ty;\n var transform;\n var $bm_transform;\n var content;\n var effect;\n var thisProperty = property;\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\n Object.defineProperty(thisProperty, 'value', {\n get: function get() {\n return thisProperty.v;\n }\n });\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\n elem.comp.displayStartTime = 0;\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\n var width = elem.data.sw ? elem.data.sw : 0;\n var height = elem.data.sh ? elem.data.sh : 0;\n var name = elem.data.nm;\n var loopIn;\n var loop_in;\n var loopOut;\n var loop_out;\n var smooth;\n var toWorld;\n var fromWorld;\n var fromComp;\n var toComp;\n var fromCompToSurface;\n var position;\n var rotation;\n var anchorPoint;\n var scale;\n var thisLayer;\n var thisComp;\n var mask;\n var valueAtTime;\n var velocityAtTime;\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\n\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\n\n var numKeys = property.kf ? data.k.length : 0;\n var active = !this.data || this.data.hd !== true;\n\n var wiggle = function wiggle(freq, amp) {\n var iWiggle;\n var j;\n var lenWiggle = this.pv.length ? this.pv.length : 1;\n var addedAmps = createTypedArray('float32', lenWiggle);\n freq = 5;\n var iterations = Math.floor(time * freq);\n iWiggle = 0;\n j = 0;\n\n while (iWiggle < iterations) {\n // var rnd = BMMath.random();\n for (j = 0; j < lenWiggle; j += 1) {\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\n }\n\n iWiggle += 1;\n } // var rnd2 = BMMath.random();\n\n\n var periods = time * freq;\n var perc = periods - Math.floor(periods);\n var arr = createTypedArray('float32', lenWiggle);\n\n if (lenWiggle > 1) {\n for (j = 0; j < lenWiggle; j += 1) {\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\n }\n\n return arr;\n }\n\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\n }.bind(this);\n\n if (thisProperty.loopIn) {\n loopIn = thisProperty.loopIn.bind(thisProperty);\n loop_in = loopIn;\n }\n\n if (thisProperty.loopOut) {\n loopOut = thisProperty.loopOut.bind(thisProperty);\n loop_out = loopOut;\n }\n\n if (thisProperty.smooth) {\n smooth = thisProperty.smooth.bind(thisProperty);\n }\n\n function loopInDuration(type, duration) {\n return loopIn(type, duration, true);\n }\n\n function loopOutDuration(type, duration) {\n return loopOut(type, duration, true);\n }\n\n if (this.getValueAtTime) {\n valueAtTime = this.getValueAtTime.bind(this);\n }\n\n if (this.getVelocityAtTime) {\n velocityAtTime = this.getVelocityAtTime.bind(this);\n }\n\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\n\n function lookAt(elem1, elem2) {\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\n return [yaw, pitch, 0];\n }\n\n function easeOut(t, tMin, tMax, val1, val2) {\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\n }\n\n function easeIn(t, tMin, tMax, val1, val2) {\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\n }\n\n function ease(t, tMin, tMax, val1, val2) {\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\n }\n\n function applyEase(fn, t, tMin, tMax, val1, val2) {\n if (val1 === undefined) {\n val1 = tMin;\n val2 = tMax;\n } else {\n t = (t - tMin) / (tMax - tMin);\n }\n\n if (t > 1) {\n t = 1;\n } else if (t < 0) {\n t = 0;\n }\n\n var mult = fn(t);\n\n if ($bm_isInstanceOfArray(val1)) {\n var iKey;\n var lenKey = val1.length;\n var arr = createTypedArray('float32', lenKey);\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\n }\n\n return arr;\n }\n\n return (val2 - val1) * mult + val1;\n }\n\n function nearestKey(time) {\n var iKey;\n var lenKey = data.k.length;\n var index;\n var keyTime;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n index = 0;\n keyTime = 0;\n } else {\n index = -1;\n time *= elem.comp.globalData.frameRate;\n\n if (time < data.k[0].t) {\n index = 1;\n keyTime = data.k[0].t;\n } else {\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\n if (time === data.k[iKey].t) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n break;\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\n index = iKey + 2;\n keyTime = data.k[iKey + 1].t;\n } else {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n\n break;\n }\n }\n\n if (index === -1) {\n index = iKey + 1;\n keyTime = data.k[iKey].t;\n }\n }\n }\n\n var obKey = {};\n obKey.index = index;\n obKey.time = keyTime / elem.comp.globalData.frameRate;\n return obKey;\n }\n\n function key(ind) {\n var obKey;\n var iKey;\n var lenKey;\n\n if (!data.k.length || typeof data.k[0] === 'number') {\n throw new Error('The property has no keyframe at index ' + ind);\n }\n\n ind -= 1;\n obKey = {\n time: data.k[ind].t / elem.comp.globalData.frameRate,\n value: []\n };\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\n lenKey = arr.length;\n\n for (iKey = 0; iKey < lenKey; iKey += 1) {\n obKey[iKey] = arr[iKey];\n obKey.value[iKey] = arr[iKey];\n }\n\n return obKey;\n }\n\n function framesToTime(fr, fps) {\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return fr / fps;\n }\n\n function timeToFrames(t, fps) {\n if (!t && t !== 0) {\n t = time;\n }\n\n if (!fps) {\n fps = elem.comp.globalData.frameRate;\n }\n\n return t * fps;\n }\n\n function seedRandom(seed) {\n BMMath.seedrandom(randSeed + seed);\n }\n\n function sourceRectAtTime() {\n return elem.sourceRectAtTime();\n }\n\n function substring(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substring(init);\n }\n\n return value.substring(init, end);\n }\n\n return '';\n }\n\n function substr(init, end) {\n if (typeof value === 'string') {\n if (end === undefined) {\n return value.substr(init);\n }\n\n return value.substr(init, end);\n }\n\n return '';\n }\n\n function posterizeTime(framesPerSecond) {\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\n value = valueAtTime(time);\n }\n\n var time;\n var velocity;\n var value;\n var text;\n var textIndex;\n var textTotal;\n var selectorValue;\n var index = elem.data.ind;\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n var parent;\n var randSeed = Math.floor(Math.random() * 1000000);\n var globalData = elem.globalData;\n\n function executeExpression(_value) {\n // globalData.pushExpression();\n value = _value;\n\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\n return value;\n }\n\n if (this.propType === 'textSelector') {\n textIndex = this.textIndex;\n textTotal = this.textTotal;\n selectorValue = this.selectorValue;\n }\n\n if (!thisLayer) {\n text = elem.layerInterface.text;\n thisLayer = elem.layerInterface;\n thisComp = elem.comp.compInterface;\n toWorld = thisLayer.toWorld.bind(thisLayer);\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\n fromComp = thisLayer.fromComp.bind(thisLayer);\n toComp = thisLayer.toComp.bind(thisLayer);\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\n fromCompToSurface = fromComp;\n }\n\n if (!transform) {\n transform = elem.layerInterface('ADBE Transform Group');\n $bm_transform = transform;\n\n if (transform) {\n anchorPoint = transform.anchorPoint;\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\n }\n }\n\n if (elemType === 4 && !content) {\n content = thisLayer('ADBE Root Vectors Group');\n }\n\n if (!effect) {\n effect = thisLayer(4);\n }\n\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\n\n if (hasParent && !parent) {\n parent = elem.hierarchy[0].layerInterface;\n }\n\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\n\n if (_needsRandom) {\n seedRandom(randSeed + time);\n }\n\n if (needsVelocity) {\n velocity = velocityAtTime(time);\n }\n\n expression_function();\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\n // Changed this to a ternary operation because Rollup failed compiling it correctly\n\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\n return scoped_bm_rt;\n } // Bundlers will see these as dead code and unless we reference them\n\n\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\n return executeExpression;\n }\n\n ob.initiateExpression = initiateExpression;\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath, _lottieGlobal];\n ob.resetFrame = resetFrame;\n return ob;\n }();\n\n var Expressions = function () {\n var ob = {};\n ob.initExpressions = initExpressions;\n ob.resetFrame = ExpressionManager.resetFrame;\n\n function initExpressions(animation) {\n var stackCount = 0;\n var registers = [];\n\n function pushExpression() {\n stackCount += 1;\n }\n\n function popExpression() {\n stackCount -= 1;\n\n if (stackCount === 0) {\n releaseInstances();\n }\n }\n\n function registerExpressionProperty(expression) {\n if (registers.indexOf(expression) === -1) {\n registers.push(expression);\n }\n }\n\n function releaseInstances() {\n var i;\n var len = registers.length;\n\n for (i = 0; i < len; i += 1) {\n registers[i].release();\n }\n\n registers.length = 0;\n }\n\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\n animation.renderer.globalData.pushExpression = pushExpression;\n animation.renderer.globalData.popExpression = popExpression;\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\n }\n\n return ob;\n }();\n\n var MaskManagerInterface = function () {\n function MaskInterface(mask, data) {\n this._mask = mask;\n this._data = data;\n }\n\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\n get: function get() {\n if (this._mask.prop.k) {\n this._mask.prop.getValue();\n }\n\n return this._mask.prop;\n }\n });\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\n get: function get() {\n if (this._mask.op.k) {\n this._mask.op.getValue();\n }\n\n return this._mask.op.v * 100;\n }\n });\n\n var MaskManager = function MaskManager(maskManager) {\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\n\n var i;\n var len = maskManager.viewData.length;\n\n for (i = 0; i < len; i += 1) {\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\n }\n\n var maskFunction = function maskFunction(name) {\n i = 0;\n\n while (i < len) {\n if (maskManager.masksProperties[i].nm === name) {\n return _masksInterfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n return maskFunction;\n };\n\n return MaskManager;\n }();\n\n var ExpressionPropertyInterface = function () {\n var defaultUnidimensionalValue = {\n pv: 0,\n v: 0,\n mult: 1\n };\n var defaultMultidimensionalValue = {\n pv: [0, 0, 0],\n v: [0, 0, 0],\n mult: 1\n };\n\n function completeProperty(expressionValue, property, type) {\n Object.defineProperty(expressionValue, 'velocity', {\n get: function get() {\n return property.getVelocityAtTime(property.comp.currentFrame);\n }\n });\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\n\n expressionValue.key = function (pos) {\n if (!expressionValue.numKeys) {\n return 0;\n }\n\n var value = '';\n\n if ('s' in property.keyframes[pos - 1]) {\n value = property.keyframes[pos - 1].s;\n } else if ('e' in property.keyframes[pos - 2]) {\n value = property.keyframes[pos - 2].e;\n } else {\n value = property.keyframes[pos - 2].s;\n }\n\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\n\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\n valueProp.value = type === 'unidimensional' ? value[0] : value;\n return valueProp;\n };\n\n expressionValue.valueAtTime = property.getValueAtTime;\n expressionValue.speedAtTime = property.getSpeedAtTime;\n expressionValue.velocityAtTime = property.getVelocityAtTime;\n expressionValue.propertyGroup = property.propertyGroup;\n }\n\n function UnidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultUnidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var val = property.pv * mult;\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n val = property.v * mult;\n\n if (expressionValue.value !== val) {\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\n\n expressionValue.value = val;\n completeProperty(expressionValue, property, 'unidimensional');\n }\n\n return expressionValue;\n };\n }\n\n function MultidimensionalPropertyInterface(property) {\n if (!property || !('pv' in property)) {\n property = defaultMultidimensionalValue;\n }\n\n var mult = 1 / property.mult;\n var len = property.data && property.data.l || property.pv.length;\n var expressionValue = createTypedArray('float32', len);\n var arrValue = createTypedArray('float32', len);\n expressionValue.value = arrValue;\n completeProperty(expressionValue, property, 'multidimensional');\n return function () {\n if (property.k) {\n property.getValue();\n }\n\n for (var i = 0; i < len; i += 1) {\n arrValue[i] = property.v[i] * mult;\n expressionValue[i] = arrValue[i];\n }\n\n return expressionValue;\n };\n } // TODO: try to avoid using this getter\n\n\n function defaultGetter() {\n return defaultUnidimensionalValue;\n }\n\n return function (property) {\n if (!property) {\n return defaultGetter;\n }\n\n if (property.propType === 'unidimensional') {\n return UnidimensionalPropertyInterface(property);\n }\n\n return MultidimensionalPropertyInterface(property);\n };\n }();\n\n var TransformExpressionInterface = function () {\n return function (transform) {\n function _thisFunction(name) {\n switch (name) {\n case 'scale':\n case 'Scale':\n case 'ADBE Scale':\n case 6:\n return _thisFunction.scale;\n\n case 'rotation':\n case 'Rotation':\n case 'ADBE Rotation':\n case 'ADBE Rotate Z':\n case 10:\n return _thisFunction.rotation;\n\n case 'ADBE Rotate X':\n return _thisFunction.xRotation;\n\n case 'ADBE Rotate Y':\n return _thisFunction.yRotation;\n\n case 'position':\n case 'Position':\n case 'ADBE Position':\n case 2:\n return _thisFunction.position;\n\n case 'ADBE Position_0':\n return _thisFunction.xPosition;\n\n case 'ADBE Position_1':\n return _thisFunction.yPosition;\n\n case 'ADBE Position_2':\n return _thisFunction.zPosition;\n\n case 'anchorPoint':\n case 'AnchorPoint':\n case 'Anchor Point':\n case 'ADBE AnchorPoint':\n case 1:\n return _thisFunction.anchorPoint;\n\n case 'opacity':\n case 'Opacity':\n case 11:\n return _thisFunction.opacity;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisFunction, 'rotation', {\n get: ExpressionPropertyInterface(transform.r || transform.rz)\n });\n Object.defineProperty(_thisFunction, 'zRotation', {\n get: ExpressionPropertyInterface(transform.rz || transform.r)\n });\n Object.defineProperty(_thisFunction, 'xRotation', {\n get: ExpressionPropertyInterface(transform.rx)\n });\n Object.defineProperty(_thisFunction, 'yRotation', {\n get: ExpressionPropertyInterface(transform.ry)\n });\n Object.defineProperty(_thisFunction, 'scale', {\n get: ExpressionPropertyInterface(transform.s)\n });\n\n var _px;\n\n var _py;\n\n var _pz;\n\n var _transformFactory;\n\n if (transform.p) {\n _transformFactory = ExpressionPropertyInterface(transform.p);\n } else {\n _px = ExpressionPropertyInterface(transform.px);\n _py = ExpressionPropertyInterface(transform.py);\n\n if (transform.pz) {\n _pz = ExpressionPropertyInterface(transform.pz);\n }\n }\n\n Object.defineProperty(_thisFunction, 'position', {\n get: function get() {\n if (transform.p) {\n return _transformFactory();\n }\n\n return [_px(), _py(), _pz ? _pz() : 0];\n }\n });\n Object.defineProperty(_thisFunction, 'xPosition', {\n get: ExpressionPropertyInterface(transform.px)\n });\n Object.defineProperty(_thisFunction, 'yPosition', {\n get: ExpressionPropertyInterface(transform.py)\n });\n Object.defineProperty(_thisFunction, 'zPosition', {\n get: ExpressionPropertyInterface(transform.pz)\n });\n Object.defineProperty(_thisFunction, 'anchorPoint', {\n get: ExpressionPropertyInterface(transform.a)\n });\n Object.defineProperty(_thisFunction, 'opacity', {\n get: ExpressionPropertyInterface(transform.o)\n });\n Object.defineProperty(_thisFunction, 'skew', {\n get: ExpressionPropertyInterface(transform.sk)\n });\n Object.defineProperty(_thisFunction, 'skewAxis', {\n get: ExpressionPropertyInterface(transform.sa)\n });\n Object.defineProperty(_thisFunction, 'orientation', {\n get: ExpressionPropertyInterface(transform.or)\n });\n return _thisFunction;\n };\n }();\n\n var LayerExpressionInterface = function () {\n function getMatrix(time) {\n var toWorldMat = new Matrix();\n\n if (time !== undefined) {\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\n\n propMatrix.clone(toWorldMat);\n } else {\n var transformMat = this._elem.finalTransform.mProp;\n transformMat.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat;\n }\n\n function toWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.applyPoint(toWorldMat, arr);\n }\n\n function toWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.applyPoint(toWorldMat, arr);\n }\n\n function fromWorldVec(arr, time) {\n var toWorldMat = this.getMatrix(time);\n toWorldMat.props[12] = 0;\n toWorldMat.props[13] = 0;\n toWorldMat.props[14] = 0;\n return this.invertPoint(toWorldMat, arr);\n }\n\n function fromWorld(arr, time) {\n var toWorldMat = this.getMatrix(time);\n return this.invertPoint(toWorldMat, arr);\n }\n\n function applyPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\n }\n\n function invertPoint(matrix, arr) {\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\n }\n }\n\n return matrix.inversePoint(arr);\n }\n\n function fromComp(arr) {\n var toWorldMat = new Matrix();\n toWorldMat.reset();\n\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\n\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\n var i;\n var len = this._elem.hierarchy.length;\n\n for (i = 0; i < len; i += 1) {\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n return toWorldMat.inversePoint(arr);\n }\n\n function sampleImage() {\n return [1, 1, 1, 1];\n }\n\n return function (elem) {\n var transformInterface;\n\n function _registerMaskInterface(maskManager) {\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\n }\n\n function _registerEffectsInterface(effects) {\n _thisLayerFunction.effect = effects;\n }\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Root Vectors Group':\n case 'Contents':\n case 2:\n return _thisLayerFunction.shapeInterface;\n\n case 1:\n case 6:\n case 'Transform':\n case 'transform':\n case 'ADBE Transform Group':\n return transformInterface;\n\n case 4:\n case 'ADBE Effect Parade':\n case 'effects':\n case 'Effects':\n return _thisLayerFunction.effect;\n\n case 'ADBE Text Properties':\n return _thisLayerFunction.textInterface;\n\n default:\n return null;\n }\n }\n\n _thisLayerFunction.getMatrix = getMatrix;\n _thisLayerFunction.invertPoint = invertPoint;\n _thisLayerFunction.applyPoint = applyPoint;\n _thisLayerFunction.toWorld = toWorld;\n _thisLayerFunction.toWorldVec = toWorldVec;\n _thisLayerFunction.fromWorld = fromWorld;\n _thisLayerFunction.fromWorldVec = fromWorldVec;\n _thisLayerFunction.toComp = toWorld;\n _thisLayerFunction.fromComp = fromComp;\n _thisLayerFunction.sampleImage = sampleImage;\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\n _thisLayerFunction._elem = elem;\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\n Object.defineProperties(_thisLayerFunction, {\n hasParent: {\n get: function get() {\n return elem.hierarchy.length;\n }\n },\n parent: {\n get: function get() {\n return elem.hierarchy[0].layerInterface;\n }\n },\n rotation: getDescriptor(transformInterface, 'rotation'),\n scale: getDescriptor(transformInterface, 'scale'),\n position: getDescriptor(transformInterface, 'position'),\n opacity: getDescriptor(transformInterface, 'opacity'),\n anchorPoint: anchorPointDescriptor,\n anchor_point: anchorPointDescriptor,\n transform: {\n get: function get() {\n return transformInterface;\n }\n },\n active: {\n get: function get() {\n return elem.isInRange;\n }\n }\n });\n _thisLayerFunction.startTime = elem.data.st;\n _thisLayerFunction.index = elem.data.ind;\n _thisLayerFunction.source = elem.data.refId;\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\n _thisLayerFunction._name = elem.data.nm;\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\n return _thisLayerFunction;\n };\n }();\n\n var propertyGroupFactory = function () {\n return function (interfaceFunction, parentPropertyGroup) {\n return function (val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return parentPropertyGroup(val - 1);\n };\n };\n }();\n\n var PropertyInterface = function () {\n return function (propertyName, propertyGroup) {\n var interfaceFunction = {\n _name: propertyName\n };\n\n function _propertyGroup(val) {\n val = val === undefined ? 1 : val;\n\n if (val <= 0) {\n return interfaceFunction;\n }\n\n return propertyGroup(val - 1);\n }\n\n return _propertyGroup;\n };\n }();\n\n var EffectsExpressionInterface = function () {\n var ob = {\n createEffectsInterface: createEffectsInterface\n };\n\n function createEffectsInterface(elem, propertyGroup) {\n if (elem.effectsManager) {\n var effectElements = [];\n var effectsData = elem.data.ef;\n var i;\n var len = elem.effectsManager.effectElements.length;\n\n for (i = 0; i < len; i += 1) {\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\n }\n\n var effects = elem.data.ef || [];\n\n var groupInterface = function groupInterface(name) {\n i = 0;\n len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n return effectElements[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n Object.defineProperty(groupInterface, 'numProperties', {\n get: function get() {\n return effects.length;\n }\n });\n return groupInterface;\n }\n\n return null;\n }\n\n function createGroupInterface(data, elements, propertyGroup, elem) {\n function groupInterface(name) {\n var effects = data.ef;\n var i = 0;\n var len = effects.length;\n\n while (i < len) {\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\n if (effects[i].ty === 5) {\n return effectElements[i];\n }\n\n return effectElements[i]();\n }\n\n i += 1;\n }\n\n throw new Error();\n }\n\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\n\n var effectElements = [];\n var i;\n var len = data.ef.length;\n\n for (i = 0; i < len; i += 1) {\n if (data.ef[i].ty === 5) {\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\n } else {\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\n }\n }\n\n if (data.mn === 'ADBE Color Control') {\n Object.defineProperty(groupInterface, 'color', {\n get: function get() {\n return effectElements[0]();\n }\n });\n }\n\n Object.defineProperties(groupInterface, {\n numProperties: {\n get: function get() {\n return data.np;\n }\n },\n _name: {\n value: data.nm\n },\n propertyGroup: {\n value: _propertyGroup\n }\n });\n groupInterface.enabled = data.en !== 0;\n groupInterface.active = groupInterface.enabled;\n return groupInterface;\n }\n\n function createValueInterface(element, type, elem, propertyGroup) {\n var expressionProperty = ExpressionPropertyInterface(element.p);\n\n function interfaceFunction() {\n if (type === 10) {\n return elem.comp.compInterface(element.p.v);\n }\n\n return expressionProperty();\n }\n\n if (element.p.setGroupProperty) {\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\n }\n\n return interfaceFunction;\n }\n\n return ob;\n }();\n\n var ShapePathInterface = function () {\n return function pathInterfaceFactory(shape, view, propertyGroup) {\n var prop = view.sh;\n\n function interfaceFunction(val) {\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\n return interfaceFunction.path;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n path: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n shape: {\n get: function get() {\n if (prop.k) {\n prop.getValue();\n }\n\n return prop;\n }\n },\n _name: {\n value: shape.nm\n },\n ix: {\n value: shape.ix\n },\n propertyIndex: {\n value: shape.ix\n },\n mn: {\n value: shape.mn\n },\n propertyGroup: {\n value: propertyGroup\n }\n });\n return interfaceFunction;\n };\n }();\n\n var ShapeExpressionInterface = function () {\n function iterateElements(shapes, view, propertyGroup) {\n var arr = [];\n var i;\n var len = shapes ? shapes.length : 0;\n\n for (i = 0; i < len; i += 1) {\n if (shapes[i].ty === 'gr') {\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'fl') {\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'st') {\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tm') {\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\n } else if (shapes[i].ty === 'el') {\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sr') {\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'sh') {\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rc') {\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rd') {\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'rp') {\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else if (shapes[i].ty === 'gf') {\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\n } else {\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\n }\n }\n\n return arr;\n }\n\n function contentsInterfaceFactory(shape, view, propertyGroup) {\n var interfaces;\n\n var interfaceFunction = function _interfaceFunction(value) {\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n if (typeof value === 'number') {\n return interfaces[value - 1];\n }\n\n return null;\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\n interfaceFunction.numProperties = interfaces.length;\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.transform = transformInterface;\n interfaceFunction.propertyIndex = shape.cix;\n interfaceFunction._name = shape.nm;\n return interfaceFunction;\n }\n\n function groupInterfaceFactory(shape, view, propertyGroup) {\n var interfaceFunction = function _interfaceFunction(value) {\n switch (value) {\n case 'ADBE Vectors Group':\n case 'Contents':\n case 2:\n return interfaceFunction.content;\n // Not necessary for now. Keeping them here in case a new case appears\n // case 'ADBE Vector Transform Group':\n // case 3:\n\n default:\n return interfaceFunction.transform;\n }\n };\n\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\n interfaceFunction.content = content;\n interfaceFunction.transform = transformInterface;\n Object.defineProperty(interfaceFunction, '_name', {\n get: function get() {\n return shape.nm;\n }\n }); // interfaceFunction.content = interfaceFunction;\n\n interfaceFunction.numProperties = shape.np;\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.nm = shape.nm;\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function fillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === 'Start Point' || val === 'start point') {\n return interfaceFunction.startPoint;\n }\n\n if (val === 'End Point' || val === 'end point') {\n return interfaceFunction.endPoint;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n startPoint: {\n get: ExpressionPropertyInterface(view.s)\n },\n endPoint: {\n get: ExpressionPropertyInterface(view.e)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n type: {\n get: function get() {\n return 'a';\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\n return interfaceFunction;\n }\n\n function defaultInterfaceFactory() {\n function interfaceFunction() {\n return null;\n }\n\n return interfaceFunction;\n }\n\n function strokeInterfaceFactory(shape, view, propertyGroup) {\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\n\n function addPropertyToDashOb(i) {\n Object.defineProperty(dashOb, shape.d[i].nm, {\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\n });\n }\n\n var i;\n var len = shape.d ? shape.d.length : 0;\n var dashOb = {};\n\n for (i = 0; i < len; i += 1) {\n addPropertyToDashOb(i);\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\n }\n\n function interfaceFunction(val) {\n if (val === 'Color' || val === 'color') {\n return interfaceFunction.color;\n }\n\n if (val === 'Opacity' || val === 'opacity') {\n return interfaceFunction.opacity;\n }\n\n if (val === 'Stroke Width' || val === 'stroke width') {\n return interfaceFunction.strokeWidth;\n }\n\n return null;\n }\n\n Object.defineProperties(interfaceFunction, {\n color: {\n get: ExpressionPropertyInterface(view.c)\n },\n opacity: {\n get: ExpressionPropertyInterface(view.o)\n },\n strokeWidth: {\n get: ExpressionPropertyInterface(view.w)\n },\n dash: {\n get: function get() {\n return dashOb;\n }\n },\n _name: {\n value: shape.nm\n },\n mn: {\n value: shape.mn\n }\n });\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\n return interfaceFunction;\n }\n\n function trimInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(val) {\n if (val === shape.e.ix || val === 'End' || val === 'end') {\n return interfaceFunction.end;\n }\n\n if (val === shape.s.ix) {\n return interfaceFunction.start;\n }\n\n if (val === shape.o.ix) {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n interfaceFunction.propertyIndex = shape.ix;\n interfaceFunction.propertyGroup = propertyGroup;\n Object.defineProperties(interfaceFunction, {\n start: {\n get: ExpressionPropertyInterface(view.s)\n },\n end: {\n get: ExpressionPropertyInterface(view.e)\n },\n offset: {\n get: ExpressionPropertyInterface(view.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function transformInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.a.ix === value || value === 'Anchor Point') {\n return interfaceFunction.anchorPoint;\n }\n\n if (shape.o.ix === value || value === 'Opacity') {\n return interfaceFunction.opacity;\n }\n\n if (shape.p.ix === value || value === 'Position') {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\n return interfaceFunction.rotation;\n }\n\n if (shape.s.ix === value || value === 'Scale') {\n return interfaceFunction.scale;\n }\n\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\n return interfaceFunction.skew;\n }\n\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\n return interfaceFunction.skewAxis;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (view.transform.mProps.sk) {\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\n }\n\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n opacity: {\n get: ExpressionPropertyInterface(view.transform.mProps.o)\n },\n position: {\n get: ExpressionPropertyInterface(view.transform.mProps.p)\n },\n anchorPoint: {\n get: ExpressionPropertyInterface(view.transform.mProps.a)\n },\n scale: {\n get: ExpressionPropertyInterface(view.transform.mProps.s)\n },\n rotation: {\n get: ExpressionPropertyInterface(view.transform.mProps.r)\n },\n skew: {\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\n },\n skewAxis: {\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.ty = 'tr';\n interfaceFunction.mn = shape.mn;\n interfaceFunction.propertyGroup = propertyGroup;\n return interfaceFunction;\n }\n\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.s.ix === value) {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n interfaceFunction.propertyIndex = shape.ix;\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function starInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.rotation;\n }\n\n if (shape.pt.ix === value) {\n return interfaceFunction.points;\n }\n\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\n return interfaceFunction.outerRadius;\n }\n\n if (shape.os.ix === value) {\n return interfaceFunction.outerRoundness;\n }\n\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\n return interfaceFunction.innerRadius;\n }\n\n if (shape.is && shape.is.ix === value) {\n return interfaceFunction.innerRoundness;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n\n if (shape.ir) {\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\n }\n\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n rotation: {\n get: ExpressionPropertyInterface(prop.r)\n },\n points: {\n get: ExpressionPropertyInterface(prop.pt)\n },\n outerRadius: {\n get: ExpressionPropertyInterface(prop.or)\n },\n outerRoundness: {\n get: ExpressionPropertyInterface(prop.os)\n },\n innerRadius: {\n get: ExpressionPropertyInterface(prop.ir)\n },\n innerRoundness: {\n get: ExpressionPropertyInterface(prop.is)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function rectInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.p.ix === value) {\n return interfaceFunction.position;\n }\n\n if (shape.r.ix === value) {\n return interfaceFunction.roundness;\n }\n\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\n return interfaceFunction.size;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\n interfaceFunction.propertyIndex = shape.ix;\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n position: {\n get: ExpressionPropertyInterface(prop.p)\n },\n roundness: {\n get: ExpressionPropertyInterface(prop.r)\n },\n size: {\n get: ExpressionPropertyInterface(prop.s)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function roundedInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.r.ix === value || value === 'Round Corners 1') {\n return interfaceFunction.radius;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n radius: {\n get: ExpressionPropertyInterface(prop.rd)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\n function interfaceFunction(value) {\n if (shape.c.ix === value || value === 'Copies') {\n return interfaceFunction.copies;\n }\n\n if (shape.o.ix === value || value === 'Offset') {\n return interfaceFunction.offset;\n }\n\n return null;\n }\n\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\n\n var prop = view;\n interfaceFunction.propertyIndex = shape.ix;\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\n Object.defineProperties(interfaceFunction, {\n copies: {\n get: ExpressionPropertyInterface(prop.c)\n },\n offset: {\n get: ExpressionPropertyInterface(prop.o)\n },\n _name: {\n value: shape.nm\n }\n });\n interfaceFunction.mn = shape.mn;\n return interfaceFunction;\n }\n\n return function (shapes, view, propertyGroup) {\n var interfaces;\n\n function _interfaceFunction(value) {\n if (typeof value === 'number') {\n value = value === undefined ? 1 : value;\n\n if (value === 0) {\n return propertyGroup;\n }\n\n return interfaces[value - 1];\n }\n\n var i = 0;\n var len = interfaces.length;\n\n while (i < len) {\n if (interfaces[i]._name === value) {\n return interfaces[i];\n }\n\n i += 1;\n }\n\n return null;\n }\n\n function parentGroupWrapper() {\n return propertyGroup;\n }\n\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\n _interfaceFunction.numProperties = interfaces.length;\n _interfaceFunction._name = 'Contents';\n return _interfaceFunction;\n };\n }();\n\n var TextExpressionInterface = function () {\n return function (elem) {\n var _sourceText;\n\n function _thisLayerFunction(name) {\n switch (name) {\n case 'ADBE Text Document':\n return _thisLayerFunction.sourceText;\n\n default:\n return null;\n }\n }\n\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\n get: function get() {\n elem.textProperty.getValue();\n var stringValue = elem.textProperty.currentData.t;\n\n if (!_sourceText || stringValue !== _sourceText.value) {\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\n\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\n\n Object.defineProperty(_sourceText, 'style', {\n get: function get() {\n return {\n fillColor: elem.textProperty.currentData.fc\n };\n }\n });\n }\n\n return _sourceText;\n }\n });\n return _thisLayerFunction;\n };\n }();\n\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n var FootageInterface = function () {\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\n var currentPropertyName = '';\n var currentProperty = elem.getFootageData();\n\n function init() {\n currentPropertyName = '';\n currentProperty = elem.getFootageData();\n return searchProperty;\n }\n\n function searchProperty(value) {\n if (currentProperty[value]) {\n currentPropertyName = value;\n currentProperty = currentProperty[value];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n var propertyNameIndex = value.indexOf(currentPropertyName);\n\n if (propertyNameIndex !== -1) {\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\n currentProperty = currentProperty[index];\n\n if (_typeof(currentProperty) === 'object') {\n return searchProperty;\n }\n\n return currentProperty;\n }\n\n return '';\n }\n\n return init;\n };\n\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\n function interfaceFunction(value) {\n if (value === 'Outline') {\n return interfaceFunction.outlineInterface();\n }\n\n return null;\n }\n\n interfaceFunction._name = 'Outline';\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\n return interfaceFunction;\n };\n\n return function (elem) {\n function _interfaceFunction(value) {\n if (value === 'Data') {\n return _interfaceFunction.dataInterface;\n }\n\n return null;\n }\n\n _interfaceFunction._name = 'Data';\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\n return _interfaceFunction;\n };\n }();\n\n var interfaces = {\n layer: LayerExpressionInterface,\n effects: EffectsExpressionInterface,\n comp: CompExpressionInterface,\n shape: ShapeExpressionInterface,\n text: TextExpressionInterface,\n footage: FootageInterface\n };\n\n function getInterface(type) {\n return interfaces[type] || null;\n }\n\n var expressionHelpers = function () {\n function searchExpressions(elem, data, prop) {\n if (data.x) {\n prop.k = true;\n prop.x = true;\n prop.initiateExpression = ExpressionManager.initiateExpression;\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\n }\n }\n\n function getValueAtTime(frameNum) {\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastFrame) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\n this._cachingAtTime.lastFrame = frameNum;\n }\n\n return this._cachingAtTime.value;\n }\n\n function getSpeedAtTime(frameNum) {\n var delta = -0.01;\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var speed = 0;\n\n if (v1.length) {\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n speed += Math.pow(v2[i] - v1[i], 2);\n }\n\n speed = Math.sqrt(speed) * 100;\n } else {\n speed = 0;\n }\n\n return speed;\n }\n\n function getVelocityAtTime(frameNum) {\n if (this.vel !== undefined) {\n return this.vel;\n }\n\n var delta = -0.001; // frameNum += this.elem.data.st;\n\n var v1 = this.getValueAtTime(frameNum);\n var v2 = this.getValueAtTime(frameNum + delta);\n var velocity;\n\n if (v1.length) {\n velocity = createTypedArray('float32', v1.length);\n var i;\n\n for (i = 0; i < v1.length; i += 1) {\n // removing frameRate\n // if needed, don't add it here\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\n velocity[i] = (v2[i] - v1[i]) / delta;\n }\n } else {\n velocity = (v2 - v1) / delta;\n }\n\n return velocity;\n }\n\n function getStaticValueAtTime() {\n return this.pv;\n }\n\n function setGroupProperty(propertyGroup) {\n this.propertyGroup = propertyGroup;\n }\n\n return {\n searchExpressions: searchExpressions,\n getSpeedAtTime: getSpeedAtTime,\n getVelocityAtTime: getVelocityAtTime,\n getValueAtTime: getValueAtTime,\n getStaticValueAtTime: getStaticValueAtTime,\n setGroupProperty: setGroupProperty\n };\n }();\n\n function addPropertyDecorator() {\n function loopOut(type, duration, durationFlag) {\n if (!this.k || !this.keyframes) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\n\n if (currentFrame <= lastKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var firstKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\n } else {\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\n }\n\n firstKeyFrame = lastKeyFrame - cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (iterations % 2 !== 0) {\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\n }\n\n return ret;\n }\n\n return (endV - initV) * repeats + current;\n } else if (type === 'continue') {\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(lastValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\n }\n\n return ret;\n }\n\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\n }\n\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function loopIn(type, duration, durationFlag) {\n if (!this.k) {\n return this.pv;\n }\n\n type = type ? type.toLowerCase() : '';\n var currentFrame = this.comp.renderedFrame;\n var keyframes = this.keyframes;\n var firstKeyFrame = keyframes[0].t;\n\n if (currentFrame >= firstKeyFrame) {\n return this.pv;\n }\n\n var cycleDuration;\n var lastKeyFrame;\n\n if (!durationFlag) {\n if (!duration || duration > keyframes.length - 1) {\n duration = keyframes.length - 1;\n }\n\n lastKeyFrame = keyframes[duration].t;\n cycleDuration = lastKeyFrame - firstKeyFrame;\n } else {\n if (!duration) {\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\n } else {\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\n }\n\n lastKeyFrame = firstKeyFrame + cycleDuration;\n }\n\n var i;\n var len;\n var ret;\n\n if (type === 'pingpong') {\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\n\n if (iterations % 2 === 0) {\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n } else if (type === 'offset') {\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\n\n if (this.pv.length) {\n ret = new Array(initV.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\n }\n\n return ret;\n }\n\n return current - (endV - initV) * repeats;\n } else if (type === 'continue') {\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\n\n if (this.pv.length) {\n ret = new Array(firstValue.length);\n len = ret.length;\n\n for (i = 0; i < len; i += 1) {\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return ret;\n }\n\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\n }\n\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\n }\n\n function smooth(width, samples) {\n if (!this.k) {\n return this.pv;\n }\n\n width = (width || 0.4) * 0.5;\n samples = Math.floor(samples || 5);\n\n if (samples <= 1) {\n return this.pv;\n }\n\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\n var initFrame = currentTime - width;\n var endFrame = currentTime + width;\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\n var i = 0;\n var j = 0;\n var value;\n\n if (this.pv.length) {\n value = createTypedArray('float32', this.pv.length);\n } else {\n value = 0;\n }\n\n var sampleValue;\n\n while (i < samples) {\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] += sampleValue[j];\n }\n } else {\n value += sampleValue;\n }\n\n i += 1;\n }\n\n if (this.pv.length) {\n for (j = 0; j < this.pv.length; j += 1) {\n value[j] /= samples;\n }\n } else {\n value /= samples;\n }\n\n return value;\n }\n\n function getTransformValueAtTime(time) {\n if (!this._transformCachingAtTime) {\n this._transformCachingAtTime = {\n v: new Matrix()\n };\n } /// /\n\n\n var matrix = this._transformCachingAtTime.v;\n matrix.cloneFromProps(this.pre.props);\n\n if (this.appliedTransformations < 1) {\n var anchor = this.a.getValueAtTime(time);\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\n }\n\n if (this.appliedTransformations < 2) {\n var scale = this.s.getValueAtTime(time);\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\n }\n\n if (this.sk && this.appliedTransformations < 3) {\n var skew = this.sk.getValueAtTime(time);\n var skewAxis = this.sa.getValueAtTime(time);\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\n }\n\n if (this.r && this.appliedTransformations < 4) {\n var rotation = this.r.getValueAtTime(time);\n matrix.rotate(-rotation * this.r.mult);\n } else if (!this.r && this.appliedTransformations < 4) {\n var rotationZ = this.rz.getValueAtTime(time);\n var rotationY = this.ry.getValueAtTime(time);\n var rotationX = this.rx.getValueAtTime(time);\n var orientation = this.or.getValueAtTime(time);\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\n }\n\n if (this.data.p && this.data.p.s) {\n var positionX = this.px.getValueAtTime(time);\n var positionY = this.py.getValueAtTime(time);\n\n if (this.data.p.z) {\n var positionZ = this.pz.getValueAtTime(time);\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\n } else {\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\n }\n } else {\n var position = this.p.getValueAtTime(time);\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\n }\n\n return matrix; /// /\n }\n\n function getTransformStaticValueAtTime() {\n return this.v.clone(new Matrix());\n }\n\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\n\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\n var prop = getTransformProperty(elem, data, container);\n\n if (prop.dynamicProperties.length) {\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n return prop;\n };\n\n var propertyGetProp = PropertyFactory.getProp;\n\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\n // prop.loopOut = loopOut;\n // prop.loopIn = loopIn;\n\n if (prop.kf) {\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\n } else {\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\n }\n\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\n prop.loopOut = loopOut;\n prop.loopIn = loopIn;\n prop.smooth = smooth;\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\n prop.numKeys = data.a === 1 ? data.k.length : 0;\n prop.propertyIndex = data.ix;\n var value = 0;\n\n if (type !== 0) {\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\n }\n\n prop._cachingAtTime = {\n lastFrame: initialDefaultFrame,\n lastIndex: 0,\n value: value\n };\n expressionHelpers.searchExpressions(elem, data, prop);\n\n if (prop.k) {\n container.addDynamicProperty(prop);\n }\n\n return prop;\n };\n\n function getShapeValueAtTime(frameNum) {\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\n if (!this._cachingAtTime) {\n this._cachingAtTime = {\n shapeValue: shapePool.clone(this.pv),\n lastIndex: 0,\n lastTime: initialDefaultFrame\n };\n }\n\n frameNum *= this.elem.globalData.frameRate;\n frameNum -= this.offsetTime;\n\n if (frameNum !== this._cachingAtTime.lastTime) {\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\n this._cachingAtTime.lastTime = frameNum;\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\n }\n\n return this._cachingAtTime.shapeValue;\n }\n\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\n\n function ShapeExpressions() {}\n\n ShapeExpressions.prototype = {\n vertices: function vertices(prop, time) {\n if (this.k) {\n this.getValue();\n }\n\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n var i;\n var len = shapePath._length;\n var vertices = shapePath[prop];\n var points = shapePath.v;\n var arr = createSizedArray(len);\n\n for (i = 0; i < len; i += 1) {\n if (prop === 'i' || prop === 'o') {\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\n } else {\n arr[i] = [vertices[i][0], vertices[i][1]];\n }\n }\n\n return arr;\n },\n points: function points(time) {\n return this.vertices('v', time);\n },\n inTangents: function inTangents(time) {\n return this.vertices('i', time);\n },\n outTangents: function outTangents(time) {\n return this.vertices('o', time);\n },\n isClosed: function isClosed() {\n return this.v.c;\n },\n pointOnPath: function pointOnPath(perc, time) {\n var shapePath = this.v;\n\n if (time !== undefined) {\n shapePath = this.getValueAtTime(time, 0);\n }\n\n if (!this._segmentsLength) {\n this._segmentsLength = bez.getSegmentsLength(shapePath);\n }\n\n var segmentsLength = this._segmentsLength;\n var lengths = segmentsLength.lengths;\n var lengthPos = segmentsLength.totalLength * perc;\n var i = 0;\n var len = lengths.length;\n var accumulatedLength = 0;\n var pt;\n\n while (i < len) {\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\n var initIndex = i;\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\n break;\n } else {\n accumulatedLength += lengths[i].addedLength;\n }\n\n i += 1;\n }\n\n if (!pt) {\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\n }\n\n return pt;\n },\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\n if (perc == 1) {\n // eslint-disable-line eqeqeq\n perc = this.v.c;\n } else if (perc == 0) {\n // eslint-disable-line eqeqeq\n perc = 0.999;\n }\n\n var pt1 = this.pointOnPath(perc, time);\n var pt2 = this.pointOnPath(perc + 0.001, time);\n var xLength = pt2[0] - pt1[0];\n var yLength = pt2[1] - pt1[1];\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\n\n if (magnitude === 0) {\n return [0, 0];\n }\n\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\n return unitVector;\n },\n tangentOnPath: function tangentOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'tangent');\n },\n normalOnPath: function normalOnPath(perc, time) {\n return this.vectorOnPath(perc, time, 'normal');\n },\n setGroupProperty: expressionHelpers.setGroupProperty,\n getValueAtTime: expressionHelpers.getStaticValueAtTime\n };\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\n\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\n prop.propertyIndex = data.ix;\n prop.lock = false;\n\n if (type === 3) {\n expressionHelpers.searchExpressions(elem, data.pt, prop);\n } else if (type === 4) {\n expressionHelpers.searchExpressions(elem, data.ks, prop);\n }\n\n if (prop.k) {\n elem.addDynamicProperty(prop);\n }\n\n return prop;\n };\n }\n\n function initialize$1() {\n addPropertyDecorator();\n }\n\n function addDecorator() {\n function searchExpressions() {\n if (this.data.d.x) {\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\n this.addEffect(this.getExpressionValue.bind(this));\n return true;\n }\n\n return null;\n }\n\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\n var newValue = this.calculateExpression(text);\n\n if (currentValue.t !== newValue) {\n var newData = {};\n this.copyData(newData, currentValue);\n newData.t = newValue.toString();\n newData.__complete = false;\n return newData;\n }\n\n return currentValue;\n };\n\n TextProperty.prototype.searchProperty = function () {\n var isKeyframed = this.searchKeyframes();\n var hasExpressions = this.searchExpressions();\n this.kf = isKeyframed || hasExpressions;\n return this.kf;\n };\n\n TextProperty.prototype.searchExpressions = searchExpressions;\n }\n\n function initialize() {\n addDecorator();\n }\n\n function SVGComposableEffect() {}\n\n SVGComposableEffect.prototype = {\n createMergeNode: function createMergeNode(resultId, ins) {\n var feMerge = createNS('feMerge');\n feMerge.setAttribute('result', resultId);\n var feMergeNode;\n var i;\n\n for (i = 0; i < ins.length; i += 1) {\n feMergeNode = createNS('feMergeNode');\n feMergeNode.setAttribute('in', ins[i]);\n feMerge.appendChild(feMergeNode);\n feMerge.appendChild(feMergeNode);\n }\n\n return feMerge;\n }\n };\n\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\n\n function SVGTintFilter(filter, filterManager, elem, id, source) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\n this.linearFilter = feColorMatrix;\n feColorMatrix.setAttribute('result', id + '_tint_1');\n filter.appendChild(feColorMatrix);\n feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id + '_tint_2');\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\n filter.appendChild(feMerge);\n }\n\n extendPrototype([SVGComposableEffect], SVGTintFilter);\n\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var colorBlack = this.filterManager.effectElements[0].p.v;\n var colorWhite = this.filterManager.effectElements[1].p.v;\n var opacity = this.filterManager.effectElements[2].p.v / 100;\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\n }\n };\n\n function SVGFillFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\n feColorMatrix.setAttribute('result', id);\n filter.appendChild(feColorMatrix);\n this.matrixFilter = feColorMatrix;\n }\n\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color = this.filterManager.effectElements[2].p.v;\n var opacity = this.filterManager.effectElements[6].p.v;\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\n }\n };\n\n function SVGStrokeEffect(fil, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.elem = elem;\n this.paths = [];\n }\n\n SVGStrokeEffect.prototype.initialize = function () {\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n var path;\n var groupPath;\n var i;\n var len;\n\n if (this.filterManager.effectElements[1].p.v === 1) {\n len = this.elem.maskManager.masksProperties.length;\n i = 0;\n } else {\n i = this.filterManager.effectElements[0].p.v - 1;\n len = i + 1;\n }\n\n groupPath = createNS('g');\n groupPath.setAttribute('fill', 'none');\n groupPath.setAttribute('stroke-linecap', 'round');\n groupPath.setAttribute('stroke-dashoffset', 1);\n\n for (i; i < len; i += 1) {\n path = createNS('path');\n groupPath.appendChild(path);\n this.paths.push({\n p: path,\n m: i\n });\n }\n\n if (this.filterManager.effectElements[10].p.v === 3) {\n var mask = createNS('mask');\n var id = createElementID();\n mask.setAttribute('id', id);\n mask.setAttribute('mask-type', 'alpha');\n mask.appendChild(groupPath);\n this.elem.globalData.defs.appendChild(mask);\n var g = createNS('g');\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\n\n while (elemChildren[0]) {\n g.appendChild(elemChildren[0]);\n }\n\n this.elem.layerElement.appendChild(g);\n this.masker = mask;\n groupPath.setAttribute('stroke', '#fff');\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (this.filterManager.effectElements[10].p.v === 2) {\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\n\n while (elemChildren.length) {\n this.elem.layerElement.removeChild(elemChildren[0]);\n }\n }\n\n this.elem.layerElement.appendChild(groupPath);\n this.elem.layerElement.removeAttribute('mask');\n groupPath.setAttribute('stroke', '#fff');\n }\n\n this.initialized = true;\n this.pathMasker = groupPath;\n };\n\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\n if (!this.initialized) {\n this.initialize();\n }\n\n var i;\n var len = this.paths.length;\n var mask;\n var path;\n\n for (i = 0; i < len; i += 1) {\n if (this.paths[i].m !== -1) {\n mask = this.elem.maskManager.viewData[this.paths[i].m];\n path = this.paths[i].p;\n\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\n path.setAttribute('d', mask.lastPath);\n }\n\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\n var dasharrayValue;\n\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\n var l = path.getTotalLength();\n dasharrayValue = '0 0 0 ' + l * s + ' ';\n var lineLength = l * (e - s);\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n var units = Math.floor(lineLength / segment);\n var j;\n\n for (j = 0; j < units; j += 1) {\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\n }\n\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\n } else {\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\n }\n\n path.setAttribute('stroke-dasharray', dasharrayValue);\n }\n }\n }\n\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\n }\n\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\n }\n\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\n var color = this.filterManager.effectElements[3].p.v;\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\n }\n }\n };\n\n function SVGTritoneFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var feColorMatrix = createNS('feColorMatrix');\n feColorMatrix.setAttribute('type', 'matrix');\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\n filter.appendChild(feColorMatrix);\n var feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n this.matrixFilter = feComponentTransfer;\n var feFuncR = createNS('feFuncR');\n feFuncR.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncR);\n this.feFuncR = feFuncR;\n var feFuncG = createNS('feFuncG');\n feFuncG.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncG);\n this.feFuncG = feFuncG;\n var feFuncB = createNS('feFuncB');\n feFuncB.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFuncB);\n this.feFuncB = feFuncB;\n filter.appendChild(feComponentTransfer);\n }\n\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var color1 = this.filterManager.effectElements[0].p.v;\n var color2 = this.filterManager.effectElements[1].p.v;\n var color3 = this.filterManager.effectElements[2].p.v;\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\n this.feFuncR.setAttribute('tableValues', tableR);\n this.feFuncG.setAttribute('tableValues', tableG);\n this.feFuncB.setAttribute('tableValues', tableB);\n }\n };\n\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\n this.filterManager = filterManager;\n var effectElements = this.filterManager.effectElements;\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\n\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\n } // Green\n\n\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\n } // Blue\n\n\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\n } // Alpha\n\n\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\n } // RGB\n\n\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n filter.appendChild(feComponentTransfer);\n }\n\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\n feComponentTransfer = createNS('feComponentTransfer');\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\n feComponentTransfer.setAttribute('result', id);\n filter.appendChild(feComponentTransfer);\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\n }\n }\n\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\n var feFunc = createNS(type);\n feFunc.setAttribute('type', 'table');\n feComponentTransfer.appendChild(feFunc);\n return feFunc;\n };\n\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\n var cnt = 0;\n var segments = 256;\n var perc;\n var min = Math.min(inputBlack, inputWhite);\n var max = Math.max(inputBlack, inputWhite);\n var table = Array.call(null, {\n length: segments\n });\n var colorValue;\n var pos = 0;\n var outputDelta = outputWhite - outputBlack;\n var inputDelta = inputWhite - inputBlack;\n\n while (cnt <= 256) {\n perc = cnt / 256;\n\n if (perc <= min) {\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\n } else if (perc >= max) {\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\n } else {\n colorValue = outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma);\n }\n\n table[pos] = colorValue;\n pos += 1;\n cnt += 256 / (segments - 1);\n }\n\n return table.join(' ');\n };\n\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n var val;\n var effectElements = this.filterManager.effectElements;\n\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\n this.feFuncRComposed.setAttribute('tableValues', val);\n this.feFuncGComposed.setAttribute('tableValues', val);\n this.feFuncBComposed.setAttribute('tableValues', val);\n }\n\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\n this.feFuncR.setAttribute('tableValues', val);\n }\n\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\n this.feFuncG.setAttribute('tableValues', val);\n }\n\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\n this.feFuncB.setAttribute('tableValues', val);\n }\n\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\n this.feFuncA.setAttribute('tableValues', val);\n }\n }\n };\n\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\n var filterSize = filterManager.data.fs || globalFilterSize;\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\n feGaussianBlur.setAttribute('stdDeviation', '0');\n this.feGaussianBlur = feGaussianBlur;\n filter.appendChild(feGaussianBlur);\n var feOffset = createNS('feOffset');\n feOffset.setAttribute('dx', '25');\n feOffset.setAttribute('dy', '0');\n feOffset.setAttribute('in', id + '_drop_shadow_1');\n feOffset.setAttribute('result', id + '_drop_shadow_2');\n this.feOffset = feOffset;\n filter.appendChild(feOffset);\n var feFlood = createNS('feFlood');\n feFlood.setAttribute('flood-color', '#00ff00');\n feFlood.setAttribute('flood-opacity', '1');\n feFlood.setAttribute('result', id + '_drop_shadow_3');\n this.feFlood = feFlood;\n filter.appendChild(feFlood);\n var feComposite = createNS('feComposite');\n feComposite.setAttribute('in', id + '_drop_shadow_3');\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\n feComposite.setAttribute('operator', 'in');\n feComposite.setAttribute('result', id + '_drop_shadow_4');\n filter.appendChild(feComposite);\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\n filter.appendChild(feMerge); //\n }\n\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\n\n SVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\n }\n\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\n var col = this.filterManager.effectElements[0].p.v;\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\n }\n\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\n }\n\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\n var distance = this.filterManager.effectElements[3].p.v;\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\n var x = distance * Math.cos(angle);\n var y = distance * Math.sin(angle);\n this.feOffset.setAttribute('dx', x);\n this.feOffset.setAttribute('dy', y);\n }\n }\n };\n\n var _svgMatteSymbols = [];\n\n function SVGMatte3Effect(filterElem, filterManager, elem) {\n this.initialized = false;\n this.filterManager = filterManager;\n this.filterElem = filterElem;\n this.elem = elem;\n elem.matteElement = createNS('g');\n elem.matteElement.appendChild(elem.layerElement);\n elem.matteElement.appendChild(elem.transformedElement);\n elem.baseElement = elem.matteElement;\n }\n\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\n var i = 0;\n var len = _svgMatteSymbols.length;\n\n while (i < len) {\n if (_svgMatteSymbols[i] === mask) {\n return _svgMatteSymbols[i];\n }\n\n i += 1;\n }\n\n return null;\n };\n\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\n var parentNode = mask.layerElement.parentNode;\n\n if (!parentNode) {\n return;\n }\n\n var children = parentNode.children;\n var i = 0;\n var len = children.length;\n\n while (i < len) {\n if (children[i] === mask.layerElement) {\n break;\n }\n\n i += 1;\n }\n\n var nextChild;\n\n if (i <= len - 2) {\n nextChild = children[i + 1];\n }\n\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n\n if (nextChild) {\n parentNode.insertBefore(useElem, nextChild);\n } else {\n parentNode.appendChild(useElem);\n }\n };\n\n SVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\n if (!this.findSymbol(mask)) {\n var symbolId = createElementID();\n var masker = createNS('mask');\n masker.setAttribute('id', mask.layerId);\n masker.setAttribute('mask-type', 'alpha');\n\n _svgMatteSymbols.push(mask);\n\n var defs = elem.globalData.defs;\n defs.appendChild(masker);\n var symbol = createNS('symbol');\n symbol.setAttribute('id', symbolId);\n this.replaceInParent(mask, symbolId);\n symbol.appendChild(mask.layerElement);\n defs.appendChild(symbol);\n var useElem = createNS('use');\n useElem.setAttribute('href', '#' + symbolId);\n masker.appendChild(useElem);\n mask.data.hd = false;\n mask.show();\n }\n\n elem.setMatte(mask.layerId);\n };\n\n SVGMatte3Effect.prototype.initialize = function () {\n var ind = this.filterManager.effectElements[0].p.v;\n var elements = this.elem.comp.elements;\n var i = 0;\n var len = elements.length;\n\n while (i < len) {\n if (elements[i] && elements[i].data.ind === ind) {\n this.setElementAsMask(this.elem, elements[i]);\n }\n\n i += 1;\n }\n\n this.initialized = true;\n };\n\n SVGMatte3Effect.prototype.renderFrame = function () {\n if (!this.initialized) {\n this.initialize();\n }\n };\n\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\n filter.setAttribute('x', '-100%');\n filter.setAttribute('y', '-100%');\n filter.setAttribute('width', '300%');\n filter.setAttribute('height', '300%');\n this.filterManager = filterManager;\n var feGaussianBlur = createNS('feGaussianBlur');\n feGaussianBlur.setAttribute('result', id);\n filter.appendChild(feGaussianBlur);\n this.feGaussianBlur = feGaussianBlur;\n }\n\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\n if (forceRender || this.filterManager._mdf) {\n // Empirical value, matching AE's blur appearance.\n var kBlurrinessToSigma = 0.3;\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\n //\n // 1 -> horizontal & vertical\n // 2 -> horizontal only\n // 3 -> vertical only\n //\n\n var dimensions = this.filterManager.effectElements[1].p.v;\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\n //\n // 0 -> off -> duplicate\n // 1 -> on -> wrap\n\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\n\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\n }\n };\n\n function TransformEffect() {}\n\n TransformEffect.prototype.init = function (effectsManager) {\n this.effectsManager = effectsManager;\n this.type = effectTypes.TRANSFORM_EFFECT;\n this.matrix = new Matrix();\n this.opacity = -1;\n this._mdf = false;\n this._opMdf = false;\n };\n\n TransformEffect.prototype.renderFrame = function (forceFrame) {\n this._opMdf = false;\n this._mdf = false;\n\n if (forceFrame || this.effectsManager._mdf) {\n var effectElements = this.effectsManager.effectElements;\n var anchor = effectElements[0].p.v;\n var position = effectElements[1].p.v;\n var isUniformScale = effectElements[2].p.v === 1;\n var scaleHeight = effectElements[3].p.v;\n var scaleWidth = isUniformScale ? scaleHeight : effectElements[4].p.v;\n var skew = effectElements[5].p.v;\n var skewAxis = effectElements[6].p.v;\n var rotation = effectElements[7].p.v;\n this.matrix.reset();\n this.matrix.translate(-anchor[0], -anchor[1], anchor[2]);\n this.matrix.scale(scaleWidth * 0.01, scaleHeight * 0.01, 1);\n this.matrix.rotate(-rotation * degToRads);\n this.matrix.skewFromAxis(-skew * degToRads, (skewAxis + 90) * degToRads);\n this.matrix.translate(position[0], position[1], 0);\n this._mdf = true;\n\n if (this.opacity !== effectElements[8].p.v) {\n this.opacity = effectElements[8].p.v;\n this._opMdf = true;\n }\n }\n };\n\n function SVGTransformEffect(_, filterManager) {\n this.init(filterManager);\n }\n\n extendPrototype([TransformEffect], SVGTransformEffect);\n\n function CVTransformEffect(effectsManager) {\n this.init(effectsManager);\n }\n\n extendPrototype([TransformEffect], CVTransformEffect);\n\n registerRenderer('canvas', CanvasRenderer);\n registerRenderer('html', HybridRenderer);\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\n\n ShapeModifiers.registerModifier('tm', TrimModifier);\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\n\n setExpressionsPlugin(Expressions);\n setExpressionInterfaces(getInterface);\n initialize$1();\n initialize(); // Registering svg effects\n\n registerEffect$1(20, SVGTintFilter, true);\n registerEffect$1(21, SVGFillFilter, true);\n registerEffect$1(22, SVGStrokeEffect, false);\n registerEffect$1(23, SVGTritoneFilter, true);\n registerEffect$1(24, SVGProLevelsFilter, true);\n registerEffect$1(25, SVGDropShadowEffect, true);\n registerEffect$1(28, SVGMatte3Effect, false);\n registerEffect$1(29, SVGGaussianBlurEffect, true);\n registerEffect$1(35, SVGTransformEffect, false);\n registerEffect(35, CVTransformEffect);\n\n return lottie;\n\n}));\n","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","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\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","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__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};","// 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__.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); }","__webpack_require__.p = \"/\";","import * as React from 'react';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\n\nfunction _arrayLikeToArray$1(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\n\nfunction _unsupportedIterableToArray$1(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray$1(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$1(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$1(arr, i) || _nonIterableRest();\n}\n\nfunction _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}\n\nfunction classNames() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (args) {\n var classes = [];\n for (var i = 0; i < args.length; i++) {\n var className = args[i];\n if (!className) continue;\n var type = _typeof(className);\n if (type === 'string' || type === 'number') {\n classes.push(className);\n } else if (type === 'object') {\n var _classes = Array.isArray(className) ? className : Object.entries(className).map(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n return !!value ? key : null;\n });\n classes = _classes.length ? classes.concat(_classes.filter(function (c) {\n return !!c;\n })) : classes;\n }\n }\n return classes.join(' ');\n }\n return undefined;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _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}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar DomHandler = /*#__PURE__*/function () {\n function DomHandler() {\n _classCallCheck(this, DomHandler);\n }\n _createClass(DomHandler, null, [{\n key: \"innerWidth\",\n value:\n /**\n * All data- properties like data-test-id\n */\n\n /**\n * All ARIA properties like aria-label and focus-target for https://www.npmjs.com/package/@q42/floating-focus-a11y\n */\n\n function innerWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width += parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n return 0;\n }\n }, {\n key: \"width\",\n value: function width(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight);\n return width;\n }\n return 0;\n }\n }, {\n key: \"getBrowserLanguage\",\n value: function getBrowserLanguage() {\n return navigator.userLanguage || navigator.languages && navigator.languages.length && navigator.languages[0] || navigator.language || navigator.browserLanguage || navigator.systemLanguage || 'en';\n }\n }, {\n key: \"getWindowScrollTop\",\n value: function getWindowScrollTop() {\n var doc = document.documentElement;\n return (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0);\n }\n }, {\n key: \"getWindowScrollLeft\",\n value: function getWindowScrollLeft() {\n var doc = document.documentElement;\n return (window.pageXOffset || doc.scrollLeft) - (doc.clientLeft || 0);\n }\n }, {\n key: \"getOuterWidth\",\n value: function getOuterWidth(el, margin) {\n if (el) {\n var width = el.getBoundingClientRect().width || el.offsetWidth;\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n return width;\n }\n return 0;\n }\n }, {\n key: \"getOuterHeight\",\n value: function getOuterHeight(el, margin) {\n if (el) {\n var height = el.getBoundingClientRect().height || el.offsetHeight;\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n return height;\n }\n return 0;\n }\n }, {\n key: \"getClientHeight\",\n value: function getClientHeight(el, margin) {\n if (el) {\n var height = el.clientHeight;\n if (margin) {\n var style = getComputedStyle(el);\n height += parseFloat(style.marginTop) + parseFloat(style.marginBottom);\n }\n return height;\n }\n return 0;\n }\n }, {\n key: \"getClientWidth\",\n value: function getClientWidth(el, margin) {\n if (el) {\n var width = el.clientWidth;\n if (margin) {\n var style = getComputedStyle(el);\n width += parseFloat(style.marginLeft) + parseFloat(style.marginRight);\n }\n return width;\n }\n return 0;\n }\n }, {\n key: \"getViewport\",\n value: function getViewport() {\n var win = window,\n d = document,\n e = d.documentElement,\n g = d.getElementsByTagName('body')[0],\n w = win.innerWidth || e.clientWidth || g.clientWidth,\n h = win.innerHeight || e.clientHeight || g.clientHeight;\n return {\n width: w,\n height: h\n };\n }\n }, {\n key: \"getOffset\",\n value: function getOffset(el) {\n if (el) {\n var rect = el.getBoundingClientRect();\n return {\n top: rect.top + (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0),\n left: rect.left + (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0)\n };\n }\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"index\",\n value: function index(element) {\n if (element) {\n var children = element.parentNode.childNodes;\n var num = 0;\n for (var i = 0; i < children.length; i++) {\n if (children[i] === element) return num;\n if (children[i].nodeType === 1) num++;\n }\n }\n return -1;\n }\n }, {\n key: \"addMultipleClasses\",\n value: function addMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n var styles = className.split(' ');\n for (var i = 0; i < styles.length; i++) {\n element.classList.add(styles[i]);\n }\n } else {\n var _styles = className.split(' ');\n for (var _i = 0; _i < _styles.length; _i++) {\n element.className += ' ' + _styles[_i];\n }\n }\n }\n }\n }, {\n key: \"removeMultipleClasses\",\n value: function removeMultipleClasses(element, className) {\n if (element && className) {\n if (element.classList) {\n var styles = className.split(' ');\n for (var i = 0; i < styles.length; i++) {\n element.classList.remove(styles[i]);\n }\n } else {\n var _styles2 = className.split(' ');\n for (var _i2 = 0; _i2 < _styles2.length; _i2++) {\n element.className = element.className.replace(new RegExp('(^|\\\\b)' + _styles2[_i2].split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }\n }\n }, {\n key: \"addClass\",\n value: function addClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.add(className);else element.className += ' ' + className;\n }\n }\n }, {\n key: \"removeClass\",\n value: function removeClass(element, className) {\n if (element && className) {\n if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\\\b)' + className.split(' ').join('|') + '(\\\\b|$)', 'gi'), ' ');\n }\n }\n }, {\n key: \"hasClass\",\n value: function hasClass(element, className) {\n if (element) {\n if (element.classList) return element.classList.contains(className);else return new RegExp('(^| )' + className + '( |$)', 'gi').test(element.className);\n }\n return false;\n }\n }, {\n key: \"find\",\n value: function find(element, selector) {\n return element ? Array.from(element.querySelectorAll(selector)) : [];\n }\n }, {\n key: \"findSingle\",\n value: function findSingle(element, selector) {\n if (element) {\n return element.querySelector(selector);\n }\n return null;\n }\n }, {\n key: \"getHeight\",\n value: function getHeight(el) {\n if (el) {\n var height = el.offsetHeight;\n var style = getComputedStyle(el);\n height -= parseFloat(style.paddingTop) + parseFloat(style.paddingBottom) + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);\n return height;\n }\n return 0;\n }\n }, {\n key: \"getWidth\",\n value: function getWidth(el) {\n if (el) {\n var width = el.offsetWidth;\n var style = getComputedStyle(el);\n width -= parseFloat(style.paddingLeft) + parseFloat(style.paddingRight) + parseFloat(style.borderLeftWidth) + parseFloat(style.borderRightWidth);\n return width;\n }\n return 0;\n }\n }, {\n key: \"alignOverlay\",\n value: function alignOverlay(overlay, target, appendTo) {\n var calculateMinWidth = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n if (overlay && target) {\n if (appendTo === 'self') {\n this.relativePosition(overlay, target);\n } else {\n calculateMinWidth && (overlay.style.minWidth = DomHandler.getOuterWidth(target) + 'px');\n this.absolutePosition(overlay, target);\n }\n }\n }\n }, {\n key: \"absolutePosition\",\n value: function absolutePosition(element, target) {\n if (element && target) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var elementOuterHeight = elementDimensions.height;\n var elementOuterWidth = elementDimensions.width;\n var targetOuterHeight = target.offsetHeight;\n var targetOuterWidth = target.offsetWidth;\n var targetOffset = target.getBoundingClientRect();\n var windowScrollTop = this.getWindowScrollTop();\n var windowScrollLeft = this.getWindowScrollLeft();\n var viewport = this.getViewport();\n var top, left;\n if (targetOffset.top + targetOuterHeight + elementOuterHeight > viewport.height) {\n top = targetOffset.top + windowScrollTop - elementOuterHeight;\n if (top < 0) {\n top = windowScrollTop;\n }\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetOuterHeight + targetOffset.top + windowScrollTop;\n element.style.transformOrigin = 'top';\n }\n if (targetOffset.left + targetOuterWidth + elementOuterWidth > viewport.width) left = Math.max(0, targetOffset.left + windowScrollLeft + targetOuterWidth - elementOuterWidth);else left = targetOffset.left + windowScrollLeft;\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"relativePosition\",\n value: function relativePosition(element, target) {\n if (element && target) {\n var elementDimensions = element.offsetParent ? {\n width: element.offsetWidth,\n height: element.offsetHeight\n } : this.getHiddenElementDimensions(element);\n var targetHeight = target.offsetHeight;\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var top, left;\n if (targetOffset.top + targetHeight + elementDimensions.height > viewport.height) {\n top = -1 * elementDimensions.height;\n if (targetOffset.top + top < 0) {\n top = -1 * targetOffset.top;\n }\n element.style.transformOrigin = 'bottom';\n } else {\n top = targetHeight;\n element.style.transformOrigin = 'top';\n }\n if (elementDimensions.width > viewport.width) {\n // element wider then viewport and cannot fit on screen (align at left side of viewport)\n left = targetOffset.left * -1;\n } else if (targetOffset.left + elementDimensions.width > viewport.width) {\n // element wider then viewport but can be fit on screen (align at right side of viewport)\n left = (targetOffset.left + elementDimensions.width - viewport.width) * -1;\n } else {\n // element fits on screen (align with target)\n left = 0;\n }\n element.style.top = top + 'px';\n element.style.left = left + 'px';\n }\n }\n }, {\n key: \"flipfitCollision\",\n value: function flipfitCollision(element, target) {\n var _this = this;\n var my = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'left top';\n var at = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'left bottom';\n var callback = arguments.length > 4 ? arguments[4] : undefined;\n if (element && target) {\n var targetOffset = target.getBoundingClientRect();\n var viewport = this.getViewport();\n var myArr = my.split(' ');\n var atArr = at.split(' ');\n var getPositionValue = function getPositionValue(arr, isOffset) {\n return isOffset ? +arr.substring(arr.search(/(\\+|-)/g)) || 0 : arr.substring(0, arr.search(/(\\+|-)/g)) || arr;\n };\n var position = {\n my: {\n x: getPositionValue(myArr[0]),\n y: getPositionValue(myArr[1] || myArr[0]),\n offsetX: getPositionValue(myArr[0], true),\n offsetY: getPositionValue(myArr[1] || myArr[0], true)\n },\n at: {\n x: getPositionValue(atArr[0]),\n y: getPositionValue(atArr[1] || atArr[0]),\n offsetX: getPositionValue(atArr[0], true),\n offsetY: getPositionValue(atArr[1] || atArr[0], true)\n }\n };\n var myOffset = {\n left: function left() {\n var totalOffset = position.my.offsetX + position.at.offsetX;\n return totalOffset + targetOffset.left + (position.my.x === 'left' ? 0 : -1 * (position.my.x === 'center' ? _this.getOuterWidth(element) / 2 : _this.getOuterWidth(element)));\n },\n top: function top() {\n var totalOffset = position.my.offsetY + position.at.offsetY;\n return totalOffset + targetOffset.top + (position.my.y === 'top' ? 0 : -1 * (position.my.y === 'center' ? _this.getOuterHeight(element) / 2 : _this.getOuterHeight(element)));\n }\n };\n var alignWithAt = {\n count: {\n x: 0,\n y: 0\n },\n left: function left() {\n var left = myOffset.left();\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n if (this.count.x === 2) {\n element.style.left = scrollLeft + 'px';\n this.count.x = 0;\n } else if (left < 0) {\n this.count.x++;\n position.my.x = 'left';\n position.at.x = 'right';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.right();\n }\n },\n right: function right() {\n var left = myOffset.left() + DomHandler.getOuterWidth(target);\n var scrollLeft = DomHandler.getWindowScrollLeft();\n element.style.left = left + scrollLeft + 'px';\n if (this.count.x === 2) {\n element.style.left = viewport.width - DomHandler.getOuterWidth(element) + scrollLeft + 'px';\n this.count.x = 0;\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.count.x++;\n position.my.x = 'right';\n position.at.x = 'left';\n position.my.offsetX *= -1;\n position.at.offsetX *= -1;\n this.left();\n }\n },\n top: function top() {\n var top = myOffset.top();\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n if (this.count.y === 2) {\n element.style.left = scrollTop + 'px';\n this.count.y = 0;\n } else if (top < 0) {\n this.count.y++;\n position.my.y = 'top';\n position.at.y = 'bottom';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.bottom();\n }\n },\n bottom: function bottom() {\n var top = myOffset.top() + DomHandler.getOuterHeight(target);\n var scrollTop = DomHandler.getWindowScrollTop();\n element.style.top = top + scrollTop + 'px';\n if (this.count.y === 2) {\n element.style.left = viewport.height - DomHandler.getOuterHeight(element) + scrollTop + 'px';\n this.count.y = 0;\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.count.y++;\n position.my.y = 'bottom';\n position.at.y = 'top';\n position.my.offsetY *= -1;\n position.at.offsetY *= -1;\n this.top();\n }\n },\n center: function center(axis) {\n if (axis === 'y') {\n var top = myOffset.top() + DomHandler.getOuterHeight(target) / 2;\n element.style.top = top + DomHandler.getWindowScrollTop() + 'px';\n if (top < 0) {\n this.bottom();\n } else if (top + DomHandler.getOuterHeight(target) > viewport.height) {\n this.top();\n }\n } else {\n var left = myOffset.left() + DomHandler.getOuterWidth(target) / 2;\n element.style.left = left + DomHandler.getWindowScrollLeft() + 'px';\n if (left < 0) {\n this.left();\n } else if (left + DomHandler.getOuterWidth(element) > viewport.width) {\n this.right();\n }\n }\n }\n };\n alignWithAt[position.at.x]('x');\n alignWithAt[position.at.y]('y');\n if (this.isFunction(callback)) {\n callback(position);\n }\n }\n }\n }, {\n key: \"findCollisionPosition\",\n value: function findCollisionPosition(position) {\n if (position) {\n var isAxisY = position === 'top' || position === 'bottom';\n var myXPosition = position === 'left' ? 'right' : 'left';\n var myYPosition = position === 'top' ? 'bottom' : 'top';\n if (isAxisY) {\n return {\n axis: 'y',\n my: \"center \".concat(myYPosition),\n at: \"center \".concat(position)\n };\n }\n return {\n axis: 'x',\n my: \"\".concat(myXPosition, \" center\"),\n at: \"\".concat(position, \" center\")\n };\n }\n }\n }, {\n key: \"getParents\",\n value: function getParents(element) {\n var parents = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n return element['parentNode'] === null ? parents : this.getParents(element.parentNode, parents.concat([element.parentNode]));\n }\n }, {\n key: \"getScrollableParents\",\n value: function getScrollableParents(element) {\n var scrollableParents = [];\n if (element) {\n var parents = this.getParents(element);\n var overflowRegex = /(auto|scroll)/;\n var overflowCheck = function overflowCheck(node) {\n var styleDeclaration = node ? getComputedStyle(node) : null;\n return styleDeclaration && (overflowRegex.test(styleDeclaration.getPropertyValue('overflow')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowX')) || overflowRegex.test(styleDeclaration.getPropertyValue('overflowY')));\n };\n var _iterator = _createForOfIteratorHelper(parents),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var parent = _step.value;\n var scrollSelectors = parent.nodeType === 1 && parent.dataset['scrollselectors'];\n if (scrollSelectors) {\n var selectors = scrollSelectors.split(',');\n var _iterator2 = _createForOfIteratorHelper(selectors),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var selector = _step2.value;\n var el = this.findSingle(parent, selector);\n if (el && overflowCheck(el)) {\n scrollableParents.push(el);\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n if (parent.nodeType === 1 && overflowCheck(parent)) {\n scrollableParents.push(parent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n return scrollableParents;\n }\n }, {\n key: \"getHiddenElementOuterHeight\",\n value: function getHiddenElementOuterHeight(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementHeight = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementHeight;\n }\n return 0;\n }\n }, {\n key: \"getHiddenElementOuterWidth\",\n value: function getHiddenElementOuterWidth(element) {\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n var elementWidth = element.offsetWidth;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n return elementWidth;\n }\n return 0;\n }\n }, {\n key: \"getHiddenElementDimensions\",\n value: function getHiddenElementDimensions(element) {\n var dimensions = {};\n if (element) {\n element.style.visibility = 'hidden';\n element.style.display = 'block';\n dimensions.width = element.offsetWidth;\n dimensions.height = element.offsetHeight;\n element.style.display = 'none';\n element.style.visibility = 'visible';\n }\n return dimensions;\n }\n }, {\n key: \"fadeIn\",\n value: function fadeIn(element, duration) {\n if (element) {\n element.style.opacity = 0;\n var last = +new Date();\n var opacity = 0;\n var tick = function tick() {\n opacity = +element.style.opacity + (new Date().getTime() - last) / duration;\n element.style.opacity = opacity;\n last = +new Date();\n if (+opacity < 1) {\n window.requestAnimationFrame && requestAnimationFrame(tick) || setTimeout(tick, 16);\n }\n };\n tick();\n }\n }\n }, {\n key: \"fadeOut\",\n value: function fadeOut(element, duration) {\n if (element) {\n var opacity = 1,\n interval = 50,\n gap = interval / duration;\n var fading = setInterval(function () {\n opacity -= gap;\n if (opacity <= 0) {\n opacity = 0;\n clearInterval(fading);\n }\n element.style.opacity = opacity;\n }, interval);\n }\n }\n }, {\n key: \"getUserAgent\",\n value: function getUserAgent() {\n return navigator.userAgent;\n }\n }, {\n key: \"isIOS\",\n value: function isIOS() {\n return /iPad|iPhone|iPod/.test(navigator.userAgent) && !window['MSStream'];\n }\n }, {\n key: \"isAndroid\",\n value: function isAndroid() {\n return /(android)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isChrome\",\n value: function isChrome() {\n return /(chrome)/i.test(navigator.userAgent);\n }\n }, {\n key: \"isTouchDevice\",\n value: function isTouchDevice() {\n return 'ontouchstart' in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0;\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"appendChild\",\n value: function appendChild(element, target) {\n if (this.isElement(target)) target.appendChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.appendChild(element);else throw new Error('Cannot append ' + target + ' to ' + element);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(element, target) {\n if (this.isElement(target)) target.removeChild(element);else if (target.el && target.el.nativeElement) target.el.nativeElement.removeChild(element);else throw new Error('Cannot remove ' + element + ' from ' + target);\n }\n }, {\n key: \"isElement\",\n value: function isElement(obj) {\n return (typeof HTMLElement === \"undefined\" ? \"undefined\" : _typeof(HTMLElement)) === 'object' ? obj instanceof HTMLElement : obj && _typeof(obj) === 'object' && obj !== null && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n }\n }, {\n key: \"scrollInView\",\n value: function scrollInView(container, item) {\n var borderTopValue = getComputedStyle(container).getPropertyValue('borderTopWidth');\n var borderTop = borderTopValue ? parseFloat(borderTopValue) : 0;\n var paddingTopValue = getComputedStyle(container).getPropertyValue('paddingTop');\n var paddingTop = paddingTopValue ? parseFloat(paddingTopValue) : 0;\n var containerRect = container.getBoundingClientRect();\n var itemRect = item.getBoundingClientRect();\n var offset = itemRect.top + document.body.scrollTop - (containerRect.top + document.body.scrollTop) - borderTop - paddingTop;\n var scroll = container.scrollTop;\n var elementHeight = container.clientHeight;\n var itemHeight = this.getOuterHeight(item);\n if (offset < 0) {\n container.scrollTop = scroll + offset;\n } else if (offset + itemHeight > elementHeight) {\n container.scrollTop = scroll + offset - elementHeight + itemHeight;\n }\n }\n }, {\n key: \"clearSelection\",\n value: function clearSelection() {\n if (window.getSelection) {\n if (window.getSelection().empty) {\n window.getSelection().empty();\n } else if (window.getSelection().removeAllRanges && window.getSelection().rangeCount > 0 && window.getSelection().getRangeAt(0).getClientRects().length > 0) {\n window.getSelection().removeAllRanges();\n }\n } else if (document['selection'] && document['selection'].empty) {\n try {\n document['selection'].empty();\n } catch (error) {\n //ignore IE bug\n }\n }\n }\n }, {\n key: \"calculateScrollbarWidth\",\n value: function calculateScrollbarWidth(el) {\n if (el) {\n var style = getComputedStyle(el);\n return el.offsetWidth - el.clientWidth - parseFloat(style.borderLeftWidth) - parseFloat(style.borderRightWidth);\n } else {\n if (this.calculatedScrollbarWidth != null) return this.calculatedScrollbarWidth;\n var scrollDiv = document.createElement('div');\n scrollDiv.className = 'p-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n this.calculatedScrollbarWidth = scrollbarWidth;\n return scrollbarWidth;\n }\n }\n }, {\n key: \"getBrowser\",\n value: function getBrowser() {\n if (!this.browser) {\n var matched = this.resolveUserAgent();\n this.browser = {};\n if (matched.browser) {\n this.browser[matched.browser] = true;\n this.browser['version'] = matched.version;\n }\n if (this.browser['chrome']) {\n this.browser['webkit'] = true;\n } else if (this.browser['webkit']) {\n this.browser['safari'] = true;\n }\n }\n return this.browser;\n }\n }, {\n key: \"resolveUserAgent\",\n value: function resolveUserAgent() {\n var ua = navigator.userAgent.toLowerCase();\n var match = /(chrome)[ ]([\\w.]+)/.exec(ua) || /(webkit)[ ]([\\w.]+)/.exec(ua) || /(opera)(?:.*version|)[ ]([\\w.]+)/.exec(ua) || /(msie) ([\\w.]+)/.exec(ua) || ua.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(ua) || [];\n return {\n browser: match[1] || '',\n version: match[2] || '0'\n };\n }\n }, {\n key: \"isVisible\",\n value: function isVisible(element) {\n // https://stackoverflow.com/a/59096915/502366 (in future use IntersectionObserver)\n return element && (element.clientHeight !== 0 || element.getClientRects().length !== 0 || getComputedStyle(element).display !== 'none');\n }\n }, {\n key: \"isExist\",\n value: function isExist(element) {\n return !!(element !== null && typeof element !== 'undefined' && element.nodeName && element.parentNode);\n }\n }, {\n key: \"hasDOM\",\n value: function hasDOM() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n }\n }, {\n key: \"getFocusableElements\",\n value: function getFocusableElements(element) {\n var selector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var focusableElements = DomHandler.find(element, \"button:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\".concat(selector, \",\\n [href][clientHeight][clientWidth]:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n input:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n select:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n textarea:not([tabindex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n [tabIndex]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector, \",\\n [contenteditable]:not([tabIndex = \\\"-1\\\"]):not([disabled]):not([style*=\\\"display:none\\\"]):not([hidden])\").concat(selector));\n var visibleFocusableElements = [];\n var _iterator3 = _createForOfIteratorHelper(focusableElements),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var focusableElement = _step3.value;\n if (getComputedStyle(focusableElement).display !== 'none' && getComputedStyle(focusableElement).visibility !== 'hidden') visibleFocusableElements.push(focusableElement);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n return visibleFocusableElements;\n }\n }, {\n key: \"getFirstFocusableElement\",\n value: function getFirstFocusableElement(element, selector) {\n var focusableElements = DomHandler.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[0] : null;\n }\n }, {\n key: \"getLastFocusableElement\",\n value: function getLastFocusableElement(element, selector) {\n var focusableElements = DomHandler.getFocusableElements(element, selector);\n return focusableElements.length > 0 ? focusableElements[focusableElements.length - 1] : null;\n }\n\n /**\n * Focus an input element if it does not already have focus.\n *\n * @param {HTMLElement} el a HTML element\n * @param {boolean} scrollTo flag to control whether to scroll to the element, false by default\n */\n }, {\n key: \"focus\",\n value: function focus(el, scrollTo) {\n var preventScroll = scrollTo === undefined ? true : !scrollTo;\n el && document.activeElement !== el && el.focus({\n preventScroll: preventScroll\n });\n }\n\n /**\n * Focus the first focusable element if it does not already have focus.\n *\n * @param {HTMLElement} el a HTML element\n * @param {boolean} scrollTo flag to control whether to scroll to the element, false by default\n * @return {HTMLElement | undefined} the first focusable HTML element found\n */\n }, {\n key: \"focusFirstElement\",\n value: function focusFirstElement(el, scrollTo) {\n if (!el) return;\n var firstFocusableElement = DomHandler.getFirstFocusableElement(el);\n firstFocusableElement && DomHandler.focus(firstFocusableElement, scrollTo);\n return firstFocusableElement;\n }\n }, {\n key: \"getCursorOffset\",\n value: function getCursorOffset(el, prevText, nextText, currentText) {\n if (el) {\n var style = getComputedStyle(el);\n var ghostDiv = document.createElement('div');\n ghostDiv.style.position = 'absolute';\n ghostDiv.style.top = '0px';\n ghostDiv.style.left = '0px';\n ghostDiv.style.visibility = 'hidden';\n ghostDiv.style.pointerEvents = 'none';\n ghostDiv.style.overflow = style.overflow;\n ghostDiv.style.width = style.width;\n ghostDiv.style.height = style.height;\n ghostDiv.style.padding = style.padding;\n ghostDiv.style.border = style.border;\n ghostDiv.style.overflowWrap = style.overflowWrap;\n ghostDiv.style.whiteSpace = style.whiteSpace;\n ghostDiv.style.lineHeight = style.lineHeight;\n ghostDiv.innerHTML = prevText.replace(/\\r\\n|\\r|\\n/g, '
');\n var ghostSpan = document.createElement('span');\n ghostSpan.textContent = currentText;\n ghostDiv.appendChild(ghostSpan);\n var text = document.createTextNode(nextText);\n ghostDiv.appendChild(text);\n document.body.appendChild(ghostDiv);\n var offsetLeft = ghostSpan.offsetLeft,\n offsetTop = ghostSpan.offsetTop,\n clientHeight = ghostSpan.clientHeight;\n document.body.removeChild(ghostDiv);\n return {\n left: Math.abs(offsetLeft - el.scrollLeft),\n top: Math.abs(offsetTop - el.scrollTop) + clientHeight\n };\n }\n return {\n top: 'auto',\n left: 'auto'\n };\n }\n }, {\n key: \"invokeElementMethod\",\n value: function invokeElementMethod(element, methodName, args) {\n element[methodName].apply(element, args);\n }\n }, {\n key: \"isClickable\",\n value: function isClickable(element) {\n var targetNode = element.nodeName;\n var parentNode = element.parentElement && element.parentElement.nodeName;\n return targetNode === 'INPUT' || targetNode === 'TEXTAREA' || targetNode === 'BUTTON' || targetNode === 'A' || parentNode === 'INPUT' || parentNode === 'TEXTAREA' || parentNode === 'BUTTON' || parentNode === 'A' || this.hasClass(element, 'p-button') || this.hasClass(element.parentElement, 'p-button') || this.hasClass(element.parentElement, 'p-checkbox') || this.hasClass(element.parentElement, 'p-radiobutton');\n }\n }, {\n key: \"applyStyle\",\n value: function applyStyle(element, style) {\n if (typeof style === 'string') {\n element.style.cssText = this.style;\n } else {\n for (var prop in this.style) {\n element.style[prop] = style[prop];\n }\n }\n }\n }, {\n key: \"exportCSV\",\n value: function exportCSV(csv, filename) {\n var blob = new Blob([csv], {\n type: 'application/csv;charset=utf-8;'\n });\n if (window.navigator.msSaveOrOpenBlob) {\n navigator.msSaveOrOpenBlob(blob, filename + '.csv');\n } else {\n var isDownloaded = DomHandler.saveAs({\n name: filename + '.csv',\n src: URL.createObjectURL(blob)\n });\n if (!isDownloaded) {\n csv = 'data:text/csv;charset=utf-8,' + csv;\n window.open(encodeURI(csv));\n }\n }\n }\n }, {\n key: \"saveAs\",\n value: function saveAs(file) {\n if (file) {\n var link = document.createElement('a');\n if (link.download !== undefined) {\n var name = file.name,\n src = file.src;\n link.setAttribute('href', src);\n link.setAttribute('download', name);\n link.style.display = 'none';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n return true;\n }\n }\n return false;\n }\n }, {\n key: \"createInlineStyle\",\n value: function createInlineStyle(nonce) {\n var styleElement = document.createElement('style');\n try {\n if (!nonce) {\n nonce = process.env.REACT_APP_CSS_NONCE;\n }\n } catch (error) {\n // NOOP\n }\n nonce && styleElement.setAttribute('nonce', nonce);\n document.head.appendChild(styleElement);\n return styleElement;\n }\n }, {\n key: \"removeInlineStyle\",\n value: function removeInlineStyle(styleElement) {\n if (this.isExist(styleElement)) {\n try {\n document.head.removeChild(styleElement);\n } catch (error) {\n // style element may have already been removed in a fast refresh\n }\n styleElement = null;\n }\n return styleElement;\n }\n }, {\n key: \"getTargetElement\",\n value: function getTargetElement(target) {\n if (!target) return null;\n if (target === 'document') {\n return document;\n } else if (target === 'window') {\n return window;\n } else if (_typeof(target) === 'object' && target.hasOwnProperty('current')) {\n return this.isExist(target.current) ? target.current : null;\n } else {\n var isFunction = function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n };\n var element = isFunction(target) ? target() : target;\n return element && element.nodeType === 9 || this.isExist(element) ? element : null;\n }\n }\n\n /**\n * Get the attribute names for an element and sorts them alpha for comparison\n */\n }, {\n key: \"getAttributeNames\",\n value: function getAttributeNames(node) {\n var index, rv, attrs;\n rv = [];\n attrs = node.attributes;\n for (index = 0; index < attrs.length; ++index) {\n rv.push(attrs[index].nodeName);\n }\n rv.sort();\n return rv;\n }\n\n /**\n * Compare two elements for equality. Even will compare if the style element\n * is out of order for example:\n *\n * elem1 = style=\"color: red; font-size: 28px\"\n * elem2 = style=\"font-size: 28px; color: red\"\n */\n }, {\n key: \"isEqualElement\",\n value: function isEqualElement(elm1, elm2) {\n var attrs1, attrs2, name, node1, node2;\n\n // Compare attributes without order sensitivity\n attrs1 = DomHandler.getAttributeNames(elm1);\n attrs2 = DomHandler.getAttributeNames(elm2);\n if (attrs1.join(',') !== attrs2.join(',')) {\n // console.log(\"Found nodes with different sets of attributes; not equiv\");\n return false;\n }\n\n // ...and values\n // unless you want to compare DOM0 event handlers\n // (onclick=\"...\")\n for (var index = 0; index < attrs1.length; ++index) {\n name = attrs1[index];\n if (name === 'style') {\n var astyle = elm1.style;\n var bstyle = elm2.style;\n var rexDigitsOnly = /^\\d+$/;\n for (var _i3 = 0, _Object$keys = Object.keys(astyle); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n if (!rexDigitsOnly.test(key) && astyle[key] !== bstyle[key]) {\n // Not equivalent, stop\n //console.log(\"Found nodes with mis-matched values for attribute '\" + name + \"'; not equiv\");\n return false;\n }\n }\n } else {\n if (elm1.getAttribute(name) !== elm2.getAttribute(name)) {\n // console.log(\"Found nodes with mis-matched values for attribute '\" + name + \"'; not equiv\");\n return false;\n }\n }\n }\n\n // Walk the children\n for (node1 = elm1.firstChild, node2 = elm2.firstChild; node1 && node2; node1 = node1.nextSibling, node2 = node2.nextSibling) {\n if (node1.nodeType !== node2.nodeType) {\n // display(\"Found nodes of different types; not equiv\");\n return false;\n }\n if (node1.nodeType === 1) {\n // Element\n if (!DomHandler.isEqualElement(node1, node2)) {\n return false;\n }\n } else if (node1.nodeValue !== node2.nodeValue) {\n // console.log(\"Found nodes with mis-matched nodeValues; not equiv\");\n return false;\n }\n }\n if (node1 || node2) {\n // One of the elements had more nodes than the other\n // console.log(\"Found more children of one element than the other; not equivalent\");\n return false;\n }\n\n // Seem the same\n return true;\n }\n }]);\n return DomHandler;\n}();\n_defineProperty(DomHandler, \"DATA_PROPS\", ['data-']);\n_defineProperty(DomHandler, \"ARIA_PROPS\", ['aria', 'focus-target']);\n\nvar ConnectedOverlayScrollHandler = /*#__PURE__*/function () {\n function ConnectedOverlayScrollHandler(element) {\n var listener = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};\n _classCallCheck(this, ConnectedOverlayScrollHandler);\n this.element = element;\n this.listener = listener;\n }\n _createClass(ConnectedOverlayScrollHandler, [{\n key: \"bindScrollListener\",\n value: function bindScrollListener() {\n this.scrollableParents = DomHandler.getScrollableParents(this.element);\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].addEventListener('scroll', this.listener);\n }\n }\n }, {\n key: \"unbindScrollListener\",\n value: function unbindScrollListener() {\n if (this.scrollableParents) {\n for (var i = 0; i < this.scrollableParents.length; i++) {\n this.scrollableParents[i].removeEventListener('scroll', this.listener);\n }\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.unbindScrollListener();\n this.element = null;\n this.listener = null;\n this.scrollableParents = null;\n }\n }]);\n return ConnectedOverlayScrollHandler;\n}();\n\nfunction EventBus() {\n var allHandlers = new Map();\n return {\n on: function on(type, handler) {\n var handlers = allHandlers.get(type);\n if (!handlers) handlers = [handler];else handlers.push(handler);\n allHandlers.set(type, handlers);\n },\n off: function off(type, handler) {\n var handlers = allHandlers.get(type);\n handlers && handlers.splice(handlers.indexOf(handler) >>> 0, 1);\n },\n emit: function emit(type, evt) {\n var handlers = allHandlers.get(type);\n handlers && handlers.slice().forEach(function (handler) {\n return handler(evt);\n });\n }\n };\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction mask(el, options) {\n var defaultOptions = {\n mask: null,\n slotChar: '_',\n autoClear: true,\n unmask: false,\n readOnly: false,\n onComplete: null,\n onChange: null,\n onFocus: null,\n onBlur: null\n };\n options = _objectSpread$1(_objectSpread$1({}, defaultOptions), options);\n var tests, partialPosition, len, firstNonMaskPos, defs, androidChrome, lastRequiredNonMaskPos, oldVal, focusText, caretTimeoutId, buffer, defaultBuffer;\n var caret = function caret(first, last) {\n var range, begin, end;\n if (!el.offsetParent || el !== document.activeElement) {\n return;\n }\n if (typeof first === 'number') {\n begin = first;\n end = typeof last === 'number' ? last : begin;\n if (el.setSelectionRange) {\n el.setSelectionRange(begin, end);\n } else if (el['createTextRange']) {\n range = el['createTextRange']();\n range.collapse(true);\n range.moveEnd('character', end);\n range.moveStart('character', begin);\n range.select();\n }\n } else {\n if (el.setSelectionRange) {\n begin = el.selectionStart;\n end = el.selectionEnd;\n } else if (document['selection'] && document['selection'].createRange) {\n range = document['selection'].createRange();\n begin = 0 - range.duplicate().moveStart('character', -100000);\n end = begin + range.text.length;\n }\n return {\n begin: begin,\n end: end\n };\n }\n };\n var isCompleted = function isCompleted() {\n for (var i = firstNonMaskPos; i <= lastRequiredNonMaskPos; i++) {\n if (tests[i] && buffer[i] === getPlaceholder(i)) {\n return false;\n }\n }\n return true;\n };\n var getPlaceholder = function getPlaceholder(i) {\n if (i < options.slotChar.length) {\n return options.slotChar.charAt(i);\n }\n return options.slotChar.charAt(0);\n };\n var getValue = function getValue() {\n return options.unmask ? getUnmaskedValue() : el && el.value;\n };\n var seekNext = function seekNext(pos) {\n while (++pos < len && !tests[pos]);\n return pos;\n };\n var seekPrev = function seekPrev(pos) {\n while (--pos >= 0 && !tests[pos]);\n return pos;\n };\n var shiftL = function shiftL(begin, end) {\n var i, j;\n if (begin < 0) {\n return;\n }\n for (i = begin, j = seekNext(end); i < len; i++) {\n if (tests[i]) {\n if (j < len && tests[i].test(buffer[j])) {\n buffer[i] = buffer[j];\n buffer[j] = getPlaceholder(j);\n } else {\n break;\n }\n j = seekNext(j);\n }\n }\n writeBuffer();\n caret(Math.max(firstNonMaskPos, begin));\n };\n var shiftR = function shiftR(pos) {\n var i, c, j, t;\n for (i = pos, c = getPlaceholder(pos); i < len; i++) {\n if (tests[i]) {\n j = seekNext(i);\n t = buffer[i];\n buffer[i] = c;\n if (j < len && tests[j].test(t)) {\n c = t;\n } else {\n break;\n }\n }\n }\n };\n var handleAndroidInput = function handleAndroidInput(e) {\n var curVal = el.value;\n var pos = caret();\n if (oldVal && oldVal.length && oldVal.length > curVal.length) {\n // a deletion or backspace happened\n checkVal(true);\n while (pos.begin > 0 && !tests[pos.begin - 1]) pos.begin--;\n if (pos.begin === 0) {\n while (pos.begin < firstNonMaskPos && !tests[pos.begin]) pos.begin++;\n }\n caret(pos.begin, pos.begin);\n } else {\n checkVal(true);\n while (pos.begin < len && !tests[pos.begin]) pos.begin++;\n caret(pos.begin, pos.begin);\n }\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n var onBlur = function onBlur(e) {\n checkVal();\n options.onBlur && options.onBlur(e);\n updateModel(e);\n if (el.value !== focusText) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent('change', true, false);\n el.dispatchEvent(event);\n }\n };\n var onKeyDown = function onKeyDown(e) {\n if (options.readOnly) {\n return;\n }\n var k = e.which || e.keyCode,\n pos,\n begin,\n end;\n oldVal = el.value;\n\n //backspace, delete, and escape get special treatment\n if (k === 8 || k === 46 || DomHandler.isIOS() && k === 127) {\n pos = caret();\n begin = pos.begin;\n end = pos.end;\n if (end - begin === 0) {\n begin = k !== 46 ? seekPrev(begin) : end = seekNext(begin - 1);\n end = k === 46 ? seekNext(end) : end;\n }\n clearBuffer(begin, end);\n shiftL(begin, end - 1);\n updateModel(e);\n e.preventDefault();\n } else if (k === 13) {\n // enter\n onBlur(e);\n updateModel(e);\n } else if (k === 27) {\n // escape\n el.value = focusText;\n caret(0, checkVal());\n updateModel(e);\n e.preventDefault();\n }\n };\n var onKeyPress = function onKeyPress(e) {\n if (options.readOnly) {\n return;\n }\n var k = e.which || e.keyCode,\n pos = caret(),\n p,\n c,\n next,\n completed;\n if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {\n //Ignore\n return;\n } else if (k && k !== 13) {\n if (pos.end - pos.begin !== 0) {\n clearBuffer(pos.begin, pos.end);\n shiftL(pos.begin, pos.end - 1);\n }\n p = seekNext(pos.begin - 1);\n if (p < len) {\n c = String.fromCharCode(k);\n if (tests[p].test(c)) {\n shiftR(p);\n buffer[p] = c;\n writeBuffer();\n next = seekNext(p);\n if (DomHandler.isAndroid()) {\n //Path for CSP Violation on FireFox OS 1.1\n var proxy = function proxy() {\n caret(next);\n };\n setTimeout(proxy, 0);\n } else {\n caret(next);\n }\n if (pos.begin <= lastRequiredNonMaskPos) {\n completed = isCompleted();\n }\n }\n }\n e.preventDefault();\n }\n updateModel(e);\n if (options.onComplete && completed) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n var clearBuffer = function clearBuffer(start, end) {\n var i;\n for (i = start; i < end && i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n }\n }\n };\n var writeBuffer = function writeBuffer() {\n el.value = buffer.join('');\n };\n var checkVal = function checkVal(allow) {\n //try to place characters where they belong\n var test = el.value,\n lastMatch = -1,\n i,\n c,\n pos;\n for (i = 0, pos = 0; i < len; i++) {\n if (tests[i]) {\n buffer[i] = getPlaceholder(i);\n while (pos++ < test.length) {\n c = test.charAt(pos - 1);\n if (tests[i].test(c)) {\n buffer[i] = c;\n lastMatch = i;\n break;\n }\n }\n if (pos > test.length) {\n clearBuffer(i + 1, len);\n break;\n }\n } else {\n if (buffer[i] === test.charAt(pos)) {\n pos++;\n }\n if (i < partialPosition) {\n lastMatch = i;\n }\n }\n }\n if (allow) {\n writeBuffer();\n } else if (lastMatch + 1 < partialPosition) {\n if (options.autoClear || buffer.join('') === defaultBuffer) {\n // Invalid value. Remove it and replace it with the\n // mask, which is the default behavior.\n if (el.value) el.value = '';\n clearBuffer(0, len);\n } else {\n // Invalid value, but we opt to show the value to the\n // user and allow them to correct their mistake.\n writeBuffer();\n }\n } else {\n writeBuffer();\n el.value = el.value.substring(0, lastMatch + 1);\n }\n return partialPosition ? i : firstNonMaskPos;\n };\n var onFocus = function onFocus(e) {\n if (options.readOnly) {\n return;\n }\n clearTimeout(caretTimeoutId);\n var pos;\n focusText = el.value;\n pos = checkVal();\n caretTimeoutId = setTimeout(function () {\n if (el !== document.activeElement) {\n return;\n }\n writeBuffer();\n if (pos === options.mask.replace('?', '').length) {\n caret(0, pos);\n } else {\n caret(pos);\n }\n }, 10);\n if (options.onFocus) {\n options.onFocus(e);\n }\n };\n var onInput = function onInput(event) {\n if (androidChrome) handleAndroidInput(event);else handleInputChange(event);\n };\n var handleInputChange = function handleInputChange(e) {\n if (options.readOnly) {\n return;\n }\n var pos = checkVal(true);\n caret(pos);\n updateModel(e);\n if (options.onComplete && isCompleted()) {\n options.onComplete({\n originalEvent: e,\n value: getValue()\n });\n }\n };\n var getUnmaskedValue = function getUnmaskedValue() {\n var unmaskedBuffer = [];\n for (var i = 0; i < buffer.length; i++) {\n var c = buffer[i];\n if (tests[i] && c !== getPlaceholder(i)) {\n unmaskedBuffer.push(c);\n }\n }\n return unmaskedBuffer.join('');\n };\n var updateModel = function updateModel(e) {\n if (options.onChange) {\n var val = getValue().replace(options.slotChar, '');\n options.onChange({\n originalEvent: e,\n value: defaultBuffer !== val ? val : ''\n });\n }\n };\n var bindEvents = function bindEvents() {\n el.addEventListener('focus', onFocus);\n el.addEventListener('blur', onBlur);\n el.addEventListener('keydown', onKeyDown);\n el.addEventListener('keypress', onKeyPress);\n el.addEventListener('input', onInput);\n el.addEventListener('paste', handleInputChange);\n };\n var unbindEvents = function unbindEvents() {\n el.removeEventListener('focus', onFocus);\n el.removeEventListener('blur', onBlur);\n el.removeEventListener('keydown', onKeyDown);\n el.removeEventListener('keypress', onKeyPress);\n el.removeEventListener('input', onInput);\n el.removeEventListener('paste', handleInputChange);\n };\n var init = function init() {\n tests = [];\n partialPosition = options.mask.length;\n len = options.mask.length;\n firstNonMaskPos = null;\n defs = {\n 9: '[0-9]',\n a: '[A-Za-z]',\n '*': '[A-Za-z0-9]'\n };\n androidChrome = DomHandler.isChrome() && DomHandler.isAndroid();\n var maskTokens = options.mask.split('');\n for (var i = 0; i < maskTokens.length; i++) {\n var c = maskTokens[i];\n if (c === '?') {\n len--;\n partialPosition = i;\n } else if (defs[c]) {\n tests.push(new RegExp(defs[c]));\n if (firstNonMaskPos === null) {\n firstNonMaskPos = tests.length - 1;\n }\n if (i < partialPosition) {\n lastRequiredNonMaskPos = tests.length - 1;\n }\n } else {\n tests.push(null);\n }\n }\n buffer = [];\n for (var _i = 0; _i < maskTokens.length; _i++) {\n var _c = maskTokens[_i];\n if (_c !== '?') {\n if (defs[_c]) buffer.push(getPlaceholder(_i));else buffer.push(_c);\n }\n }\n defaultBuffer = buffer.join('');\n };\n if (el && options.mask) {\n init();\n bindEvents();\n }\n return {\n init: init,\n bindEvents: bindEvents,\n unbindEvents: unbindEvents,\n updateModel: updateModel,\n getValue: getValue\n };\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray$1(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _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}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray$1(arr) || _nonIterableSpread();\n}\n\nvar ObjectUtils = /*#__PURE__*/function () {\n function ObjectUtils() {\n _classCallCheck(this, ObjectUtils);\n }\n _createClass(ObjectUtils, null, [{\n key: \"equals\",\n value: function equals(obj1, obj2, field) {\n if (field && obj1 && _typeof(obj1) === 'object' && obj2 && _typeof(obj2) === 'object') return this.resolveFieldData(obj1, field) === this.resolveFieldData(obj2, field);else return this.deepEquals(obj1, obj2);\n }\n }, {\n key: \"deepEquals\",\n value: function deepEquals(a, b) {\n if (a === b) return true;\n if (a && b && _typeof(a) == 'object' && _typeof(b) == 'object') {\n var arrA = Array.isArray(a),\n arrB = Array.isArray(b),\n i,\n length,\n key;\n if (arrA && arrB) {\n length = a.length;\n if (length !== b.length) return false;\n for (i = length; i-- !== 0;) if (!this.deepEquals(a[i], b[i])) return false;\n return true;\n }\n if (arrA !== arrB) return false;\n var dateA = a instanceof Date,\n dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return a.getTime() === b.getTime();\n var regexpA = a instanceof RegExp,\n regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n var keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n for (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (!this.deepEquals(a[key], b[key])) return false;\n }\n return true;\n }\n\n /*eslint no-self-compare: \"off\"*/\n return a !== a && b !== b;\n }\n }, {\n key: \"resolveFieldData\",\n value: function resolveFieldData(data, field) {\n if (data && Object.keys(data).length && field) {\n if (this.isFunction(field)) {\n return field(data);\n } else if (ObjectUtils.isNotEmpty(data[field])) {\n return data[field];\n } else if (field.indexOf('.') === -1) {\n return data[field];\n } else {\n var fields = field.split('.');\n var value = data;\n for (var i = 0, len = fields.length; i < len; ++i) {\n if (value == null) {\n return null;\n }\n value = value[fields[i]];\n }\n return value;\n }\n } else {\n return null;\n }\n }\n }, {\n key: \"isFunction\",\n value: function isFunction(obj) {\n return !!(obj && obj.constructor && obj.call && obj.apply);\n }\n }, {\n key: \"isLetter\",\n value: function isLetter(_char) {\n return _char && (_char.toUpperCase() != _char.toLowerCase() || _char.codePointAt(0) > 127);\n }\n }, {\n key: \"findDiffKeys\",\n value: function findDiffKeys(obj1, obj2) {\n if (!obj1 || !obj2) {\n return {};\n }\n return Object.keys(obj1).filter(function (key) {\n return !obj2.hasOwnProperty(key);\n }).reduce(function (result, current) {\n result[current] = obj1[current];\n return result;\n }, {});\n }\n\n /**\n * Removes keys from a JSON object that start with a string such as \"data\" to get all \"data-id\" type properties.\n *\n * @param {any} obj the JSON object to reduce\n * @param {string[]} startsWiths the string(s) to check if the property starts with this key\n * @returns the JSON object containing only the key/values that match the startsWith string\n */\n }, {\n key: \"reduceKeys\",\n value: function reduceKeys(obj, startsWiths) {\n var result = {};\n if (!obj || !startsWiths || startsWiths.length === 0) {\n return result;\n }\n Object.keys(obj).filter(function (key) {\n return startsWiths.some(function (value) {\n return key.startsWith(value);\n });\n }).forEach(function (key) {\n result[key] = obj[key];\n delete obj[key];\n });\n return result;\n }\n }, {\n key: \"reorderArray\",\n value: function reorderArray(value, from, to) {\n if (value && from !== to) {\n if (to >= value.length) {\n to %= value.length;\n from %= value.length;\n }\n value.splice(to, 0, value.splice(from, 1)[0]);\n }\n }\n }, {\n key: \"findIndexInList\",\n value: function findIndexInList(value, list, dataKey) {\n var _this = this;\n if (list) {\n return dataKey ? list.findIndex(function (item) {\n return _this.equals(item, value, dataKey);\n }) : list.findIndex(function (item) {\n return item === value;\n });\n }\n return -1;\n }\n }, {\n key: \"getJSXElement\",\n value: function getJSXElement(obj) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return this.isFunction(obj) ? obj.apply(void 0, params) : obj;\n }\n }, {\n key: \"getProp\",\n value: function getProp(props) {\n var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var value = props ? props[prop] : undefined;\n return value === undefined ? defaultProps[prop] : value;\n }\n }, {\n key: \"getMergedProps\",\n value: function getMergedProps(props, defaultProps) {\n return Object.assign({}, defaultProps, props);\n }\n }, {\n key: \"getDiffProps\",\n value: function getDiffProps(props, defaultProps) {\n return this.findDiffKeys(props, defaultProps);\n }\n }, {\n key: \"getPropValue\",\n value: function getPropValue(obj) {\n for (var _len2 = arguments.length, params = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n params[_key2 - 1] = arguments[_key2];\n }\n var methodParams = params;\n if (params && params.length === 1) {\n methodParams = params[0];\n }\n return this.isFunction(obj) ? obj.apply(void 0, _toConsumableArray(methodParams)) : obj;\n }\n }, {\n key: \"getComponentProp\",\n value: function getComponentProp(component) {\n var prop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var defaultProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.isNotEmpty(component) ? this.getProp(component.props, prop, defaultProps) : undefined;\n }\n }, {\n key: \"getComponentProps\",\n value: function getComponentProps(component, defaultProps) {\n return this.isNotEmpty(component) ? this.getMergedProps(component.props, defaultProps) : undefined;\n }\n }, {\n key: \"getComponentDiffProps\",\n value: function getComponentDiffProps(component, defaultProps) {\n return this.isNotEmpty(component) ? this.getDiffProps(component.props, defaultProps) : undefined;\n }\n }, {\n key: \"isValidChild\",\n value: function isValidChild(child, type, validTypes) {\n /* eslint-disable */\n if (child) {\n var childType = this.getComponentProp(child, '__TYPE') || (child.type ? child.type.displayName : undefined);\n var isValid = childType === type;\n try {\n var messageTypes; if (\"production\" !== 'production' && !isValid) ;\n } catch (error) {\n // NOOP\n }\n return isValid;\n }\n return false;\n /* eslint-enable */\n }\n }, {\n key: \"getRefElement\",\n value: function getRefElement(ref) {\n if (ref) {\n return _typeof(ref) === 'object' && ref.hasOwnProperty('current') ? ref.current : ref;\n }\n return null;\n }\n }, {\n key: \"combinedRefs\",\n value: function combinedRefs(innerRef, forwardRef) {\n if (innerRef && forwardRef) {\n if (typeof forwardRef === 'function') {\n forwardRef(innerRef.current);\n } else {\n forwardRef.current = innerRef.current;\n }\n }\n }\n }, {\n key: \"removeAccents\",\n value: function removeAccents(str) {\n if (str && str.search(/[\\xC0-\\xFF]/g) > -1) {\n str = str.replace(/[\\xC0-\\xC5]/g, 'A').replace(/[\\xC6]/g, 'AE').replace(/[\\xC7]/g, 'C').replace(/[\\xC8-\\xCB]/g, 'E').replace(/[\\xCC-\\xCF]/g, 'I').replace(/[\\xD0]/g, 'D').replace(/[\\xD1]/g, 'N').replace(/[\\xD2-\\xD6\\xD8]/g, 'O').replace(/[\\xD9-\\xDC]/g, 'U').replace(/[\\xDD]/g, 'Y').replace(/[\\xDE]/g, 'P').replace(/[\\xE0-\\xE5]/g, 'a').replace(/[\\xE6]/g, 'ae').replace(/[\\xE7]/g, 'c').replace(/[\\xE8-\\xEB]/g, 'e').replace(/[\\xEC-\\xEF]/g, 'i').replace(/[\\xF1]/g, 'n').replace(/[\\xF2-\\xF6\\xF8]/g, 'o').replace(/[\\xF9-\\xFC]/g, 'u').replace(/[\\xFE]/g, 'p').replace(/[\\xFD\\xFF]/g, 'y');\n }\n return str;\n }\n }, {\n key: \"isEmpty\",\n value: function isEmpty(value) {\n return value === null || value === undefined || value === '' || Array.isArray(value) && value.length === 0 || !(value instanceof Date) && _typeof(value) === 'object' && Object.keys(value).length === 0;\n }\n }, {\n key: \"isNotEmpty\",\n value: function isNotEmpty(value) {\n return !this.isEmpty(value);\n }\n }, {\n key: \"sort\",\n value: function sort(value1, value2) {\n var order = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var locale = arguments.length > 3 ? arguments[3] : undefined;\n var nullSortOrder = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n var result = ObjectUtils.compare(value1, value2, locale, order);\n var finalSortOrder = order;\n\n // nullSortOrder == 1 means Excel like sort nulls at bottom\n if (ObjectUtils.isEmpty(value1) || ObjectUtils.isEmpty(value2)) {\n finalSortOrder = nullSortOrder === 1 ? order : nullSortOrder;\n }\n return finalSortOrder * result;\n }\n }, {\n key: \"compare\",\n value: function compare(value1, value2, locale) {\n var order = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n var result = -1;\n var emptyValue1 = ObjectUtils.isEmpty(value1);\n var emptyValue2 = ObjectUtils.isEmpty(value2);\n if (emptyValue1 && emptyValue2) result = 0;else if (emptyValue1) result = order;else if (emptyValue2) result = -order;else if (typeof value1 === 'string' && typeof value2 === 'string') result = value1.localeCompare(value2, locale, {\n numeric: true\n });else result = value1 < value2 ? -1 : value1 > value2 ? 1 : 0;\n return result;\n }\n }]);\n return ObjectUtils;\n}();\n\nfunction _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}\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar IconUtils = /*#__PURE__*/function () {\n function IconUtils() {\n _classCallCheck(this, IconUtils);\n }\n _createClass(IconUtils, null, [{\n key: \"getJSXIcon\",\n value: function getJSXIcon(icon) {\n var iconProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var content = null;\n if (icon !== null) {\n var iconType = _typeof(icon);\n var className = classNames(iconProps.className, iconType === 'string' && icon);\n content = /*#__PURE__*/React.createElement(\"span\", _extends({}, iconProps, {\n className: className\n }));\n if (iconType !== 'string') {\n var defaultContentOptions = _objectSpread({\n iconProps: iconProps,\n element: content\n }, options);\n return ObjectUtils.getJSXElement(icon, defaultContentOptions);\n }\n }\n return content;\n }\n }]);\n return IconUtils;\n}();\n\nvar lastId = 0;\nfunction UniqueComponentId() {\n var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'pr_id_';\n lastId++;\n return \"\".concat(prefix).concat(lastId);\n}\n\nfunction handler() {\n var zIndexes = [];\n var generateZIndex = function generateZIndex(key, autoZIndex) {\n var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 999;\n var lastZIndex = getLastZIndex(key, autoZIndex, baseZIndex);\n var newZIndex = lastZIndex.value + (lastZIndex.key === key ? 0 : baseZIndex) + 1;\n zIndexes.push({\n key: key,\n value: newZIndex\n });\n return newZIndex;\n };\n var revertZIndex = function revertZIndex(zIndex) {\n zIndexes = zIndexes.filter(function (obj) {\n return obj.value !== zIndex;\n });\n };\n var getCurrentZIndex = function getCurrentZIndex(key, autoZIndex) {\n return getLastZIndex(key, autoZIndex).value;\n };\n var getLastZIndex = function getLastZIndex(key, autoZIndex) {\n var baseZIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return _toConsumableArray(zIndexes).reverse().find(function (obj) {\n return autoZIndex ? true : obj.key === key;\n }) || {\n key: key,\n value: baseZIndex\n };\n };\n var getZIndex = function getZIndex(el) {\n return el ? parseInt(el.style.zIndex, 10) || 0 : 0;\n };\n return {\n get: getZIndex,\n set: function set(key, el, autoZIndex, baseZIndex) {\n if (el) {\n el.style.zIndex = String(generateZIndex(key, autoZIndex, baseZIndex));\n }\n },\n clear: function clear(el) {\n if (el) {\n revertZIndex(ZIndexUtils.get(el));\n el.style.zIndex = '';\n }\n },\n getCurrent: function getCurrent(key, autoZIndex) {\n return getCurrentZIndex(key, autoZIndex);\n }\n };\n}\nvar ZIndexUtils = handler();\n\nexport { ConnectedOverlayScrollHandler, DomHandler, EventBus, IconUtils, ObjectUtils, UniqueComponentId, ZIndexUtils, classNames, mask };\n","import { ObjectUtils } from 'primereact/utils';\n\nvar FilterMatchMode = Object.freeze({\n STARTS_WITH: 'startsWith',\n CONTAINS: 'contains',\n NOT_CONTAINS: 'notContains',\n ENDS_WITH: 'endsWith',\n EQUALS: 'equals',\n NOT_EQUALS: 'notEquals',\n IN: 'in',\n LESS_THAN: 'lt',\n LESS_THAN_OR_EQUAL_TO: 'lte',\n GREATER_THAN: 'gt',\n GREATER_THAN_OR_EQUAL_TO: 'gte',\n BETWEEN: 'between',\n DATE_IS: 'dateIs',\n DATE_IS_NOT: 'dateIsNot',\n DATE_BEFORE: 'dateBefore',\n DATE_AFTER: 'dateAfter',\n CUSTOM: 'custom'\n});\n\nvar FilterOperator = Object.freeze({\n AND: 'and',\n OR: 'or'\n});\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it[\"return\"] != null) it[\"return\"](); } finally { if (didErr) throw err; } } }; }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nvar FilterService = {\n filter: function filter(value, fields, filterValue, filterMatchMode, filterLocale) {\n var filteredItems = [];\n if (!value) {\n return filteredItems;\n }\n var _iterator = _createForOfIteratorHelper(value),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var item = _step.value;\n if (typeof item === 'string') {\n if (this.filters[filterMatchMode](item, filterValue, filterLocale)) {\n filteredItems.push(item);\n continue;\n }\n } else {\n var _iterator2 = _createForOfIteratorHelper(fields),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var field = _step2.value;\n var fieldValue = ObjectUtils.resolveFieldData(item, field);\n if (this.filters[filterMatchMode](fieldValue, filterValue, filterLocale)) {\n filteredItems.push(item);\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return filteredItems;\n },\n filters: {\n startsWith: function startsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.slice(0, filterValue.length) === filterValue;\n },\n contains: function contains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue) !== -1;\n },\n notContains: function notContains(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue) === -1;\n },\n endsWith: function endsWith(value, filter, filterLocale) {\n if (filter === undefined || filter === null || filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n var filterValue = ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n var stringValue = ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale);\n return stringValue.indexOf(filterValue, stringValue.length - filterValue.length) !== -1;\n },\n equals: function equals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime && filter.getTime) return value.getTime() === filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) === ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n notEquals: function notEquals(value, filter, filterLocale) {\n if (filter === undefined || filter === null || typeof filter === 'string' && filter.trim() === '') {\n return true;\n }\n if (value === undefined || value === null) {\n return true;\n }\n if (value.getTime && filter.getTime) return value.getTime() !== filter.getTime();else return ObjectUtils.removeAccents(value.toString()).toLocaleLowerCase(filterLocale) !== ObjectUtils.removeAccents(filter.toString()).toLocaleLowerCase(filterLocale);\n },\n \"in\": function _in(value, filter) {\n if (filter === undefined || filter === null || filter.length === 0) {\n return true;\n }\n for (var i = 0; i < filter.length; i++) {\n if (ObjectUtils.equals(value, filter[i])) {\n return true;\n }\n }\n return false;\n },\n between: function between(value, filter) {\n if (filter == null || filter[0] == null || filter[1] == null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime) return filter[0].getTime() <= value.getTime() && value.getTime() <= filter[1].getTime();else return filter[0] <= value && value <= filter[1];\n },\n lt: function lt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime && filter.getTime) return value.getTime() < filter.getTime();else return value < filter;\n },\n lte: function lte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime && filter.getTime) return value.getTime() <= filter.getTime();else return value <= filter;\n },\n gt: function gt(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime && filter.getTime) return value.getTime() > filter.getTime();else return value > filter;\n },\n gte: function gte(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n if (value.getTime && filter.getTime) return value.getTime() >= filter.getTime();else return value >= filter;\n },\n dateIs: function dateIs(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n return value.toDateString() === filter.toDateString();\n },\n dateIsNot: function dateIsNot(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n return value.toDateString() !== filter.toDateString();\n },\n dateBefore: function dateBefore(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n return value.getTime() < filter.getTime();\n },\n dateAfter: function dateAfter(value, filter) {\n if (filter === undefined || filter === null) {\n return true;\n }\n if (value === undefined || value === null) {\n return false;\n }\n return value.getTime() > filter.getTime();\n }\n },\n register: function register(rule, fn) {\n this.filters[rule] = fn;\n }\n};\n\nfunction _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}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _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}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar PrimeReact$1 = /*#__PURE__*/_createClass(function PrimeReact() {\n _classCallCheck(this, PrimeReact);\n});\n_defineProperty(PrimeReact$1, \"ripple\", false);\n_defineProperty(PrimeReact$1, \"inputStyle\", 'outlined');\n_defineProperty(PrimeReact$1, \"locale\", 'en');\n_defineProperty(PrimeReact$1, \"appendTo\", null);\n_defineProperty(PrimeReact$1, \"cssTransition\", true);\n_defineProperty(PrimeReact$1, \"autoZIndex\", true);\n_defineProperty(PrimeReact$1, \"nonce\", null);\n_defineProperty(PrimeReact$1, \"nullSortOrder\", 1);\n_defineProperty(PrimeReact$1, \"zIndex\", {\n modal: 1100,\n overlay: 1000,\n menu: 1000,\n tooltip: 1100,\n toast: 1200\n});\n_defineProperty(PrimeReact$1, \"filterMatchModeOptions\", {\n text: [FilterMatchMode.STARTS_WITH, FilterMatchMode.CONTAINS, FilterMatchMode.NOT_CONTAINS, FilterMatchMode.ENDS_WITH, FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS],\n numeric: [FilterMatchMode.EQUALS, FilterMatchMode.NOT_EQUALS, FilterMatchMode.LESS_THAN, FilterMatchMode.LESS_THAN_OR_EQUAL_TO, FilterMatchMode.GREATER_THAN, FilterMatchMode.GREATER_THAN_OR_EQUAL_TO],\n date: [FilterMatchMode.DATE_IS, FilterMatchMode.DATE_IS_NOT, FilterMatchMode.DATE_BEFORE, FilterMatchMode.DATE_AFTER]\n});\n_defineProperty(PrimeReact$1, \"changeTheme\", function (currentTheme, newTheme, linkElementId, callback) {\n var _linkElement$parentNo;\n var linkElement = document.getElementById(linkElementId);\n var cloneLinkElement = linkElement.cloneNode(true);\n var newThemeUrl = linkElement.getAttribute('href').replace(currentTheme, newTheme);\n cloneLinkElement.setAttribute('id', linkElementId + '-clone');\n cloneLinkElement.setAttribute('href', newThemeUrl);\n cloneLinkElement.addEventListener('load', function () {\n linkElement.remove();\n cloneLinkElement.setAttribute('id', linkElementId);\n if (callback) {\n callback();\n }\n });\n (_linkElement$parentNo = linkElement.parentNode) === null || _linkElement$parentNo === void 0 ? void 0 : _linkElement$parentNo.insertBefore(cloneLinkElement, linkElement.nextSibling);\n});\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar locales = {\n en: {\n startsWith: 'Starts with',\n contains: 'Contains',\n notContains: 'Not contains',\n endsWith: 'Ends with',\n equals: 'Equals',\n notEquals: 'Not equals',\n noFilter: 'No Filter',\n filter: 'Filter',\n lt: 'Less than',\n lte: 'Less than or equal to',\n gt: 'Greater than',\n gte: 'Greater than or equal to',\n dateIs: 'Date is',\n dateIsNot: 'Date is not',\n dateBefore: 'Date is before',\n dateAfter: 'Date is after',\n custom: 'Custom',\n clear: 'Clear',\n close: 'Close',\n apply: 'Apply',\n matchAll: 'Match All',\n matchAny: 'Match Any',\n addRule: 'Add Rule',\n removeRule: 'Remove Rule',\n accept: 'Yes',\n reject: 'No',\n choose: 'Choose',\n upload: 'Upload',\n cancel: 'Cancel',\n dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n today: 'Today',\n weekHeader: 'Wk',\n firstDayOfWeek: 0,\n dateFormat: 'mm/dd/yy',\n weak: 'Weak',\n medium: 'Medium',\n strong: 'Strong',\n passwordPrompt: 'Enter a password',\n emptyFilterMessage: 'No available options',\n emptyMessage: 'No results found',\n aria: {\n trueLabel: 'True',\n falseLabel: 'False',\n nullLabel: 'Not Selected',\n pageLabel: 'Page',\n firstPageLabel: 'First Page',\n lastPageLabel: 'Last Page',\n nextPageLabel: 'Next Page',\n previousPageLabel: 'Previous Page',\n selectLabel: 'Select',\n unselectLabel: 'Unselect',\n expandLabel: 'Expand',\n collapseLabel: 'Collapse'\n }\n }\n};\nfunction locale(locale) {\n locale && (PrimeReact$1.locale = locale);\n return {\n locale: PrimeReact$1.locale,\n options: locales[PrimeReact$1.locale]\n };\n}\nfunction addLocale(locale, options) {\n locales[locale] = _objectSpread(_objectSpread({}, locales['en']), options);\n}\nfunction updateLocaleOption(key, value, locale) {\n localeOptions(locale)[key] = value;\n}\nfunction updateLocaleOptions(options, locale) {\n var _locale = locale || PrimeReact$1.locale;\n locales[_locale] = _objectSpread(_objectSpread({}, locales[_locale]), options);\n}\nfunction localeOption(key, locale) {\n var _locale = locale || PrimeReact$1.locale;\n try {\n return localeOptions(_locale)[key];\n } catch (error) {\n throw new Error(\"The \".concat(key, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n }\n}\nfunction ariaLabel(key) {\n var _locale = PrimeReact$1.locale;\n try {\n return localeOptions(_locale)['aria'][key];\n } catch (error) {\n throw new Error(\"The \".concat(key, \" option is not found in the current locale('\").concat(_locale, \"').\"));\n }\n}\nfunction localeOptions(locale) {\n var _locale = locale || PrimeReact$1.locale;\n return locales[_locale];\n}\n\nvar MessageSeverity = Object.freeze({\n SUCCESS: 'success',\n INFO: 'info',\n WARN: 'warn',\n ERROR: 'error'\n});\n\nvar PrimeIcons = Object.freeze({\n ALIGN_CENTER: 'pi pi-align-center',\n ALIGN_JUSTIFY: 'pi pi-align-justify',\n ALIGN_LEFT: 'pi pi-align-left',\n ALIGN_RIGHT: 'pi pi-align-right',\n AMAZON: 'pi pi-amazon',\n ANDROID: 'pi pi-android',\n ANGLE_DOUBLE_DOWN: 'pi pi-angle-double-down',\n ANGLE_DOUBLE_LEFT: 'pi pi-angle-double-left',\n ANGLE_DOUBLE_RIGHT: 'pi pi-angle-double-right',\n ANGLE_DOUBLE_UP: 'pi pi-angle-double-up',\n ANGLE_DOWN: 'pi pi-angle-down',\n ANGLE_LEFT: 'pi pi-angle-left',\n ANGLE_RIGHT: 'pi pi-angle-right',\n ANGLE_UP: 'pi pi-angle-up',\n APPLE: 'pi pi-apple',\n ARROW_CIRCLE_DOWN: 'pi pi-arrow-circle-down',\n ARROW_CIRCLE_LEFT: 'pi pi-arrow-circle-left',\n ARROW_CIRCLE_RIGHT: 'pi pi-arrow-circle-right',\n ARROW_CIRCLE_UP: 'pi pi-arrow-circle-up',\n ARROW_DOWN: 'pi pi-arrow-down',\n ARROW_DOWN_LEFT: 'pi pi-arrow-down-left',\n ARROW_DOWN_RIGHT: 'pi pi-arrow-down-right',\n ARROW_LEFT: 'pi pi-arrow-left',\n ARROW_RIGHT: 'pi pi-arrow-right',\n ARROW_UP: 'pi pi-arrow-up',\n ARROW_UP_LEFT: 'pi pi-arrow-up-left',\n ARROW_UP_RIGHT: 'pi pi-arrow-up-right',\n ARROWS_H: 'pi pi-arrows-h',\n ARROWS_V: 'pi pi-arrows-v',\n AT: 'pi pi-at',\n BACKWARD: 'pi pi-backward',\n BAN: 'pi pi-ban',\n BARS: 'pi pi-bars',\n BELL: 'pi pi-bell',\n BOLT: 'pi pi-bolt',\n BOOK: 'pi pi-book',\n BOOKMARK: 'pi pi-bookmark',\n BOOKMARK_FILL: 'pi pi-bookmark-fill',\n BOX: 'pi pi-box',\n BRIEFCASE: 'pi pi-briefcase',\n BUILDING: 'pi pi-building',\n CALENDAR: 'pi pi-calendar',\n CALENDAR_MINUS: 'pi pi-calendar-minus',\n CALENDAR_PLUS: 'pi pi-calendar-plus',\n CALENDAR_TIMES: 'pi pi-calendar-times',\n CAMERA: 'pi pi-camera',\n CAR: 'pi pi-car',\n CARET_DOWN: 'pi pi-caret-down',\n CARET_LEFT: 'pi pi-caret-left',\n CARET_RIGHT: 'pi pi-caret-right',\n CARET_UP: 'pi pi-caret-up',\n CHART_BAR: 'pi pi-chart-bar',\n CHART_LINE: 'pi pi-chart-line',\n CHART_PIE: 'pi pi-chart-pie',\n CHECK: 'pi pi-check',\n CHECK_CIRCLE: 'pi pi-check-circle',\n CHECK_SQUARE: 'pi pi-check-square',\n CHEVRON_CIRCLE_DOWN: 'pi pi-chevron-circle-down',\n CHEVRON_CIRCLE_LEFT: 'pi pi-chevron-circle-left',\n CHEVRON_CIRCLE_RIGHT: 'pi pi-chevron-circle-right',\n CHEVRON_CIRCLE_UP: 'pi pi-chevron-circle-up',\n CHEVRON_DOWN: 'pi pi-chevron-down',\n CHEVRON_LEFT: 'pi pi-chevron-left',\n CHEVRON_RIGHT: 'pi pi-chevron-right',\n CHEVRON_UP: 'pi pi-chevron-up',\n CIRCLE: 'pi pi-circle',\n CIRCLE_FILL: 'pi pi-circle-fill',\n CLOCK: 'pi pi-clock',\n CLONE: 'pi pi-clone',\n CLOUD: 'pi pi-cloud',\n CLOUD_DOWNLOAD: 'pi pi-cloud-download',\n CLOUD_UPLOAD: 'pi pi-cloud-upload',\n CODE: 'pi pi-code',\n COG: 'pi pi-cog',\n COMMENT: 'pi pi-comment',\n COMMENTS: 'pi pi-comments',\n COMPASS: 'pi pi-compass',\n COPY: 'pi pi-copy',\n CREDIT_CARD: 'pi pi-credit-card',\n DATABASE: 'pi pi-database',\n DESKTOP: 'pi pi-desktop',\n DIRECTIONS: 'pi pi-directions',\n DIRECTIONS_ALT: 'pi pi-directions-alt',\n DISCORD: 'pi pi-discord',\n DOLLAR: 'pi pi-dollar',\n DOWNLOAD: 'pi pi-download',\n EJECT: 'pi pi-eject',\n ELLIPSIS_H: 'pi pi-ellipsis-h',\n ELLIPSIS_V: 'pi pi-ellipsis-v',\n ENVELOPE: 'pi pi-envelope',\n EURO: 'pi pi-euro',\n EXCLAMATION_CIRCLE: 'pi pi-exclamation-circle',\n EXCLAMATION_TRIANGLE: 'pi pi-exclamation-triangle',\n EXTERNAL_LINK: 'pi pi-external-link',\n EYE: 'pi pi-eye',\n EYE_SLASH: 'pi pi-eye-slash',\n FACEBOOK: 'pi pi-facebook',\n FAST_BACKWARD: 'pi pi-fast-backward',\n FAST_FORWARD: 'pi pi-fast-forward',\n FILE: 'pi pi-file',\n FILE_EXCEL: 'pi pi-file-excel',\n FILE_PDF: 'pi pi-file-pdf',\n FILTER: 'pi pi-filter',\n FILTER_FILL: 'pi pi-filter-fill',\n FILTER_SLASH: 'pi pi-filter-slash',\n FLAG: 'pi pi-flag',\n FLAG_FILL: 'pi pi-flag-fill',\n FOLDER: 'pi pi-folder',\n FOLDER_OPEN: 'pi pi-folder-open',\n FORWARD: 'pi pi-forward',\n GITHUB: 'pi pi-github',\n GLOBE: 'pi pi-globe',\n GOOGLE: 'pi pi-google',\n HASHTAG: 'pi pi-hashtag',\n HEART: 'pi pi-heart',\n HEART_FILL: 'pi pi-heart-fill',\n HISTORY: 'pi pi-history',\n HOME: 'pi pi-home',\n ID_CARD: 'pi pi-id-card',\n IMAGE: 'pi pi-image',\n IMAGES: 'pi pi-images',\n INBOX: 'pi pi-inbox',\n INFO: 'pi pi-info',\n INFO_CIRCLE: 'pi pi-info-circle',\n INSTAGRAM: 'pi pi-instagram',\n KEY: 'pi pi-key',\n LINK: 'pi pi-link',\n LINKEDIN: 'pi pi-linkedin',\n LIST: 'pi pi-list',\n LOCK: 'pi pi-lock',\n LOCK_OPEN: 'pi pi-lock-open',\n MAP: 'pi pi-map',\n MAP_MARKER: 'pi pi-map-marker',\n MICROSOFT: 'pi pi-microsoft',\n MINUS: 'pi pi-minus',\n MINUS_CIRCLE: 'pi pi-minus-circle',\n MOBILE: 'pi pi-mobile',\n MONEY_BILL: 'pi pi-money-bill',\n MOON: 'pi pi-moon',\n PALETTE: 'pi pi-palette',\n PAPERCLIP: 'pi pi-paperclip',\n PAUSE: 'pi pi-pause',\n PAYPAL: 'pi pi-paypal',\n PENCIL: 'pi pi-pencil',\n PERCENTAGE: 'pi pi-percentage',\n PHONE: 'pi pi-phone',\n PLAY: 'pi pi-play',\n PLUS: 'pi pi-plus',\n PLUS_CIRCLE: 'pi pi-plus-circle',\n POUND: 'pi pi-pound',\n POWER_OFF: 'pi pi-power-off',\n PRIME: 'pi pi-prime',\n PRINT: 'pi pi-print',\n QRCODE: 'pi pi-qrcode',\n QUESTION: 'pi pi-question',\n QUESTION_CIRCLE: 'pi pi-question-circle',\n REDDIT: 'pi pi-reddit',\n REFRESH: 'pi pi-refresh',\n REPLAY: 'pi pi-replay',\n REPLY: 'pi pi-reply',\n SAVE: 'pi pi-save',\n SEARCH: 'pi pi-search',\n SEARCH_MINUS: 'pi pi-search-minus',\n SEARCH_PLUS: 'pi pi-search-plus',\n SEND: 'pi pi-send',\n SERVER: 'pi pi-server',\n SHARE_ALT: 'pi pi-share-alt',\n SHIELD: 'pi pi-shield',\n SHOPPING_BAG: 'pi pi-shopping-bag',\n SHOPPING_CART: 'pi pi-shopping-cart',\n SIGN_IN: 'pi pi-sign-in',\n SIGN_OUT: 'pi pi-sign-out',\n SITEMAP: 'pi pi-sitemap',\n SLACK: 'pi pi-slack',\n SLIDERS_H: 'pi pi-sliders-h',\n SLIDERS_V: 'pi pi-sliders-v',\n SORT: 'pi pi-sort',\n SORT_ALPHA_DOWN: 'pi pi-sort-alpha-down',\n SORT_ALPHA_ALT_DOWN: 'pi pi-sort-alpha-alt-down',\n SORT_ALPHA_UP: 'pi pi-sort-alpha-up',\n SORT_ALPHA_ALT_UP: 'pi pi-sort-alpha-alt-up',\n SORT_ALT: 'pi pi-sort-alt',\n SORT_ALT_SLASH: 'pi pi-sort-slash',\n SORT_AMOUNT_DOWN: 'pi pi-sort-amount-down',\n SORT_AMOUNT_DOWN_ALT: 'pi pi-sort-amount-down-alt',\n SORT_AMOUNT_UP: 'pi pi-sort-amount-up',\n SORT_AMOUNT_UP_ALT: 'pi pi-sort-amount-up-alt',\n SORT_DOWN: 'pi pi-sort-down',\n SORT_NUMERIC_DOWN: 'pi pi-sort-numeric-down',\n SORT_NUMERIC_ALT_DOWN: 'pi pi-sort-numeric-alt-down',\n SORT_NUMERIC_UP: 'pi pi-sort-numeric-up',\n SORT_NUMERIC_ALT_UP: 'pi pi-sort-numeric-alt-up',\n SORT_UP: 'pi pi-sort-up',\n SPINNER: 'pi pi-spinner',\n STAR: 'pi pi-star',\n STAR_FILL: 'pi pi-star-fill',\n STEP_BACKWARD: 'pi pi-step-backward',\n STEP_BACKWARD_ALT: 'pi pi-step-backward-alt',\n STEP_FORWARD: 'pi pi-step-forward',\n STEP_FORWARD_ALT: 'pi pi-step-forward-alt',\n STOP: 'pi pi-stop',\n STOP_CIRCLE: 'pi pi-stop-circle',\n SUN: 'pi pi-sun',\n SYNC: 'pi pi-sync',\n TABLE: 'pi pi-table',\n TABLET: 'pi pi-tablet',\n TAG: 'pi pi-tag',\n TAGS: 'pi pi-tags',\n TELEGRAM: 'pi pi-telegram',\n TH_LARGE: 'pi pi-th-large',\n THUMBS_DOWN: 'pi pi-thumbs-down',\n THUMBS_UP: 'pi pi-thumbs-up',\n TICKET: 'pi pi-ticket',\n TIMES: 'pi pi-times',\n TIMES_CIRCLE: 'pi pi-times-circle',\n TRASH: 'pi pi-trash',\n TWITTER: 'pi pi-twitter',\n UNDO: 'pi pi-undo',\n UNLOCK: 'pi pi-unlock',\n UPLOAD: 'pi pi-upload',\n USER: 'pi pi-user',\n USER_EDIT: 'pi pi-user-edit',\n USER_MINUS: 'pi pi-user-minus',\n USER_PLUS: 'pi pi-user-plus',\n USERS: 'pi pi-users',\n VIDEO: 'pi pi-video',\n VIMEO: 'pi pi-vimeo',\n VOLUME_DOWN: 'pi pi-volume-down',\n VOLUME_OFF: 'pi pi-volume-off',\n VOLUME_UP: 'pi pi-volume-up',\n WALLET: 'pi pi-wallet',\n WHATSAPP: 'pi pi-whatsapp',\n WIFI: 'pi pi-wifi',\n WINDOW_MAXIMIZE: 'pi pi-window-maximize',\n WINDOW_MINIMIZE: 'pi pi-window-minimize',\n YOUTUBE: 'pi pi-youtube'\n});\n\nvar SortOrder = Object.freeze({\n DESC: -1,\n UNSORTED: 0,\n ASC: 1\n});\n\nvar PrimeReact = PrimeReact$1;\n\nexport { FilterMatchMode, FilterOperator, FilterService, MessageSeverity, PrimeIcons, SortOrder, addLocale, ariaLabel, PrimeReact as default, locale, localeOption, localeOptions, updateLocaleOption, updateLocaleOptions };\n","import * as React from 'react';\nimport { DomHandler, ObjectUtils } from 'primereact/utils';\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nvar usePrevious = function usePrevious(newValue) {\n var ref = React.useRef(undefined);\n React.useEffect(function () {\n ref.current = newValue;\n });\n return ref.current;\n};\n\n/* eslint-disable */\nvar useUnmountEffect = function useUnmountEffect(fn) {\n return React.useEffect(function () {\n return fn;\n }, []);\n};\n/* eslint-enable */\n\n/* eslint-disable */\nvar useEventListener = function useEventListener(_ref) {\n var _ref$target = _ref.target,\n target = _ref$target === void 0 ? 'document' : _ref$target,\n type = _ref.type,\n listener = _ref.listener,\n options = _ref.options,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n var targetRef = React.useRef(null);\n var listenerRef = React.useRef(null);\n var prevOptions = usePrevious(options);\n var bind = function bind() {\n var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (ObjectUtils.isNotEmpty(bindOptions.target)) {\n unbind();\n (bindOptions.when || when) && (targetRef.current = DomHandler.getTargetElement(bindOptions.target));\n }\n if (!listenerRef.current && targetRef.current) {\n listenerRef.current = function (event) {\n return listener && listener(event);\n };\n targetRef.current.addEventListener(type, listenerRef.current, options);\n }\n };\n var unbind = function unbind() {\n if (listenerRef.current) {\n targetRef.current.removeEventListener(type, listenerRef.current, options);\n listenerRef.current = null;\n }\n };\n React.useEffect(function () {\n if (when) {\n targetRef.current = DomHandler.getTargetElement(target);\n } else {\n unbind();\n targetRef.current = null;\n }\n }, [target, when]);\n React.useEffect(function () {\n if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {\n unbind();\n when && bind();\n }\n }, [listener, options]);\n useUnmountEffect(function () {\n unbind();\n });\n return [bind, unbind];\n};\n/* eslint-enable */\n\nvar useClickOutside = function useClickOutside(ref, callback) {\n var isOutsideClicked = function isOutsideClicked(event) {\n if (!ref.current || ref.current.contains(event.target)) {\n return;\n }\n callback(event);\n };\n var _useEventListener = useEventListener({\n type: 'mousedown',\n listener: isOutsideClicked\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindMouseDownListener = _useEventListener2[0],\n unbindMouseDownListener = _useEventListener2[1];\n var _useEventListener3 = useEventListener({\n type: 'touchstart',\n listener: isOutsideClicked\n }),\n _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n bindTouchStartListener = _useEventListener4[0],\n unbindTouchStartListener = _useEventListener4[1];\n React.useEffect(function () {\n if (!ref.current) {\n return;\n }\n bindMouseDownListener();\n bindTouchStartListener();\n return function () {\n unbindMouseDownListener();\n unbindTouchStartListener();\n };\n });\n return [ref, callback];\n};\n\nvar useCounter = function useCounter() {\n var initialValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n step: 1\n };\n var _React$useState = React.useState(initialValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n count = _React$useState2[0],\n setCount = _React$useState2[1];\n var increment = function increment() {\n if (options.max && count >= options.max) {\n return;\n }\n setCount(count + options.step);\n };\n var decrement = function decrement() {\n if (options.min || options.min === 0 && count <= options.min) {\n return null;\n }\n setCount(count - options.step);\n };\n var reset = function reset() {\n setCount(0);\n };\n return {\n count: count,\n increment: increment,\n decrement: decrement,\n reset: reset\n };\n};\n\n/* eslint-disable */\nvar useTimeout = function useTimeout(fn) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var timeout = React.useRef(null);\n var savedCallback = React.useRef(null);\n var clear = React.useCallback(function () {\n return clearTimeout(timeout.current);\n }, [timeout.current]);\n React.useEffect(function () {\n savedCallback.current = fn;\n });\n React.useEffect(function () {\n function callback() {\n savedCallback.current();\n }\n if (when) {\n timeout.current = setTimeout(callback, delay);\n return clear;\n } else {\n clear();\n }\n }, [delay, when]);\n useUnmountEffect(function () {\n clear();\n });\n return [clear];\n};\n/* eslint-enable */\n\nvar useDebounce = function useDebounce(initialValue, delay) {\n var _React$useState = React.useState(initialValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n inputValue = _React$useState2[0],\n setInputValue = _React$useState2[1];\n var _React$useState3 = React.useState(initialValue),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n debouncedValue = _React$useState4[0],\n setDebouncedValue = _React$useState4[1];\n useTimeout(function () {\n setDebouncedValue(inputValue);\n }, delay, inputValue !== debouncedValue);\n return [inputValue, debouncedValue, setInputValue];\n};\n\nvar TYPE_MAP = {\n ico: 'image/x-icon',\n png: 'image/png',\n svg: 'image/svg+xml',\n gif: 'image/gif'\n};\nvar useFavicon = function useFavicon() {\n var newIcon = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var rel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'shortcut icon';\n React.useLayoutEffect(function () {\n if (newIcon) {\n var linkElements = document.querySelectorAll(\"link[rel*='icon']\");\n linkElements.forEach(function (linkEl) {\n document.head.removeChild(linkEl);\n });\n var link = document.createElement('link');\n link.setAttribute('type', TYPE_MAP[newIcon.split('.').pop()]);\n link.setAttribute('rel', rel);\n link.setAttribute('href', newIcon);\n document.head.appendChild(link);\n }\n }, [newIcon, rel]);\n};\n\nvar useIntersectionObserver = function useIntersectionObserver(ref) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n isElementVisible = _React$useState2[0],\n setIsElementVisible = _React$useState2[1];\n React.useEffect(function () {\n if (!ref.current) return;\n var observer = new IntersectionObserver(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n entry = _ref2[0];\n setIsElementVisible(entry.isIntersecting);\n }, options);\n observer.observe(ref.current);\n return function () {\n observer.disconnect();\n };\n }, [options, ref]);\n return isElementVisible;\n};\n\n/* eslint-disable */\nvar useInterval = function useInterval(fn) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var timeout = React.useRef(null);\n var savedCallback = React.useRef(null);\n var clear = React.useCallback(function () {\n return clearInterval(timeout.current);\n }, [timeout.current]);\n React.useEffect(function () {\n savedCallback.current = fn;\n });\n React.useEffect(function () {\n function callback() {\n savedCallback.current();\n }\n if (when) {\n timeout.current = setInterval(callback, delay);\n return clear;\n } else {\n clear();\n }\n }, [delay, when]);\n useUnmountEffect(function () {\n clear();\n });\n return [clear];\n};\n/* eslint-enable */\n\nvar useMatchMedia = function useMatchMedia(query) {\n var when = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n matches = _React$useState2[0],\n setMatches = _React$useState2[1];\n var matchMedia = React.useRef(null);\n var handleChange = function handleChange(e) {\n return setMatches(e.matches);\n };\n var bind = function bind() {\n return matchMedia.current && matchMedia.current.addEventListener('change', handleChange);\n };\n var unbind = function unbind() {\n return matchMedia.current && matchMedia.current.removeEventListener('change', handleChange) && (matchMedia.current = null);\n };\n React.useEffect(function () {\n if (when) {\n matchMedia.current = window.matchMedia(query);\n setMatches(matchMedia.current.matches);\n bind();\n }\n return unbind;\n }, [query, when]);\n return matches;\n};\n/* eslint-enable */\n\n/* eslint-disable */\nvar useMountEffect = function useMountEffect(fn) {\n return React.useEffect(fn, []);\n};\n/* eslint-enable */\n\nfunction _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}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$1(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nvar useMouse = function useMouse() {\n var _React$useState = React.useState({\n x: 0,\n y: 0\n }),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n position = _React$useState2[0],\n setPosition = _React$useState2[1];\n var ref = React.useRef(null);\n var handleMouseMove = React.useCallback(function (event) {\n var x, y;\n if (ref.current) {\n var rect = event.currentTarget.getBoundingClientRect();\n x = event.pageX - rect.left - (window.pageXOffset || window.scrollX);\n y = event.pageY - rect.top - (window.pageYOffset || window.scrollY);\n } else {\n x = event.clientX;\n y = event.clientY;\n }\n setPosition({\n x: Math.max(0, Math.round(x)),\n y: Math.max(0, Math.round(y))\n });\n }, []);\n var _useEventListener = useEventListener({\n target: ref,\n type: 'mousemove',\n listener: handleMouseMove\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindMouseMoveEventListener = _useEventListener2[0],\n unbindMouseMoveEventListener = _useEventListener2[1];\n var _useEventListener3 = useEventListener({\n type: 'mousemove',\n listener: handleMouseMove\n }),\n _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n bindDocumentMoveEventListener = _useEventListener4[0],\n unbindDocumentMoveEventListener = _useEventListener4[1];\n var reset = function reset() {\n return setPosition({\n x: 0,\n y: 0\n });\n };\n React.useEffect(function () {\n bindMouseMoveEventListener();\n if (!ref.current) {\n bindDocumentMoveEventListener();\n }\n return function () {\n unbindMouseMoveEventListener();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n if (!ref.current) {\n unbindDocumentMoveEventListener();\n }\n };\n }, [bindDocumentMoveEventListener, bindMouseMoveEventListener, unbindDocumentMoveEventListener, unbindMouseMoveEventListener]);\n return _objectSpread$1(_objectSpread$1({\n ref: ref\n }, position), {}, {\n reset: reset\n });\n};\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction useMove(_ref) {\n var _ref$mode = _ref.mode,\n mode = _ref$mode === void 0 ? 'both' : _ref$mode,\n _ref$initialValue = _ref.initialValue,\n initialValue = _ref$initialValue === void 0 ? {\n x: 0,\n y: 0\n } : _ref$initialValue;\n var _React$useState = React.useState(initialValue),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n positions = _React$useState2[0],\n setPositions = _React$useState2[1];\n var _React$useState3 = React.useState(false),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n active = _React$useState4[0],\n setActive = _React$useState4[1];\n var isMounted = React.useRef(false);\n var isSliding = React.useRef(false);\n var ref = React.useRef(null);\n var onMouseMove = function onMouseMove(event) {\n return updateMousePosition({\n x: event.clientX,\n y: event.clientY\n });\n };\n var handlePositionChange = function handlePositionChange(_ref2) {\n var clampedX = _ref2.clampedX,\n clampedY = _ref2.clampedY;\n if (mode === 'vertical') {\n setPositions({\n y: 1 - clampedY\n });\n } else if (mode === 'horizontal') {\n setPositions({\n x: clampedX\n });\n } else if (mode === 'both') {\n setPositions({\n x: clampedX,\n y: clampedY\n });\n }\n };\n var onMouseDown = function onMouseDown(event) {\n startScrubbing();\n event.preventDefault();\n onMouseMove(event);\n };\n var stopScrubbing = function stopScrubbing() {\n if (isSliding.current && isMounted.current) {\n isSliding.current = false;\n setActive(false);\n unbindListeners();\n }\n };\n var onTouchMove = function onTouchMove(event) {\n if (event.cancelable) {\n event.preventDefault();\n }\n updateMousePosition({\n x: event.changedTouches[0].clientX,\n y: event.changedTouches[0].clientY\n });\n };\n var onTouchStart = function onTouchStart(event) {\n if (event.cancelable) {\n event.preventDefault();\n }\n startScrubbing();\n onTouchMove(event);\n };\n var _useEventListener = useEventListener({\n type: 'mousemove',\n listener: onMouseMove\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindDocumentMouseMoveListener = _useEventListener2[0],\n unbindDocumentMouseMoveListener = _useEventListener2[1];\n var _useEventListener3 = useEventListener({\n type: 'mouseup',\n listener: stopScrubbing\n }),\n _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n bindDocumentMouseUpListener = _useEventListener4[0],\n unbindDocumentMouseUpListener = _useEventListener4[1];\n var _useEventListener5 = useEventListener({\n type: 'touchmove',\n listener: onTouchMove\n }),\n _useEventListener6 = _slicedToArray(_useEventListener5, 2),\n bindDocumentTouchMoveListener = _useEventListener6[0],\n unbindDocumentTouchMoveListener = _useEventListener6[1];\n var _useEventListener7 = useEventListener({\n type: 'touchend',\n listener: stopScrubbing\n }),\n _useEventListener8 = _slicedToArray(_useEventListener7, 2),\n bindDocumentTouchEndListener = _useEventListener8[0],\n unbindDocumentTouchEndListener = _useEventListener8[1];\n var _useEventListener9 = useEventListener({\n target: ref,\n type: 'mousedown',\n listener: onMouseDown\n }),\n _useEventListener10 = _slicedToArray(_useEventListener9, 2),\n bindMouseDownListener = _useEventListener10[0],\n unbindMouseDownListener = _useEventListener10[1];\n var _useEventListener11 = useEventListener({\n target: ref,\n type: 'touchstart',\n listener: onTouchStart,\n options: {\n passive: false\n }\n }),\n _useEventListener12 = _slicedToArray(_useEventListener11, 2),\n bindTouchStartListener = _useEventListener12[0],\n unbindTouchStartListener = _useEventListener12[1];\n var clamp = function clamp(value, min, max) {\n return Math.min(Math.max(value, min), max);\n };\n var clampPositions = function clampPositions(_ref3) {\n var x = _ref3.x,\n y = _ref3.y;\n return {\n clampedX: clamp(x, 0, 1),\n clampedY: clamp(y, 0, 1)\n };\n };\n var bindListeners = function bindListeners() {\n bindDocumentMouseMoveListener();\n bindDocumentMouseUpListener();\n bindDocumentTouchMoveListener();\n bindDocumentTouchEndListener();\n };\n var unbindListeners = function unbindListeners() {\n unbindDocumentMouseMoveListener();\n unbindDocumentMouseUpListener();\n unbindDocumentTouchMoveListener();\n unbindDocumentTouchEndListener();\n };\n var reset = function reset() {\n setPositions(initialValue);\n };\n React.useEffect(function () {\n isMounted.current = true;\n }, []);\n var startScrubbing = function startScrubbing() {\n if (!isSliding.current && isMounted.current) {\n isSliding.current = true;\n setActive(true);\n bindListeners();\n }\n };\n var updateMousePosition = function updateMousePosition(_ref4) {\n var x = _ref4.x,\n y = _ref4.y;\n if (isSliding.current) {\n var rect = ref.current.getBoundingClientRect();\n var _clampPositions = clampPositions({\n x: (x - rect.left) / rect.width,\n y: (y - rect.top) / rect.height\n }),\n clampedX = _clampPositions.clampedX,\n clampedY = _clampPositions.clampedY;\n handlePositionChange({\n clampedX: clampedX,\n clampedY: clampedY\n });\n }\n };\n React.useEffect(function () {\n if (ref.current) {\n bindMouseDownListener();\n bindTouchStartListener();\n }\n return function () {\n if (ref.current) {\n unbindMouseDownListener();\n unbindTouchStartListener();\n }\n };\n }, [bindMouseDownListener, bindTouchStartListener, positions, unbindMouseDownListener, unbindTouchStartListener]);\n return _objectSpread(_objectSpread({\n ref: ref\n }, positions), {}, {\n active: active,\n reset: reset\n });\n}\n\n/* eslint-disable */\nvar useOverlayScrollListener = function useOverlayScrollListener(_ref) {\n var target = _ref.target,\n listener = _ref.listener,\n options = _ref.options,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n var targetRef = React.useRef(null);\n var listenerRef = React.useRef(null);\n var scrollableParents = React.useRef([]);\n var prevOptions = usePrevious(options);\n var bind = function bind() {\n var bindOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (ObjectUtils.isNotEmpty(bindOptions.target)) {\n unbind();\n (bindOptions.when || when) && (targetRef.current = DomHandler.getTargetElement(bindOptions.target));\n }\n if (!listenerRef.current && targetRef.current) {\n var nodes = scrollableParents.current = DomHandler.getScrollableParents(targetRef.current);\n listenerRef.current = function (event) {\n return listener && listener(event);\n };\n nodes.forEach(function (node) {\n return node.addEventListener('scroll', listenerRef.current, options);\n });\n }\n };\n var unbind = function unbind() {\n if (listenerRef.current) {\n var nodes = scrollableParents.current;\n nodes.forEach(function (node) {\n return node.removeEventListener('scroll', listenerRef.current, options);\n });\n listenerRef.current = null;\n }\n };\n React.useEffect(function () {\n if (when) {\n targetRef.current = DomHandler.getTargetElement(target);\n } else {\n unbind();\n targetRef.current = null;\n }\n }, [target, when]);\n React.useEffect(function () {\n if (listenerRef.current && (listenerRef.current !== listener || prevOptions !== options)) {\n unbind();\n when && bind();\n }\n }, [listener, options]);\n useUnmountEffect(function () {\n unbind();\n });\n return [bind, unbind];\n};\n/* eslint-enable */\n\nvar useResizeListener = function useResizeListener(_ref) {\n var listener = _ref.listener,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return useEventListener({\n target: 'window',\n type: 'resize',\n listener: listener,\n when: when\n });\n};\n\nvar useOverlayListener = function useOverlayListener(_ref) {\n var target = _ref.target,\n overlay = _ref.overlay,\n _listener = _ref.listener,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n var targetRef = React.useRef(null);\n var overlayRef = React.useRef(null);\n\n /**\n * The parameters of the 'listener' method in the following event handlers;\n * @param {Event} event A click event of the document.\n * @param {string} options.type The custom type to detect event.\n * @param {boolean} options.valid It is controlled by PrimeReact. It is determined whether it is valid or not according to some custom validation.\n */\n var _useEventListener = useEventListener({\n type: 'click',\n listener: function listener(event) {\n _listener && _listener(event, {\n type: 'outside',\n valid: event.which !== 3 && isOutsideClicked(event)\n });\n }\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindDocumentClickListener = _useEventListener2[0],\n unbindDocumentClickListener = _useEventListener2[1];\n var _useResizeListener = useResizeListener({\n listener: function listener(event) {\n _listener && _listener(event, {\n type: 'resize',\n valid: !DomHandler.isTouchDevice()\n });\n }\n }),\n _useResizeListener2 = _slicedToArray(_useResizeListener, 2),\n bindWindowResizeListener = _useResizeListener2[0],\n unbindWindowResizeListener = _useResizeListener2[1];\n var _useEventListener3 = useEventListener({\n target: 'window',\n type: 'orientationchange',\n listener: function listener(event) {\n _listener && _listener(event, {\n type: 'orientationchange',\n valid: true\n });\n }\n }),\n _useEventListener4 = _slicedToArray(_useEventListener3, 2),\n bindWindowOrientationChangeListener = _useEventListener4[0],\n unbindWindowOrientationChangeListener = _useEventListener4[1];\n var _useOverlayScrollList = useOverlayScrollListener({\n target: target,\n listener: function listener(event) {\n _listener && _listener(event, {\n type: 'scroll',\n valid: true\n });\n }\n }),\n _useOverlayScrollList2 = _slicedToArray(_useOverlayScrollList, 2),\n bindOverlayScrollListener = _useOverlayScrollList2[0],\n unbindOverlayScrollListener = _useOverlayScrollList2[1];\n var isOutsideClicked = function isOutsideClicked(event) {\n return targetRef.current && !(targetRef.current.isSameNode(event.target) || targetRef.current.contains(event.target) || overlayRef.current && overlayRef.current.contains(event.target));\n };\n var bind = function bind() {\n bindDocumentClickListener();\n bindWindowResizeListener();\n bindWindowOrientationChangeListener();\n bindOverlayScrollListener();\n };\n var unbind = function unbind() {\n unbindDocumentClickListener();\n unbindWindowResizeListener();\n unbindWindowOrientationChangeListener();\n unbindOverlayScrollListener();\n };\n React.useEffect(function () {\n if (when) {\n targetRef.current = DomHandler.getTargetElement(target);\n overlayRef.current = DomHandler.getTargetElement(overlay);\n } else {\n unbind();\n targetRef.current = overlayRef.current = null;\n }\n }, [target, overlay, when]);\n React.useEffect(function () {\n unbind();\n }, [when]);\n useUnmountEffect(function () {\n unbind();\n });\n return [bind, unbind];\n};\n/* eslint-enable */\n\n/**\n * Hook to wrap around useState that stores the value in the browser local/session storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in local/session storage\n * @param {string} storage either 'local' or 'session' for what type of storage\n * @returns a stateful value, and a function to update it.\n */\nvar useStorage = function useStorage(initialValue, key) {\n var storage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'local';\n // Since the local storage API isn't available in server-rendering environments,\n // we check that typeof window !== 'undefined' to make SSR and SSG work properly.\n var storageAvailable = typeof window !== 'undefined';\n\n // subscribe to window storage event so changes in one tab to a stored value\n // are properly reflected in all tabs\n var _useEventListener = useEventListener({\n target: 'window',\n type: 'storage',\n listener: function listener(event) {\n var area = storage === 'local' ? window.localStorage : window.sessionStorage;\n if (event.storageArea === area && event.key === key) {\n setStoredValue(event.newValue || undefined);\n }\n }\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindWindowStorageListener = _useEventListener2[0],\n unbindWindowStorageListener = _useEventListener2[1];\n var _React$useState = React.useState(undefined),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n storedValue = _React$useState2[0],\n setStoredValue = _React$useState2[1];\n var setValue = function setValue(value) {\n try {\n // Allow value to be a function so we have same API as useState\n var valueToStore = value instanceof Function ? value(storedValue) : value;\n setStoredValue(valueToStore);\n if (storageAvailable) {\n var serializedValue = JSON.stringify(valueToStore);\n storage === 'local' ? window.localStorage.setItem(key, serializedValue) : window.sessionStorage.setItem(key, serializedValue);\n }\n } catch (error) {\n throw new Error(\"PrimeReact useStorage: Failed to serialize the value at key: \".concat(key));\n }\n };\n React.useEffect(function () {\n if (!storageAvailable) {\n setStoredValue(initialValue);\n }\n try {\n var item = storage === 'local' ? window.localStorage.getItem(key) : window.sessionStorage.getItem(key);\n setStoredValue(item ? JSON.parse(item) : initialValue);\n } catch (error) {\n // If error also return initialValue\n setStoredValue(initialValue);\n }\n bindWindowStorageListener();\n return function () {\n return unbindWindowStorageListener();\n };\n }, []);\n return [storedValue, setValue];\n};\n\n/**\n * Hook to wrap around useState that stores the value in the browser local storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in local storage\n * @returns a stateful value, and a function to update it.\n */\nvar useLocalStorage = function useLocalStorage(initialValue, key) {\n return useStorage(initialValue, key, 'local');\n};\n\n/**\n * Hook to wrap around useState that stores the value in the browser session storage.\n *\n * @param {any} initialValue the initial value to store\n * @param {string} key the key to store the value in session storage\n * @returns a stateful value, and a function to update it.\n */\nvar useSessionStorage = function useSessionStorage(initialValue, key) {\n return useStorage(initialValue, key, 'session');\n};\n/* eslint-enable */\n\n/* eslint-disable */\nvar useUpdateEffect = function useUpdateEffect(fn, deps) {\n var mounted = React.useRef(false);\n return React.useEffect(function () {\n if (!mounted.current) {\n mounted.current = true;\n return;\n }\n return fn && fn();\n }, deps);\n};\n/* eslint-enable */\n\nexport { useClickOutside, useCounter, useDebounce, useEventListener, useFavicon, useIntersectionObserver, useInterval, useLocalStorage, useMatchMedia, useMountEffect, useMouse, useMove, useOverlayListener, useOverlayScrollListener, usePrevious, useResizeListener, useSessionStorage, useStorage, useTimeout, useUnmountEffect, useUpdateEffect };\n","import * as React from 'react';\nimport PrimeReact from 'primereact/api';\nimport { useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';\nimport { DomHandler } from 'primereact/utils';\n\nvar Ripple = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function () {\n var inkRef = React.useRef(null);\n var targetRef = React.useRef(null);\n var getTarget = function getTarget() {\n return inkRef.current && inkRef.current.parentElement;\n };\n var bindEvents = function bindEvents() {\n if (targetRef.current) {\n targetRef.current.addEventListener('mousedown', onMouseDown);\n DomHandler.isTouchDevice() && targetRef.current.addEventListener('touchstart', onTouchStart);\n }\n };\n var unbindEvents = function unbindEvents() {\n if (targetRef.current) {\n targetRef.current.removeEventListener('mousedown', onMouseDown);\n DomHandler.isTouchDevice() && targetRef.current.removeEventListener('touchstart', onTouchStart);\n }\n };\n var onTouchStart = function onTouchStart(event) {\n var offset = DomHandler.getOffset(targetRef.current);\n var offsetX = event.targetTouches[0].pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(inkRef.current) / 2;\n var offsetY = event.targetTouches[0].pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(inkRef.current) / 2;\n activateRipple(offsetX, offsetY);\n };\n var onMouseDown = function onMouseDown(event) {\n if (DomHandler.isTouchDevice()) {\n // already started ripple with onTouchStart\n return;\n }\n var offset = DomHandler.getOffset(targetRef.current);\n var offsetX = event.pageX - offset.left + document.body.scrollTop - DomHandler.getWidth(inkRef.current) / 2;\n var offsetY = event.pageY - offset.top + document.body.scrollLeft - DomHandler.getHeight(inkRef.current) / 2;\n activateRipple(offsetX, offsetY);\n };\n var activateRipple = function activateRipple(offsetX, offsetY) {\n if (!inkRef.current || getComputedStyle(inkRef.current, null).display === 'none') {\n return;\n }\n DomHandler.removeClass(inkRef.current, 'p-ink-active');\n if (!DomHandler.getHeight(inkRef.current) && !DomHandler.getWidth(inkRef.current)) {\n var d = Math.max(DomHandler.getOuterWidth(targetRef.current), DomHandler.getOuterHeight(targetRef.current));\n inkRef.current.style.height = d + 'px';\n inkRef.current.style.width = d + 'px';\n }\n inkRef.current.style.top = offsetY + 'px';\n inkRef.current.style.left = offsetX + 'px';\n DomHandler.addClass(inkRef.current, 'p-ink-active');\n };\n var onAnimationEnd = function onAnimationEnd(event) {\n DomHandler.removeClass(event.currentTarget, 'p-ink-active');\n };\n useMountEffect(function () {\n if (inkRef.current) {\n targetRef.current = getTarget();\n bindEvents();\n }\n });\n useUpdateEffect(function () {\n if (inkRef.current && !targetRef.current) {\n targetRef.current = getTarget();\n bindEvents();\n }\n });\n useUnmountEffect(function () {\n if (inkRef.current) {\n targetRef.current = null;\n unbindEvents();\n }\n });\n return PrimeReact.ripple ? /*#__PURE__*/React.createElement(\"span\", {\n role: \"presentation\",\n ref: inkRef,\n className: \"p-ink\",\n onAnimationEnd: onAnimationEnd\n }) : null;\n}));\nRipple.displayName = 'Ripple';\n\nexport { Ripple };\n","import * as React from 'react';\nimport PrimeReact from 'primereact/api';\nimport { useEventListener, useMountEffect, useUpdateEffect, useUnmountEffect } from 'primereact/hooks';\nimport { ObjectUtils, classNames, IconUtils, DomHandler, ZIndexUtils } from 'primereact/utils';\nimport { Ripple } from 'primereact/ripple';\n\nfunction _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}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nvar MenubarBase = {\n defaultProps: {\n __TYPE: 'Menubar',\n id: null,\n model: null,\n style: null,\n className: null,\n start: null,\n end: null,\n children: undefined\n },\n getProps: function getProps(props) {\n return ObjectUtils.getMergedProps(props, MenubarBase.defaultProps);\n },\n getOtherProps: function getOtherProps(props) {\n return ObjectUtils.getDiffProps(props, MenubarBase.defaultProps);\n }\n};\n\nvar MenubarSub = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (props, ref) {\n var _React$useState = React.useState(null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n activeItemState = _React$useState2[0],\n setActiveItemState = _React$useState2[1];\n var _useEventListener = useEventListener({\n type: 'click',\n listener: function listener(event) {\n if (ref && ref.current && !ref.current.contains(event.target)) {\n setActiveItemState(null);\n }\n }\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 1),\n bindDocumentClickListener = _useEventListener2[0];\n var onItemMouseEnter = function onItemMouseEnter(event, item) {\n if (item.disabled || props.mobileActive) {\n event.preventDefault();\n return;\n }\n if (props.root) {\n if (activeItemState || props.popup) {\n setActiveItemState(item);\n }\n } else {\n setActiveItemState(item);\n }\n };\n var onItemClick = function onItemClick(event, item) {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n if (!item.url) {\n event.preventDefault();\n }\n if (item.command) {\n item.command({\n originalEvent: event,\n item: item\n });\n }\n if (item.items) activeItemState && item === activeItemState ? setActiveItemState(null) : setActiveItemState(item);else onLeafClick();\n };\n var onItemKeyDown = function onItemKeyDown(event, item) {\n var listItem = event.currentTarget.parentElement;\n switch (event.which) {\n //down\n case 40:\n if (props.root) item.items && expandSubmenu(item, listItem);else navigateToNextItem(listItem);\n event.preventDefault();\n break;\n\n //up\n case 38:\n !props.root && navigateToPrevItem(listItem);\n event.preventDefault();\n break;\n\n //right\n case 39:\n if (props.root) {\n var nextItem = findNextItem(listItem);\n nextItem && nextItem.children[0].focus();\n } else {\n item.items && expandSubmenu(item, listItem);\n }\n event.preventDefault();\n break;\n\n //left\n case 37:\n props.root && navigateToPrevItem(listItem);\n event.preventDefault();\n break;\n }\n props.onKeyDown && props.onKeyDown(event, listItem);\n };\n var onChildItemKeyDown = function onChildItemKeyDown(event, childListItem) {\n if (props.root) {\n //up\n if (event.which === 38 && childListItem.previousElementSibling == null) {\n collapseMenu(childListItem);\n }\n } else {\n //left\n if (event.which === 37) {\n collapseMenu(childListItem);\n }\n }\n };\n var expandSubmenu = function expandSubmenu(item, listItem) {\n setActiveItemState(item);\n setTimeout(function () {\n listItem.children[1].children[0].children[0].focus();\n }, 50);\n };\n var collapseMenu = function collapseMenu(listItem) {\n setActiveItemState(null);\n listItem.parentElement.previousElementSibling.focus();\n };\n var navigateToNextItem = function navigateToNextItem(listItem) {\n var nextItem = findNextItem(listItem);\n nextItem && nextItem.children[0].focus();\n };\n var navigateToPrevItem = function navigateToPrevItem(listItem) {\n var prevItem = findPrevItem(listItem);\n prevItem && prevItem.children[0].focus();\n };\n var findNextItem = function findNextItem(item) {\n var nextItem = item.nextElementSibling;\n return nextItem ? DomHandler.hasClass(nextItem, 'p-disabled') || !DomHandler.hasClass(nextItem, 'p-menuitem') ? findNextItem(nextItem) : nextItem : null;\n };\n var findPrevItem = function findPrevItem(item) {\n var prevItem = item.previousElementSibling;\n return prevItem ? DomHandler.hasClass(prevItem, 'p-disabled') || !DomHandler.hasClass(prevItem, 'p-menuitem') ? findPrevItem(prevItem) : prevItem : null;\n };\n var onLeafClick = function onLeafClick() {\n setActiveItemState(null);\n props.onLeafClick && props.onLeafClick();\n };\n useMountEffect(function () {\n bindDocumentClickListener();\n });\n useUpdateEffect(function () {\n !props.parentActive && setActiveItemState(null);\n }, [props.parentActive]);\n var createSeparator = function createSeparator(index) {\n var key = 'separator_' + index;\n return /*#__PURE__*/React.createElement(\"li\", {\n key: key,\n className: \"p-menu-separator\",\n role: \"separator\"\n });\n };\n var createSubmenu = function createSubmenu(item) {\n if (item.items) {\n return /*#__PURE__*/React.createElement(MenubarSub, {\n menuProps: props.menuProps,\n model: item.items,\n mobileActive: props.mobileActive,\n onLeafClick: onLeafClick,\n onKeyDown: onChildItemKeyDown,\n parentActive: item === activeItemState\n });\n }\n return null;\n };\n var createMenuitem = function createMenuitem(item, index) {\n if (item.visible === false) {\n return null;\n }\n var key = item.label + '_' + index;\n var className = classNames('p-menuitem', {\n 'p-menuitem-active': activeItemState === item\n }, item.className);\n var linkClassName = classNames('p-menuitem-link', {\n 'p-disabled': item.disabled\n });\n var iconClassName = classNames('p-menuitem-icon', item.icon);\n var submenuIconClassName = classNames('p-submenu-icon pi', {\n 'pi-angle-down': props.root,\n 'pi-angle-right': !props.root\n });\n var icon = IconUtils.getJSXIcon(item.icon, {\n className: 'p-menuitem-icon'\n }, {\n props: props.menuProps\n });\n var label = item.label && /*#__PURE__*/React.createElement(\"span\", {\n className: \"p-menuitem-text\"\n }, item.label);\n var submenuIcon = item.items && /*#__PURE__*/React.createElement(\"span\", {\n className: submenuIconClassName\n });\n var submenu = createSubmenu(item);\n var content = /*#__PURE__*/React.createElement(\"a\", {\n href: item.url || '#',\n role: \"menuitem\",\n className: linkClassName,\n target: item.target,\n \"aria-haspopup\": item.items != null,\n onClick: function onClick(event) {\n return onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return onItemKeyDown(event, item);\n }\n }, icon, label, submenuIcon, /*#__PURE__*/React.createElement(Ripple, null));\n if (item.template) {\n var defaultContentOptions = {\n onClick: function onClick(event) {\n return onItemClick(event, item);\n },\n onKeyDown: function onKeyDown(event) {\n return onItemKeyDown(event, item);\n },\n className: linkClassName,\n labelClassName: 'p-menuitem-text',\n iconClassName: iconClassName,\n submenuIconClassName: submenuIconClassName,\n element: content,\n props: props\n };\n content = ObjectUtils.getJSXElement(item.template, item, defaultContentOptions);\n }\n return /*#__PURE__*/React.createElement(\"li\", {\n key: key,\n role: \"none\",\n id: item.id,\n className: className,\n style: item.style,\n onMouseEnter: function onMouseEnter(event) {\n return onItemMouseEnter(event, item);\n }\n }, content, submenu);\n };\n var createItem = function createItem(item, index) {\n return item.separator ? createSeparator(index) : createMenuitem(item, index);\n };\n var createMenu = function createMenu() {\n return props.model ? props.model.map(createItem) : null;\n };\n var role = props.root ? 'menubar' : 'menu';\n var className = classNames({\n 'p-submenu-list': !props.root,\n 'p-menubar-root-list': props.root\n });\n var submenu = createMenu();\n return /*#__PURE__*/React.createElement(\"ul\", {\n ref: ref,\n className: className,\n role: role\n }, submenu);\n}));\nMenubarSub.displayName = 'MenubarSub';\n\nvar Menubar = /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(function (inProps, ref) {\n var props = MenubarBase.getProps(inProps);\n var _React$useState = React.useState(false),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n mobileActiveState = _React$useState2[0],\n setMobileActiveState = _React$useState2[1];\n var elementRef = React.useRef(null);\n var rootMenuRef = React.useRef(null);\n var menuButtonRef = React.useRef(null);\n var _useEventListener = useEventListener({\n type: 'click',\n listener: function listener(event) {\n if (mobileActiveState && isOutsideClicked(event)) {\n setMobileActiveState(false);\n }\n }\n }),\n _useEventListener2 = _slicedToArray(_useEventListener, 2),\n bindDocumentClickListener = _useEventListener2[0],\n unbindDocumentClickListener = _useEventListener2[1];\n var toggle = function toggle(event) {\n event.preventDefault();\n setMobileActiveState(function (prevMobileActive) {\n return !prevMobileActive;\n });\n };\n var onLeafClick = function onLeafClick() {\n setMobileActiveState(false);\n };\n var isOutsideClicked = function isOutsideClicked(event) {\n return rootMenuRef.current !== event.target && !rootMenuRef.current.contains(event.target) && menuButtonRef.current !== event.target && !menuButtonRef.current.contains(event.target);\n };\n useUpdateEffect(function () {\n if (mobileActiveState) {\n ZIndexUtils.set('menu', rootMenuRef.current, PrimeReact.autoZIndex, PrimeReact.zIndex['menu']);\n bindDocumentClickListener();\n } else {\n unbindDocumentClickListener();\n ZIndexUtils.clear(rootMenuRef.current);\n }\n }, [mobileActiveState]);\n useUnmountEffect(function () {\n ZIndexUtils.clear(rootMenuRef.current);\n });\n React.useImperativeHandle(ref, function () {\n return {\n props: props,\n toggle: toggle,\n useCustomContent: useCustomContent,\n getElement: function getElement() {\n return elementRef.current;\n },\n getRootMenu: function getRootMenu() {\n return rootMenuRef.current;\n },\n getMenuButton: function getMenuButton() {\n return menuButtonRef.current;\n }\n };\n });\n var createStartContent = function createStartContent() {\n if (props.start) {\n var _start = ObjectUtils.getJSXElement(props.start, props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-menubar-start\"\n }, _start);\n }\n return null;\n };\n var createEndContent = function createEndContent() {\n if (props.end) {\n var _end = ObjectUtils.getJSXElement(props.end, props);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"p-menubar-end\"\n }, _end);\n }\n return null;\n };\n var createMenuButton = function createMenuButton() {\n if (props.model && props.model.length < 1) {\n return null;\n }\n /* eslint-disable */\n var button = /*#__PURE__*/React.createElement(\"a\", {\n ref: menuButtonRef,\n href: '#',\n role: \"button\",\n tabIndex: 0,\n className: \"p-menubar-button\",\n onClick: toggle\n }, /*#__PURE__*/React.createElement(\"i\", {\n className: \"pi pi-bars\"\n }));\n /* eslint-enable */\n\n return button;\n };\n var otherProps = MenubarBase.getOtherProps(props);\n var className = classNames('p-menubar p-component', {\n 'p-menubar-mobile-active': mobileActiveState\n }, props.className);\n var start = createStartContent();\n var end = createEndContent();\n var menuButton = createMenuButton();\n var submenu = /*#__PURE__*/React.createElement(MenubarSub, {\n ref: rootMenuRef,\n menuProps: props,\n model: props.model,\n root: true,\n mobileActive: mobileActiveState,\n onLeafClick: onLeafClick\n });\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n id: props.id,\n className: className,\n style: props.style\n }, otherProps), start, menuButton, submenu, end);\n}));\nMenubar.displayName = 'Menubar';\n\nexport { Menubar };\n","import React from 'react';\nimport { Menubar } from 'primereact/menubar';\nimport 'primereact/resources/themes/lara-light-indigo/theme.css'; //theme\nimport 'primereact/resources/primereact.min.css'; //core css\nimport 'primeicons/primeicons.css'; //icons\nimport '../../src/assets/styles/menuHeader.css';\nimport cctetLogo from '../../src/assets/img/cctetLogo.png';\nimport iconoInstagram from '../../src/icons/instagram.png';\nimport iconoFacebook from '../../src/icons/facebook.png';\n\n\n\nexport const MenuHeader = ( { lottie }\n \n ) => {\n\n const submenuClass = 'submenu-left'; // Se define el estilo CSS para ajustar el texto del submenú a la izquierda \n \n // CREAMOS EL MENÚ DE NAVEGACIÓN\n const items =[\n {\n label: 'Inicio',\n command: () =>{\n window.location.href = '/inicio';\n }\n },\n {\n label: 'Sobre Nosotros', \n \n items:[\n {\n label:'Nuestra historia',\n command: () => {\n window.location.href = '/historia';\n }, \n },\n {\n label:'Nuestro propósito',\n command: () =>{\n window.location.href = '/proposito';\n }\n \n },\n {\n label:'Equipo CCTET',\n command: () => {\n window.location.href = '/equipo-cctet';\n }\n },\n \n {\n label:'Régimen TE',\n command: () => {\n window.location.href = '/rte';\n }\n }, \n ],\n className: submenuClass, \n },\n \n // {separator:true},\n // {\n // label:'OEL edtech',\n\n //items:[\n // {\n // label:'Curso de diseño web adaptativo \"HTML y CSS\"'\n // },\n // {\n // label:'Curso de Algoritmos de Javascript y estructuras de datos'\n // },\n // {\n // label:'Cursos de IoT y electrónica'\n // },\n // {\n // label:'Curso de Programación por bloques'\n // },\n // {\n // label: 'Cursos de robótica educativa'\n\n // },\n // {\n // label: 'Curso de matemáticas generales'\n // },\n // {\n // label:'Curso de física básica'\n // },\n // {\n // label: 'Oportunidades laborales'\n // }\n // ]\n // },\n {separator:true},\n {\n label:'Plataforma Univeritaria de Asesoría Mundial (PUAM)',\n /*\n items: [\n {\n label: 'Orientación profesional'\n },\n {\n label: 'Fortalecimiento ICFES'\n },\n {\n label: 'Test de nivelación y seguimiento'\n },\n {\n label: 'Acompañamiento y apoyo universitario'\n },\n {\n label:'Solicitar asesoria universitaria',\n }\n ]\n */\n },\n //{separator:true},\n //{\n //label:'Tienda online',\n //},\n /*{\n label:'Registrarse'\n \n },*/\n {\n label:'Donar',\n command: () => {\n window.location.href = '/donar';\n }\n \n }\n ]\n\n \n \n return(\n\n
\n {/*REDES SOCIALES*/}\n {/*Imstagram */}\n
\n \n \n \n\n {/*Facebook */}\n \n \n \n \n
\n\n }\n model = {items} \n />\n
\n );\n\n}","import React from 'react';\nimport '../../src/assets/styles/footer.css';\n\nconst atualYear = new Date();\n\nexport const FooterSheet = () => { \n return(\n
\n
\n

© copyright CCTET {atualYear.getFullYear()}

\n

Desarrollado por: aprendices CCTET

\n
\n\n
\n

PRIVACIDAD

\n

Política de tratamiento de datos

\n

Términos y condiciones

\n
\n\n
\n

LUGARES DE OPERACIÓN

\n

Timbiquí: Cra 4 # 822, Diagonal Polideportivo

\n

Guapi: Laboratorio tecnología I.E Normal Superior

\n

Cel: 3102836048

\n

E-mail: gerentetic@cctet.org

\n
\n\n
\n

OFICINA PRINCIPAL

\n

Lugar de operación: Calle 73 N 34-95 Popayán

\n

Cel: 3116072750

\n

E-mail: gerencia@cctet.org

\n
\n\n
\n

ENTIDAD

\n

Corporación CCTET

\n
\n
\n );\n};\n\n\n\n// import React from 'react';\n// import '../../src/assets/styles/footer.css';\n\n// const atualYear = new Date();\n\n\n// export const FooterSheet = () => { \n// return(\n\n//
\n \n//
\n//

© copyright CCTET {atualYear.getFullYear()}

\n//

Desarrollado por: aprendices CCTET

\n//
\n\n \n//
\n//

PRIVACIDAD

\n//

Política de tratamiento de datos

\n//

Terminos y condiciones

\n//
\n\n//
\n//

LUGARES DE OPERACIÓN

\n//

Timbiquí: Cra 4 # 822, Diagonal Polideportivo

\n//

Guapi: Laboratorio tecnología I.E Normal Superior

\n//

Cel: 3102836048

\n//

E-mail: gerentetic@cctet.org

\n//
\n\n//
\n//

OFICINA PRINCIPAL

\n//

Lugar de operación: Calle 73 N 34-95 Popayán

\n//

Cel: 3116072750

\n//

E-mail: gerencia@cctet.org

\n//
\n\n//
\n//

ENTIDAD

\n//

Corporación CCTET

\n//
\n\n//
\n// );\n// }\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++) arr2[i] = arr[i];\n return arr2;\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 _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\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}","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}","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 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}","import { useEffect, useRef } from 'react';\n\n/**\n * Creates a `Ref` whose value is updated in an effect, ensuring the most recent\n * value is the one rendered with. Generally only required for Concurrent mode usage\n * where previous work in `render()` may be discarded before being used.\n *\n * This is safe to access in an event handler.\n *\n * @param value The `Ref` value\n */\nfunction useCommittedRef(value) {\n const ref = useRef(value);\n useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref;\n}\nexport default useCommittedRef;","import { useCallback } from 'react';\nimport useCommittedRef from './useCommittedRef';\nexport default function useEventCallback(fn) {\n const ref = useCommittedRef(fn);\n return useCallback(function (...args) {\n return ref.current && ref.current(...args);\n }, [ref]);\n}","import { useEffect, useRef } from 'react';\n\n/**\n * Runs an effect only when the dependencies have changed, skipping the\n * initial \"on mount\" run. Caution, if the dependency list never changes,\n * the effect is **never run**\n *\n * ```ts\n * const ref = useRef(null);\n *\n * // focuses an element only if the focus changes, and not on mount\n * useUpdateEffect(() => {\n * const element = ref.current?.children[focusedIdx] as HTMLElement\n *\n * element?.focus()\n *\n * }, [focusedIndex])\n * ```\n * @param effect An effect to run on mount\n *\n * @category effects\n */\nfunction useUpdateEffect(fn, deps) {\n const isFirst = useRef(true);\n useEffect(() => {\n if (isFirst.current) {\n isFirst.current = false;\n return;\n }\n return fn();\n }, deps);\n}\nexport default useUpdateEffect;","import useUpdatedRef from './useUpdatedRef';\nimport { useEffect } from 'react';\n\n/**\n * Attach a callback that fires when a component unmounts\n *\n * @param fn Handler to run when the component unmounts\n * @category effects\n */\nexport default function useWillUnmount(fn) {\n const onUnmount = useUpdatedRef(fn);\n useEffect(() => () => onUnmount.current(), []);\n}","import { useRef } from 'react';\n\n/**\n * Returns a ref that is immediately updated with the new value\n *\n * @param value The Ref value\n * @category refs\n */\nexport default function useUpdatedRef(value) {\n const valueRef = useRef(value);\n valueRef.current = value;\n return valueRef;\n}","import { useMemo, useRef } from 'react';\nimport useMounted from './useMounted';\nimport useWillUnmount from './useWillUnmount';\n\n/*\n * Browsers including Internet Explorer, Chrome, Safari, and Firefox store the\n * delay as a 32-bit signed integer internally. This causes an integer overflow\n * when using delays larger than 2,147,483,647 ms (about 24.8 days),\n * resulting in the timeout being executed immediately.\n *\n * via: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout\n */\nconst MAX_DELAY_MS = 2 ** 31 - 1;\nfunction setChainedTimeout(handleRef, fn, timeoutAtMs) {\n const delayMs = timeoutAtMs - Date.now();\n handleRef.current = delayMs <= MAX_DELAY_MS ? setTimeout(fn, delayMs) : setTimeout(() => setChainedTimeout(handleRef, fn, timeoutAtMs), MAX_DELAY_MS);\n}\n\n/**\n * Returns a controller object for setting a timeout that is properly cleaned up\n * once the component unmounts. New timeouts cancel and replace existing ones.\n *\n *\n *\n * ```tsx\n * const { set, clear } = useTimeout();\n * const [hello, showHello] = useState(false);\n * //Display hello after 5 seconds\n * set(() => showHello(true), 5000);\n * return (\n *
\n * {hello ?

Hello

: null}\n *
\n * );\n * ```\n */\nexport default function useTimeout() {\n const isMounted = useMounted();\n\n // types are confused between node and web here IDK\n const handleRef = useRef();\n useWillUnmount(() => clearTimeout(handleRef.current));\n return useMemo(() => {\n const clear = () => clearTimeout(handleRef.current);\n function set(fn, delayMs = 0) {\n if (!isMounted()) return;\n clear();\n if (delayMs <= MAX_DELAY_MS) {\n // For simplicity, if the timeout is short, just set a normal timeout.\n handleRef.current = setTimeout(fn, delayMs);\n } else {\n setChainedTimeout(handleRef, fn, Date.now() + delayMs);\n }\n }\n return {\n set,\n clear\n };\n }, []);\n}","import { useRef, useEffect } from 'react';\n\n/**\n * Track whether a component is current mounted. Generally less preferable than\n * properlly canceling effects so they don't run after a component is unmounted,\n * but helpful in cases where that isn't feasible, such as a `Promise` resolution.\n *\n * @returns a function that returns the current isMounted state of the component\n *\n * ```ts\n * const [data, setData] = useState(null)\n * const isMounted = useMounted()\n *\n * useEffect(() => {\n * fetchdata().then((newData) => {\n * if (isMounted()) {\n * setData(newData);\n * }\n * })\n * })\n * ```\n */\nexport default function useMounted() {\n const mounted = useRef(true);\n const isMounted = useRef(() => mounted.current);\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n return isMounted.current;\n}","import { useEffect, useLayoutEffect } from 'react';\nconst isReactNative = typeof global !== 'undefined' &&\n// @ts-ignore\nglobal.navigator &&\n// @ts-ignore\nglobal.navigator.product === 'ReactNative';\nconst isDOM = typeof document !== 'undefined';\n\n/**\n * Is `useLayoutEffect` in a DOM or React Native environment, otherwise resolves to useEffect\n * Only useful to avoid the console warning.\n *\n * PREFER `useEffect` UNLESS YOU KNOW WHAT YOU ARE DOING.\n *\n * @category effects\n */\nexport default isDOM || isReactNative ? useLayoutEffect : useEffect;","import { useState } from 'react';\nimport useEffect from './useIsomorphicEffect';\nconst targetMap = new WeakMap();\nlet resizeObserver;\nfunction getResizeObserver() {\n // eslint-disable-next-line no-return-assign\n return resizeObserver = resizeObserver || new window.ResizeObserver(entries => {\n entries.forEach(entry => {\n const handler = targetMap.get(entry.target);\n if (handler) handler(entry.contentRect);\n });\n });\n}\n\n/**\n * Efficiently observe size changes on an element. Depends on the `ResizeObserver` api,\n * and polyfills are needed in older browsers.\n *\n * ```ts\n * const [ref, attachRef] = useCallbackRef(null);\n *\n * const rect = useResizeObserver(ref);\n *\n * return (\n *
\n * {JSON.stringify(rect)}\n *
\n * )\n * ```\n *\n * @param element The DOM element to observe\n */\nexport default function useResizeObserver(element) {\n const [rect, setRect] = useState(null);\n useEffect(() => {\n if (!element) return;\n getResizeObserver().observe(element);\n setRect(element.getBoundingClientRect());\n targetMap.set(element, rect => {\n setRect(rect);\n });\n return () => {\n targetMap.delete(element);\n };\n }, [element]);\n return rect;\n}","const _excluded = [\"as\", \"disabled\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\nexport function useButtonProps({\n tagName,\n disabled,\n href,\n target,\n rel,\n role,\n onClick,\n tabIndex = 0,\n type\n}) {\n if (!tagName) {\n if (href != null || target != null || rel != null) {\n tagName = 'a';\n } else {\n tagName = 'button';\n }\n }\n const meta = {\n tagName\n };\n if (tagName === 'button') {\n return [{\n type: type || 'button',\n disabled\n }, meta];\n }\n const handleClick = event => {\n if (disabled || tagName === 'a' && isTrivialHref(href)) {\n event.preventDefault();\n }\n if (disabled) {\n event.stopPropagation();\n return;\n }\n onClick == null ? void 0 : onClick(event);\n };\n const handleKeyDown = event => {\n if (event.key === ' ') {\n event.preventDefault();\n handleClick(event);\n }\n };\n if (tagName === 'a') {\n // Ensure there's a href so Enter can trigger anchor button.\n href || (href = '#');\n if (disabled) {\n href = undefined;\n }\n }\n return [{\n role: role != null ? role : 'button',\n // explicitly undefined so that it overrides the props disabled in a spread\n // e.g. \n disabled: undefined,\n tabIndex: disabled ? undefined : tabIndex,\n href,\n target: tagName === 'a' ? target : undefined,\n 'aria-disabled': !disabled ? undefined : disabled,\n rel: tagName === 'a' ? rel : undefined,\n onClick: handleClick,\n onKeyDown: handleKeyDown\n }, meta];\n}\nconst Button = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n as: asProp,\n disabled\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps, {\n tagName: Component\n }] = useButtonProps(Object.assign({\n tagName: asProp,\n disabled\n }, props));\n return /*#__PURE__*/_jsx(Component, Object.assign({}, props, buttonProps, {\n ref: ref\n }));\n});\nButton.displayName = 'Button';\nexport default Button;","const _excluded = [\"onKeyDown\"];\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/anchor-has-content */\n\nimport * as React from 'react';\nimport { useEventCallback } from '@restart/hooks';\nimport { useButtonProps } from './Button';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function isTrivialHref(href) {\n return !href || href.trim() === '#';\n}\n/**\n * An generic `` component that covers a few A11y cases, ensuring that\n * cases where the `href` is missing or trivial like \"#\" are treated like buttons.\n */\nconst Anchor = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n let {\n onKeyDown\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const [buttonProps] = useButtonProps(Object.assign({\n tagName: 'a'\n }, props));\n const handleKeyDown = useEventCallback(e => {\n buttonProps.onKeyDown(e);\n onKeyDown == null ? void 0 : onKeyDown(e);\n });\n if (isTrivialHref(props.href) || props.role === 'button') {\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, buttonProps, {\n onKeyDown: handleKeyDown\n }));\n }\n return /*#__PURE__*/_jsx(\"a\", Object.assign({\n ref: ref\n }, props, {\n onKeyDown: onKeyDown\n }));\n});\nAnchor.displayName = 'Anchor';\nexport default Anchor;","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}","import invariant from 'invariant';\n\nvar noop = function noop() {};\n\nfunction readOnlyPropType(handler, name) {\n return function (props, propName) {\n if (props[propName] !== undefined) {\n if (!props[handler]) {\n return new Error(\"You have provided a `\" + propName + \"` prop to `\" + name + \"` \" + (\"without an `\" + handler + \"` handler prop. This will render a read-only field. \") + (\"If the field should be mutable use `\" + defaultKey(propName) + \"`. \") + (\"Otherwise, set `\" + handler + \"`.\"));\n }\n }\n };\n}\n\nexport function uncontrolledPropTypes(controlledValues, displayName) {\n var propTypes = {};\n Object.keys(controlledValues).forEach(function (prop) {\n // add default propTypes for folks that use runtime checks\n propTypes[defaultKey(prop)] = noop;\n\n if (process.env.NODE_ENV !== 'production') {\n var handler = controlledValues[prop];\n !(typeof handler === 'string' && handler.trim().length) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop) : invariant(false) : void 0;\n propTypes[prop] = readOnlyPropType(handler, displayName);\n }\n });\n return propTypes;\n}\nexport function isProp(props, prop) {\n return props[prop] !== undefined;\n}\nexport function defaultKey(key) {\n return 'default' + key.charAt(0).toUpperCase() + key.substr(1);\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nexport function canAcceptRef(component) {\n return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent);\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\n\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n\nimport { useCallback, useRef, useState } from 'react';\nimport * as Utils from './utils';\n\nfunction useUncontrolledProp(propValue, defaultValue, handler) {\n var wasPropRef = useRef(propValue !== undefined);\n\n var _useState = useState(defaultValue),\n stateValue = _useState[0],\n setState = _useState[1];\n\n var isProp = propValue !== undefined;\n var wasProp = wasPropRef.current;\n wasPropRef.current = isProp;\n /**\n * If a prop switches from controlled to Uncontrolled\n * reset its value to the defaultValue\n */\n\n if (!isProp && wasProp && stateValue !== defaultValue) {\n setState(defaultValue);\n }\n\n return [isProp ? propValue : stateValue, useCallback(function (value) {\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 (handler) handler.apply(void 0, [value].concat(args));\n setState(value);\n }, [handler])];\n}\n\nexport { useUncontrolledProp };\nexport default function useUncontrolled(props, config) {\n return Object.keys(config).reduce(function (result, fieldName) {\n var _extends2;\n\n var _ref = result,\n defaultValue = _ref[Utils.defaultKey(fieldName)],\n propsValue = _ref[fieldName],\n rest = _objectWithoutPropertiesLoose(_ref, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey));\n\n var handlerName = config[fieldName];\n\n var _useUncontrolledProp = useUncontrolledProp(propsValue, defaultValue, props[handlerName]),\n value = _useUncontrolledProp[0],\n handler = _useUncontrolledProp[1];\n\n return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = value, _extends2[handlerName] = handler, _extends2));\n }, props);\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\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var rHyphen = /-(.)/g;\nexport default function camelize(string) {\n return string.replace(rHyphen, function (_, chr) {\n return chr.toUpperCase();\n });\n}","import * as React from 'react';\nimport { useContext, useMemo } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DEFAULT_BREAKPOINTS = ['xxl', 'xl', 'lg', 'md', 'sm', 'xs'];\nexport const DEFAULT_MIN_BREAKPOINT = 'xs';\nconst ThemeContext = /*#__PURE__*/React.createContext({\n prefixes: {},\n breakpoints: DEFAULT_BREAKPOINTS,\n minBreakpoint: DEFAULT_MIN_BREAKPOINT\n});\nconst {\n Consumer,\n Provider\n} = ThemeContext;\nfunction ThemeProvider({\n prefixes = {},\n breakpoints = DEFAULT_BREAKPOINTS,\n minBreakpoint = DEFAULT_MIN_BREAKPOINT,\n dir,\n children\n}) {\n const contextValue = useMemo(() => ({\n prefixes: {\n ...prefixes\n },\n breakpoints,\n minBreakpoint,\n dir\n }), [prefixes, breakpoints, minBreakpoint, dir]);\n return /*#__PURE__*/_jsx(Provider, {\n value: contextValue,\n children: children\n });\n}\nexport function useBootstrapPrefix(prefix, defaultPrefix) {\n const {\n prefixes\n } = useContext(ThemeContext);\n return prefix || prefixes[defaultPrefix] || defaultPrefix;\n}\nexport function useBootstrapBreakpoints() {\n const {\n breakpoints\n } = useContext(ThemeContext);\n return breakpoints;\n}\nexport function useBootstrapMinBreakpoint() {\n const {\n minBreakpoint\n } = useContext(ThemeContext);\n return minBreakpoint;\n}\nexport function useIsRTL() {\n const {\n dir\n } = useContext(ThemeContext);\n return dir === 'rtl';\n}\nfunction createBootstrapComponent(Component, opts) {\n if (typeof opts === 'string') opts = {\n prefix: opts\n };\n const isClassy = Component.prototype && Component.prototype.isReactComponent;\n // If it's a functional component make sure we don't break it with a ref\n const {\n prefix,\n forwardRefAs = isClassy ? 'ref' : 'innerRef'\n } = opts;\n const Wrapped = /*#__PURE__*/React.forwardRef(({\n ...props\n }, ref) => {\n props[forwardRefAs] = ref;\n const bsPrefix = useBootstrapPrefix(props.bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Component, {\n ...props,\n bsPrefix: bsPrefix\n });\n });\n Wrapped.displayName = `Bootstrap(${Component.displayName || Component.name})`;\n return Wrapped;\n}\nexport { createBootstrapComponent, Consumer as ThemeConsumer };\nexport default ThemeProvider;","import classNames from 'classnames';\nimport camelize from 'dom-helpers/camelize';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst pascalCase = str => str[0].toUpperCase() + camelize(str).slice(1);\n// TODO: emstricten & fix the typing here! `createWithBsPrefix...`\nexport default function createWithBsPrefix(prefix, {\n displayName = pascalCase(prefix),\n Component,\n defaultProps\n} = {}) {\n const BsComponent = /*#__PURE__*/React.forwardRef(({\n className,\n bsPrefix,\n as: Tag = Component || 'div',\n ...props\n }, ref) => {\n const componentProps = {\n ...defaultProps,\n ...props\n };\n const resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix);\n return /*#__PURE__*/_jsx(Tag, {\n ref: ref,\n className: classNames(className, resolvedPrefix),\n ...componentProps\n });\n });\n BsComponent.displayName = displayName;\n return BsComponent;\n}","import createWithBsPrefix from './createWithBsPrefix';\nexport default createWithBsPrefix('carousel-caption');","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst CarouselItem = /*#__PURE__*/React.forwardRef(({\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n bsPrefix,\n className,\n ...props\n}, ref) => {\n const finalClassName = classNames(className, useBootstrapPrefix(bsPrefix, 'carousel-item'));\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: finalClassName\n });\n});\nCarouselItem.displayName = 'CarouselItem';\nexport default CarouselItem;","import * as React from 'react';\n\n/**\n * Iterates through children that are typically specified as `props.children`,\n * but only maps over children that are \"valid elements\".\n *\n * The mapFunction provided index will be normalised to the components mapped,\n * so an invalid component would not increase the index.\n *\n */\nfunction map(children, func) {\n let index = 0;\n return React.Children.map(children, child => /*#__PURE__*/React.isValidElement(child) ? func(child, index++) : child);\n}\n\n/**\n * Iterates through children that are \"valid elements\".\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child with the index reflecting the position relative to \"valid components\".\n */\nfunction forEach(children, func) {\n let index = 0;\n React.Children.forEach(children, child => {\n if ( /*#__PURE__*/React.isValidElement(child)) func(child, index++);\n });\n}\n\n/**\n * Finds whether a component's `children` prop includes a React element of the\n * specified type.\n */\nfunction hasChildOfType(children, type) {\n return React.Children.toArray(children).some(child => /*#__PURE__*/React.isValidElement(child) && child.type === type);\n}\nexport { map, forEach, hasChildOfType };","import ownerDocument from './ownerDocument';\n/**\n * Returns the owner window of a given element.\n * \n * @param node the element\n */\n\nexport default function ownerWindow(node) {\n var doc = ownerDocument(node);\n return doc && doc.defaultView || window;\n}","/**\n * Returns the owner document of a given element.\n * \n * @param node the element\n */\nexport default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","var rUpper = /([A-Z])/g;\nexport default function hyphenate(string) {\n return string.replace(rUpper, '-$1').toLowerCase();\n}","/**\n * Copyright 2013-2014, Facebook, Inc.\n * All rights reserved.\n * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js\n */\nimport hyphenate from './hyphenate';\nvar msPattern = /^ms-/;\nexport default function hyphenateStyleName(string) {\n return hyphenate(string).replace(msPattern, '-ms-');\n}","var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;\nexport default function isTransform(value) {\n return !!(value && supportedTransforms.test(value));\n}","import getComputedStyle from './getComputedStyle';\nimport hyphenate from './hyphenateStyle';\nimport isTransform from './isTransform';\n\nfunction style(node, property) {\n var css = '';\n var transforms = '';\n\n if (typeof property === 'string') {\n return node.style.getPropertyValue(hyphenate(property)) || getComputedStyle(node).getPropertyValue(hyphenate(property));\n }\n\n Object.keys(property).forEach(function (key) {\n var value = property[key];\n\n if (!value && value !== 0) {\n node.style.removeProperty(hyphenate(key));\n } else if (isTransform(key)) {\n transforms += key + \"(\" + value + \") \";\n } else {\n css += hyphenate(key) + \": \" + value + \";\";\n }\n });\n\n if (transforms) {\n css += \"transform: \" + transforms + \";\";\n }\n\n node.style.cssText += \";\" + css;\n}\n\nexport default style;","import ownerWindow from './ownerWindow';\n/**\n * Returns one or all computed style properties of an element.\n * \n * @param node the element\n * @param psuedoElement the style property\n */\n\nexport default function getComputedStyle(node, psuedoElement) {\n return ownerWindow(node).getComputedStyle(node, psuedoElement);\n}","export default !!(typeof window !== 'undefined' && window.document && window.document.createElement);","/* eslint-disable no-return-assign */\nimport canUseDOM from './canUseDOM';\nexport var optionsSupported = false;\nexport var onceSupported = false;\n\ntry {\n var options = {\n get passive() {\n return optionsSupported = true;\n },\n\n get once() {\n // eslint-disable-next-line no-multi-assign\n return onceSupported = optionsSupported = true;\n }\n\n };\n\n if (canUseDOM) {\n window.addEventListener('test', options, options);\n window.removeEventListener('test', options, true);\n }\n} catch (e) {\n /* */\n}\n\n/**\n * An `addEventListener` ponyfill, supports the `once` option\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction addEventListener(node, eventName, handler, options) {\n if (options && typeof options !== 'boolean' && !onceSupported) {\n var once = options.once,\n capture = options.capture;\n var wrappedHandler = handler;\n\n if (!onceSupported && once) {\n wrappedHandler = handler.__once || function onceHandler(event) {\n this.removeEventListener(eventName, onceHandler, capture);\n handler.call(this, event);\n };\n\n handler.__once = wrappedHandler;\n }\n\n node.addEventListener(eventName, wrappedHandler, optionsSupported ? options : capture);\n }\n\n node.addEventListener(eventName, handler, options);\n}\n\nexport default addEventListener;","/**\n * A `removeEventListener` ponyfill\n * \n * @param node the element\n * @param eventName the event name\n * @param handle the handler\n * @param options event options\n */\nfunction removeEventListener(node, eventName, handler, options) {\n var capture = options && typeof options !== 'boolean' ? options.capture : options;\n node.removeEventListener(eventName, handler, capture);\n\n if (handler.__once) {\n node.removeEventListener(eventName, handler.__once, capture);\n }\n}\n\nexport default removeEventListener;","import addEventListener from './addEventListener';\nimport removeEventListener from './removeEventListener';\n\nfunction listen(node, eventName, handler, options) {\n addEventListener(node, eventName, handler, options);\n return function () {\n removeEventListener(node, eventName, handler, options);\n };\n}\n\nexport default listen;","import css from './css';\nimport listen from './listen';\nimport triggerEvent from './triggerEvent';\n\nfunction parseDuration(node) {\n var str = css(node, 'transitionDuration') || '';\n var mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\n\nfunction emulateTransitionEnd(element, duration, padding) {\n if (padding === void 0) {\n padding = 5;\n }\n\n var called = false;\n var handle = setTimeout(function () {\n if (!called) triggerEvent(element, 'transitionend', true);\n }, duration + padding);\n var remove = listen(element, 'transitionend', function () {\n called = true;\n }, {\n once: true\n });\n return function () {\n clearTimeout(handle);\n remove();\n };\n}\n\nexport default function transitionEnd(element, handler, duration, padding) {\n if (duration == null) duration = parseDuration(element) || 0;\n var removeEmulate = emulateTransitionEnd(element, duration, padding);\n var remove = listen(element, 'transitionend', handler);\n return function () {\n removeEmulate();\n remove();\n };\n}","/**\n * Triggers an event on a given element.\n * \n * @param node the element\n * @param eventName the event name to trigger\n * @param bubbles whether the event should bubble up\n * @param cancelable whether the event should be cancelable\n */\nexport default function triggerEvent(node, eventName, bubbles, cancelable) {\n if (bubbles === void 0) {\n bubbles = false;\n }\n\n if (cancelable === void 0) {\n cancelable = true;\n }\n\n if (node) {\n var event = document.createEvent('HTMLEvents');\n event.initEvent(eventName, bubbles, cancelable);\n node.dispatchEvent(event);\n }\n}","import css from 'dom-helpers/css';\nimport transitionEnd from 'dom-helpers/transitionEnd';\nfunction parseDuration(node, property) {\n const str = css(node, property) || '';\n const mult = str.indexOf('ms') === -1 ? 1000 : 1;\n return parseFloat(str) * mult;\n}\nexport default function transitionEndListener(element, handler) {\n const duration = parseDuration(element, 'transitionDuration');\n const delay = parseDuration(element, 'transitionDelay');\n const remove = transitionEnd(element, e => {\n if (e.target === element) {\n remove();\n handler(e);\n }\n }, duration + delay);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import React from 'react';\nexport default React.createContext(null);","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import { useMemo } from 'react';\nconst toFnRef = ref => !ref || typeof ref === 'function' ? ref : value => {\n ref.current = value;\n};\nexport function mergeRefs(refA, refB) {\n const a = toFnRef(refA);\n const b = toFnRef(refB);\n return value => {\n if (a) a(value);\n if (b) b(value);\n };\n}\n\n/**\n * Create and returns a single callback ref composed from two other Refs.\n *\n * ```tsx\n * const Button = React.forwardRef((props, ref) => {\n * const [element, attachRef] = useCallbackRef();\n * const mergedRef = useMergedRefs(ref, attachRef);\n *\n * return
\n \n \n \n \n\n \n \n );\n}\n\n\n\n\n\n","import classNames from 'classnames';\nimport * as React from 'react';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Container = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n fluid = false,\n // Need to define the default \"as\" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595\n as: Component = 'div',\n className,\n ...props\n}, ref) => {\n const prefix = useBootstrapPrefix(bsPrefix, 'container');\n const suffix = typeof fluid === 'string' ? `-${fluid}` : '-fluid';\n return /*#__PURE__*/_jsx(Component, {\n ref: ref,\n ...props,\n className: classNames(className, fluid ? `${prefix}${suffix}` : prefix)\n });\n});\nContainer.displayName = 'Container';\nexport default Container;","import classNames from 'classnames';\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useBootstrapPrefix } from './ThemeProvider';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const propTypes = {\n /**\n * @default 'img'\n */\n bsPrefix: PropTypes.string,\n /**\n * Sets image as fluid image.\n */\n fluid: PropTypes.bool,\n /**\n * Sets image shape as rounded.\n */\n rounded: PropTypes.bool,\n /**\n * Sets image shape as circle.\n */\n roundedCircle: PropTypes.bool,\n /**\n * Sets image shape as thumbnail.\n */\n thumbnail: PropTypes.bool\n};\nconst Image = /*#__PURE__*/React.forwardRef(({\n bsPrefix,\n className,\n fluid = false,\n rounded = false,\n roundedCircle = false,\n thumbnail = false,\n ...props\n}, ref) => {\n bsPrefix = useBootstrapPrefix(bsPrefix, 'img');\n return /*#__PURE__*/_jsx(\"img\", {\n // eslint-disable-line jsx-a11y/alt-text\n ref: ref,\n ...props,\n className: classNames(className, fluid && `${bsPrefix}-fluid`, rounded && `rounded`, roundedCircle && `rounded-circle`, thumbnail && `${bsPrefix}-thumbnail`)\n });\n});\nImage.displayName = 'Image';\nexport default Image;","import Lottie from 'lottie-react';\nimport weAreWorking from '../../../lotties/we are work/working.json'\nimport '../../../assets/styles/nuestroEquipo.css'\n\nimport Col from 'react-bootstrap/Col';\nimport Container from 'react-bootstrap/Container';\nimport Image from 'react-bootstrap/Image';\nimport Row from 'react-bootstrap/Row';\n\nimport VivianaGahona from '../../../../src/assets/img/nuestro-equipo/Viviana_Gahona.png';\nimport irne_Fernando from '../../../../src/assets/img/nuestro-equipo/Irne_Fernando.png';\nimport IsabelSanchez from '../../../../src/assets/img/nuestro-equipo/Isabel_Sanchez_Medina.png';\nimport Jeison_Pantoja from '../../../../src/assets/img/nuestro-equipo/Jeison_Pantoja.png';\nimport KleverArrechea from '../../../../src/assets/img/nuestro-equipo/Klever_Arrechea.png'\n\n\n\n\nexport const NuestroEquipo = () => {\n return (\n\n
\n {/*\n
\n

Aún estamos trabajanViviana Gahona Gutierrezdo en la construcción de este sitio web

\n \n
\n \n
\n \n
\n */}\n \n

CCTET, TRANFORMAMOS VIDAS E INSPIRAMOS MENTES

\n\n
\n
\n
\n \n \n \n
\n

Viviana Gahona Gutierrez

\n

Presidenta

\n
\n
\n\n
\n
\n
\n \n \n \n
\n

Isabel C. Sanchez Medina

\n

Vicepresidenta

\n
\n
\n\n
\n
\n
\n \n \n \n
\n

Klever Arrechea Castillo

\n

CTO

\n
\n
\n\n\n
\n
\n
\n \n \n \n
\n

Irne Fernando Hinestroza

\n

Gerente Financiero

\n
\n
\n\n
\n
\n
\n \n \n \n
\n

jeison Pantoja Andino

\n

Director de Programación y Robótica

\n
\n
\n\n \n
\n\n\n\n )\n}\n\n\n\n\n","import Lottie from 'lottie-react';\nimport weAreWorking from '../../../lotties/we are work/RobotButterFly.json'\nimport '../../../assets/styles/rte.css'\n\n\nexport const RegimenTribitarioEspecial = () => {\n return (\n
\n
\n

Aún estamos trabajando en la construcción de este sitio web

\n \n
\n \n
\n \n
\n
\n );\n};\n\n","import React, { useEffect } from 'react';\nimport Lottie from 'lottie-react';\nimport weAreWorking from '../../../lotties/RobotAgricultura.json';\nimport '../../../assets/styles/donar.css';\n// import imgGrupoSantiago from '../../../assets/img/donar/santiago.jpeg';\n\nexport const Donar = () => {\n useEffect(() => {\n const script = document.createElement('script');\n script.src = 'https://checkout.epayco.co/checkout.js';\n script.setAttribute('data-epayco-key', 'e370565ff2f6ce3c11e7b256149c041e');\n // Otros atributos aquí...\n\n document.body.appendChild(script);\n\n return () => {\n document.body.removeChild(script);\n };\n }, []);\n\n return (\n
\n \n
\n \"imagen \n
\n \n
\n\n
\n

\n Con tu aporte ayudas al fortalecimiento de este programa\n

\n\n

\n En CCTET, nuestra misión es cerrar las brechas en el acceso y permanencia en la educación superior,\n así como en el acceso a herramientas tecnológicas y educativas en zonas vulnerables. Trabajamos para\n respaldar a niños, niñas, adolescentes y jóvenes que desean transformar sus vidas mediante la\n educación y la tecnología. Lo logramos a través de nuestro programa \"Yo te guío\", un programa que\n busca fortalecer habilidades STEM, trabajo en equipo y de liderazgo a niños, niñas y adolescentes que\n cursan el grado Octavo de secundaria y busca acompañarlos hasta su proceso de formación universitario.\n

\n\n Si crees en lo que hacemos y quieres ayudar, únete. Cada aporte suma e impacta positivamente en\n nuestro proceso.

\n\n Realiza tu donación en el botón de abajo.\n

\n\n {/* INSERT BOTÓN DE DONACIÓN EPAYCO */}\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n
\n \n
\n\n
\n \n
\n );\n};\n\n","\n\nimport './App.css';\nimport { MenuHeader } from './components/menuHeader';\n\nimport { FooterSheet } from './components/footerSheet';\nimport { SobreNosotros } from './components/views/public/sobreNosotros';\n\nimport { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\nimport { MainView } from './components/views/public/main';\nimport { NuestroProposito } from './components/views/public/nuestroProposito';\nimport { NuestroEquipo } from './components/views/public/nuestroEquipo';\nimport { RegimenTribitarioEspecial } from './components/views/public/rte';\nimport { Donar } from './components/views/public/donar';\n\nfunction App() {\n return (\n\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\n\n\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","includes","key","call","join","module","exports","default","reactIs","require","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","concat","targetStatics","sourceStatics","descriptor","e","b","Symbol","for","c","d","f","g","h","k","l","m","n","p","q","r","t","v","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","condition","format","error","undefined","Error","args","argIndex","replace","framesToPop","useLottie","props","style","animationData","loop","autoplay","initialSegment","onComplete","onLoopComplete","onEnterFrame","onSegmentStart","onConfigReady","onDataReady","onDataFailed","onLoadedImages","onDOMLoaded","onDestroy","lottieRef","renderer","assetsPath","rendererSettings","rest","_objectWithoutProperties","_excluded$1","_useState2","_slicedToArray","React","useState","animationLoaded","setAnimationLoaded","animationInstanceRef","useRef","animationContainer","play","_a","current","stop","pause","setSpeed","speed","goToAndPlay","value","isFrame","goToAndStop","setDirection","direction","playSegments","segments","forceFlag","setSubframe","useSubFrames","getDuration","inFrames","destroy","loadAnimation","forcedConfigs","config","_objectSpread2","container","lottie__default","useEffect","onUnmount","currentRawFrame","setSegment","resetSegments","listeners","handler","filter","listener","deregisterList","map","addEventListener","removeEventListener","forEach","deregister","View","React__default","createElement","ref","animationContainerRef","animationItem","getContainerVisibility","_container$getBoundin","getBoundingClientRect","top","height","window","innerHeight","getContainerCursorPosition","cursorX","cursorY","_container$getBoundin2","left","width","useInitInteractivity","_ref","wrapperRef","mode","actions","wrapper","scrollModeHandler","assignedSegment","scrollHandler","currentPercent","action","find","_ref2","visibility","frames","frameToGo","Math","ceil","firstFrame","isPaused","document","cursorModeHandler","handleCursor","_x","_y","pos","_ref3","position","Number","isNaN","xPercent","yPercent","mouseMoveHandler","ev","clientX","clientY","mouseOutHandler","useLottieInteractivity","_ref4","lottieObj","Lottie","_b","_c","interactivity","lottieProps","_excluded","_useLottie","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","object","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","this","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","src","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","obj","iterator","constructor","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","test","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","floor","bmMax","max","bmMin","min","BMMath","ProjectInterface$1","propertyNames","random","abs","val","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","s","RGBtoHSV","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","fn","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","j","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","id","comp","findComp","__used","JSON","parse","stringify","ks","it","o","checkVersion","minimum","animVersionString","animVersion","split","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","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","open","send","completeData","payload","animation","event","process","onError","createProcess","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","ctx","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","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","splice","markerParser","parsePayloadLines","line","lines","keysCount","trim","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","getRegisteredRenderer","_typeof$4","AnimationItem","isLoaded","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","parseInt","autoloadSegments","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","renderFrame","resetFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","init","end","pendingFrame","setLoop","isLooping","getPath","getAssetData","hide","show","updateDocumentData","index","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","slice","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","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","point","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","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quaternionToEuler","slerp","createQuaternion","omega","cosom","sinom","scale0","scale1","out","ax","ay","az","aw","bx","by","bz","bw","acos","sin","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","PropertyFactory","getProp","sid","slotManager","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","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","tan","_rnd","rotate","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","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","multiply","matrix","matrixProps","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","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","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","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","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","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","derivative","denom","tcusp","square","root","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","size","combinedCharacters","BLACK_FLAG_CODE_POINT","REGIONAL_CHARACTER_A_CODE_POINT","REGIONAL_CHARACTER_Z_CODE_POINT","surrogateModifiers","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","getCodePoint","string","codePoint","charCodeAt","second","isRegionalCode","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","charCode","isFlagEmoji","isCombinedCharacter","_char3","isRegionalFlag","isVariationSelector","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","SlotManager","slotFactory","RenderableElement","slots","assign","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","layerId","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","compSize","effectTypes","TRANSFORM_EFFECT","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","initTransform","_matMdf","_localMatMdf","_opMdf","localMat","localOpacity","ao","renderTransform","finalMat","renderLocalTransform","localTransforms","lmat","localOp","opacity","searchEffectTransforms","renderableEffectsManager","transformEffects","getEffects","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects$1","idPrefix","SVGEffects","filterManager","source","createFilter","filters","Effect","effect","countsAsEffect","registerEffect$1","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","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","dataProps","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","of","ms","ost","buildShapeString","_o","_i","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","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","charactersArray","shouldCombine","shouldCombineNext","currentChars","charAt","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","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","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","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","atan","textAnimator","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","validateText","buildNewText","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","String","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","registeredEffects","CVEffects","registerEffect","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","CanvasContext","strokeStyle","lineCap","CVContextData","stack","cArrPos","cTr","nativeContext","transformMat","currentOpacity","currentFillStyle","appliedFillStyle","currentStrokeStyle","appliedStrokeStyle","currentLineWidth","appliedLineWidth","currentLineCap","appliedLineCap","currentLineJoin","appliedLineJoin","appliedMiterLimit","currentMiterLimit","CVCompElement","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","ctxTransform","ctxOpacity","ctxFillStyle","ctxStrokeStyle","ctxLineWidth","ctxLineCap","ctxLineJoin","ctxMiterLimit","ctxFill","ctxFillRect","ctxStroke","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","getTransform","exitLayer","buffer","forceRealStack","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","grd","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","globalAlpha","rule","actionFlag","containerStyle","mozTransformOrigin","setContext","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","duplicate","newLength","forceRestore","currentContext","prevStack","saveOnNativeFlag","currentStack","newStack","setOpacity","trProps","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","_typeof$2","seedRandom","nodecrypto","global","rngname","startdenom","significance","ARC4","keylen","me","S","copy","flatten","result","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","SHAPE","_typeof$1","ExpressionManager","fetch","_lottieGlobal","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","valueAtTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","frameExpressionId","__preventDeadCodeRemoval","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","getSpeedAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","transformInterface","anchorPointDescriptor","defineProperties","anchor_point","startTime","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","fillColor","_typeof","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","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","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","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","TransformEffect","SVGTransformEffect","CVTransformEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","forceFrame","isUniformScale","scaleHeight","scaleWidth","isarray","pathToRegexp","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","escaped","next","capture","asterisk","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","encode","pretty","encodeURIComponent","token","TypeError","attachKeys","re","sensitive","strict","route","endsWithDelimiter","groups","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","set","Reflect","construct","Pa","tag","Qa","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","configurable","enumerable","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","valueOf","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","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","input","keygen","link","meta","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","Wb","memoizedState","dehydrated","Xb","Zb","child","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","oc","clz32","pc","qc","log","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","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","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","locale","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","date","datetime","email","month","password","range","search","tel","week","oe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","documentElement","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","instance","D","has","pf","qf","rf","sf","passive","J","F","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","E","G","Vf","H","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","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","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","bh","eventTime","lane","dh","K","eh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","updater","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","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","O","P","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","R","ni","lastEffect","stores","oi","qi","ri","create","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","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","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","T","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","ok","pk","Y","Z","qk","rk","tk","uk","Infinity","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","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","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","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","toArray","only","PureComponent","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","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","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","getter","__esModule","definition","globalThis","Function","_arrayLikeToArray$1","_unsupportedIterableToArray$1","minLen","from","_arrayWithHoles","_e","_r","_arr","_n","_d","_iterableToArrayLimit","_nonIterableRest","_len","_key","_classes","entries","_classCallCheck","Constructor","_toPropertyKey","hint","prim","toPrimitive","_toPrimitive","_defineProperties","writable","_createClass","protoProps","staticProps","_defineProperty","_createForOfIteratorHelper","allowArrayLike","_arrayLikeToArray","_unsupportedIterableToArray","normalCompletion","didErr","step","_e2","DomHandler","getComputedStyle","parseFloat","paddingLeft","paddingRight","userLanguage","languages","language","browserLanguage","systemLanguage","doc","pageYOffset","clientTop","pageXOffset","clientLeft","marginLeft","marginRight","marginTop","marginBottom","clientHeight","clientWidth","win","innerWidth","classList","_styles","remove","_styles2","_i2","selector","querySelector","paddingTop","paddingBottom","borderTopWidth","borderBottomWidth","borderLeftWidth","borderRightWidth","overlay","appendTo","calculateMinWidth","relativePosition","minWidth","getOuterWidth","absolutePosition","elementDimensions","offsetParent","getHiddenElementDimensions","elementOuterHeight","elementOuterWidth","targetOuterHeight","targetOuterWidth","targetOffset","windowScrollTop","getWindowScrollTop","windowScrollLeft","getWindowScrollLeft","viewport","getViewport","targetHeight","_this","my","at","myArr","atArr","getPositionValue","isOffset","offsetX","offsetY","myOffset","getOuterHeight","alignWithAt","axis","isFunction","myXPosition","parents","getParents","scrollableParents","_step","overflowRegex","overflowCheck","styleDeclaration","getPropertyValue","_iterator","scrollSelectors","_step2","_iterator2","findSingle","tick","getTime","gap","fading","maxTouchPoints","msMaxTouchPoints","nativeElement","HTMLElement","borderTopValue","borderTop","paddingTopValue","containerRect","scroll","itemHeight","empty","getRangeAt","getClientRects","calculatedScrollbarWidth","scrollDiv","scrollbarWidth","matched","resolveUserAgent","_step3","visibleFocusableElements","_iterator3","focusableElement","focusableElements","getFocusableElements","scrollTo","preventScroll","firstFocusableElement","getFirstFocusableElement","prevText","nextText","currentText","ghostDiv","pointerEvents","padding","border","overflowWrap","whiteSpace","ghostSpan","offsetLeft","offsetTop","methodName","targetNode","parentElement","hasClass","cssText","csv","filename","msSaveOrOpenBlob","saveAs","file","download","click","nonce","styleElement","REACT_APP_CSS_NONCE","head","isExist","rv","attrs","sort","elm1","elm2","attrs1","attrs2","node1","node2","getAttributeNames","astyle","bstyle","rexDigitsOnly","_i3","_Object$keys","getAttribute","isEqualElement","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","ObjectUtils","obj1","obj2","field","resolveFieldData","deepEquals","arrA","arrB","dateA","dateB","regexpA","regexpB","isNotEmpty","fields","codePointAt","reduce","startsWiths","some","startsWith","dataKey","findIndex","findDiffKeys","_len2","_key2","methodParams","getMergedProps","getDiffProps","validTypes","isValid","getComponentProp","innerRef","isEmpty","nullSortOrder","finalSortOrder","emptyValue1","emptyValue2","localeCompare","numeric","_extends","ownKeys","enumerableOnly","symbols","sym","IconUtils","icon","iconProps","iconType","defaultContentOptions","getOwnPropertyDescriptors","_objectSpread","getJSXElement","ZIndexUtils","zIndexes","getLastZIndex","autoZIndex","baseZIndex","lastZIndex","newZIndex","generateZIndex","clear","getCurrent","getCurrentZIndex","FilterMatchMode","STARTS_WITH","CONTAINS","NOT_CONTAINS","ENDS_WITH","EQUALS","NOT_EQUALS","IN","LESS_THAN","LESS_THAN_OR_EQUAL_TO","GREATER_THAN","GREATER_THAN_OR_EQUAL_TO","BETWEEN","DATE_IS","DATE_IS_NOT","DATE_BEFORE","DATE_AFTER","CUSTOM","AND","OR","PrimeReact$1","PrimeReact","modal","menu","tooltip","toast","currentTheme","newTheme","linkElementId","_linkElement$parentNo","linkElement","cloneLinkElement","cloneNode","newThemeUrl","SUCCESS","INFO","WARN","ERROR","ALIGN_CENTER","ALIGN_JUSTIFY","ALIGN_LEFT","ALIGN_RIGHT","AMAZON","ANDROID","ANGLE_DOUBLE_DOWN","ANGLE_DOUBLE_LEFT","ANGLE_DOUBLE_RIGHT","ANGLE_DOUBLE_UP","ANGLE_DOWN","ANGLE_LEFT","ANGLE_RIGHT","ANGLE_UP","APPLE","ARROW_CIRCLE_DOWN","ARROW_CIRCLE_LEFT","ARROW_CIRCLE_RIGHT","ARROW_CIRCLE_UP","ARROW_DOWN","ARROW_DOWN_LEFT","ARROW_DOWN_RIGHT","ARROW_LEFT","ARROW_RIGHT","ARROW_UP","ARROW_UP_LEFT","ARROW_UP_RIGHT","ARROWS_H","ARROWS_V","AT","BACKWARD","BAN","BARS","BELL","BOLT","BOOK","BOOKMARK","BOOKMARK_FILL","BOX","BRIEFCASE","BUILDING","CALENDAR","CALENDAR_MINUS","CALENDAR_PLUS","CALENDAR_TIMES","CAMERA","CAR","CARET_DOWN","CARET_LEFT","CARET_RIGHT","CARET_UP","CHART_BAR","CHART_LINE","CHART_PIE","CHECK","CHECK_CIRCLE","CHECK_SQUARE","CHEVRON_CIRCLE_DOWN","CHEVRON_CIRCLE_LEFT","CHEVRON_CIRCLE_RIGHT","CHEVRON_CIRCLE_UP","CHEVRON_DOWN","CHEVRON_LEFT","CHEVRON_RIGHT","CHEVRON_UP","CIRCLE","CIRCLE_FILL","CLOCK","CLONE","CLOUD","CLOUD_DOWNLOAD","CLOUD_UPLOAD","CODE","COG","COMMENT","COMMENTS","COMPASS","COPY","CREDIT_CARD","DATABASE","DESKTOP","DIRECTIONS","DIRECTIONS_ALT","DISCORD","DOLLAR","DOWNLOAD","EJECT","ELLIPSIS_H","ELLIPSIS_V","ENVELOPE","EURO","EXCLAMATION_CIRCLE","EXCLAMATION_TRIANGLE","EXTERNAL_LINK","EYE","EYE_SLASH","FACEBOOK","FAST_BACKWARD","FAST_FORWARD","FILE","FILE_EXCEL","FILE_PDF","FILTER","FILTER_FILL","FILTER_SLASH","FLAG","FLAG_FILL","FOLDER","FOLDER_OPEN","FORWARD","GITHUB","GLOBE","GOOGLE","HASHTAG","HEART","HEART_FILL","HISTORY","HOME","ID_CARD","IMAGE","IMAGES","INBOX","INFO_CIRCLE","INSTAGRAM","KEY","LINK","LINKEDIN","LIST","LOCK","LOCK_OPEN","MAP","MAP_MARKER","MICROSOFT","MINUS","MINUS_CIRCLE","MOBILE","MONEY_BILL","MOON","PALETTE","PAPERCLIP","PAUSE","PAYPAL","PENCIL","PERCENTAGE","PHONE","PLAY","PLUS","PLUS_CIRCLE","POUND","POWER_OFF","PRIME","PRINT","QRCODE","QUESTION","QUESTION_CIRCLE","REDDIT","REFRESH","REPLAY","REPLY","SAVE","SEARCH","SEARCH_MINUS","SEARCH_PLUS","SEND","SERVER","SHARE_ALT","SHIELD","SHOPPING_BAG","SHOPPING_CART","SIGN_IN","SIGN_OUT","SITEMAP","SLACK","SLIDERS_H","SLIDERS_V","SORT","SORT_ALPHA_DOWN","SORT_ALPHA_ALT_DOWN","SORT_ALPHA_UP","SORT_ALPHA_ALT_UP","SORT_ALT","SORT_ALT_SLASH","SORT_AMOUNT_DOWN","SORT_AMOUNT_DOWN_ALT","SORT_AMOUNT_UP","SORT_AMOUNT_UP_ALT","SORT_DOWN","SORT_NUMERIC_DOWN","SORT_NUMERIC_ALT_DOWN","SORT_NUMERIC_UP","SORT_NUMERIC_ALT_UP","SORT_UP","SPINNER","STAR","STAR_FILL","STEP_BACKWARD","STEP_BACKWARD_ALT","STEP_FORWARD","STEP_FORWARD_ALT","STOP","STOP_CIRCLE","SUN","SYNC","TABLE","TABLET","TAG","TAGS","TELEGRAM","TH_LARGE","THUMBS_DOWN","THUMBS_UP","TICKET","TIMES","TIMES_CIRCLE","TRASH","TWITTER","UNDO","UNLOCK","UPLOAD","USER","USER_EDIT","USER_MINUS","USER_PLUS","USERS","VIDEO","VIMEO","VOLUME_DOWN","VOLUME_OFF","VOLUME_UP","WALLET","WHATSAPP","WIFI","WINDOW_MAXIMIZE","WINDOW_MINIMIZE","YOUTUBE","DESC","UNSORTED","ASC","usePrevious","useUnmountEffect","useEventListener","_ref$target","_ref$when","when","targetRef","listenerRef","prevOptions","bindOptions","unbind","getTargetElement","useMountEffect","useUpdateEffect","mounted","Ripple","inkRef","getTarget","bindEvents","onMouseDown","isTouchDevice","onTouchStart","getOffset","getWidth","getHeight","activateRipple","removeClass","addClass","ripple","role","onAnimationEnd","MenubarBase","__TYPE","model","getProps","getOtherProps","MenubarSub","_React$useState2","activeItemState","setActiveItemState","bindDocumentClickListener","onItemClick","command","originalEvent","onLeafClick","onItemKeyDown","listItem","expandSubmenu","navigateToNextItem","navigateToPrevItem","nextItem","findNextItem","onKeyDown","onChildItemKeyDown","childListItem","previousElementSibling","collapseMenu","prevItem","findPrevItem","nextElementSibling","parentActive","createMenuitem","visible","label","linkClassName","iconClassName","submenuIconClassName","getJSXIcon","menuProps","submenuIcon","submenu","mobileActive","createSubmenu","template","labelClassName","onMouseEnter","popup","onItemMouseEnter","separator","createSeparator","Menubar","inProps","mobileActiveState","setMobileActiveState","elementRef","rootMenuRef","menuButtonRef","_useEventListener2","isOutsideClicked","unbindDocumentClickListener","toggle","prevMobileActive","useCustomContent","getElement","getRootMenu","getMenuButton","otherProps","_start","createStartContent","_end","createEndContent","menuButton","tabIndex","MenuHeader","_jsxs","justifyContent","_jsx","cctetLogo","alt","atualYear","FooterSheet","getFullYear","excluded","sourceKeys","sourceSymbolKeys","propertyIsEnumerable","useEventCallback","useCommittedRef","isFirst","useWillUnmount","valueRef","useUpdatedRef","MAX_DELAY_MS","setChainedTimeout","handleRef","timeoutAtMs","delayMs","useTimeout","useMounted","product","useButtonProps","_ref2$tabIndex","handleClick","isTrivialHref","Button","asProp","as","_objectWithoutPropertiesLoose","_useButtonProps2","buttonProps","Anchor","handleKeyDown","defaultKey","useUncontrolled","fieldName","_extends2","Utils","propsValue","handlerName","_useUncontrolledProp","propValue","wasPropRef","_useState","stateValue","isProp","wasProp","useUncontrolledProp","nextProps","prevState","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","__suppressDeprecationWarning","rHyphen","DEFAULT_BREAKPOINTS","ThemeContext","prefixes","breakpoints","minBreakpoint","useBootstrapPrefix","defaultPrefix","pascalCase","chr","_ref$displayName","BsComponent","bsPrefix","_ref2$as","Tag","componentProps","resolvedPrefix","CarouselItem","_ref$as","finalClassName","ownerWindow","rUpper","msPattern","hyphenateStyleName","hyphenate","supportedTransforms","css","psuedoElement","isTransform","removeProperty","optionsSupported","onceSupported","once","canUseDOM","wrappedHandler","__once","onceHandler","emulateTransitionEnd","called","handle","createEvent","initEvent","listen","transitionEnd","parseDuration","removeEmulate","transitionEndListener","_setPrototypeOf","setPrototypeOf","__proto__","subClass","superClass","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","_inheritsLoose","_proto","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","timeout","mounting","nodeRef","ReactDOM","forceReflow","performEnter","performExit","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","cancel","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","maybeNextCallback","_this$props","childProps","TransitionGroupContext","noop","toFnRef","refA","refB","mergeRefs","childRef","mergedRef","useMergedRefs","attachRef","componentOrElement","handleEnter","handleEntering","handleEntered","handleExit","handleExiting","handleExited","handleAddEndListener","innerProps","Carousel","_ref2$defaultActiveIn","defaultActiveIndex","_useUncontrolled","activeIndex","_useUncontrolled$as","_useUncontrolled$slid","slide","_useUncontrolled$fade","fade","_useUncontrolled$cont","controls","_useUncontrolled$indi","indicators","_useUncontrolled$indi2","indicatorLabels","onSelect","onSlide","onSlid","_useUncontrolled$inte","interval","_useUncontrolled$keyb","keyboard","_useUncontrolled$paus","onMouseOver","onMouseOut","_useUncontrolled$wrap","wrap","_useUncontrolled$touc","touch","onTouchMove","onTouchEnd","_useUncontrolled$prev","prevIcon","_useUncontrolled$prev2","prevLabel","_useUncontrolled$next","nextIcon","_useUncontrolled$next2","nextLabel","variant","_excluded2","isRTL","nextDirectionRef","_useState4","paused","setPaused","_useState6","isSliding","setIsSliding","_useState8","renderedActiveIndex","setRenderedActiveIndex","activeChildInterval","numChildren","activeChildIntervalRef","prev","nextActiveIndex","nextWhenVisible","elementStyle","slideDirection","orderClassName","directionalClassName","triggerBrowserReflow","handleMouseOver","handleMouseOut","touchStartXRef","touchDeltaXRef","touchUnpauseTimeout","handleTouchStart","handleTouchMove","handleTouchEnd","touchDeltaX","shouldPlay","intervalHandleRef","_activeChildIntervalR","nextFunc","visibilityState","indicatorOnClicks","isActive","TransitionWrapper","_Fragment","Caption","CarouselCaption","Item","SobreNosotros","image","isAbsolute","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","isProduction","invariant","provided","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","resolvePathname","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","getUserConfirmation","appendListener","notifyListeners","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","globalHistory","canUseHistory","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","isBlocked","pushState","nextKeys","replaceState","goBack","goForward","block","unblock","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","baseTag","pushHashPath","nextPaths","lowerBound","upperBound","MAX_SIGNED_31_BIT_INT","commonjsGlobal","calculateChangedBits","contextProp","getUniqueId","emitter","handlers","on","off","changedBits","createEventEmitter","oldValue","_Provider$childContex","_React$Component2","observedBits","onUpdate","_Consumer$contextType","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","cache$1","cacheLimit$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","cacheKey","pathCache","regexp","compilePath$1","_compilePath","Route","context$1","computedMatch","isEmptyChildren","createURL","staticHandler","Switch","BrowserRouter","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","navigate","_onClick","ex","isModifiedEvent","Link","_ref2$component","__RouterContext","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","BodyCctet","widthLottie","heigthLottie","textAlign","heigth","HorizontalLottie","lottieFile","animationsLottie","educativeRobot","educations","robotDown","finalRobot","TresDPrinter","estamosTrabajando","ROUND_PRECISION","getPercentage","percentage","renderProgressBar","_classNames","visuallyHidden","striped","animated","ProgressBar","_ref2$isChild","isChild","wrapperProps","_excluded3","DefaultContext","IconContext","__assign","__rest","Tree2Element","tree","GenIcon","IconBase","conf","svgProps","computedSize","xmlns","FaCircle","ProgresBarr","subtitle","maxProgress","setNow","handleScroll","scrollY","documentHeight","scrollHeight","windowHeight","animationDuration","ProgressBarLottie","IconNumberComponent","setCount","incrementCount","flexDirection","alignItems","Metricas","NuestrosAliados","logoManosVisibles","logoInndico","laAlianza","acenture","googleForNonprofits","universidadDelCauca","koulutus","onesoft","MainView","_ref$variant","_ref$active","_ref$disabled","newQuotes","quotes","author","quote","NuestroProposito","onLoad","fluid","Container","_ref$fluid","suffix","_ref$rounded","rounded","_ref$roundedCircle","roundedCircle","_ref$thumbnail","thumbnail","NuestroEquipo","VivianaGahona","IsabelSanchez","KleverArrechea","irne_Fernando","Jeison_Pantoja","RegimenTribitarioEspecial","weAreWorking","Donar","script","method","App"],"sourceRoot":""}