{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/axios/lib/utils.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/prop-types/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/react-dom/index.js","../node_modules/axios/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/clsx/dist/clsx.m.js","../../src/utils/propValidator.ts","../../src/utils/constant.ts","../../src/utils/cssTransition.tsx","../../src/utils/collapseToast.ts","../../src/core/eventManager.ts","../../src/hooks/useKeeper.ts","../../src/hooks/toastContainerReducer.ts","../../src/hooks/useToastContainer.ts","../../src/hooks/useToast.ts","../../src/components/CloseButton.tsx","../../src/components/ProgressBar.tsx","../../src/components/Icons.tsx","../../src/components/Toast.tsx","../../src/components/Transitions.tsx","../../src/components/ToastContainer.tsx","../../src/core/toast.tsx","../node_modules/object-assign/index.js","../node_modules/axios/lib/defaults.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/react-router-dom/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-input-mask/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/query-string/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/webpack/buildin/global.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/transformData.js","../node_modules/process/browser.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/react-phone-input-2/lib/lib.js","../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../node_modules/invariant/browser.js","../node_modules/warning/warning.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/createForOfIteratorHelper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/strict-uri-encode/index.js","../node_modules/decode-uri-component/index.js","../node_modules/split-on-first/index.js","../node_modules/filter-obj/index.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/v4.js"],"names":["module","exports","require","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread2","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","defineProperty","_arrayLikeToArray","arr","len","arr2","Array","_slicedToArray","isArray","_i","Symbol","iterator","_s","_e","_arr","_n","_d","call","next","done","value","err","o","minLen","n","prototype","toString","slice","constructor","name","from","test","TypeError","_setPrototypeOf","p","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","create","_extends","assign","hasOwnProperty","this","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","createNamedContext","context","createContext","historyContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","render","RouterContext","history","state","match","staticContext","HistoryContext","children","React","Component","cache","cacheCount","matchPath","options","exact","strict","sensitive","concat","matched","cacheKey","pathCache","result","regexp","pathToRegexp","compilePath","end","values","memo","Route","component","isEmptyChildren","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","computedMatch","useContext","useHistory","useLocation","useParams","_defineProperty","obj","configurable","writable","_typeof","_regeneratorRuntime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","method","arg","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","fn","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","resolve","reject","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","undefined","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","displayName","isGeneratorFunction","genFun","ctor","mark","awrap","async","Promise","iter","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","isAbsolute","spliceOne","list","index","k","resolvePathname","to","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","join","substr","valueOf","valueEqual","a","b","every","item","aValue","bValue","stripLeadingSlash","prefix","toLowerCase","hasBasename","stripTrailingSlash","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","locationsAreEqual","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","isActive","listener","notifyListeners","_len","args","_key","canUseDOM","window","document","createElement","getConfirmation","message","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","navigator","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","setState","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","href","pushState","prevIndex","nextKeys","replace","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","max","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","nextIndex","nextEntries","splice","canGo","bind","val","isUndefined","isObject","isPlainObject","isFunction","l","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","product","merge","assignValue","extend","thisArg","trim","str","stripBOM","content","charCodeAt","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","condition","core","version","__e","global","Function","__g","get","ctx","hide","has","$export","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","c","virtual","R","U","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","it","createDesc","exec","IObject","defined","store","uid","USE_SYMBOL","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","bitmap","$keys","enumBugKeys","id","px","propertyIsEnumerable","toVal","mix","y","tmp","x","isNum","v","isBool","isStr","isFn","parseClassName","isToastIdValid","toastId","canUseDom","canBeRendered","isValidElement","POSITION","TOP_LEFT","TOP_RIGHT","TOP_CENTER","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","TYPE","INFO","SUCCESS","WARNING","ERROR","DEFAULT","cssTransition","enter","exit","appendPosition","collapse","collapseDuration","position","preventExitTransition","nodeRef","isIn","enterClassName","exitClassName","baseClassName","useRef","animationStep","onEntered","node","onExited","duration","scrollHeight","style","requestAnimationFrame","setTimeout","collapseToast","useLayoutEffect","onEnter","useEffect","onExit","eventManager","emitQueue","on","set","off","cb","cancelEmit","timers","emit","timer","useKeeper","refresh","ref","reducer","useToastContainer","forceUpdate","useReducer","toast","dispatch","containerRef","toastCount","queue","collection","instance","toastKey","displayedToast","containerId","isToastActive","getToast","clearWaitingQueue","removeToast","dequeueToast","appendToast","buildToast","delay","staleId","updateId","isNotValid","data","closeToast","isNotAnUpdate","toastAutoClose","containerAutoClose","toastProps","isLoading","theme","icon","closeButton","rtl","transition","className","bodyClassName","bodyStyle","onClick","pauseOnHover","pauseOnFocusLoss","draggable","draggablePercent","draggableDirection","closeOnClick","progressClassName","progressStyle","autoClose","hideProgressBar","progress","role","deleteToast","queueLen","freeSlot","toDequeue","removeFromCollection","toastContent","cloneElement","getToastToRender","toastToRender","toastList","getX","getY","useToast","useState","isRunning","setIsRunning","setPreventExitTransition","toastRef","drag","start","removalDistance","canCloseOnClick","canDrag","boundingRect","syncProps","onDragStart","onDragTransitionEnd","top","bottom","left","right","pauseToast","playToast","onDragMove","onDragEnd","bindFocusEvents","eventHandlers","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","CloseButton","ariaLabel","viewBox","fillRule","d","ProgressBar","userStyle","controlledProgress","animationDuration","animationPlayState","opacity","defaultClassName","cx","classNames","animationEvent","Svg","rest","width","height","fill","Icons","warning","success","spinner","Toast","Transition","cssClasses","isProgressControlled","maybeIcon","iconProps","Icon","renderCloseButton","Bounce","ToastContainer","getClassName","containerStyle","pointerEvents","newestOnTop","containers","lazy","generateToastId","getToastId","dispatchToast","containerDomNode","mergeOptions","createToastByType","pending","resetParams","resolver","input","promise","container","oldOptions","oldContent","nextOptions","config","containerConfig","latestInstance","containerInstance","propIsEnumerable","toObject","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","s","utils","normalizeHeaderName","enhanceError","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","transitional","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","adapter","XMLHttpRequest","process","getDefaultAdapter","transformRequest","rawValue","parser","encoder","JSON","parse","stringify","stringifySafely","transformResponse","strictJSONParsing","responseType","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","status","common","ceil","floor","shared","SHARED","mode","copyright","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","appendChild","src","contentWindow","open","write","lt","close","Properties","def","TAG","tag","stat","LIBRARY","wksExt","arrayLikeToArray","__esModule","BrowserRouter","createHistory","resolveToLocation","normalizeToLocation","forwardRefShim","forwardRef","LinkAnchor","innerRef","navigate","ex","isModifiedEvent","forwardedRef","Link","isDuplicateNavigation","ariaCurrent","activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","m","escaped","offset","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","encode","pretty","encodeURIComponent","token","segment","j","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","paramsSerializer","serializedParams","toISOString","hashmarkIndex","code","request","response","isAxiosError","toJSON","description","number","fileName","lineNumber","columnNumber","stack","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","auth","username","password","unescape","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","responseText","statusText","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","cancel","abort","send","__CANCEL__","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","prop","axiosKeys","otherKeys","Cancel","aFunction","that","is","toIObject","arrayIndexOf","names","cof","ObjectProto","_iterator2","_interopRequireDefault","_symbol2","default","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","IS_SET","FORCED","methods","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","hiddenKeys","pIE","gOPD","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","handlers","handler","h","newValue","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","PropTypes","isRequired","Consumer","_Component2","_this2","getValue","onUpdate","observedBits","_proto2","contextTypes","reactIs","REACT_STATICS","contextType","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","isMemo","ForwardRef","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_temp","_ret","handleClickToPause","anim","isPaused","play","pause","eventListeners","loop","autoplay","animationData","rendererSettings","segments","el","renderer","loadAnimation","registerEvents","deRegisterEvents","destroy","isStopped","playSegments","setSpeed","setDirection","speed","direction","eventListener","eventName","_this3","_this4","_props2","ariaRole","isClickToPauseDisabled","title","getSize","initial","lottieStyles","overflow","margin","outline","onClickHandler","tabIndex","arrayOf","oneOfType","string","bool","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","decode","keysSorter","sort","Number","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","query","arrayFormat","arrayFormatSeparator","formatter","accumulator","includes","isEncodedArray","arrayValue","parserForArrayFormat","ret","param","reduce","Boolean","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","parseUrl","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","for","w","z","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","D","E","isReactComponent","isPureReactComponent","current","H","I","__self","__source","J","g","$$typeof","_owner","L","M","N","escape","K","Q","_status","_result","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","Children","count","toArray","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","_context","createFactory","createRef","_payload","_init","useCallback","useDebugValue","useImperativeHandle","useMemo","aa","ba","Set","ca","da","ea","add","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","removeAttribute","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Reflect","construct","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","body","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeType","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","rb","sb","tb","setProperty","ub","menuitem","area","br","col","embed","hr","img","keygen","link","meta","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","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","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","color","date","datetime","email","month","range","tel","text","time","week","me","ne","oe","pe","qe","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","passive","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","clearTimeout","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","size","createElementNS","createTextNode","V","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsx","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","array","func","symbol","any","instanceOf","objectOf","oneOf","shape","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","all","promises","spread","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","boolean","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","use","eject","transformData","throwIfCancellationRequested","throwIfRequested","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","browser","env","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","normalizedName","expires","domain","secure","cookie","toGMTString","decodeURIComponent","remove","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","line","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","requestURL","pkg","thing","deprecatedWarnings","currentVerArr","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","opt","desc","warn","schema","allowUnknown","executor","resolvePromise","parseInt","NaN","clear","_","__data__","Cache","leading","maxWait","trailing","flush","isTypedArray","$","Uint8Array","byteLength","byteOffset","Ge","webpackPolyfill","deprecate","paths","padEnd","ReferenceError","regions","iso2","countryCode","dialCode","format","isAreaCode","areaCodeLength","mainCode","hasAreaCodes","findIndex","filterRegions","some","sortTerritories","getFilteredCountryList","find","localizeCountries","localName","getCustomAreas","excludeCountries","onlyCountries","preferredCountries","hiddenAreaCodes","getProbableCandidate","guessSelectedCountry","enableAreaCodes","updateCountry","selectedCountry","formattedNumber","disableCountryCode","formatNumber","scrollTo","dropdownRef","offsetHeight","getBoundingClientRect","enableSearch","scrollToTop","enableAreaCodeStretch","enableLongNumbers","autoFormat","remainingText","formattedText","cursorToEnd","numberInputRef","setSelectionRange","getElement","getCountryData","handleFlagDropdownClick","showDropdown","highlightCountryIndex","handleInput","onChange","freezeSelection","countryCodeEditable","country","disableCountryGuess","handleInputClick","handleDoubleClick","handleFlagItemClick","handleInputFocus","jumpCursorToEnd","placeholder","onFocus","handleInputBlur","onBlur","handleInputCopy","copyNumbersOnly","setData","getHighlightCountryIndex","getSearchFilteredCountries","searchCountry","handleKeydown","ENTER","ESC","blur","UP","DOWN","TAB","SPACE","debouncedQueryStingSearcher","handleInputKeyDown","onEnterKeyPress","onKeyDown","handleClickOutside","dropdownContainerRef","handleSearchChange","searchValue","getDropdownCountryName","getCountryDropdownList","disableDropdown","searchNotFound","disableSearchIcon","searchClass","searchStyle","searchPlaceholder","autocompleteSearch","preferred","active","highlight","dropdownClass","dropdownStyle","autoComplete","enableTerritories","preserveOrder","masks","areaCodes","localization","defaultMask","alwaysDefaultMask","disableInitialCountryGuess","enableClickOutside","updateFormattedNumber","renderStringAsFlag","isValid","defaultErrorMessage","specialLabel","containerClass","arrow","inputClass","buttonClass","inputStyle","onDoubleClick","onCopy","inputProps","buttonStyle","flagsImagePath","RIGHT","LEFT","PLUS","hasFocus","HTMLElement","getLastSelection","setSelection","getLastValue","inputRef","getInputState","selection","getLastInputState","setInputState","isCharacterAllowedAtPosition","maskOptions","maskPlaceholder","isCharacterFillingPosition","mask","isPositionEditable","permanents","isValueEmpty","isValueFilled","getFilledLength","lastEditablePosition","getDefaultSelectionForValue","getRightEditablePosition","getStringFillingLengthAtPosition","insertCharacterAtPosition","getLeftEditablePosition","formatValue","insertStringAtPosition","clearRange","processChange","enteredString","alwaysShowMask","beforeMaskedStateChange","readOnly","currentState","previousState","getTime","abs","argIndex","framesToPop","_assign","_assign2","DESCRIPTORS","getKeys","gOPS","$assign","aLen","getSymbols","isEnum","toLength","toAbsoluteIndex","IS_INCLUDES","$this","toInteger","$getPrototypeOf","fails","KEY","exp","_defineProperty2","protoProps","staticProps","$Object","_typeof2","_typeof3","$at","iterated","_t","point","TO_STRING","pos","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","step","_k","Arguments","META","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","_setPrototypeOf2","_create2","check","buggy","root","factory","svgNS","locationHref","initialDefaultFrame","subframeEnabled","idPrefix","expressionsPlugin","isSafari","cachedColors","bmRnd","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface","propertyNames","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","round","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","BaseEvent","triggerEvent","_cbs","callbacks","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createTag","DynamicPropertyContainer","addDynamicProperty","dynamicProperties","_isAnimated","iterateDynamicProperties","_mdf","initDynamicPropertyContainer","getBlendMode","blendModeEnums","lineCapEnum","lineJoinEnum","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","rotate","angle","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","pool","math","startdenom","significance","ARC4","keylen","copy","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","crypto","msCrypto","getRandomValues","plugins","screen","autoseed","arc4","prng","int32","quick","double","pass","is_math_call","BezierFactory","nm","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","lastPoint","lengthData","bezierLengthPool","newElement","percents","lengths","BezierData","segmentLength","PointData","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","segmentsLengthPool","closed","pathV","pathO","pathI","_length","totalLength","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","lastTime","vendors","currTime","timeToCall","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","completed","tt","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","singleShape","__used","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","pathData","__converted","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","moduleOb","__complete","dataManager","getFontProperties","fontData","styles","fStyle","fWeight","weight","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","fontFamily","innerText","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","tHelper","fontProps","fFamily","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","fontPrototype","addChars","found","addFonts","defs","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","origin","rel","helper","getCharData","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","nextKeyTime","keyTime","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","or","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","frameRate","autoOriented","v1","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","init","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shapePool","releaseShapes","addShape","ShapeProperty","shapeCollectionPool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","ir","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","processPath","clonedPath","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","items","itemsTransform","cont","hasReloaded","copies","ix","reloadShapes","elems","op","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","comparePoints","buildShapeString","pathNodes","_o","shapeString","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","ImagePreloader","proxyImage","canvas","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","assetLoader","load","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","append","setCacheType","elementHelper","featureSupport","maskType","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","formatResponse","xhr","errorCallback","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","sw","fs","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charactersArray","shouldCombine","newLineFlag","charData","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorPropFactory","_currentTextLength","finalS","finalE","textProperty","easer","tot","newCharsFlag","divisor","poolFactory","initialLength","_release","pooling","cloned","shapeCollection","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","__","BaseRenderer","SVGRenderer","animationItem","svgElement","titleElement","titleId","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","AudioElement","FootageElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextLottieElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","center","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","webkitPerspective","perspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","cst","opacityId","opFill","ml","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","layerElementParent","masker","createFilter","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","buildColor","colorData","emptyProp","timeRemapped","setElements","getElements","destroyElements","pr","volumeValue","FootageInterface","getFootageData","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","newLength","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","transformedElementStyle","matrixValue","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","yMax","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","Image","imageElem","perspectiveStyle","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","addPlayingCount","activate","nowTime","advanceTime","first","setParams","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","animType","autoloadSegments","initialSegment","trigger","wrapperAttributes","attributes","getNamedItem","prerender","completeData","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","getMarkerData","markerName","numValue","frameModifier","goToAndPlay","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onComplete","onSegmentStart","onDestroy","getPath","getDuration","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","fetch","$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","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","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","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","frames","fps","timeToFrames","seedRandom","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","_name","mn","parentPropertyGroup","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","ExpressionPropertyInterface","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","MaskManagerInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","compositions","_thisProjectFunction","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TextExpressionSelectorPropFactory","getValueProxy","total","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","eff","lottie","setLocationHref","setSubframeRendering","setIDPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","pair","__getFactory","scripts","myScript","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","allowArrayLike","normalCompletion","didErr","_e2","arrayWithoutHoles","iterableToArray","nonIterableSpread","singleMatcher","multiMatcher","decodeComponents","components","encodedURI","replaceMap","customDecodeURIComponent","separator","separatorIndex","predicate","isArr","rnds8","rng","validate","uuid","REGEX","byteToHex","v4","buf","rnds"],"mappings":"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","file":"static/js/2.d7224862.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","import defineProperty from \"./defineProperty.js\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\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\n return keys;\n}\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\n return target;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\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 = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","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 _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","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\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(RouterContext).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(RouterContext).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(RouterContext).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\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\";\nexport default function _regeneratorRuntime() {\n \"use strict\";\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n\n _regeneratorRuntime = function _regeneratorRuntime() {\n return exports;\n };\n\n var exports = {},\n Op = Object.prototype,\n hasOwn = Op.hasOwnProperty,\n $Symbol = \"function\" == typeof Symbol ? Symbol : {},\n iteratorSymbol = $Symbol.iterator || \"@@iterator\",\n asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\",\n toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n return Object.defineProperty(obj, key, {\n value: value,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), obj[key];\n }\n\n try {\n define({}, \"\");\n } catch (err) {\n define = function define(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator,\n generator = Object.create(protoGenerator.prototype),\n context = new Context(tryLocsList || []);\n return generator._invoke = function (innerFn, self, context) {\n var state = \"suspendedStart\";\n return function (method, arg) {\n if (\"executing\" === state) throw new Error(\"Generator is already running\");\n\n if (\"completed\" === state) {\n if (\"throw\" === method) throw arg;\n return doneResult();\n }\n\n for (context.method = method, context.arg = arg;;) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (\"next\" === context.method) context.sent = context._sent = context.arg;else if (\"throw\" === context.method) {\n if (\"suspendedStart\" === state) throw state = \"completed\", context.arg;\n context.dispatchException(context.arg);\n } else \"return\" === context.method && context.abrupt(\"return\", context.arg);\n state = \"executing\";\n var record = tryCatch(innerFn, self, context);\n\n if (\"normal\" === record.type) {\n if (state = context.done ? \"completed\" : \"suspendedYield\", record.arg === ContinueSentinel) continue;\n return {\n value: record.arg,\n done: context.done\n };\n }\n\n \"throw\" === record.type && (state = \"completed\", context.method = \"throw\", context.arg = record.arg);\n }\n };\n }(innerFn, self, context), generator;\n }\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n exports.wrap = wrap;\n var ContinueSentinel = {};\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {}\n\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n var getProto = Object.getPrototypeOf,\n NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol) && (IteratorPrototype = NativeIteratorPrototype);\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n define(prototype, method, function (arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (\"throw\" !== record.type) {\n var result = record.arg,\n value = result.value;\n return value && \"object\" == _typeof(value) && hasOwn.call(value, \"__await\") ? PromiseImpl.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n }) : PromiseImpl.resolve(value).then(function (unwrapped) {\n result.value = unwrapped, resolve(result);\n }, function (error) {\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n\n reject(record.arg);\n }\n\n var previousPromise;\n\n this._invoke = function (method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n };\n }\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (undefined === method) {\n if (context.delegate = null, \"throw\" === context.method) {\n if (delegate.iterator[\"return\"] && (context.method = \"return\", context.arg = undefined, maybeInvokeDelegate(delegate, context), \"throw\" === context.method)) return ContinueSentinel;\n context.method = \"throw\", context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n if (\"throw\" === record.type) return context.method = \"throw\", context.arg = record.arg, context.delegate = null, ContinueSentinel;\n var info = record.arg;\n return info ? info.done ? (context[delegate.resultName] = info.value, context.next = delegate.nextLoc, \"return\" !== context.method && (context.method = \"next\", context.arg = undefined), context.delegate = null, ContinueSentinel) : info : (context.method = \"throw\", context.arg = new TypeError(\"iterator result is not an object\"), context.delegate = null, ContinueSentinel);\n }\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n 1 in locs && (entry.catchLoc = locs[1]), 2 in locs && (entry.finallyLoc = locs[2], entry.afterLoc = locs[3]), this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\", delete record.arg, entry.completion = record;\n }\n\n function Context(tryLocsList) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], tryLocsList.forEach(pushTryEntry, this), this.reset(!0);\n }\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) return iteratorMethod.call(iterable);\n if (\"function\" == typeof iterable.next) return iterable;\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n for (; ++i < iterable.length;) {\n if (hasOwn.call(iterable, i)) return next.value = iterable[i], next.done = !1, next;\n }\n\n return next.value = undefined, next.done = !0, next;\n };\n\n return next.next = next;\n }\n }\n\n return {\n next: doneResult\n };\n }\n\n function doneResult() {\n return {\n value: undefined,\n done: !0\n };\n }\n\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, define(Gp, \"constructor\", GeneratorFunctionPrototype), define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, toStringTagSymbol, \"GeneratorFunction\"), exports.isGeneratorFunction = function (genFun) {\n var ctor = \"function\" == typeof genFun && genFun.constructor;\n return !!ctor && (ctor === GeneratorFunction || \"GeneratorFunction\" === (ctor.displayName || ctor.name));\n }, exports.mark = function (genFun) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(genFun, GeneratorFunctionPrototype) : (genFun.__proto__ = GeneratorFunctionPrototype, define(genFun, toStringTagSymbol, \"GeneratorFunction\")), genFun.prototype = Object.create(Gp), genFun;\n }, exports.awrap = function (arg) {\n return {\n __await: arg\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n }), exports.AsyncIterator = AsyncIterator, exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n void 0 === PromiseImpl && (PromiseImpl = Promise);\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);\n return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n }, defineIteratorMethods(Gp), define(Gp, toStringTagSymbol, \"Generator\"), define(Gp, iteratorSymbol, function () {\n return this;\n }), define(Gp, \"toString\", function () {\n return \"[object Generator]\";\n }), exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n return keys.reverse(), function next() {\n for (; keys.length;) {\n var key = keys.pop();\n if (key in object) return next.value = key, next.done = !1, next;\n }\n\n return next.done = !0, next;\n };\n }, exports.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = undefined, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = undefined, this.tryEntries.forEach(resetTryEntry), !skipTempReset) for (var name in this) {\n \"t\" === name.charAt(0) && hasOwn.call(this, name) && !isNaN(+name.slice(1)) && (this[name] = undefined);\n }\n },\n stop: function stop() {\n this.done = !0;\n var rootRecord = this.tryEntries[0].completion;\n if (\"throw\" === rootRecord.type) throw rootRecord.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) throw exception;\n var context = this;\n\n function handle(loc, caught) {\n return record.type = \"throw\", record.arg = exception, context.next = loc, caught && (context.method = \"next\", context.arg = undefined), !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i],\n record = entry.completion;\n if (\"root\" === entry.tryLoc) return handle(\"end\");\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\"),\n hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) return handle(entry.catchLoc, !0);\n } else {\n if (!hasFinally) throw new Error(\"try statement without catch or finally\");\n if (this.prev < entry.finallyLoc) return handle(entry.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n finallyEntry && (\"break\" === type || \"continue\" === type) && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc && (finallyEntry = null);\n var record = finallyEntry ? finallyEntry.completion : {};\n return record.type = type, record.arg = arg, finallyEntry ? (this.method = \"next\", this.next = finallyEntry.finallyLoc, ContinueSentinel) : this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (\"throw\" === record.type) throw record.arg;\n return \"break\" === record.type || \"continue\" === record.type ? this.next = record.arg : \"return\" === record.type ? (this.rval = this.arg = record.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === record.type && afterLoc && (this.next = afterLoc), ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) return this.complete(entry.completion, entry.afterLoc), resetTryEntry(entry), ContinueSentinel;\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (\"throw\" === record.type) {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n }\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n return this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n }, \"next\" === this.method && (this.arg = undefined), ContinueSentinel;\n }\n }, exports;\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n throw new Error(prefix + \": \" + (message || ''));\n}\n\nexport default invariant;\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\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","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","module.exports = require('./lib/axios');","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","function toVal(mix) {\n\tvar k, y, str='';\n\n\tif (typeof mix === 'string' || typeof mix === 'number') {\n\t\tstr += mix;\n\t} else if (typeof mix === 'object') {\n\t\tif (Array.isArray(mix)) {\n\t\t\tfor (k=0; k < mix.length; k++) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tif (y = toVal(mix[k])) {\n\t\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\t\tstr += y;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor (k in mix) {\n\t\t\t\tif (mix[k]) {\n\t\t\t\t\tstr && (str += ' ');\n\t\t\t\t\tstr += k;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn str;\n}\n\nexport default function () {\n\tvar i=0, tmp, x, str='';\n\twhile (i < arguments.length) {\n\t\tif (tmp = arguments[i++]) {\n\t\t\tif (x = toVal(tmp)) {\n\t\t\t\tstr && (str += ' ');\n\t\t\t\tstr += x\n\t\t\t}\n\t\t}\n\t}\n\treturn str;\n}\n","import { isValidElement } from 'react';\n\nimport { Id } from '../types';\n\nexport function isNum(v: any): v is Number {\n return typeof v === 'number' && !isNaN(v);\n}\n\nexport function isBool(v: any): v is Boolean {\n return typeof v === 'boolean';\n}\n\nexport function isStr(v: any): v is String {\n return typeof v === 'string';\n}\n\nexport function isFn(v: any): v is Function {\n return typeof v === 'function';\n}\n\nexport function parseClassName(v: any) {\n return isStr(v) || isFn(v) ? v : null;\n}\n\nexport function isToastIdValid(toastId?: Id) {\n return toastId === 0 || toastId;\n}\n\nexport function getAutoCloseDelay(\n toastAutoClose?: false | number,\n containerAutoClose?: false | number\n) {\n return toastAutoClose === false ||\n (isNum(toastAutoClose) && toastAutoClose > 0)\n ? toastAutoClose\n : containerAutoClose;\n}\n\nexport const canUseDom = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nexport function canBeRendered(content: T): boolean {\n return (\n isValidElement(content) || isStr(content) || isFn(content) || isNum(content)\n );\n}\n","import { ToastPosition, TypeOptions } from '../types';\n\ntype KeyOfPosition =\n | 'TOP_LEFT'\n | 'TOP_RIGHT'\n | 'TOP_CENTER'\n | 'BOTTOM_LEFT'\n | 'BOTTOM_RIGHT'\n | 'BOTTOM_CENTER';\n\ntype KeyOfType = 'INFO' | 'SUCCESS' | 'WARNING' | 'ERROR' | 'DEFAULT';\n\nexport const POSITION: { [key in KeyOfPosition]: ToastPosition } = {\n TOP_LEFT: 'top-left',\n TOP_RIGHT: 'top-right',\n TOP_CENTER: 'top-center',\n BOTTOM_LEFT: 'bottom-left',\n BOTTOM_RIGHT: 'bottom-right',\n BOTTOM_CENTER: 'bottom-center'\n};\n\nexport const TYPE: { [key in KeyOfType]: TypeOptions } = {\n INFO: 'info',\n SUCCESS: 'success',\n WARNING: 'warning',\n ERROR: 'error',\n DEFAULT: 'default'\n};\n\nexport const enum Default {\n COLLAPSE_DURATION = 300,\n DEBOUNCE_DURATION = 50,\n CSS_NAMESPACE = 'Toastify',\n DRAGGABLE_PERCENT = 80\n}\n\nexport const enum Direction {\n X = 'x',\n Y = 'y'\n}\n","import React, { useEffect, useLayoutEffect, useRef } from 'react';\nimport { ToastTransitionProps } from '../types';\n\nimport { collapseToast } from './collapseToast';\nimport { Default } from './constant';\n\nexport interface CSSTransitionProps {\n /**\n * Css class to apply when toast enter\n */\n enter: string;\n\n /**\n * Css class to apply when toast leave\n */\n exit: string;\n\n /**\n * Append current toast position to the classname.\n * If multiple classes are provided, only the last one will get the position\n * For instance `myclass--top-center`...\n * `Default: false`\n */\n appendPosition?: boolean;\n\n /**\n * Collapse toast smoothly when exit animation end\n * `Default: true`\n */\n collapse?: boolean;\n\n /**\n * Collapse transition duration\n * `Default: 300`\n */\n collapseDuration?: number;\n}\n\nconst enum AnimationStep {\n Enter,\n Exit\n}\n\n/**\n * Css animation that just work.\n * You could use animate.css for instance\n *\n *\n * ```\n * cssTransition({\n * enter: \"animate__animated animate__bounceIn\",\n * exit: \"animate__animated animate__bounceOut\"\n * })\n * ```\n *\n */\nexport function cssTransition({\n enter,\n exit,\n appendPosition = false,\n collapse = true,\n collapseDuration = Default.COLLAPSE_DURATION\n}: CSSTransitionProps) {\n return function ToastTransition({\n children,\n position,\n preventExitTransition,\n done,\n nodeRef,\n isIn\n }: ToastTransitionProps) {\n const enterClassName = appendPosition ? `${enter}--${position}` : enter;\n const exitClassName = appendPosition ? `${exit}--${position}` : exit;\n const baseClassName = useRef();\n const animationStep = useRef(AnimationStep.Enter);\n\n useLayoutEffect(() => {\n onEnter();\n }, []);\n\n useEffect(() => {\n if (!isIn) preventExitTransition ? onExited() : onExit();\n }, [isIn]);\n\n function onEnter() {\n const node = nodeRef.current!;\n baseClassName.current = node.className;\n node.className += ` ${enterClassName}`;\n node.addEventListener('animationend', onEntered);\n }\n\n function onEntered(e: AnimationEvent) {\n if (e.target !== nodeRef.current) return;\n\n const node = nodeRef.current!;\n node.removeEventListener('animationend', onEntered);\n if (animationStep.current === AnimationStep.Enter) {\n node.className = baseClassName.current!;\n }\n }\n\n function onExit() {\n animationStep.current = AnimationStep.Exit;\n const node = nodeRef.current!;\n\n node.className += ` ${exitClassName}`;\n node.addEventListener('animationend', onExited);\n }\n\n function onExited() {\n const node = nodeRef.current!;\n\n node.removeEventListener('animationend', onExited);\n collapse ? collapseToast(node, done, collapseDuration) : done();\n }\n\n return <>{children};\n };\n}\n","import { Default } from './constant';\n\n/**\n * Used to collapse toast after exit animation\n */\nexport function collapseToast(\n node: HTMLElement,\n done: () => void,\n duration = Default.COLLAPSE_DURATION\n) {\n const { scrollHeight, style } = node;\n\n requestAnimationFrame(() => {\n style.minHeight = 'initial';\n style.height = scrollHeight + 'px';\n style.transition = `all ${duration}ms`;\n\n requestAnimationFrame(() => {\n style.height = '0';\n style.padding = '0';\n style.margin = '0';\n setTimeout(done, duration as number);\n });\n });\n}\n","import {\n Id,\n ToastContent,\n ClearWaitingQueueParams,\n NotValidatedToastProps\n} from '../types';\nimport { ContainerInstance } from '../hooks';\n\nexport const enum Event {\n Show,\n Clear,\n DidMount,\n WillUnmount,\n Change,\n ClearWaitingQueue\n}\n\ntype OnShowCallback = (\n content: ToastContent,\n options: NotValidatedToastProps\n) => void;\ntype OnClearCallback = (id?: Id) => void;\ntype OnClearWaitingQueue = (params: ClearWaitingQueueParams) => void;\ntype OnDidMountCallback = (containerInstance: ContainerInstance) => void;\ntype OnWillUnmountCallback = OnDidMountCallback;\nexport type OnChangeCallback = (\n toast: number,\n containerId?: number | string\n) => void;\ntype Callback =\n | OnShowCallback\n | OnClearCallback\n | OnClearWaitingQueue\n | OnDidMountCallback\n | OnWillUnmountCallback\n | OnChangeCallback;\ntype TimeoutId = ReturnType;\n\nexport interface EventManager {\n list: Map;\n emitQueue: Map;\n on(event: Event.Show, callback: OnShowCallback): EventManager;\n on(event: Event.Clear, callback: OnClearCallback): EventManager;\n on(\n event: Event.ClearWaitingQueue,\n callback: OnClearWaitingQueue\n ): EventManager;\n on(event: Event.DidMount, callback: OnDidMountCallback): EventManager;\n on(event: Event.WillUnmount, callback: OnWillUnmountCallback): EventManager;\n on(event: Event.Change, callback: OnChangeCallback): EventManager;\n off(event: Event, callback?: Callback): EventManager;\n cancelEmit(event: Event): EventManager;\n emit(\n event: Event.Show,\n content: React.ReactNode,\n options: NotValidatedToastProps\n ): void;\n emit(event: Event.Clear, id?: string | number): void;\n emit(event: Event.ClearWaitingQueue, params: ClearWaitingQueueParams): void;\n emit(event: Event.DidMount, containerInstance: ContainerInstance): void;\n emit(event: Event.WillUnmount, containerInstance: ContainerInstance): void;\n emit(event: Event.Change, toast: number, containerId?: number | string): void;\n}\n\nexport const eventManager: EventManager = {\n list: new Map(),\n emitQueue: new Map(),\n\n on(event: Event, callback: Callback) {\n this.list.has(event) || this.list.set(event, []);\n this.list.get(event)!.push(callback);\n return this;\n },\n\n off(event, callback) {\n if (callback) {\n const cb = this.list.get(event)!.filter(cb => cb !== callback);\n this.list.set(event, cb);\n return this;\n }\n this.list.delete(event);\n return this;\n },\n\n cancelEmit(event) {\n const timers = this.emitQueue.get(event);\n if (timers) {\n timers.forEach(clearTimeout);\n this.emitQueue.delete(event);\n }\n\n return this;\n },\n\n /**\n * Enqueue the event at the end of the call stack\n * Doing so let the user call toast as follow:\n * toast('1')\n * toast('2')\n * toast('3')\n * Without setTimemout the code above will not work\n */\n emit(event: Event, ...args: any[]) {\n this.list.has(event) &&\n this.list.get(event)!.forEach((callback: Callback) => {\n const timer: TimeoutId = setTimeout(() => {\n // @ts-ignore\n callback(...args);\n }, 0);\n\n this.emitQueue.has(event) || this.emitQueue.set(event, []);\n this.emitQueue.get(event)!.push(timer);\n });\n }\n};\n","import { useRef, useEffect } from 'react';\n\n/**\n * `useKeeper` is a helper around `useRef`.\n *\n * You don't need to access the `.current`property to get the value\n * If refresh is set to true. The ref will be updated every render\n */\nexport function useKeeper(arg: T, refresh = false) {\n const ref = useRef(arg);\n\n useEffect(() => {\n if (refresh) ref.current = arg;\n });\n\n return ref.current;\n}\n","import { Id } from '../types';\n\nimport { isToastIdValid } from '../utils';\n\nexport const enum ActionType {\n ADD,\n REMOVE\n}\nexport type State = Array;\nexport type Action =\n | { type: ActionType.ADD; toastId: Id; staleId?: Id }\n | { type: ActionType.REMOVE; toastId?: Id };\n\nexport function reducer(state: State, action: Action) {\n switch (action.type) {\n case ActionType.ADD:\n return [...state, action.toastId].filter(id => id !== action.staleId);\n case ActionType.REMOVE:\n return isToastIdValid(action.toastId)\n ? state.filter(id => id !== action.toastId)\n : [];\n }\n}\n","import {\n useEffect,\n useRef,\n useReducer,\n cloneElement,\n isValidElement\n} from 'react';\nimport {\n parseClassName,\n canBeRendered,\n isBool,\n isFn,\n isNum,\n isStr,\n isToastIdValid,\n getAutoCloseDelay,\n Direction,\n Default\n} from '../utils';\nimport { eventManager, Event } from '../core/eventManager';\n\nimport {\n Id,\n ToastContainerProps,\n ToastProps,\n ToastContent,\n Toast,\n ToastPosition,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n ToastTransition\n} from '../types';\nimport { useKeeper } from './useKeeper';\nimport { ActionType, reducer } from './toastContainerReducer';\n\ntype CollectionItem = Record;\ntype ToastToRender = Partial>;\n\ninterface QueuedToast {\n toastContent: ToastContent;\n toastProps: ToastProps;\n staleId?: Id;\n}\n\nexport interface ContainerInstance {\n toastKey: number;\n displayedToast: number;\n props: ToastContainerProps;\n containerId?: Id | null;\n isToastActive: (toastId: Id) => boolean;\n getToast: (id: Id) => Toast | null;\n}\n\nexport function useToastContainer(props: ToastContainerProps) {\n const [, forceUpdate] = useReducer(x => x + 1, 0);\n const [toast, dispatch] = useReducer(reducer, []);\n const containerRef = useRef(null);\n let toastCount = useKeeper(0);\n let queue = useKeeper([]);\n const collection = useKeeper({});\n const instance = useKeeper({\n toastKey: 1,\n displayedToast: 0,\n props,\n containerId: null,\n isToastActive: isToastActive,\n getToast: id => collection[id] || null\n });\n\n useEffect(() => {\n instance.containerId = props.containerId;\n eventManager\n .cancelEmit(Event.WillUnmount)\n .on(Event.Show, buildToast)\n .on(Event.Clear, toastId => containerRef.current && removeToast(toastId))\n .on(Event.ClearWaitingQueue, clearWaitingQueue)\n .emit(Event.DidMount, instance);\n\n return () => eventManager.emit(Event.WillUnmount, instance);\n }, []);\n\n useEffect(() => {\n instance.isToastActive = isToastActive;\n instance.displayedToast = toast.length;\n eventManager.emit(Event.Change, toast.length, props.containerId);\n }, [toast]);\n\n useEffect(() => {\n instance.props = props;\n });\n\n function isToastActive(id: Id) {\n return toast.indexOf(id) !== -1;\n }\n\n function clearWaitingQueue({ containerId }: ClearWaitingQueueParams) {\n const { limit } = instance.props;\n if (limit && (!containerId || instance.containerId === containerId)) {\n toastCount -= queue.length;\n queue = [];\n }\n }\n\n function removeToast(toastId?: Id) {\n dispatch({ type: ActionType.REMOVE, toastId });\n }\n\n function dequeueToast() {\n const { toastContent, toastProps, staleId } = queue.shift() as QueuedToast;\n appendToast(toastContent, toastProps, staleId);\n }\n\n /**\n * check if a container is attached to the dom\n * check for multi-container, build only if associated\n * check for duplicate toastId if no update\n */\n function isNotValid({\n containerId,\n toastId,\n updateId\n }: NotValidatedToastProps) {\n return !containerRef.current ||\n (instance.props.enableMultiContainer &&\n containerId !== instance.props.containerId) ||\n (collection[toastId] && updateId == null)\n ? true\n : false;\n }\n\n // this function and all the function called inside needs to rely on ref(`useKeeper`)\n function buildToast(\n content: ToastContent,\n { delay, staleId, ...options }: NotValidatedToastProps\n ) {\n if (!canBeRendered(content) || isNotValid(options)) return;\n\n const { toastId, updateId, data } = options;\n const { props } = instance;\n const closeToast = () => removeToast(toastId);\n const isNotAnUpdate = options.updateId == null;\n\n if (isNotAnUpdate) toastCount++;\n\n const toastProps: ToastProps = {\n toastId,\n updateId,\n isLoading: options.isLoading,\n theme: options.theme || props.theme!,\n icon: options.icon ?? props.icon,\n isIn: false,\n key: options.key || instance.toastKey++,\n type: options.type!,\n closeToast: closeToast,\n closeButton: options.closeButton,\n rtl: props.rtl,\n position: options.position || (props.position as ToastPosition),\n transition: options.transition || (props.transition as ToastTransition),\n className: parseClassName(options.className || props.toastClassName),\n bodyClassName: parseClassName(\n options.bodyClassName || props.bodyClassName\n ),\n style: options.style || props.toastStyle,\n bodyStyle: options.bodyStyle || props.bodyStyle,\n onClick: options.onClick || props.onClick,\n pauseOnHover: isBool(options.pauseOnHover)\n ? options.pauseOnHover\n : props.pauseOnHover,\n pauseOnFocusLoss: isBool(options.pauseOnFocusLoss)\n ? options.pauseOnFocusLoss\n : props.pauseOnFocusLoss,\n draggable: isBool(options.draggable)\n ? options.draggable\n : props.draggable,\n draggablePercent: isNum(options.draggablePercent)\n ? options.draggablePercent\n : (props.draggablePercent as number),\n draggableDirection:\n options.draggableDirection || props.draggableDirection,\n closeOnClick: isBool(options.closeOnClick)\n ? options.closeOnClick\n : props.closeOnClick,\n progressClassName: parseClassName(\n options.progressClassName || props.progressClassName\n ),\n progressStyle: options.progressStyle || props.progressStyle,\n autoClose: options.isLoading\n ? false\n : getAutoCloseDelay(options.autoClose, props.autoClose),\n hideProgressBar: isBool(options.hideProgressBar)\n ? options.hideProgressBar\n : props.hideProgressBar,\n progress: options.progress,\n role: isStr(options.role) ? options.role : props.role,\n deleteToast() {\n removeFromCollection(toastId);\n }\n };\n\n if (isFn(options.onOpen)) toastProps.onOpen = options.onOpen;\n if (isFn(options.onClose)) toastProps.onClose = options.onClose;\n\n // tweak for vertical dragging\n if (\n toastProps.draggableDirection === Direction.Y &&\n toastProps.draggablePercent === Default.DRAGGABLE_PERCENT\n ) {\n (toastProps.draggablePercent as number) *= 1.5;\n }\n\n let closeButton = props.closeButton;\n\n if (options.closeButton === false || canBeRendered(options.closeButton)) {\n closeButton = options.closeButton;\n } else if (options.closeButton === true) {\n closeButton = canBeRendered(props.closeButton) ? props.closeButton : true;\n }\n\n toastProps.closeButton = closeButton;\n\n let toastContent = content;\n\n if (isValidElement(content) && !isStr(content.type)) {\n toastContent = cloneElement(content, {\n closeToast,\n toastProps,\n data\n });\n } else if (isFn(content)) {\n toastContent = content({ closeToast, toastProps, data });\n }\n\n // not handling limit + delay by design. Waiting for user feedback first\n if (\n props.limit &&\n props.limit > 0 &&\n toastCount > props.limit &&\n isNotAnUpdate\n ) {\n queue.push({ toastContent, toastProps, staleId });\n } else if (isNum(delay) && (delay as number) > 0) {\n setTimeout(() => {\n appendToast(toastContent, toastProps, staleId);\n }, delay);\n } else {\n appendToast(toastContent, toastProps, staleId);\n }\n }\n\n function appendToast(\n content: ToastContent,\n toastProps: ToastProps,\n staleId?: Id\n ) {\n const { toastId } = toastProps;\n\n if (staleId) delete collection[staleId];\n\n collection[toastId] = {\n content,\n props: toastProps\n };\n dispatch({\n type: ActionType.ADD,\n toastId,\n staleId\n });\n }\n\n function removeFromCollection(toastId: Id) {\n delete collection[toastId];\n const queueLen = queue.length;\n toastCount = isToastIdValid(toastId)\n ? toastCount - 1\n : toastCount - instance.displayedToast;\n\n if (toastCount < 0) toastCount = 0;\n\n if (queueLen > 0) {\n const freeSlot = isToastIdValid(toastId) ? 1 : instance.props.limit!;\n\n if (queueLen === 1 || freeSlot === 1) {\n instance.displayedToast++;\n dequeueToast();\n } else {\n const toDequeue = freeSlot > queueLen ? queueLen : freeSlot;\n instance.displayedToast = toDequeue;\n\n for (let i = 0; i < toDequeue; i++) dequeueToast();\n }\n } else {\n forceUpdate();\n }\n }\n\n function getToastToRender(\n cb: (position: ToastPosition, toastList: Toast[]) => T\n ) {\n const toastToRender: ToastToRender = {};\n const toastList = props.newestOnTop\n ? Object.keys(collection).reverse()\n : Object.keys(collection);\n\n for (let i = 0; i < toastList.length; i++) {\n const toast = collection[toastList[i]];\n const { position } = toast.props;\n toastToRender[position] || (toastToRender[position] = []);\n\n toastToRender[position]!.push(toast);\n }\n\n return (Object.keys(toastToRender) as Array).map(p =>\n cb(p, toastToRender[p]!)\n );\n }\n\n return {\n getToastToRender,\n collection,\n containerRef,\n isToastActive\n };\n}\n","import {\n useState,\n useRef,\n useEffect,\n isValidElement,\n DOMAttributes\n} from 'react';\n\nimport { isFn } from '../utils';\nimport { ToastProps } from '../types';\nimport { useKeeper } from './useKeeper';\nimport { Direction } from '../utils/constant';\n\ninterface Draggable {\n start: number;\n x: number;\n y: number;\n delta: number;\n removalDistance: number;\n canCloseOnClick: boolean;\n canDrag: boolean;\n boundingRect: DOMRect | null;\n}\n\ntype DragEvent = MouseEvent & TouchEvent;\n\nfunction getX(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientX\n : e.clientX;\n}\n\nfunction getY(e: DragEvent) {\n return e.targetTouches && e.targetTouches.length >= 1\n ? e.targetTouches[0].clientY\n : e.clientY;\n}\n\nexport function useToast(props: ToastProps) {\n const [isRunning, setIsRunning] = useState(true);\n const [preventExitTransition, setPreventExitTransition] = useState(false);\n const toastRef = useRef(null);\n const drag = useKeeper({\n start: 0,\n x: 0,\n y: 0,\n delta: 0,\n removalDistance: 0,\n canCloseOnClick: true,\n canDrag: false,\n boundingRect: null\n });\n const syncProps = useKeeper(props, true);\n const { autoClose, pauseOnHover, closeToast, onClick, closeOnClick } = props;\n\n useEffect(() => {\n if (isFn(props.onOpen))\n props.onOpen(isValidElement(props.children) && props.children.props);\n\n return () => {\n if (isFn(syncProps.onClose))\n syncProps.onClose(\n isValidElement(syncProps.children) && syncProps.children.props\n );\n };\n }, []);\n\n useEffect(() => {\n props.draggable && bindDragEvents();\n return () => {\n props.draggable && unbindDragEvents();\n };\n }, [props.draggable]);\n\n useEffect(() => {\n props.pauseOnFocusLoss && bindFocusEvents();\n return () => {\n props.pauseOnFocusLoss && unbindFocusEvents();\n };\n }, [props.pauseOnFocusLoss]);\n\n function onDragStart(\n e: React.MouseEvent | React.TouchEvent\n ) {\n if (props.draggable) {\n const toast = toastRef.current!;\n drag.canCloseOnClick = true;\n drag.canDrag = true;\n drag.boundingRect = toast.getBoundingClientRect();\n toast.style.transition = '';\n drag.x = getX(e.nativeEvent as DragEvent);\n drag.y = getY(e.nativeEvent as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.start = drag.x;\n drag.removalDistance =\n toast.offsetWidth * (props.draggablePercent / 100);\n } else {\n drag.start = drag.y;\n drag.removalDistance =\n toast.offsetHeight * (props.draggablePercent / 100);\n }\n }\n }\n\n function onDragTransitionEnd() {\n if (drag.boundingRect) {\n const { top, bottom, left, right } = drag.boundingRect;\n\n if (\n props.pauseOnHover &&\n drag.x >= left &&\n drag.x <= right &&\n drag.y >= top &&\n drag.y <= bottom\n ) {\n pauseToast();\n } else {\n playToast();\n }\n }\n }\n\n function playToast() {\n setIsRunning(true);\n }\n\n function pauseToast() {\n setIsRunning(false);\n }\n\n function bindFocusEvents() {\n if (!document.hasFocus()) pauseToast();\n\n window.addEventListener('focus', playToast);\n window.addEventListener('blur', pauseToast);\n }\n\n function unbindFocusEvents() {\n window.removeEventListener('focus', playToast);\n window.removeEventListener('blur', pauseToast);\n }\n\n function bindDragEvents() {\n document.addEventListener('mousemove', onDragMove);\n document.addEventListener('mouseup', onDragEnd);\n\n document.addEventListener('touchmove', onDragMove);\n document.addEventListener('touchend', onDragEnd);\n }\n\n function unbindDragEvents() {\n document.removeEventListener('mousemove', onDragMove);\n document.removeEventListener('mouseup', onDragEnd);\n\n document.removeEventListener('touchmove', onDragMove);\n document.removeEventListener('touchend', onDragEnd);\n }\n\n function onDragMove(e: MouseEvent | TouchEvent) {\n if (drag.canDrag) {\n e.preventDefault();\n\n const toast = toastRef.current!;\n if (isRunning) pauseToast();\n\n drag.x = getX(e as DragEvent);\n drag.y = getY(e as DragEvent);\n\n if (props.draggableDirection === Direction.X) {\n drag.delta = drag.x - drag.start;\n } else {\n drag.delta = drag.y - drag.start;\n }\n\n // prevent false positif during a toast click\n if (drag.start !== drag.x) drag.canCloseOnClick = false;\n\n toast.style.transform = `translate${props.draggableDirection}(${drag.delta}px)`;\n toast.style.opacity = `${1 -\n Math.abs(drag.delta / drag.removalDistance)}`;\n }\n }\n\n function onDragEnd() {\n const toast = toastRef.current!;\n if (drag.canDrag) {\n drag.canDrag = false;\n\n if (Math.abs(drag.delta) > drag.removalDistance) {\n setPreventExitTransition(true);\n props.closeToast();\n return;\n }\n\n toast.style.transition = 'transform 0.2s, opacity 0.2s';\n toast.style.transform = `translate${props.draggableDirection}(0)`;\n toast.style.opacity = '1';\n }\n }\n\n const eventHandlers: DOMAttributes = {\n onMouseDown: onDragStart,\n onTouchStart: onDragStart,\n onMouseUp: onDragTransitionEnd,\n onTouchEnd: onDragTransitionEnd\n };\n\n if (autoClose && pauseOnHover) {\n eventHandlers.onMouseEnter = pauseToast;\n eventHandlers.onMouseLeave = playToast;\n }\n\n // prevent toast from closing when user drags the toast\n if (closeOnClick) {\n eventHandlers.onClick = (e: React.MouseEvent) => {\n onClick && onClick(e);\n drag.canCloseOnClick && closeToast();\n };\n }\n\n return {\n playToast,\n pauseToast,\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n };\n}\n","import * as React from 'react';\nimport { Default } from '../utils';\nimport { Theme, TypeOptions } from '../types';\n\nexport interface CloseButtonProps {\n closeToast: (e: React.MouseEvent) => void;\n type: TypeOptions;\n ariaLabel?: string;\n theme: Theme;\n}\n\nexport function CloseButton({\n closeToast,\n theme,\n ariaLabel = 'close'\n}: CloseButtonProps) {\n return (\n {\n e.stopPropagation();\n closeToast(e);\n }}\n aria-label={ariaLabel}\n >\n \n \n \n \n );\n}\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { TYPE, Default, isFn } from './../utils';\nimport { TypeOptions, ToastClassName, Theme } from '../types';\n\nexport interface ProgressBarProps {\n /**\n * The animation delay which determine when to close the toast\n */\n delay: number;\n\n /**\n * Whether or not the animation is running or paused\n */\n isRunning: boolean;\n\n /**\n * Func to close the current toast\n */\n closeToast: () => void;\n\n /**\n * Optional type : info, success ...\n */\n type: TypeOptions;\n\n /**\n * The theme that is currently used\n */\n theme: Theme;\n\n /**\n * Hide or not the progress bar\n */\n hide?: boolean;\n\n /**\n * Optionnal className\n */\n className?: ToastClassName;\n\n /**\n * Optionnal inline style\n */\n style?: React.CSSProperties;\n\n /**\n * Tell wether or not controlled progress bar is used\n */\n controlledProgress?: boolean;\n\n /**\n * Controlled progress value\n */\n progress?: number | string;\n\n /**\n * Support rtl content\n */\n rtl?: boolean;\n\n /**\n * Tell if the component is visible on screen or not\n */\n isIn?: boolean;\n}\n\nexport function ProgressBar({\n delay,\n isRunning,\n closeToast,\n type,\n hide,\n className,\n style: userStyle,\n controlledProgress,\n progress,\n rtl,\n isIn,\n theme\n}: ProgressBarProps) {\n const style: React.CSSProperties = {\n ...userStyle,\n animationDuration: `${delay}ms`,\n animationPlayState: isRunning ? 'running' : 'paused',\n opacity: hide ? 0 : 1\n };\n\n if (controlledProgress) style.transform = `scaleX(${progress})`;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__progress-bar`,\n controlledProgress\n ? `${Default.CSS_NAMESPACE}__progress-bar--controlled`\n : `${Default.CSS_NAMESPACE}__progress-bar--animated`,\n `${Default.CSS_NAMESPACE}__progress-bar-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__progress-bar--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__progress-bar--rtl`]: rtl\n }\n );\n const classNames = isFn(className)\n ? className({\n rtl,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n\n // 🧐 controlledProgress is derived from progress\n // so if controlledProgress is set\n // it means that this is also the case for progress\n const animationEvent = {\n [controlledProgress && progress! >= 1\n ? 'onTransitionEnd'\n : 'onAnimationEnd']:\n controlledProgress && progress! < 1\n ? null\n : () => {\n isIn && closeToast();\n }\n };\n\n // TODO: add aria-valuenow, aria-valuemax, aria-valuemin\n\n return (\n \n );\n}\n\nProgressBar.defaultProps = {\n type: TYPE.DEFAULT,\n hide: false\n};\n","import React from 'react';\n\nimport { Theme, TypeOptions } from '../types';\nimport { Default } from '../utils';\n\n/**\n * Used when providing custom icon\n */\nexport interface IconProps {\n theme: Theme;\n type: TypeOptions;\n}\n\nexport type BuiltInIconProps = React.SVGProps & IconProps;\n\nconst Svg: React.FC = ({ theme, type, ...rest }) => (\n \n);\n\nfunction Warning(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Info(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Success(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Error(props: BuiltInIconProps) {\n return (\n \n \n \n );\n}\n\nfunction Spinner() {\n return
;\n}\n\nexport const Icons = {\n info: Info,\n warning: Warning,\n success: Success,\n error: Error,\n spinner: Spinner\n};\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { ProgressBar } from './ProgressBar';\nimport { Icons } from './Icons';\nimport { ToastProps } from '../types';\nimport { Default, isFn, isStr } from '../utils';\nimport { useToast } from '../hooks';\n\nexport const Toast: React.FC = props => {\n const {\n isRunning,\n preventExitTransition,\n toastRef,\n eventHandlers\n } = useToast(props);\n const {\n closeButton,\n children,\n autoClose,\n onClick,\n type,\n hideProgressBar,\n closeToast,\n transition: Transition,\n position,\n className,\n style,\n bodyClassName,\n bodyStyle,\n progressClassName,\n progressStyle,\n updateId,\n role,\n progress,\n rtl,\n toastId,\n deleteToast,\n isIn,\n isLoading,\n icon,\n theme\n } = props;\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast`,\n `${Default.CSS_NAMESPACE}__toast-theme--${theme}`,\n `${Default.CSS_NAMESPACE}__toast--${type}`,\n {\n [`${Default.CSS_NAMESPACE}__toast--rtl`]: rtl\n }\n );\n const cssClasses = isFn(className)\n ? className({\n rtl,\n position,\n type,\n defaultClassName\n })\n : cx(defaultClassName, className);\n const isProgressControlled = !!progress;\n const maybeIcon = Icons[type as keyof typeof Icons];\n const iconProps = { theme, type };\n let Icon: React.ReactNode = maybeIcon && maybeIcon(iconProps);\n\n if (icon === false) {\n Icon = void 0;\n } else if (isFn(icon)) {\n Icon = icon(iconProps);\n } else if (React.isValidElement(icon)) {\n Icon = React.cloneElement(icon, iconProps);\n } else if (isStr(icon)) {\n Icon = icon;\n } else if (isLoading) {\n Icon = Icons.spinner();\n }\n\n function renderCloseButton(closeButton: any) {\n if (!closeButton) return;\n\n const props = { closeToast, type, theme };\n\n if (isFn(closeButton)) return closeButton(props);\n\n if (React.isValidElement(closeButton))\n return React.cloneElement(closeButton, props);\n }\n\n return (\n \n \n \n {Icon && (\n \n {Icon}\n
\n )}\n
{children}
\n \n {renderCloseButton(closeButton)}\n {(autoClose || isProgressControlled) && (\n \n )}\n \n \n );\n};\n","import { Default, cssTransition } from '../utils';\n\nconst Bounce = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__bounce-exit`,\n appendPosition: true\n});\n\nconst Slide = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__slide-exit`,\n appendPosition: true\n});\n\nconst Zoom = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__zoom-exit`\n});\n\nconst Flip = cssTransition({\n enter: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-enter`,\n exit: `${Default.CSS_NAMESPACE}--animate ${Default.CSS_NAMESPACE}__flip-exit`\n});\n\nexport { Bounce, Slide, Zoom, Flip };\n","import * as React from 'react';\nimport cx from 'clsx';\n\nimport { Toast } from './Toast';\nimport { CloseButton } from './CloseButton';\nimport { Bounce } from './Transitions';\nimport { POSITION, Direction, Default, parseClassName, isFn } from '../utils';\nimport { useToastContainer } from '../hooks';\nimport { ToastContainerProps, ToastPosition } from '../types';\n\nexport const ToastContainer: React.FC = props => {\n const { getToastToRender, containerRef, isToastActive } = useToastContainer(\n props\n );\n const { className, style, rtl, containerId } = props;\n\n function getClassName(position: ToastPosition) {\n const defaultClassName = cx(\n `${Default.CSS_NAMESPACE}__toast-container`,\n `${Default.CSS_NAMESPACE}__toast-container--${position}`,\n { [`${Default.CSS_NAMESPACE}__toast-container--rtl`]: rtl }\n );\n return isFn(className)\n ? className({\n position,\n rtl,\n defaultClassName\n })\n : cx(defaultClassName, parseClassName(className));\n }\n\n return (\n \n {getToastToRender((position, toastList) => {\n const containerStyle: React.CSSProperties =\n toastList.length === 0\n ? { ...style, pointerEvents: 'none' }\n : { ...style };\n\n return (\n \n {toastList.map(({ content, props: toastProps }) => {\n return (\n \n {content}\n \n );\n })}\n \n );\n })}\n \n );\n};\n\nToastContainer.defaultProps = {\n position: POSITION.TOP_RIGHT as ToastPosition,\n transition: Bounce,\n rtl: false,\n autoClose: 5000,\n hideProgressBar: false,\n closeButton: CloseButton,\n pauseOnHover: true,\n pauseOnFocusLoss: true,\n closeOnClick: true,\n newestOnTop: false,\n draggable: true,\n draggablePercent: Default.DRAGGABLE_PERCENT as number,\n draggableDirection: Direction.X,\n role: 'alert',\n theme: 'light'\n};\n","import * as React from 'react';\nimport { render } from 'react-dom';\n\nimport { POSITION, TYPE, canUseDom, isStr, isNum, isFn } from '../utils';\nimport { eventManager, OnChangeCallback, Event } from './eventManager';\nimport {\n ToastContent,\n ToastOptions,\n ToastProps,\n Id,\n ToastContainerProps,\n UpdateOptions,\n ClearWaitingQueueParams,\n NotValidatedToastProps,\n TypeOptions\n} from '../types';\nimport { ContainerInstance } from '../hooks';\nimport { ToastContainer } from '../components';\n\ninterface EnqueuedToast {\n content: ToastContent;\n options: NotValidatedToastProps;\n}\n\nlet containers = new Map();\nlet latestInstance: ContainerInstance | Id;\nlet containerDomNode: HTMLElement;\nlet containerConfig: ToastContainerProps;\nlet queue: EnqueuedToast[] = [];\nlet lazy = false;\n\n/**\n * Check whether any container is currently mounted in the DOM\n */\nfunction isAnyContainerMounted() {\n return containers.size > 0;\n}\n\n/**\n * Get the toast by id, given it's in the DOM, otherwise returns null\n */\nfunction getToast(toastId: Id, { containerId }: ToastOptions) {\n const container = containers.get(containerId || latestInstance);\n if (!container) return null;\n\n return container.getToast(toastId);\n}\n\n/**\n * Generate a random toastId\n */\nfunction generateToastId() {\n return Math.random()\n .toString(36)\n .substr(2, 9);\n}\n\n/**\n * Generate a toastId or use the one provided\n */\nfunction getToastId(options?: ToastOptions) {\n if (options && (isStr(options.toastId) || isNum(options.toastId))) {\n return options.toastId;\n }\n\n return generateToastId();\n}\n\n/**\n * If the container is not mounted, the toast is enqueued and\n * the container lazy mounted\n */\nfunction dispatchToast(\n content: ToastContent,\n options: NotValidatedToastProps\n): Id {\n if (isAnyContainerMounted()) {\n eventManager.emit(Event.Show, content, options);\n } else {\n queue.push({ content, options });\n if (lazy && canUseDom) {\n lazy = false;\n containerDomNode = document.createElement('div');\n document.body.appendChild(containerDomNode);\n render(, containerDomNode);\n }\n }\n\n return options.toastId;\n}\n\n/**\n * Merge provided options with the defaults settings and generate the toastId\n */\nfunction mergeOptions(type: string, options?: ToastOptions) {\n return {\n ...options,\n type: (options && options.type) || type,\n toastId: getToastId(options)\n } as NotValidatedToastProps;\n}\n\nconst createToastByType = (type: string) => (\n content: ToastContent,\n options?: ToastOptions\n) => dispatchToast(content, mergeOptions(type, options));\n\nconst toast = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(content, mergeOptions(TYPE.DEFAULT, options));\n\ntoast.loading = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n isLoading: true,\n autoClose: false,\n closeOnClick: false,\n closeButton: false,\n draggable: false,\n ...options\n })\n );\n\ninterface ToastPromiseParams {\n pending: string | UpdateOptions;\n success: string | UpdateOptions;\n error: string | UpdateOptions;\n}\n\nfunction handlePromise(\n promise: Promise | (() => Promise),\n { pending, error, success }: ToastPromiseParams,\n options?: ToastOptions\n) {\n const id = isStr(pending)\n ? toast.loading(pending, options)\n : toast.loading(pending.render, {\n ...options,\n ...(pending as ToastOptions)\n });\n const resetParams = {\n isLoading: null,\n autoClose: null,\n closeOnClick: null,\n closeButton: null,\n draggable: null\n };\n\n const resolver = (\n type: TypeOptions,\n input: string | UpdateOptions,\n result: T\n ) => {\n const params = isStr(input) ? { render: input } : input;\n toast.update(id, {\n type,\n ...resetParams,\n ...options,\n ...params,\n data: result\n });\n return result;\n };\n const p = isFn(promise) ? promise() : promise;\n p.then(result => resolver('success', success, result)).catch(err =>\n resolver('error', error, err)\n );\n\n return p;\n}\n\ntoast.promise = handlePromise;\ntoast.success = createToastByType(TYPE.SUCCESS);\ntoast.info = createToastByType(TYPE.INFO);\ntoast.error = createToastByType(TYPE.ERROR);\ntoast.warning = createToastByType(TYPE.WARNING);\ntoast.warn = toast.warning;\ntoast.dark = (content: ToastContent, options?: ToastOptions) =>\n dispatchToast(\n content,\n mergeOptions(TYPE.DEFAULT, {\n theme: 'dark',\n ...options\n })\n );\n\n/**\n * Remove toast programmaticaly\n */\ntoast.dismiss = (id?: Id) => eventManager.emit(Event.Clear, id);\n\n/**\n * Clear waiting queue when limit is used\n */\ntoast.clearWaitingQueue = (params: ClearWaitingQueueParams = {}) =>\n eventManager.emit(Event.ClearWaitingQueue, params);\n\n/**\n * return true if one container is displaying the toast\n */\ntoast.isActive = (id: Id) => {\n let isToastActive = false;\n\n containers.forEach(container => {\n if (container.isToastActive && container.isToastActive(id)) {\n isToastActive = true;\n }\n });\n\n return isToastActive;\n};\n\ntoast.update = (toastId: Id, options: UpdateOptions = {}) => {\n // if you call toast and toast.update directly nothing will be displayed\n // this is why I defered the update\n setTimeout(() => {\n const toast = getToast(toastId, options as ToastOptions);\n if (toast) {\n const { props: oldOptions, content: oldContent } = toast;\n\n const nextOptions = {\n ...oldOptions,\n ...options,\n toastId: options.toastId || toastId,\n updateId: generateToastId()\n } as ToastProps & UpdateOptions;\n\n if (nextOptions.toastId !== toastId) nextOptions.staleId = toastId;\n\n const content = nextOptions.render || oldContent;\n delete nextOptions.render;\n\n dispatchToast(content, nextOptions);\n }\n }, 0);\n};\n\n/**\n * Used for controlled progress bar.\n */\ntoast.done = (id: Id) => {\n toast.update(id, {\n progress: 1\n });\n};\n\n/**\n * Track changes. The callback get the number of toast displayed\n *\n */\ntoast.onChange = (callback: OnChangeCallback) => {\n if (isFn(callback)) {\n eventManager.on(Event.Change, callback);\n }\n return () => {\n isFn(callback) && eventManager.off(Event.Change, callback);\n };\n};\n\n/**\n * Configure the ToastContainer when lazy mounted\n */\ntoast.configure = (config: ToastContainerProps = {}) => {\n lazy = true;\n containerConfig = config;\n};\n\ntoast.POSITION = POSITION;\ntoast.TYPE = TYPE;\n\n/**\n * Wait until the ToastContainer is mounted to dispatch the toast\n * and attach isActive method\n */\neventManager\n .on(Event.DidMount, (containerInstance: ContainerInstance) => {\n latestInstance = containerInstance.containerId || containerInstance;\n containers.set(latestInstance, containerInstance);\n\n queue.forEach(item => {\n eventManager.emit(Event.Show, item.content, item.options);\n });\n\n queue = [];\n })\n .on(Event.WillUnmount, (containerInstance: ContainerInstance) => {\n containers.delete(containerInstance.containerId || containerInstance);\n\n if (containers.size === 0) {\n eventManager\n .off(Event.Show)\n .off(Event.Clear)\n .off(Event.ClearWaitingQueue);\n }\n\n if (canUseDom && containerDomNode) {\n document.body.removeChild(containerDomNode);\n }\n });\n\nexport { toast };\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data) || (headers && headers['Content-Type'] === 'application/json')) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","module.exports = {};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","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\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport { createPath } from 'history';\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n const method = (replace || isDuplicateNavigation) ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\", // TODO: deprecate\n activeStyle, // TODO: deprecate\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n let className =\n typeof classNameProp === \"function\"\n ? classNameProp(isActive)\n : classNameProp;\n\n let style =\n typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = { ...style, ...activeStyle };\n }\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\",\n \"false\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n };\n}\n\nexport default NavLink;\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\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","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(\n timeoutErrorMessage,\n config,\n config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\n\n return config;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\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","/* eslint-disable import/no-unresolved */\n\nif (process.env.NODE_ENV === \"production\") {\n module.exports = require(\"./lib/react-input-mask.production.min.js\");\n} else {\n module.exports = require(\"./lib/react-input-mask.development.js\");\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(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 D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(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){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(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(oa,pa);D[b]=new B(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(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(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 ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function 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 m({},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 $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(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\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(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 bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,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,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({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 vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(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}}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(y(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;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&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=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){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 Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(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&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)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=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(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&64))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 jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"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[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,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=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\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 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\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\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","/** @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","/** @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\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('./../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n return false;\n}\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return (typeof payload === 'object') && (payload.isAxiosError === true);\n};\n","module.exports=function(e){var t={};function r(n){if(t[n])return t[n].exports;var a=t[n]={i:n,l:!1,exports:{}};return e[n].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var a in e)r.d(n,a,function(t){return e[t]}.bind(null,a));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=9)}([function(e,t){e.exports=require(\"react\")},function(e,t,r){var n;\n/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/!function(){\"use strict\";var r={}.hasOwnProperty;function a(){for(var e=[],t=0;t=o?a:o)),r=a,t=h(t),e.slice(r,r+t.length)==t}}).call(this,r(3))},function(e,t){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(e){\"object\"==typeof window&&(r=window)}e.exports=r},function(e,t,r){(function(t){var r=/^\\[object .+?Constructor\\]$/,n=\"object\"==typeof t&&t&&t.Object===Object&&t,a=\"object\"==typeof self&&self&&self.Object===Object&&self,o=n||a||Function(\"return this\")();var i,u=Array.prototype,c=Function.prototype,s=Object.prototype,l=o[\"__core-js_shared__\"],f=(i=/[^.]+$/.exec(l&&l.keys&&l.keys.IE_PROTO||\"\"))?\"Symbol(src)_1.\"+i:\"\",d=c.toString,p=s.hasOwnProperty,h=s.toString,m=RegExp(\"^\"+d.call(p).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),y=u.splice,b=x(o,\"Map\"),g=x(Object,\"create\");function v(e){var t=-1,r=e?e.length:0;for(this.clear();++t-1},C.prototype.set=function(e,t){var r=this.__data__,n=w(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},_.prototype.clear=function(){this.__data__={hash:new v,map:new(b||C),string:new v}},_.prototype.delete=function(e){return j(this,e).delete(e)},_.prototype.get=function(e){return j(this,e).get(e)},_.prototype.has=function(e){return j(this,e).has(e)},_.prototype.set=function(e,t){return j(this,e).set(e,t),this},N.Cache=_,e.exports=N}).call(this,r(3))},function(e,t,r){(function(t){var r=/^\\s+|\\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,a=/^0b[01]+$/i,o=/^0o[0-7]+$/i,i=parseInt,u=\"object\"==typeof t&&t&&t.Object===Object&&t,c=\"object\"==typeof self&&self&&self.Object===Object&&self,s=u||c||Function(\"return this\")(),l=Object.prototype.toString,f=Math.max,d=Math.min,p=function(){return s.Date.now()};function h(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function m(e){if(\"number\"==typeof e)return e;if(function(e){return\"symbol\"==typeof e||function(e){return!!e&&\"object\"==typeof e}(e)&&\"[object Symbol]\"==l.call(e)}(e))return NaN;if(h(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=h(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(r,\"\");var u=a.test(e);return u||o.test(e)?i(e.slice(2),u?2:8):n.test(e)?NaN:+e}e.exports=function(e,t,r){var n,a,o,i,u,c,s=0,l=!1,y=!1,b=!0;if(\"function\"!=typeof e)throw new TypeError(\"Expected a function\");function g(t){var r=n,o=a;return n=a=void 0,s=t,i=e.apply(o,r)}function v(e){return s=e,u=setTimeout(_,t),l?g(e):i}function C(e){var r=e-c;return void 0===c||r>=t||r<0||y&&e-s>=o}function _(){var e=p();if(C(e))return w(e);u=setTimeout(_,function(e){var r=t-(e-c);return y?d(r,o-(e-s)):r}(e))}function w(e){return u=void 0,b&&n?g(e):(n=a=void 0,i)}function S(){var e=p(),r=C(e);if(n=arguments,a=this,c=e,r){if(void 0===u)return v(c);if(y)return u=setTimeout(_,t),g(c)}return void 0===u&&(u=setTimeout(_,t)),i}return t=m(t)||0,h(r)&&(l=!!r.leading,o=(y=\"maxWait\"in r)?f(m(r.maxWait)||0,t):o,b=\"trailing\"in r?!!r.trailing:b),S.cancel=function(){void 0!==u&&clearTimeout(u),s=0,n=c=a=u=void 0},S.flush=function(){return void 0===u?i:w(p())},S}}).call(this,r(3))},function(e,t,r){(function(e,r){var n=\"[object Arguments]\",a=\"[object Map]\",o=\"[object Object]\",i=\"[object Set]\",u=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,c=/^\\w*$/,s=/^\\./,l=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g,f=/\\\\(\\\\)?/g,d=/^\\[object .+?Constructor\\]$/,p=/^(?:0|[1-9]\\d*)$/,h={};h[\"[object Float32Array]\"]=h[\"[object Float64Array]\"]=h[\"[object Int8Array]\"]=h[\"[object Int16Array]\"]=h[\"[object Int32Array]\"]=h[\"[object Uint8Array]\"]=h[\"[object Uint8ClampedArray]\"]=h[\"[object Uint16Array]\"]=h[\"[object Uint32Array]\"]=!0,h[n]=h[\"[object Array]\"]=h[\"[object ArrayBuffer]\"]=h[\"[object Boolean]\"]=h[\"[object DataView]\"]=h[\"[object Date]\"]=h[\"[object Error]\"]=h[\"[object Function]\"]=h[a]=h[\"[object Number]\"]=h[o]=h[\"[object RegExp]\"]=h[i]=h[\"[object String]\"]=h[\"[object WeakMap]\"]=!1;var m=\"object\"==typeof e&&e&&e.Object===Object&&e,y=\"object\"==typeof self&&self&&self.Object===Object&&self,b=m||y||Function(\"return this\")(),g=t&&!t.nodeType&&t,v=g&&\"object\"==typeof r&&r&&!r.nodeType&&r,C=v&&v.exports===g&&m.process,_=function(){try{return C&&C.binding(\"util\")}catch(e){}}(),w=_&&_.isTypedArray;function S(e,t,r,n){var a=-1,o=e?e.length:0;for(n&&o&&(r=e[++a]);++a-1},ue.prototype.set=function(e,t){var r=this.__data__,n=de(r,e);return n<0?r.push([e,t]):r[n][1]=t,this},ce.prototype.clear=function(){this.__data__={hash:new ie,map:new(H||ue),string:new ie}},ce.prototype.delete=function(e){return xe(this,e).delete(e)},ce.prototype.get=function(e){return xe(this,e).get(e)},ce.prototype.has=function(e){return xe(this,e).has(e)},ce.prototype.set=function(e,t){return xe(this,e).set(e,t),this},se.prototype.add=se.prototype.push=function(e){return this.__data__.set(e,\"__lodash_hash_undefined__\"),this},se.prototype.has=function(e){return this.__data__.has(e)},le.prototype.clear=function(){this.__data__=new ue},le.prototype.delete=function(e){return this.__data__.delete(e)},le.prototype.get=function(e){return this.__data__.get(e)},le.prototype.has=function(e){return this.__data__.has(e)},le.prototype.set=function(e,t){var r=this.__data__;if(r instanceof ue){var n=r.__data__;if(!H||n.length<199)return n.push([e,t]),this;r=this.__data__=new ce(n)}return r.set(e,t),this};var pe,he,me=(pe=function(e,t){return e&&ye(e,t,qe)},function(e,t){if(null==e)return e;if(!ze(e))return pe(e,t);for(var r=e.length,n=he?r:-1,a=Object(e);(he?n--:++nu))return!1;var s=o.get(e);if(s&&o.get(t))return s==t;var l=-1,f=!0,d=1&a?new se:void 0;for(o.set(e,t),o.set(t,e);++l-1&&e%1==0&&e-1&&e%1==0&&e<=9007199254740991}function $e(e){var t=typeof e;return!!e&&(\"object\"==t||\"function\"==t)}function Ve(e){return!!e&&\"object\"==typeof e}function Ke(e){return\"symbol\"==typeof e||Ve(e)&&\"[object Symbol]\"==z.call(e)}var Ue=w?function(e){return function(t){return e(t)}}(w):function(e){return Ve(e)&&Ge(e.length)&&!!h[z.call(e)]};function qe(e){return ze(e)?fe(e):we(e)}function He(e){return e}r.exports=function(e,t,r){var n=Re(e)?S:x,a=arguments.length<3;return n(e,_e(t),r,a,me)}}).call(this,r(3),r(7)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,\"loaded\",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,\"id\",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t){String.prototype.padEnd||(String.prototype.padEnd=function(e,t){return e>>=0,t=String(void 0!==t?t:\" \"),this.length>e?String(this):((e-=this.length)>t.length&&(t+=t.repeat(e/t.length)),String(this)+t.slice(0,e))})},function(e,t,r){\"use strict\";function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function a(e){if(Symbol.iterator in Object(e)||\"[object Arguments]\"===Object.prototype.toString.call(e))return Array.from(e)}function o(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t0?(o.mainCode=!0,c||\"Array\"===t.constructor.name&&t.includes(e[2])?(o.hasAreaCodes=!0,[o].concat(u)):(s=s.concat(u),[o])):[o]})))),s]}function A(e,t,r,n){if(null!==r){var a=Object.keys(r),o=Object.values(r);a.forEach((function(r,a){if(n)return e.push([r,o[a]]);var i=e.findIndex((function(e){return e[0]===r}));if(-1===i){var u=[r];u[t]=o[a],e.push(u)}else e[i][t]=o[a]}))}}function D(e,t){return 0===t.length?e:e.map((function(e){var r=t.findIndex((function(t){return t[0]===e[2]}));if(-1===r)return e;var n=t[r];return n[1]&&(e[4]=n[1]),n[3]&&(e[5]=n[3]),n[2]&&(e[6]=n[2]),e}))}var P=function e(t,r,n,a,i,u,s,l,f,d,p,h,m,y){c(this,e),this.filterRegions=function(e,t){if(\"string\"==typeof e){var r=e;return t.filter((function(e){return e.regions.some((function(e){return e===r}))}))}return t.filter((function(t){return e.map((function(e){return t.regions.some((function(t){return t===e}))})).some((function(e){return e}))}))},this.sortTerritories=function(e,t){var r=[].concat(o(e),o(t));return r.sort((function(e,t){return e.namet.name?1:0})),r},this.getFilteredCountryList=function(e,t,r){return 0===e.length?t:r?e.map((function(e){var r=t.find((function(t){return t.iso2===e}));if(r)return r})).filter((function(e){return e})):t.filter((function(t){return e.some((function(e){return e===t.iso2}))}))},this.localizeCountries=function(e,t,r){for(var n=0;nt.localName?1:0})),e},this.getCustomAreas=function(e,t){for(var r=[],n=0;nt.dialCode.length)return r;if(r.dialCode.length===t.dialCode.length&&r.priority=\"0\"&&e.indexOf(0)<=\"9\"?n.find((function(t){return t.dialCode==+e})):n.find((function(t){return t.iso2==e})))&&t.dialCode&&r.setState({selectedCountry:t,formattedNumber:r.props.disableCountryCode?\"\":r.formatNumber(t.dialCode,t)})},r.scrollTo=function(e,t){if(e){var n=r.dropdownRef;if(n&&document.body){var a=n.offsetHeight,o=n.getBoundingClientRect().top+document.body.scrollTop,i=o+a,u=e,c=u.getBoundingClientRect(),s=u.offsetHeight,l=c.top+document.body.scrollTop,f=l+s,d=l-o+n.scrollTop,p=a/2-s/2;if(r.props.enableSearch?li){t&&(d+=p);var h=a-s;n.scrollTop=d-h}}}},r.scrollToTop=function(){var e=r.dropdownRef;e&&document.body&&(e.scrollTop=0)},r.formatNumber=function(e,t){if(!t)return e;var n,o=t.format,c=r.props,s=c.disableCountryCode,l=c.enableAreaCodeStretch,f=c.enableLongNumbers,d=c.autoFormat;if(s?((n=o.split(\" \")).shift(),n=n.join(\" \")):l&&t.isAreaCode?((n=o.split(\" \"))[1]=n[1].replace(/\\.+/,\"\".padEnd(t.areaCodeLength,\".\")),n=n.join(\" \")):n=o,!e||0===e.length)return s?\"\":r.props.prefix;if(e&&e.length<2||!n||!d)return s?e:r.props.prefix+e;var p,h=w()(n,(function(e,t){if(0===e.remainingText.length)return e;if(\".\"!==t)return{formattedText:e.formattedText+t,remainingText:e.remainingText};var r,n=i(r=e.remainingText)||a(r)||u(),o=n[0],c=n.slice(1);return{formattedText:e.formattedText+o,remainingText:c}}),{formattedText:\"\",remainingText:e.split(\"\")});return(p=f?h.formattedText+h.remainingText.join(\"\"):h.formattedText).includes(\"(\")&&!p.includes(\")\")&&(p+=\")\"),p},r.cursorToEnd=function(){var e=r.numberInputRef;e.focus();var t=e.value.length;\")\"===e.value.charAt(t-1)&&(t-=1),e.setSelectionRange(t,t)},r.getElement=function(e){return r[\"flag_no_\".concat(e)]},r.getCountryData=function(){return r.state.selectedCountry?{name:r.state.selectedCountry.name||\"\",dialCode:r.state.selectedCountry.dialCode||\"\",countryCode:r.state.selectedCountry.iso2||\"\",format:r.state.selectedCountry.format||\"\"}:{}},r.handleFlagDropdownClick=function(e){if(e.preventDefault(),r.state.showDropdown||!r.props.disabled){var t=r.state,n=t.preferredCountries,a=t.selectedCountry,o=n.concat(r.state.onlyCountries).findIndex((function(e){return e.dialCode===a.dialCode&&e.iso2===a.iso2}));r.setState({showDropdown:!r.state.showDropdown,highlightCountryIndex:o},(function(){r.state.showDropdown&&r.scrollTo(r.getElement(r.state.highlightCountryIndex))}))}},r.handleInput=function(e){var t=e.target.value,n=r.props,a=n.prefix,o=n.onChange,i=r.props.disableCountryCode?\"\":a,u=r.state.selectedCountry,c=r.state.freezeSelection;if(!r.props.countryCodeEditable){var s=a+(u.hasAreaCodes?r.state.onlyCountries.find((function(e){return e.iso2===u.iso2&&e.mainCode})).dialCode:u.dialCode);if(t.slice(0,s.length)!==s)return}if(t===a)return o&&o(\"\",r.getCountryData(),e,\"\"),r.setState({formattedNumber:\"\"});if(t.replace(/\\D/g,\"\").length>15){if(!1===r.props.enableLongNumbers)return;if(\"number\"==typeof r.props.enableLongNumbers&&t.replace(/\\D/g,\"\").length>r.props.enableLongNumbers)return}if(t!==r.state.formattedNumber){e.preventDefault?e.preventDefault():e.returnValue=!1;var l=r.props.country,f=r.state,d=f.onlyCountries,p=f.selectedCountry,h=f.hiddenAreaCodes;if(o&&e.persist(),t.length>0){var m=t.replace(/\\D/g,\"\");(!r.state.freezeSelection||p.dialCode.length>m.length)&&(u=r.props.disableCountryGuess?p:r.guessSelectedCountry(m.substring(0,6),l,d,h)||p,c=!1),i=r.formatNumber(m,u),u=u.dialCode?u:p}var y=e.target.selectionStart,b=r.state.formattedNumber,g=i.length-b.length;r.setState({formattedNumber:i,freezeSelection:c,selectedCountry:u},(function(){g>0&&(y-=g),\")\"==i.charAt(i.length-1)?r.numberInputRef.setSelectionRange(i.length-1,i.length-1):y>0&&b.length>=i.length&&r.numberInputRef.setSelectionRange(y,y),o&&o(i.replace(/[^0-9]+/g,\"\"),r.getCountryData(),e,i)}))}},r.handleInputClick=function(e){r.setState({showDropdown:!1}),r.props.onClick&&r.props.onClick(e,r.getCountryData())},r.handleDoubleClick=function(e){var t=e.target.value.length;e.target.setSelectionRange(0,t)},r.handleFlagItemClick=function(e,t){var n=r.state.selectedCountry,a=r.state.onlyCountries.find((function(t){return t==e}));if(a){var o=r.state.formattedNumber.replace(\" \",\"\").replace(\"(\",\"\").replace(\")\",\"\").replace(\"-\",\"\"),i=o.length>1?o.replace(n.dialCode,a.dialCode):a.dialCode,u=r.formatNumber(i.replace(/\\D/g,\"\"),a);r.setState({showDropdown:!1,selectedCountry:a,freezeSelection:!0,formattedNumber:u},(function(){r.cursorToEnd(),r.props.onChange&&r.props.onChange(u.replace(/[^0-9]+/g,\"\"),r.getCountryData(),t,u)}))}},r.handleInputFocus=function(e){r.numberInputRef&&r.numberInputRef.value===r.props.prefix&&r.state.selectedCountry&&!r.props.disableCountryCode&&r.setState({formattedNumber:r.props.prefix+r.state.selectedCountry.dialCode},(function(){r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)})),r.setState({placeholder:\"\"}),r.props.onFocus&&r.props.onFocus(e,r.getCountryData()),r.props.jumpCursorToEnd&&setTimeout(r.cursorToEnd,0)},r.handleInputBlur=function(e){e.target.value||r.setState({placeholder:r.props.placeholder}),r.props.onBlur&&r.props.onBlur(e,r.getCountryData())},r.handleInputCopy=function(e){if(r.props.copyNumbersOnly){var t=window.getSelection().toString().replace(/[^0-9]+/g,\"\");e.clipboardData.setData(\"text/plain\",t),e.preventDefault()}},r.getHighlightCountryIndex=function(e){var t=r.state.highlightCountryIndex+e;return t<0||t>=r.state.onlyCountries.length+r.state.preferredCountries.length?t-e:r.props.enableSearch&&t>r.getSearchFilteredCountries().length?0:t},r.searchCountry=function(){var e=r.getProbableCandidate(r.state.queryString)||r.state.onlyCountries[0],t=r.state.onlyCountries.findIndex((function(t){return t==e}))+r.state.preferredCountries.length;r.scrollTo(r.getElement(t),!0),r.setState({queryString:\"\",highlightCountryIndex:t})},r.handleKeydown=function(e){var t=r.props.keys,n=e.target.className;if(n.includes(\"selected-flag\")&&e.which===t.ENTER&&!r.state.showDropdown)return r.handleFlagDropdownClick(e);if(n.includes(\"form-control\")&&(e.which===t.ENTER||e.which===t.ESC))return e.target.blur();if(r.state.showDropdown&&!r.props.disabled&&(!n.includes(\"search-box\")||e.which===t.UP||e.which===t.DOWN||e.which===t.ENTER||e.which===t.ESC&&\"\"===e.target.value)){e.preventDefault?e.preventDefault():e.returnValue=!1;var a=function(e){r.setState({highlightCountryIndex:r.getHighlightCountryIndex(e)},(function(){r.scrollTo(r.getElement(r.state.highlightCountryIndex),!0)}))};switch(e.which){case t.DOWN:a(1);break;case t.UP:a(-1);break;case t.ENTER:r.props.enableSearch?r.handleFlagItemClick(r.getSearchFilteredCountries()[r.state.highlightCountryIndex]||r.getSearchFilteredCountries()[0],e):r.handleFlagItemClick([].concat(o(r.state.preferredCountries),o(r.state.onlyCountries))[r.state.highlightCountryIndex],e);break;case t.ESC:case t.TAB:r.setState({showDropdown:!1},r.cursorToEnd);break;default:(e.which>=t.A&&e.which<=t.Z||e.which===t.SPACE)&&r.setState({queryString:r.state.queryString+String.fromCharCode(e.which)},r.state.debouncedQueryStingSearcher)}}},r.handleInputKeyDown=function(e){var t=r.props,n=t.keys,a=t.onEnterKeyPress,o=t.onKeyDown;e.which===n.ENTER&&a&&a(e),o&&o(e)},r.handleClickOutside=function(e){r.dropdownRef&&!r.dropdownContainerRef.contains(e.target)&&r.state.showDropdown&&r.setState({showDropdown:!1})},r.handleSearchChange=function(e){var t=e.currentTarget.value,n=r.state,a=n.preferredCountries,o=n.selectedCountry,i=0;if(\"\"===t&&o){var u=r.state.onlyCountries;i=a.concat(u).findIndex((function(e){return e==o})),setTimeout((function(){return r.scrollTo(r.getElement(i))}),100)}r.setState({searchValue:t,highlightCountryIndex:i})},r.getDropdownCountryName=function(e){return e.localName||e.name},r.getSearchFilteredCountries=function(){var e=r.state,t=e.preferredCountries,n=e.onlyCountries,a=e.searchValue,i=r.props.enableSearch,u=t.concat(n),c=a.trim().toLowerCase();if(i&&c){if(/^\\d+$/.test(c))return u.filter((function(e){var t=e.dialCode;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))}));var s=u.filter((function(e){var t=e.iso2;return[\"\".concat(t)].some((function(e){return e.toLowerCase().includes(c)}))})),l=u.filter((function(e){var t=e.name,r=e.localName;e.iso2;return[\"\".concat(t),\"\".concat(r||\"\")].some((function(e){return e.toLowerCase().includes(c)}))}));return r.scrollToTop(),o(new Set([].concat(s,l)))}return u},r.getCountryDropdownList=function(){var e,t=r.state,a=t.preferredCountries,o=t.highlightCountryIndex,i=t.showDropdown,u=t.searchValue,c=r.props,s=c.disableDropdown,l=c.prefix,f=r.props,d=f.enableSearch,p=f.searchNotFound,h=f.disableSearchIcon,m=f.searchClass,b=f.searchStyle,g=f.searchPlaceholder,v=f.autocompleteSearch,C=r.getSearchFilteredCountries().map((function(e,t){var n=o===t,a=N()({country:!0,preferred:\"us\"===e.iso2||\"gb\"===e.iso2,active:\"us\"===e.iso2,highlight:n}),i=\"flag \".concat(e.iso2);return y.a.createElement(\"li\",Object.assign({ref:function(e){return r[\"flag_no_\".concat(t)]=e},key:\"flag_no_\".concat(t),\"data-flag-key\":\"flag_no_\".concat(t),className:a,\"data-dial-code\":\"1\",tabIndex:s?\"-1\":\"0\",\"data-country-code\":e.iso2,onClick:function(t){return r.handleFlagItemClick(e,t)},role:\"option\"},n?{\"aria-selected\":!0}:{}),y.a.createElement(\"div\",{className:i}),y.a.createElement(\"span\",{className:\"country-name\"},r.getDropdownCountryName(e)),y.a.createElement(\"span\",{className:\"dial-code\"},e.format?r.formatNumber(e.dialCode,e):l+e.dialCode))})),_=y.a.createElement(\"li\",{key:\"dashes\",className:\"divider\"});a.length>0&&(!d||d&&!u.trim())&&C.splice(a.length,0,_);var w=N()((n(e={},r.props.dropdownClass,!0),n(e,\"country-list\",!0),n(e,\"hide\",!i),e));return y.a.createElement(\"ul\",{ref:function(e){return!d&&e&&e.focus(),r.dropdownRef=e},className:w,style:r.props.dropdownStyle,role:\"listbox\",tabIndex:\"0\"},d&&y.a.createElement(\"li\",{className:N()(n({search:!0},m,m))},!h&&y.a.createElement(\"span\",{className:N()(n({\"search-emoji\":!0},\"\".concat(m,\"-emoji\"),m)),role:\"img\",\"aria-label\":\"Magnifying glass\"},\"🔎\"),y.a.createElement(\"input\",{className:N()(n({\"search-box\":!0},\"\".concat(m,\"-box\"),m)),style:b,type:\"search\",placeholder:g,autoFocus:!0,autoComplete:v?\"on\":\"off\",value:u,onChange:r.handleSearchChange})),C.length>0?C:y.a.createElement(\"li\",{className:\"no-entries-message\"},y.a.createElement(\"span\",null,p)))};var s,l=new P(e.enableAreaCodes,e.enableTerritories,e.regions,e.onlyCountries,e.preferredCountries,e.excludeCountries,e.preserveOrder,e.masks,e.priority,e.areaCodes,e.localization,e.prefix,e.defaultMask,e.alwaysDefaultMask),h=l.onlyCountries,m=l.preferredCountries,b=l.hiddenAreaCodes,v=e.value?e.value.replace(/\\D/g,\"\"):\"\";s=e.disableInitialCountryGuess?0:v.length>1?r.guessSelectedCountry(v.substring(0,6),e.country,h,b)||0:e.country&&h.find((function(t){return t.iso2==e.country}))||0;var _,S=v.length<2&&s&&!j()(v,s.dialCode)?s.dialCode:\"\";_=\"\"===v&&0===s?\"\":r.formatNumber((e.disableCountryCode?\"\":S)+v,s.name?s:void 0);var x=h.findIndex((function(e){return e==s}));return r.state={showDropdown:e.showDropdown,formattedNumber:_,onlyCountries:h,preferredCountries:m,hiddenAreaCodes:b,selectedCountry:s,highlightCountryIndex:x,queryString:\"\",freezeSelection:!1,debouncedQueryStingSearcher:g()(r.searchCountry,250),searchValue:\"\"},r}var r,l,m;return function(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,e),r=t,(l=[{key:\"componentDidMount\",value:function(){document.addEventListener&&this.props.enableClickOutside&&document.addEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentWillUnmount\",value:function(){document.removeEventListener&&this.props.enableClickOutside&&document.removeEventListener(\"mousedown\",this.handleClickOutside)}},{key:\"componentDidUpdate\",value:function(e,t,r){e.country!==this.props.country?this.updateCountry(this.props.country):e.value!==this.props.value&&this.updateFormattedNumber(this.props.value)}},{key:\"updateFormattedNumber\",value:function(e){if(null===e)return this.setState({selectedCountry:0,formattedNumber:\"\"});var t=this.state,r=t.onlyCountries,n=t.selectedCountry,a=t.hiddenAreaCodes,o=this.props,i=o.country,u=o.prefix;if(\"\"===e)return this.setState({selectedCountry:n,formattedNumber:\"\"});var c,s,l=e.replace(/\\D/g,\"\");if(n&&j()(e,u+n.dialCode))s=this.formatNumber(l,n),this.setState({formattedNumber:s});else{var f=(c=this.props.disableCountryGuess?n:this.guessSelectedCountry(l.substring(0,6),i,r,a)||n)&&j()(l,u+c.dialCode)?c.dialCode:\"\";s=this.formatNumber((this.props.disableCountryCode?\"\":f)+l,c||void 0),this.setState({selectedCountry:c,formattedNumber:s})}}},{key:\"render\",value:function(){var e,t,r,a,o,i=this,u=this.state,c=u.onlyCountries,s=u.selectedCountry,l=u.showDropdown,f=u.formattedNumber,d=u.hiddenAreaCodes,p=this.props,h=p.disableDropdown,m=p.renderStringAsFlag,b=p.isValid,g=p.defaultErrorMessage,v=p.specialLabel;if(\"boolean\"==typeof b)a=b;else{var C=b(f.replace(/\\D/g,\"\"),s,c,d);\"boolean\"==typeof C?!1===(a=C)&&(o=g):(a=!1,o=C)}var _=N()((n(e={},this.props.containerClass,!0),n(e,\"react-tel-input\",!0),e)),w=N()({arrow:!0,up:l}),S=N()((n(t={},this.props.inputClass,!0),n(t,\"form-control\",!0),n(t,\"invalid-number\",!a),n(t,\"open\",l),t)),j=N()({\"selected-flag\":!0,open:l}),x=N()((n(r={},this.props.buttonClass,!0),n(r,\"flag-dropdown\",!0),n(r,\"invalid-number\",!a),n(r,\"open\",l),r)),O=\"flag \".concat(s&&s.iso2);return y.a.createElement(\"div\",{className:_,style:this.props.style||this.props.containerStyle,onKeyDown:this.handleKeydown},v&&y.a.createElement(\"div\",{className:\"special-label\"},v),o&&y.a.createElement(\"div\",{className:\"invalid-number-message\"},o),y.a.createElement(\"input\",Object.assign({className:S,style:this.props.inputStyle,onChange:this.handleInput,onClick:this.handleInputClick,onDoubleClick:this.handleDoubleClick,onFocus:this.handleInputFocus,onBlur:this.handleInputBlur,onCopy:this.handleInputCopy,value:f,ref:function(e){return i.numberInputRef=e},onKeyDown:this.handleInputKeyDown,placeholder:this.props.placeholder,disabled:this.props.disabled,type:\"tel\"},this.props.inputProps)),y.a.createElement(\"div\",{className:x,style:this.props.buttonStyle,ref:function(e){return i.dropdownContainerRef=e}},m?y.a.createElement(\"div\",{className:j},m):y.a.createElement(\"div\",{onClick:h?void 0:this.handleFlagDropdownClick,className:j,title:s?\"\".concat(s.name,\": + \").concat(s.dialCode):\"\",tabIndex:h?\"-1\":\"0\",role:\"button\",\"aria-haspopup\":\"listbox\",\"aria-expanded\":!!l||void 0},y.a.createElement(\"div\",{className:O},!h&&y.a.createElement(\"div\",{className:w}))),l&&this.getCountryDropdownList()))}}])&&s(r.prototype,l),m&&s(r,m),t}(y.a.Component);F.defaultProps={country:\"\",value:\"\",onlyCountries:[],preferredCountries:[],excludeCountries:[],placeholder:\"1 (702) 123-4567\",searchPlaceholder:\"search\",searchNotFound:\"No entries to show\",flagsImagePath:\"./flags.png\",disabled:!1,containerStyle:{},inputStyle:{},buttonStyle:{},dropdownStyle:{},searchStyle:{},containerClass:\"\",inputClass:\"\",buttonClass:\"\",dropdownClass:\"\",searchClass:\"\",autoFormat:!0,enableAreaCodes:!1,enableTerritories:!1,disableCountryCode:!1,disableDropdown:!1,enableLongNumbers:!1,countryCodeEditable:!0,enableSearch:!1,disableSearchIcon:!1,disableInitialCountryGuess:!1,disableCountryGuess:!1,regions:\"\",inputProps:{},localization:{},masks:null,priority:null,areaCodes:null,preserveOrder:[],defaultMask:\"... ... ... ... ..\",alwaysDefaultMask:!1,prefix:\"+\",copyNumbersOnly:!0,renderStringAsFlag:\"\",autocompleteSearch:!1,jumpCursorToEnd:!0,enableAreaCodeStretch:!1,enableClickOutside:!0,showDropdown:!1,isValid:!0,defaultErrorMessage:\"\",specialLabel:\"Phone\",onEnterKeyPress:null,keys:{UP:38,DOWN:40,RIGHT:39,LEFT:37,ENTER:13,ESC:27,PLUS:43,A:65,Z:90,SPACE:32,TAB:9}};t.default=F}]);","\"use strict\";function t(t){return t&&\"object\"==typeof t&&\"default\"in t?t.default:t}var e=require(\"react\"),n=t(e),i=require(\"react-dom\");require(\"prop-types\");var r=t(require(\"invariant\"));function a(){return(a=Object.assign||function(t){for(var e=1;e=0||(r[n]=t[n]);return r}function u(t){return requestAnimationFrame(t)}function s(t){cancelAnimationFrame(t)}function c(t){var e=t.ownerDocument;return e.hasFocus()&&e.activeElement===t}function f(t){return null==t?void 0:t.ownerDocument}function h(t){var e=function(t){var e;return null==(e=f(t))?void 0:e.defaultView}(t);return!!e&&t instanceof e.HTMLElement}function g(t){return e.useCallback((function(){var e=t.current,n=\"undefined\"!=typeof window&&h(e);if(!e||!n)return null;if(\"INPUT\"!==e.nodeName&&(e=e.querySelector(\"input\")),!e)throw new Error(\"react-input-mask: inputComponent doesn't contain input node\");return e}),[t])}function v(t,n){var i,r,a,o,l=e.useRef({start:null,end:null}),f=g(t),h=e.useCallback((function(){return function(t){var e=t.selectionStart,n=t.selectionEnd;return{start:e,end:n,length:n-e}}(f())}),[f]),v=e.useCallback((function(){return l.current}),[]),d=e.useCallback((function(t){var e=f();e&&c(e)&&(!function(t,e,n){void 0===n&&(n=e),t.setSelectionRange(e,n)}(e,t.start,t.end),l.current=h())}),[f,h]),p=e.useCallback((function(){l.current=h()}),[h]),m=(i=p,r=e.useRef(null),a=e.useCallback((function(){null===r.current&&function t(){i(),r.current=u(t)}()}),[i]),o=e.useCallback((function(){s(r.current),r.current=null}),[]),e.useEffect((function(){r.current&&(o(),a())}),[a,o]),e.useEffect(s,[]),[a,o]),P=m[0],k=m[1];return e.useLayoutEffect((function(){if(n){var t=f();return t.addEventListener(\"focus\",P),t.addEventListener(\"blur\",k),c(t)&&P(),function(){t.removeEventListener(\"focus\",P),t.removeEventListener(\"blur\",k),k()}}})),{getSelection:h,getLastSelection:v,setSelection:d}}function d(t,n){var i=e.useRef(),r=v(i,n),a=r.getSelection,o=r.getLastSelection,l=r.setSelection,u=function(t,n){var i=g(t),r=e.useRef(n);return{getValue:e.useCallback((function(){return i().value}),[i]),getLastValue:e.useCallback((function(){return r.current}),[]),setValue:e.useCallback((function(t){r.current=t;var e=i();e&&(e.value=t)}),[i])}}(i,t),s=u.getValue,c=u.getLastValue,f=u.setValue;return{inputRef:i,getInputState:function(){return{value:s(),selection:a()}},getLastInputState:function(){return{value:c(),selection:o()}},setInputState:function(t){var e=t.value,n=t.selection;f(e),l(n)}}}require(\"warning\");var p=[\"disabled\",\"onBlur\",\"onChange\",\"onFocus\",\"onMouseDown\",\"readOnly\",\"value\"],m={9:/[0-9]/,a:/[A-Za-z]/,\"*\":/[A-Za-z0-9]/};var P=function(t){var e=this;this.isCharacterAllowedAtPosition=function(t,n){var i=e.maskOptions.maskPlaceholder;return!!e.isCharacterFillingPosition(t,n)||!!i&&i[n]===t},this.isCharacterFillingPosition=function(t,n){var i=e.maskOptions.mask;if(!t||n>=i.length)return!1;if(!e.isPositionEditable(n))return i[n]===t;var r=i[n];return new RegExp(r).test(t)},this.isPositionEditable=function(t){var n=e.maskOptions,i=n.mask,r=n.permanents;return t=0;n--){if(e(t[n],n))return n}return-1}(t.split(\"\"),(function(t,n){return e.isPositionEditable(n)&&e.isCharacterFillingPosition(t,n)}))+1},this.getStringFillingLengthAtPosition=function(t,n){return t.split(\"\").reduce((function(t,n){return e.insertCharacterAtPosition(t,n,t.length)}),function(t,e){void 0===e&&(e=1);for(var n=\"\",i=0;i=0;n--)if(e.isPositionEditable(n))return n;return null},this.getRightEditablePosition=function(t){for(var n=e.maskOptions.mask,i=t;i=r&&!a?\"\":i=r?t:a?o?o[i]:\"\":l[i]})).join(\"\");return e.formatValue(u)},this.insertCharacterAtPosition=function(t,n,i){var r=e.maskOptions,a=r.mask,o=r.maskPlaceholder;if(i>=a.length)return t;var l=e.isCharacterAllowedAtPosition(n,i),u=e.isPositionEditable(i),s=e.getRightEditablePosition(i),c=o&&s?n===o[s]:null,f=t.slice(0,i);!l&&u||(t=f+(l?n:a[i]));return l||u||c||(t=e.insertCharacterAtPosition(t,n,i+1)),t},this.insertStringAtPosition=function(t,n,i){var r=e.maskOptions,a=r.mask,o=r.maskPlaceholder;if(!n||i>=a.length)return t;var l=n.split(\"\"),u=e.isValueFilled(t)||!!o,s=t.slice(i);if(t=l.reduce((function(t,n){return e.insertCharacterAtPosition(t,n,t.length)}),t.slice(0,i)),u)t+=s.slice(t.length-i);else if(e.isValueFilled(t))t+=a.slice(t.length).join(\"\");else{t=s.split(\"\").filter((function(t,n){return e.isPositionEditable(i+n)})).reduce((function(t,n){var i=e.getRightEditablePosition(t.length);return null===i?t:(e.isPositionEditable(t.length)||(t+=a.slice(t.length,i).join(\"\")),e.insertCharacterAtPosition(t,n,t.length))}),t)}return t},this.processChange=function(t,n){var i=e.maskOptions,r=i.mask,a=i.prefix,o=i.lastEditablePosition,l=t.value,u=t.selection,s=n.value,c=n.selection,f=l,h=\"\",g=0,v=0,d=Math.min(c.start,u.start);if(u.end>c.start?(h=f.slice(c.start,u.end),v=(g=e.getStringFillingLengthAtPosition(h,d))?c.length:0):f.length=r.length?d=r.length:d=a.length&&d 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t/* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\nexpressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix, idPrefix:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame */\r\n\r\nvar svgNS = 'http://www.w3.org/2000/svg';\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\n/* global createSizedArray */\r\n/* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\ndefaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\nBMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\naddSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\r\n\r\nvar subframeEnabled = true;\r\nvar idPrefix = '';\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bmRnd;\r\nvar bmPow = Math.pow;\r\nvar bmSqrt = Math.sqrt;\r\nvar bmFloor = Math.floor;\r\nvar bmMax = Math.max;\r\nvar bmMin = Math.min;\r\n\r\nvar BMMath = {};\r\n(function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n}());\r\n\r\nfunction ProjectInterface() { return {}; }\r\n\r\nBMMath.random = Math.random;\r\nBMMath.abs = function (val) {\r\n var tOfVal = typeof val;\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n return absArr;\r\n }\r\n return Math.abs(val);\r\n};\r\nvar defaultCurveSegments = 150;\r\nvar degToRads = Math.PI / 180;\r\nvar roundCorner = 0.5519;\r\n\r\nfunction roundValues(flag) {\r\n if (flag) {\r\n bmRnd = Math.round;\r\n } else {\r\n bmRnd = function (val) {\r\n return val;\r\n };\r\n }\r\n}\r\nroundValues(false);\r\n\r\nfunction styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n}\r\n\r\nfunction BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n}\r\n\r\nfunction BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n}\r\n\r\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n}\r\n\r\nfunction BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n}\r\n\r\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n}\r\n\r\nvar createElementID = (function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix + '__lottie_element_' + _count;\r\n };\r\n}());\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n default: break;\r\n }\r\n return [r,\r\n g,\r\n b];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = (max === 0 ? 0 : d / max);\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n default: break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v,\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction BaseEvent() {}\r\nBaseEvent.prototype = {\r\n triggerEvent: function (eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function (eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function (eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n }\r\n i += 1;\r\n }\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n },\r\n};\r\n\r\n/* exported createTypedArray, createSizedArray */\r\n\r\nvar createTypedArray = (function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n }\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n } if (type === 'int16') {\r\n return new Int16Array(len);\r\n } if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n return createRegularArray(type, len);\r\n }\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n return createRegularArray;\r\n}());\r\n\r\nfunction createSizedArray(len) {\r\n return Array.apply(null, { length: len });\r\n}\r\n\r\n/* global svgNS */\r\n/* exported createNS */\r\n\r\nfunction createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n}\r\n\r\n/* exported createTag */\r\n\r\nfunction createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n}\r\n\r\nfunction DynamicPropertyContainer() {}\r\nDynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function () {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function (container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n },\r\n};\r\n\r\n/* exported getBlendMode */\r\n\r\nvar getBlendMode = (function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity',\r\n };\r\n\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n}());\r\n\r\n/* exported lineCapEnum, lineJoinEnum */\r\n\r\nvar lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square',\r\n};\r\n\r\nvar lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel',\r\n};\r\n\r\n/* global createTypedArray */\r\n\r\n/*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n/**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\nvar Matrix = (function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n var mSin = _sin(angle);\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2;\r\n // }\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [\r\n x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14],\r\n ];\r\n }\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n if ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/* eslint-disable */\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\n/* eslint-disable */\r\nvar BezierFactory = (function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C(aA1) { return 3.0 * aA1; }\r\n\r\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n }\r\n\r\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n },\r\n };\r\n\r\n return ob;\r\n}());\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { // eslint-disable-line no-plusplus\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n if (!window.cancelAnimationFrame) {\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}());\r\n\r\n/* exported extendPrototype, getDescriptor, createProxyFunction */\r\n\r\nfunction extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n}\r\n\r\n/* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\r\n/* exported bez */\r\n\r\nfunction bezFunction() {\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1, y1, x2, y2, x3, y3) {\r\n var det1 = (x1 * y2) + (y1 * x3) + (x2 * y3) - (x3 * y2) - (y3 * x1) - (x2 * y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1, y1, z1, x2, y2, z2, x3, y3, z3) {\r\n if (z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1, y1, x2, y2, x3, y3);\r\n }\r\n var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n lastPoint[i] = point[i];\r\n }\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }());\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = (function () {\r\n var storedData = {};\r\n\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n if (!storedData[bezierName]) {\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n return storedData[bezierName];\r\n };\r\n }());\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\r\n var u1 = 1 - t1;\r\n var ptX = math.round((u1 * u1 * u1 * pt1[0] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[0] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[0] + t1 * t1 * t1 * pt2[0]) * 1000) / 1000;\r\n var ptY = math.round((u1 * u1 * u1 * pt1[1] + (t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1) * pt3[1] + (t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1) * pt4[1] + t1 * t1 * t1 * pt2[1]) * 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n var t0 = getDistancePerc(startPerc, bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc, bezierData);\r\n var i;\r\n var len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0 * u0 * u0;\r\n var t0u0u0_3 = t0 * u0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n var t0t0t0 = t0 * t0 * t0;\r\n //\r\n var u0u0u1 = u0 * u0 * u1;\r\n var t0u0u1_3 = t0 * u0 * u1 + u0 * t0 * u1 + u0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n var t0t0t1 = t0 * t0 * t1;\r\n //\r\n var u0u1u1 = u0 * u1 * u1;\r\n var t0u1u1_3 = t0 * u1 * u1 + u0 * t1 * u1 + u0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n var t0t1t1 = t0 * t1 * t1;\r\n //\r\n var u1u1u1 = u1 * u1 * u1;\r\n var t1u1u1_3 = t1 * u1 * u1 + u1 * t1 * u1 + u1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1t1 = t1 * t1 * t1;\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D,\r\n };\r\n}\r\n\r\nvar bez = bezFunction();\r\n\r\n/* exported dataManager */\r\n\r\nfunction dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\r\n function completeLayers(layers, comps, fontManager) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (('ks' in layerData) && !layerData.completed) {\r\n layerData.completed = true;\r\n if (layerData.tt) {\r\n layers[i - 1].td = layerData.tt;\r\n }\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps, fontManager);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData, fontManager);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n if (!comps[i].layers.__used) {\r\n comps[i].layers.__used = true;\r\n return comps[i].layers;\r\n }\r\n return JSON.parse(JSON.stringify(comps[i].layers));\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n } if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n } if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n } if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n return null;\r\n }\r\n\r\n var checkText = (function () {\r\n var minimumVersion = [4, 4, 14];\r\n\r\n function updateTextLayer(textLayer) {\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s: documentData,\r\n t: 0,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkChars = (function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n var j;\r\n var jLen;\r\n var pathData;\r\n var paths;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\r\n paths = animationData.chars[i].data.shapes[0].it;\r\n jLen = paths.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = paths[j].ks.k;\r\n if (!pathData.__converted) {\r\n convertPathsToAbsoluteValues(paths[j].ks.k);\r\n pathData.__converted = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkColors = (function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n var checkShapes = (function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (arr[i].ty === 'sh') {\r\n if (arr[i].ks.k.i) {\r\n arr[i].ks.k.c = arr[i].closed;\r\n } else {\r\n jLen = arr[i].ks.k.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }());\r\n\r\n function completeData(animationData, fontManager) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets, fontManager);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {\r\n data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n\r\n return moduleOb;\r\n}\r\n\r\nvar dataManager = dataFunctionManager();\r\n\r\n/* exported getFontProperties */\r\n\r\nfunction getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal'; var\r\n fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight,\r\n };\r\n}\r\n\r\n/* global createNS, createTag, getFontProperties */\r\n/* exported FontManager */\r\n\r\nvar FontManager = (function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n };\r\n var combinedCharacters = [];\r\n // Hindi characters\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\r\n 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n\r\n var surrogateModifiers = [\r\n 'd83cdffb',\r\n 'd83cdffc',\r\n 'd83cdffd',\r\n 'd83cdffe',\r\n 'd83cdfff',\r\n ];\r\n\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span');\r\n // Node is invisible to screen readers.\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span');\r\n // Characters that vary significantly among different fonts\r\n node.innerText = 'giItT1WQy@!-/#';\r\n // Visible - so we can measure it - but not on the screen\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px';\r\n // Large font size makes even subtle changes obvious\r\n parentNode.style.fontSize = '300px';\r\n // Reset any font properties\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode);\r\n\r\n // Remember width with no applied web font\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return { node: node, w: width, parent: parentNode };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(def, fontData) {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px';\r\n // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n def.appendChild(tHelper);\r\n var tCanvasHelper = createTag('canvas').getContext('2d');\r\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily;\r\n // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\r\n return tHelper;\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = 'text/css';\r\n l.rel = 'stylesheet';\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if (fontArr[i].fOrigin === 't' || fontArr[i].origin === 2) {\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel', 'stylesheet');\r\n sc.setAttribute('href', fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs, fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n j += 1;\r\n }\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n while (i < len) {\r\n if (this.chars[i].ch === char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n i += 1;\r\n }\r\n if (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\r\n && console\r\n && console.warn // eslint-disable-line no-console\r\n && !this._warned\r\n ) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', char, style, font); // eslint-disable-line no-console\r\n }\r\n return emptyChar;\r\n }\r\n\r\n function measureText(char, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n var index = char.charCodeAt(0);\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n // Canvas version\r\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\r\n // SVG version\r\n // console.log(tHelper.getBBox().width)\r\n if (char === ' ') {\r\n tHelper.textContent = '|' + char + '|';\r\n var doubleSize = tHelper.getComputedTextLength();\r\n tHelper.textContent = '||';\r\n var singleSize = tHelper.getComputedTextLength();\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n tHelper.textContent = char;\r\n fontData.cache[index + 1] = (tHelper.getComputedTextLength()) / 100;\r\n }\r\n }\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n i += 1;\r\n }\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(char) {\r\n return combinedCharacters.indexOf(char) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function () {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded,\r\n };\r\n\r\n Font.prototype = fontPrototype;\r\n\r\n return Font;\r\n}());\r\n\r\n/* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\r\n/* exported PropertyFactory */\r\n\r\nvar PropertyFactory = (function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyData.bezierData) {\r\n keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n } else {\r\n for (i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if (frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if (keyData.o.x.constructor === Array) {\r\n if (!keyData.__fnct) {\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = (typeof keyData.o.x[i] === 'undefined') ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = (typeof keyData.o.y[i] === 'undefined') ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = (typeof keyData.i.x[i] === 'undefined') ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = (typeof keyData.i.y[i] === 'undefined') ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct = fnc;\r\n } else {\r\n fnc = keyData.__fnct;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n // based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n if (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if (mathAbs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0;\r\n var len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1,\r\n };\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n var i;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if ((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2]))) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof (data.k[0]) === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp,\r\n };\r\n return ob;\r\n}());\r\n\r\n/* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n/* exported TransformPropertyFactory */\r\n\r\nvar TransformPropertyFactory = (function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate), 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate), 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\r\n } else if (!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {\r\n //\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n // Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\r\n }\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\r\n // sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\r\n }\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\r\n // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = { _mdf: false, v: 1 };\r\n }\r\n this._isDirty = true;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient,\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, createSizedArray, pointPool */\r\n\r\nfunction ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n};\r\n\r\nShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n this._length = len;\r\n};\r\n\r\nShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n};\r\n\r\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n if (!arr[pos] || (arr[pos] && !replace)) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n if (this.c) {\r\n newPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n newPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\n\r\n/* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\r\n/* exported ShapePropertyFactory */\r\n\r\nvar ShapePropertyFactory = (function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n if ((nextKeyData.t - this.offsetTime) > frameNum) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n var lastFrame = this._caching.lastFrame;\r\n if (!(lastFrame !== initFrame && ((lastFrame < initTime && frameNum < initTime) || (lastFrame > endTime && frameNum > endTime)))) {\r\n /// /\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n /// /\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape() {\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if (shape1._length !== shape2._length || shape1.c !== shape2.c) {\r\n return false;\r\n }\r\n var i;\r\n var len = shape1._length;\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0]\r\n || shape1.v[i][1] !== shape2.v[i][1]\r\n || shape1.o[i][0] !== shape2.o[i][0]\r\n || shape1.o[i][1] !== shape2.o[i][1]\r\n || shape1.i[i][0] !== shape2.i[i][0]\r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n var i;\r\n var len = this.effectsSequence.length;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = { lastFrame: initFrame, lastIndex: 0 };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n /* this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n }; */\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n }\r\n\r\n EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n },\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n\r\n return EllShapePropertyFactory;\r\n }());\r\n\r\n var StarShapeProperty = (function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function () {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = (Math.PI * 2) / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\r\n var shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\r\n var i;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var currentAng = -Math.PI / 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function () {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = (Math.PI * 2) / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = (2 * Math.PI * rad) / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n },\r\n\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n\r\n return StarShapePropertyFactory;\r\n }());\r\n\r\n var RectShapeProperty = (function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function () {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape,\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n\r\n return RectShapePropertyFactory;\r\n }());\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n}());\r\n\r\n/* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\r\n/* exported ShapeModifiers */\r\n\r\nvar ShapeModifiers = (function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\nfunction ShapeModifier() {}\r\nShapeModifier.prototype.initModifierProperties = function () {};\r\nShapeModifier.prototype.addShapeToModifier = function () {};\r\nShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n};\r\nShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\nShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\r\n\r\nfunction TrimModifier() {\r\n}\r\nextendPrototype([ShapeModifier], TrimModifier);\r\nTrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n};\r\n\r\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e,\r\n });\r\n } else if (s >= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1,\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1,\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\r\n }\r\n\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e === 0 && s === 1))) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE,\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shapePool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\r\n\r\nfunction RoundCornersModifier() {}\r\nextendPrototype([ShapeModifier], RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n return clonedPath;\r\n};\r\n\r\nRoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\n\r\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\r\n\r\nfunction PuckerAndBloatModifier() {}\r\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\nPuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n return clonedPath;\r\n};\r\n\r\nPuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\r\n\r\nfunction RepeaterModifier() {}\r\nextendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\nRepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n};\r\n\r\nRepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n};\r\n\r\nRepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n while (pos > 0) {\r\n pos -= 1;\r\n // this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n }\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr',\r\n };\r\n group.it.push({\r\n a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\r\n });\r\n\r\n this.arr.splice(0, 0, group);\r\n this._groups.splice(0, 0, group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies;\r\n /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if (offset > 0) {\r\n while (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1\r\n ? this.so.v\r\n : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\r\n if (iteration !== 0) {\r\n if ((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0], rProps[1], rProps[2], rProps[3], rProps[4], rProps[5], rProps[6], rProps[7], rProps[8], rProps[9], rProps[10], rProps[11], rProps[12], rProps[13], rProps[14], rProps[15]);\r\n this.matrix.transform(sProps[0], sProps[1], sProps[2], sProps[3], sProps[4], sProps[5], sProps[6], sProps[7], sProps[8], sProps[9], sProps[10], sProps[11], sProps[12], sProps[13], sProps[14], sProps[15]);\r\n this.matrix.transform(pProps[0], pProps[1], pProps[2], pProps[3], pProps[4], pProps[5], pProps[6], pProps[7], pProps[8], pProps[9], pProps[10], pProps[11], pProps[12], pProps[13], pProps[14], pProps[15]);\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n return hasReloaded;\r\n};\r\n\r\nRepeaterModifier.prototype.addShape = function () {};\r\n\r\nShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n\r\n/* global createSizedArray, shapePool */\r\n\r\nfunction ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n};\r\n\r\nShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n this._length = 0;\r\n};\r\n\r\n/* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = { n: data[i].n, p: prop };\r\n }\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = this.k;\r\n}\r\n\r\nDashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n};\r\nextendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n/* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\nfunction GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? (data.k.k[0].s.length - data.p * 4) : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n}\r\n\r\nGradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n this._mdf = !forceRender;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n/* exported buildShapeString */\r\n\r\nvar buildShapeString = function (pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n return shapeString;\r\n};\r\n\r\n/* global Howl */\r\n/* exported audioControllerFactory */\r\n\r\nvar audioControllerFactory = (function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function (audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function (rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function (assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n } if (Howl) {\r\n return new Howl({\r\n src: [assetPath],\r\n });\r\n }\r\n return {\r\n isPlaying: false,\r\n play: function () { this.isPlaying = true; },\r\n seek: function () { this.isPlaying = false; },\r\n playing: function () {},\r\n rate: function () {},\r\n setVolume: function () {},\r\n };\r\n },\r\n setAudioFactory: function (audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function (value) {\r\n this._volume = value;\r\n this._updateVolume();\r\n },\r\n mute: function () {\r\n this._isMuted = true;\r\n this._updateVolume();\r\n },\r\n unmute: function () {\r\n this._isMuted = false;\r\n this._updateVolume();\r\n },\r\n getVolume: function () {\r\n return this._volume;\r\n },\r\n _updateVolume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n },\r\n };\r\n\r\n return function () {\r\n return new AudioController();\r\n };\r\n}());\r\n\r\n/* global createTag, createNS, isSafari, assetLoader */\r\n/* exported ImagePreloader */\r\n\r\nvar ImagePreloader = (function () {\r\n var proxyImage = (function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }());\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n clearInterval(intervalId);\r\n }\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData,\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data,\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n assetLoader.load(path, function (footageData) {\r\n ob.img = footageData;\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType,\r\n };\r\n\r\n return ImagePreloaderFactory;\r\n}());\r\n\r\n/* exported featureSupport */\r\n\r\nvar featureSupport = (function () {\r\n var ob = {\r\n maskType: true,\r\n };\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n return ob;\r\n}());\r\n\r\n/* global createNS */\r\n/* exported filtersFactory */\r\n\r\nvar filtersFactory = (function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* exported assetLoader */\r\n\r\nvar assetLoader = (function () {\r\n function formatResponse(xhr) {\r\n if (xhr.response && typeof xhr.response === 'object') {\r\n return xhr.response;\r\n } if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n } if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n return null;\r\n }\r\n\r\n function loadAsset(path, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest();\r\n // set responseType after calling open or IE will break.\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n xhr.open('GET', path, true);\r\n xhr.send();\r\n }\r\n return {\r\n load: loadAsset,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {},\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n}\r\n\r\nTextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: this._textData.p.r,\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m),\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n};\r\n\r\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n if (this._pathData.r) {\r\n paths = paths.reverse();\r\n }\r\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n pathInfo = {\r\n tLength: 0,\r\n segments: [],\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[i + 1],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n i = len;\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[0],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n this._pathData.pi = pathInfo;\r\n }\r\n pathInfo = this._pathData.pi;\r\n\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n\r\n jLen = animators.length;\r\n\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO;\r\n\r\n //\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n isNewLine = false;\r\n }\r\n }\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n }\r\n //\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n currentLine = letters[i].line;\r\n }\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n currentLength += (alignment[0] * letters[i].an) * 0.005;\r\n var animatorOffset = 0;\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n flag = true;\r\n while (flag) {\r\n if (segmentLength + partialLength >= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 0.005, (-alignment[1] * yOff) * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (mult.length) {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult[0]), 1 + ((animatorProps.s.v[1] - 1) * mult[1]), 1);\r\n } else {\r\n matrixHelper.scale(1 + ((animatorProps.s.v[0] - 1) * mult), 1 + ((animatorProps.s.v[1] - 1) * mult), 1);\r\n }\r\n }\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += ((animatorProps.o.v) * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += ((animatorProps.o.v) * mult - elemOpacity) * mult;\r\n }\r\n }\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n\r\n matrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\r\n if (textData.p.p) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = (Math.atan(tanAngle) * 180) / Math.PI;\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n matrixHelper.rotate((-rot * Math.PI) / 180);\r\n }\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= (alignment[0] * letters[i].an) * 0.005;\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate((alignment[0] * letters[i].an) * 0.005, (alignment[1] * yOff) * 0.01, 0);\r\n xPos += letters[i].l + (documentData.tr * 0.001) * documentData.finalSize;\r\n }\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n};\r\n\r\nTextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nTextAnimatorProperty.prototype.mHelper = new Matrix();\r\nTextAnimatorProperty.prototype.defaultPropsArray = [];\r\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n/* global PropertyFactory, degToRads, TextSelectorProp */\r\n/* exported TextAnimatorDataProperty */\r\n\r\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = { propType: false };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData,\r\n };\r\n\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n}\r\n\r\nfunction LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true,\r\n };\r\n}\r\n\r\nLetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n return updated;\r\n};\r\n\r\n/* global FontManager, initialDefaultFrame, getFontProperties */\r\n/* exported TextProperty */\r\n\r\nfunction TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false,\r\n\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n}\r\n\r\nTextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\nTextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n return obj;\r\n};\r\n\r\nTextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n};\r\n\r\nTextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n};\r\n\r\nTextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n};\r\n\r\nTextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var i; var\r\n len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n};\r\n\r\nTextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0; var\r\n len = textKeys.length;\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n};\r\n\r\nTextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i; var\r\n len;\r\n var newLineFlag; var index = 0; var\r\n val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0; var currentPos = 0; var currentLine = 0; var\r\n lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j; var\r\n jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData; var\r\n cLength = 0;\r\n\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var charCode;\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight; var\r\n finalText;\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = (documentData.tr / 1000) * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\r\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += (fontData.ascent * documentData.finalSize) / 100;\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({\r\n l: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\r\n });\r\n if (anchorGrouping == 2) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a; var animatorData; var\r\n letterData;\r\n jLen = animators.length;\r\n var based; var ind; var\r\n indexes = [];\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n ind = 0;\r\n based = animatorData.s.b;\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n if ((based == 1 && letterData.val !== '') || (based == 2 && letterData.val !== '' && letterData.val !== ' ') || (based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1)) || (based == 4 && (letterData.n || i == len - 1))) { // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n ind += 1;\r\n }\r\n }\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1; var\r\n newInd;\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n if (currentInd != letterData.anIndexes[j]) { // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = (fontData.ascent * documentData.finalSize) / 100;\r\n};\r\n\r\nTextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n};\r\n\r\nTextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\n/* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\r\n/* exported TextSelectorProp */\r\n\r\nvar TextSelectorProp = (function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: 0 }, 0, 0, this);\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = { v: 100 };\r\n }\r\n this.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function (ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult * this.a.v;\r\n },\r\n getValue: function (newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = (this.e.v / divisor) + o;\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n },\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp,\r\n };\r\n}());\r\n\r\n/* global createSizedArray, pooling */\r\n/* exported poolFactory */\r\n\r\nvar poolFactory = (function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n var ob = {\r\n newElement: newElement,\r\n release: release,\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n if (_release) {\r\n _release(element);\r\n }\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported pooling */\r\n\r\nvar pooling = (function () {\r\n function double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n double: double,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, poolFactory */\r\n/* exported pointPool */\r\n\r\nvar pointPool = (function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* global ShapePath, pointPool, poolFactory */\r\n/* exported shapePool */\r\n\r\nvar shapePool = (function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.setTripleAt(shape.v[i][0], shape.v[i][1], shape.o[i][0], shape.o[i][1], shape.i[i][0], shape.i[i][1], i);\r\n }\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n\r\n return factory;\r\n}());\r\n\r\n/* global createSizedArray, ShapeCollection, shapePool, pooling */\r\n/* exported shapeCollectionPool */\r\n\r\nvar shapeCollectionPool = (function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release,\r\n };\r\n\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling.double(pool);\r\n _maxLength *= 2;\r\n }\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global poolFactory, bezierLengthPool */\r\n/* exported segmentsLengthPool */\r\n\r\nvar segmentsLengthPool = (function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0,\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n}());\r\n\r\n/* global createTypedArray, defaultCurveSegments, poolFactory */\r\n/* exported bezierLengthPool */\r\n\r\nvar bezierLengthPool = (function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', defaultCurveSegments),\r\n lengths: createTypedArray('float32', defaultCurveSegments),\r\n };\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* exported markerParser */\r\n\r\nvar markerParser = (\r\n\r\n function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr,\r\n };\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i],\r\n };\r\n }\r\n }\r\n markers.push(markerData);\r\n }\r\n return markers;\r\n };\r\n }());\r\n\r\n/* global AudioElement, FootageElement, FontManager */\r\n\r\nfunction BaseRenderer() {}\r\nBaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 15:\r\n return this.createFootage(layer);\r\n default:\r\n return this.createNull(layer);\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n j += 1;\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n};\r\n\r\nBaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n};\r\nBaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n while (i < len) {\r\n if (layers[i].ind == parentName) { // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n};\r\n\r\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h,\r\n };\r\n};\r\n\r\n/* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\nIImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\r\n\r\nfunction SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n hideOnTransparent: !((config && config.hideOnTransparent === false)),\r\n viewBoxOnly: (config && config.viewBoxOnly) || false,\r\n viewBoxSize: (config && config.viewBoxSize) || false,\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '100%',\r\n height: (config && config.filterSize && config.filterSize.height) || '100%',\r\n x: (config && config.filterSize && config.filterSize.x) || '0%',\r\n y: (config && config.filterSize && config.filterSize.y) || '0%',\r\n },\r\n };\r\n\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n}\r\n\r\nextendPrototype([BaseRenderer], SVGRenderer);\r\n\r\nSVGRenderer.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n }\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\r\n // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n this.animationItem.wrapper.appendChild(this.svgElement);\r\n // Mask animation\r\n var defs = this.globalData.defs;\r\n\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + maskId + ')');\r\n\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n};\r\n\r\nSVGRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nSVGRenderer.prototype.updateContainerSize = function () {\r\n};\r\n\r\nSVGRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n\r\n elements[pos] = element;\r\n if (expressionsPlugin) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n element.initExpressions();\r\n }\r\n this.appendElementInPos(element, pos);\r\n if (this.layers[pos].tt) {\r\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\r\n this.buildItem(pos - 1);\r\n this.addPendingElement(element);\r\n } else {\r\n element.setMatte(elements[pos - 1].layerId);\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n element.setMatte(this.elements[i - 1].layerId);\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n }\r\n // console.log('-------');\r\n // console.log('FRAME ',num);\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n if (!newElement) {\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n i += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n};\r\n\r\nSVGRenderer.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n};\r\n\r\n/* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\nCVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\r\n\r\nfunction CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: (config && config.clearCanvas !== undefined) ? config.clearCanvas : true,\r\n context: (config && config.context) || null,\r\n progressiveLoad: (config && config.progressiveLoad) || false,\r\n preserveAspectRatio: (config && config.preserveAspectRatio) || 'xMidYMid meet',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n className: (config && config.className) || '',\r\n id: (config && config.id) || '',\r\n };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\r\n }\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1,\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n}\r\nextendPrototype([BaseRenderer], CanvasRenderer);\r\n\r\nCanvasRenderer.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nCanvasRenderer.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n }\r\n this.transformMat.cloneFromProps(props);\r\n var cProps = this.contextData.cTr.props;\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]);\r\n // this.contextData.cTr.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n this.contextData.cTr.cloneFromProps(this.transformMat.props);\r\n var trProps = this.contextData.cTr.props;\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n};\r\n\r\nCanvasRenderer.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n return;\r\n }\r\n this.contextData.cO *= op < 0 ? 0 : op;\r\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\r\n this.canvasContext.globalAlpha = this.contextData.cO;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n this.contextData.reset();\r\n};\r\n\r\nCanvasRenderer.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n var props = this.contextData.cTr.props;\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.cArrPos];\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\r\n};\r\n\r\nCanvasRenderer.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n this.contextData.cArrPos -= 1;\r\n var popped = this.contextData.saved[this.contextData.cArrPos];\r\n var i;\r\n var arr = this.contextData.cTr.props;\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\r\n popped = this.contextData.savedOp[this.contextData.cArrPos];\r\n this.contextData.cO = popped;\r\n if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0,\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n\r\n this.updateContainerSize();\r\n};\r\n\r\nCanvasRenderer.prototype.updateContainerSize = function () {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\r\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\r\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\r\n }\r\n var elementRel;\r\n var animationRel;\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n if ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = ((elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) / 2) * this.renderConfig.dpr;\r\n } else if (xPos === 'xMax' && ((animationRel < elementRel && fillType === 'meet') || (animationRel > elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.tx = (elementWidth - this.transformCanvas.w * (elementHeight / this.transformCanvas.h)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if (yPos === 'YMid' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2) * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && ((animationRel > elementRel && fillType === 'meet') || (animationRel < elementRel && fillType === 'slice'))) {\r\n this.transformCanvas.ty = ((elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w))) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function (num, forceRender) {\r\n if ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\n/* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\nHTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\nHSolidElement, styleDiv, createTag, createNS */\r\n\r\nfunction HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n filterSize: {\r\n width: (config && config.filterSize && config.filterSize.width) || '400%',\r\n height: (config && config.filterSize && config.filterSize.height) || '400%',\r\n x: (config && config.filterSize && config.filterSize.x) || '-100%',\r\n y: (config && config.filterSize && config.filterSize.y) || '-100%',\r\n },\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig,\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n}\r\n\r\nextendPrototype([BaseRenderer], HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n i += 1;\r\n }\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n return new HShapeElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n return new HTextElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n};\r\n\r\nHybridRenderer.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n return new HImageElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n return new HCompElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n return new HSolidElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nHybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container);\r\n // this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type,\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n len = this.threeDElements.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n break;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n wrapper.appendChild(resizerElem);\r\n\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData;\r\n // Mask animation\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n};\r\n\r\nHybridRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nHybridRenderer.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n if (animationRel > elementRel) {\r\n sx = elementWidth / (this.globalData.compSize.w);\r\n sy = elementWidth / (this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight - this.globalData.compSize.h * (elementWidth / this.globalData.compSize.w)) / 2);\r\n } else {\r\n sx = elementHeight / (this.globalData.compSize.h);\r\n sy = elementHeight / (this.globalData.compSize.h);\r\n tx = (elementWidth - this.globalData.compSize.w * (elementHeight / this.globalData.compSize.h)) / 2;\r\n ty = 0;\r\n }\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function () {\r\n this.buildAllItems();\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n};\r\n\r\n/* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\r\n\r\nfunction MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n for (i = 0; i < len; i += 1) {\r\n if ((properties[i].mode !== 'a' && properties[i].mode !== 'n') || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: '',\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n }\r\n\r\n // TODO move this to a factory or to a constructor\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0,\r\n };\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + layerId + '_' + count + ')');\r\n\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n }\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect,\r\n };\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n\r\n len = currentMasks.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + locationHref + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.viewData[i].prop._mdf || isFirstFrame) {\r\n this.drawPath(this.masksProperties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[i].filterId + ')');\r\n }\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[i][1];\r\n }\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n if (pathNodes.c && len > 1) {\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[0][0] + ',' + pathNodes.i[0][1] + ' ' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n }\r\n // pathNodes.__renderedString = pathString;\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement() {}\r\n\r\nHierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function () {\r\n // element's parent list\r\n this.hierarchy = [];\r\n // if element is parent of another layer _isParent will be true\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n /**\r\n * @function\r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */\r\n setHierarchy: function (hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function () {\r\n this._isParent = true;\r\n },\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function () {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n },\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement() {}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function () {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n // list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function (num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n },\r\n};\r\n\r\n/* global TransformPropertyFactory, Matrix */\r\n\r\nfunction TransformElement() {}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function () {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix(),\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n // TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n // this.createElements();\r\n }\r\n },\r\n renderTransform: function () {\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0;\r\n var len = this.hierarchy.length;\r\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function (pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix(),\r\n};\r\n\r\nfunction RenderableElement() {\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function () {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n // layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n // list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function (num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function () {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function (num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n if (this.isInRange !== true) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else if (this.isInRange !== false) {\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n },\r\n renderRenderable: function () {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n },\r\n sourceRectAtTime: function () {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100,\r\n };\r\n },\r\n getLayerSize: function () {\r\n if (this.data.ty === 5) {\r\n return { w: this.data.textData.width, h: this.data.textData.height };\r\n }\r\n return { w: this.data.width, h: this.data.height };\r\n },\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, createProxyFunction */\r\n\r\nfunction RenderableDOMElement() {}\r\n\r\n(function () {\r\n var _prototype = {\r\n initElement: function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function () {},\r\n prepareFrame: function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function () {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n },\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\n\r\n/* exported ProcessedElement */\r\n\r\nfunction ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n}\r\n\r\n/* global createNS */\r\n\r\nfunction SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n};\r\n\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0;\r\n var len = transformers.length;\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n};\r\n\r\n/* exported SVGTransformData */\r\n\r\nfunction SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container,\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\n\r\n/* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n/* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n/* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\nextendPrototype, DynamicPropertyContainer, lineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id', gradientId);\r\n gfill.setAttribute('spreadMethod', 'pad');\r\n gfill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n var stops = [];\r\n var stop;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + opacityId + ')');\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n/* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\r\n\r\nfunction SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n/* global createNS */\r\n/* exported ShapeGroupData */\r\n\r\nfunction ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n}\r\n\r\n/* global Matrix, buildShapeString, bmFloor */\r\n/* exported SVGElementsRenderer */\r\n\r\nvar SVGElementsRenderer = (function () {\r\n var _identityMatrix = new Matrix();\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction,\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n case 'gf':\r\n return renderGradient;\r\n case 'gs':\r\n return renderGradientStroke;\r\n case 'st':\r\n return renderStroke;\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n case 'tr':\r\n return renderContentTransform;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n mat.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n }\r\n // gfill.setAttribute('fy','200');\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global Matrix */\r\n\r\nfunction ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n addTransformSequence: function (transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n var sequence = this.sequences[key];\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false,\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n return sequence;\r\n },\r\n processSequence: function (sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n sequence.finalTransform.transform(props[0], props[1], props[2], props[3], props[4], props[5], props[6], props[7], props[8], props[9], props[10], props[11], props[12], props[13], props[14], props[15]);\r\n }\r\n }\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function (isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function () {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n },\r\n};\r\n\r\n/* global ShapePropertyFactory, SVGShapeData */\r\n\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: [],\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n/* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\nTextExpressionInterface, getBlendMode,createElementID, EffectsManager */\r\n\r\nfunction BaseElement() {\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function () {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n while (i < len) {\r\n if ((this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false)) {\r\n return true;\r\n }\r\n i += 1;\r\n }\r\n return false;\r\n },\r\n initExpressions: function () {\r\n this.layerInterface = LayerExpressionInterface(this);\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function () {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function (data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID();\r\n\r\n // Stretch factor for old animations missing this property.\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n }\r\n // effects manager\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function () {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function () {},\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\r\n\r\nfunction NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n}\r\n\r\nNullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nNullElement.prototype.renderFrame = function () {\r\n};\r\n\r\nNullElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nNullElement.prototype.destroy = function () {\r\n};\r\n\r\nNullElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nNullElement.prototype.hide = function () {\r\n};\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n/* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\r\n\r\nfunction SVGBaseElement() {\r\n}\r\n\r\nSVGBaseElement.prototype = {\r\n initRendererElement: function () {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function () {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null;\r\n // If this layer acts as a mask for the following layer\r\n var filId;\r\n var fil;\r\n var gg;\r\n if (this.data.td) {\r\n if (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', this.layerId);\r\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\r\n masker.appendChild(this.layerElement);\r\n layerElementParent = masker;\r\n this.globalData.defs.appendChild(masker);\r\n // This is only for IE and Edge when mask if of type alpha\r\n if (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n } else if (this.data.td == 2) { // eslint-disable-line eqeqeq\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', this.layerId);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n /// /\r\n\r\n // This solution doesn't work on Android when meta tag with viewport attribute is set\r\n /* var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values','1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 -1 1');\r\n fil.appendChild(feColorMatrix); */\r\n /// /\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc);\r\n /// /\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n maskGrouper.appendChild(this.layerElement);\r\n layerElementParent = maskGrouper;\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n maskGrouper.appendChild(gg);\r\n }\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + locationHref + '#' + clipId + ')');\r\n }\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function () {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function () {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n setMatte: function (id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n },\r\n};\r\n\r\n/* global ProcessedElement */\r\n\r\nfunction IShapeElement() {\r\n}\r\n\r\nIShapeElement.prototype = {\r\n addShapeToModifiers: function (data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function (data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n renderModifiers: function () {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n var i;\r\n var len = this.shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n searchProcessedElement: function (elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function (elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while (i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function (num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n },\r\n};\r\n\r\n/* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\r\n\r\nfunction ITextElement() {\r\n}\r\n\r\nITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n return shapeStr;\r\n};\r\n\r\nITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n};\r\n\r\nITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n};\r\n\r\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n};\r\n\r\nITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(xPos, yPos, 0);\r\n};\r\n\r\nITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n};\r\n\r\nITextElement.prototype.emptyProp = new LetterProps();\r\n\r\nITextElement.prototype.destroy = function () {\r\n\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\r\n\r\nfunction ICompElement() {}\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\nICompElement.prototype.initElement = function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n this.hide();\r\n};\r\n\r\n/* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n}; */\r\n\r\nICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n var i;\r\n var len = this.elements.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n }\r\n // This iteration needs to be backwards because of how expressions connect between each other\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\r\n\r\nfunction IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\r\n };\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n\r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n};\r\n\r\n/* global extendPrototype, IImageElement, createNS */\r\n\r\nfunction ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect');\r\n /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\r\n\r\nfunction AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing()\r\n || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n ) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n};\r\n\r\nAudioElement.prototype.show = function () {\r\n // this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function (volumeValue) {\r\n this.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function () {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function () {\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\r\n\r\nfunction FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n}\r\n\r\nFootageElement.prototype.prepareFrame = function () {\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\nFootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nFootageElement.prototype.renderFrame = function () {\r\n};\r\n\r\nFootageElement.prototype.destroy = function () {\r\n};\r\n\r\nFootageElement.prototype.initExpressions = function () {\r\n this.layerInterface = FootageInterface(this);\r\n};\r\n\r\nFootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\r\n\r\nfunction SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n // this.layerElement = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createNS */\r\n\r\nfunction SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\nSVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildNewText = function () {\r\n var i;\r\n var len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData;\r\n var charData;\r\n for (i = 0; i < len; i += 1) {\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs ? 'path' : 'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if (!singleShape) {\r\n tSpan.setAttribute('d', this.createPathShape(matrixHelper, shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper, shapes);\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height,\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i];\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\nFrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\nSVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\nTransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers,\r\nlineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\nSVGShapeElement.prototype.initSecondaryElement = function () {\r\n};\r\n\r\nSVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\nSVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n};\r\n\r\n/*\r\nThis method searches for multiple shapes that affect a single element and one of them is animated\r\n*/\r\nSVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data,\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if (arr[i]._render) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n if (arr[i]._render) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n len = ownStyles.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d);\r\n // Adding M0 0 fixes same mask bug on all browsers\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTintFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'f2');\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n}\r\n\r\nSVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.matrixFilter.setAttribute('values', (colorWhite[0] - colorBlack[0]) + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGFillFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n}\r\nSVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGGaussianBlurEffect(filter, filterManager) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n}\r\n\r\nSVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma;\r\n\r\n // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n var sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n};\r\n\r\n/* global createNS, createElementID, locationHref, bmFloor */\r\n\r\nfunction SVGStrokeEffect(elem, filterManager) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({ p: path, m: i });\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n};\r\n\r\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTritoneFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n}\r\n\r\nSVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n // var opacity = this.filterManager.effectElements[2].p.v/100;\r\n // this.matrixFilter.setAttribute('values',(colorWhite[0]- colorBlack[0])+' 0 0 0 '+ colorBlack[0] +' '+ (colorWhite[1]- colorBlack[1]) +' 0 0 0 '+ colorBlack[1] +' '+ (colorWhite[2]- colorBlack[2]) +' 0 0 0 '+ colorBlack[2] +' 0 0 0 ' + opacity + ' 0');\r\n }\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGProLevelsFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n }\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n }\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n }\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n}\r\n\r\nSVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n};\r\n\r\nSVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, { length: segments });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= max) {\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)) {\r\n val = this.getTableValue(effectElements[10].p.v, effectElements[11].p.v, effectElements[12].p.v, effectElements[13].p.v, effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)) {\r\n val = this.getTableValue(effectElements[17].p.v, effectElements[18].p.v, effectElements[19].p.v, effectElements[20].p.v, effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)) {\r\n val = this.getTableValue(effectElements[24].p.v, effectElements[25].p.v, effectElements[26].p.v, effectElements[27].p.v, effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues', val);\r\n }\r\n\r\n if (this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)) {\r\n val = this.getTableValue(effectElements[31].p.v, effectElements[32].p.v, effectElements[33].p.v, effectElements[34].p.v, effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues', val);\r\n }\r\n }\r\n};\r\n\r\n/* global createNS, rgbToHex, degToRads */\r\n\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', 'drop_shadow_1');\r\n feOffset.setAttribute('result', 'drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', 'drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', 'drop_shadow_3');\r\n feComposite.setAttribute('in2', 'drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', 'drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\r\n }\r\n};\r\n\r\n/* global createElementID, createNS */\r\n\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if (!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n i += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n};\r\n\r\n/* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\nSVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\r\n\r\nfunction SVGEffects(elem) {\r\n var i;\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n if (elem.data.ef[i].ty === 20) {\r\n count += 1;\r\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 21) {\r\n count += 1;\r\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 22) {\r\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 23) {\r\n count += 1;\r\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 24) {\r\n count += 1;\r\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 25) {\r\n count += 1;\r\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 28) {\r\n // count += 1;\r\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\r\n } else if (elem.data.ef[i].ty === 29) {\r\n count += 1;\r\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\r\n }\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n};\r\n\r\n/* global Matrix, createTypedArray */\r\n\r\nfunction CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = len;\r\n}\r\n\r\nCVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = newLength;\r\n};\r\n\r\nCVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n};\r\n\r\n/* global CVEffects, getBlendMode, CVMaskElement, Matrix */\r\n\r\nfunction CVBaseElement() {\r\n}\r\n\r\nCVBaseElement.prototype = {\r\n createElements: function () {},\r\n initRendererElement: function () {},\r\n createContainerElements: function () {\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function () {},\r\n setBlendMode: function () {\r\n var globalData = this.globalData;\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix(),\r\n};\r\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\nRenderableElement, SVGShapeElement, IImageElement, createTag */\r\n\r\nfunction CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n\r\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n if ((imgRel > canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop * canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop / canvasRel;\r\n }\r\n ctx.drawImage(this.img, (imgW - widthCrop) / 2, (imgH - heightCrop) / 2, widthCrop, heightCrop, 0, 0, this.assetData.w, this.assetData.h);\r\n this.img = canvas;\r\n }\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\r\n\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\n/* global createSizedArray, ShapePropertyFactory, MaskElement */\r\n\r\nfunction CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0], data.v[0][1], 0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j;\r\n var jLen = data._length;\r\n for (j = 1; j < jLen; j += 1) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n};\r\n\r\n/* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\nHierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\nDashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor, lineCapEnum, lineJoinEnum */\r\n\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true,\r\n };\r\n var elementData = {};\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(elementData.c.v[2]) + ')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this, data.s, 1, null, this);\r\n elementData.e = PropertyFactory.getProp(this, data.e, 1, null, this);\r\n elementData.h = PropertyFactory.getProp(this, data.h || { k: 0 }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n if (data.lj == 1) { // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: [],\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this),\r\n },\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n};\r\n\r\nCVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type;\r\n\r\n // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n if (!(((type === 'st' || type === 'gs') && currentStyle.wi === 0) || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle.do;\r\n }\r\n }\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n renderer.restore();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n for (i = len; i >= 0; i -= 1) {\r\n if (items[i].ty === 'tr') {\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n } else if (items[i].ty === 'sh' || items[i].ty === 'el' || items[i].ty === 'rc' || items[i].ty === 'sr') {\r\n this.renderPath(items[i], data[i]);\r\n } else if (items[i].ty === 'fl') {\r\n this.renderFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'st') {\r\n this.renderStroke(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gf' || items[i].ty === 'gs') {\r\n this.renderGradientFill(items[i], data[i], groupTransform);\r\n } else if (items[i].ty === 'gr') {\r\n this.renderShape(groupTransform, items[i].it, data[i].it);\r\n } else if (items[i].ty === 'tm') {\r\n //\r\n }\r\n }\r\n if (isMain) {\r\n this.drawLayer();\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\r\n });\r\n shapeNodes.push({\r\n t: 'z',\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb('\r\n + bmFloor(itemData.c.v[0]) + ','\r\n + bmFloor(itemData.c.v[1]) + ','\r\n + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n if (!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i * 2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\nSVGShapeElement, IImageElement */\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\nRenderableElement, ITextElement, createTag, createSizedArray */\r\n\r\nfunction CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: '',\r\n };\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px ' + this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n // this.tHelper.font = this.values.fValue;\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n matrixHelper.reset();\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for (j = 0; j < jLen; j += 1) {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[j] = pathArr;\r\n }\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = { elem: commands };\r\n }\r\n cnt += 1;\r\n }\r\n};\r\n\r\nCVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill();\r\n /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke();\r\n /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction CVEffects() {\r\n\r\n}\r\nCVEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\r\n\r\nfunction HBaseElement() {}\r\nHBaseElement.prototype = {\r\n checkBlendMode: function () {},\r\n initRendererElement: function () {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function () {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function () {\r\n },\r\n setMatte: function () {},\r\n};\r\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\nHBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, createNS, createTag */\r\n\r\nfunction HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\nHSolidElement.prototype.createContent = function () {\r\n var rect;\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\r\n\r\nfunction HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\r\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\nHCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements();\r\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n};\r\n\r\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\r\n }\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n};\r\n\r\n/* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\nHierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\r\n\r\nfunction HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n}\r\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\nHShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n};\r\n\r\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n return point;\r\n};\r\n\r\nHShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n if (len <= 1) {\r\n return;\r\n }\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n};\r\n\r\nHShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n};\r\n\r\nHShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n};\r\n\r\nHShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0,\r\n};\r\n\r\nHShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) { // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n\r\n b |= 0; // eslint-disable-line no-bitwise\r\n a |= 0; // eslint-disable-line no-bitwise\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {\r\n //\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n};\r\n\r\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i]\r\n + 3 * bmPow(1 - t, 2) * t * p1[i]\r\n + 3 * (1 - t) * bmPow(t, 2) * p2[i]\r\n + bmPow(t, 3) * p3[i];\r\n};\r\n\r\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n }\r\n }\r\n};\r\n\r\nHShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x\r\n && this.currentBBox.y <= box.y\r\n && this.currentBBox.width + this.currentBBox.x >= box.x + box.width\r\n && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n};\r\n\r\nHShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y;\r\n // var tempBoundingBox = this.shapeCont.getBBox();\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n var changed = false;\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS, lineJoinEnum, lineCapEnum */\r\n\r\nfunction HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0,\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\nHTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n};\r\n\r\nHTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n var i;\r\n var len;\r\n\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n }\r\n // tSpan.setAttribute('visibility', 'hidden');\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n matrixHelper.reset();\r\n if (shapeData && shapeData.shapes) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', (boundingBox.x - 1) + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n //\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n }\r\n //\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n};\r\n\r\nHTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n } if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n }\r\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n textSpan.style.opacity = renderedLetter.o;\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n if (this.currentBBox.w !== (boundingBox.width + margin * 2) || this.currentBBox.h !== (boundingBox.height + margin * 2) || this.currentBBox.x !== (boundingBox.x - margin) || this.currentBBox.y !== (boundingBox.y - margin)) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\nFrameElement, RenderableElement, createNS */\r\n\r\nfunction HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\nHImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n};\r\n\r\n/* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\r\n\r\nfunction HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true;\r\n\r\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n this.finalTransform = {\r\n mProp: this,\r\n };\r\n}\r\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\nHCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n};\r\n\r\nHCameraElement.prototype.createElements = function () {\r\n};\r\n\r\nHCameraElement.prototype.hide = function () {\r\n};\r\n\r\nHCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n if (_mdf || this.pe._mdf || (this.p && this.p._mdf) || (this.px && (this.px._mdf || this.py._mdf || this.pz._mdf)) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || (this.a && this.a._mdf)) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n if (this.a) {\r\n var diffVector;\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\r\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = (Math.atan2(lookDir[1], lookLengthOnXZ));\r\n var mRotationY = (Math.atan2(lookDir[0], -lookDir[2]));\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n this._isFirstFrame = false;\r\n};\r\n\r\nHCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nHCameraElement.prototype.destroy = function () {\r\n};\r\nHCameraElement.prototype.getBaseElement = function () { return null; };\r\n\r\nfunction HEffects() {\r\n}\r\nHEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, AnimationItem */\r\n/* exported animationManager */\r\n\r\nvar animationManager = (function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n var i = 0;\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n i += 1;\r\n }\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({ elem: element, animation: animItem });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n initTime = nowTime;\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n for (i = (len - 1); i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize;\r\n // moduleOb.start = start;\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n}());\r\n\r\n/* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\nCanvasRenderer, SVGRenderer, HybridRenderer, assetLoader, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\nBMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\nBMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\r\n\r\nvar AnimationItem = function () {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = subframeEnabled;\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n};\r\n\r\nextendPrototype([BaseEvent], AnimationItem);\r\n\r\nAnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n var animType = 'svg';\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n switch (animType) {\r\n case 'canvas':\r\n this.renderer = new CanvasRenderer(this, params.rendererSettings);\r\n break;\r\n case 'svg':\r\n this.renderer = new SVGRenderer(this, params.rendererSettings);\r\n break;\r\n default:\r\n this.renderer = new HybridRenderer(this, params.rendererSettings);\r\n break;\r\n }\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n if (params.loop === ''\r\n || params.loop === null\r\n || params.loop === undefined\r\n || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n if (params.animationData) {\r\n this.configAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n\r\n assetLoader.load(params.path, this.configAnimation.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (typeof animationData !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData,\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value\r\n : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value\r\n : wrapperAttributes.getNamedItem('bm-path')\r\n ? wrapperAttributes.getNamedItem('bm-path').value\r\n : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value\r\n : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value\r\n : wrapperAttributes.getNamedItem('bm-renderer')\r\n ? wrapperAttributes.getNamedItem('bm-renderer').value\r\n : 'canvas';\r\n\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value\r\n : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value\r\n : wrapperAttributes.getNamedItem('bm-loop')\r\n ? wrapperAttributes.getNamedItem('bm-loop').value\r\n : '';\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value\r\n : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value\r\n : wrapperAttributes.getNamedItem('bm-autoplay')\r\n ? wrapperAttributes.getNamedItem('bm-autoplay').value\r\n : true;\r\n params.autoplay = autoplay !== 'false';\r\n\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value\r\n : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value\r\n : wrapperAttributes.getNamedItem('bm-name')\r\n ? wrapperAttributes.getNamedItem('bm-name').value\r\n : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value\r\n : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value\r\n : wrapperAttributes.getNamedItem('bm-prerender')\r\n ? wrapperAttributes.getNamedItem('bm-prerender').value\r\n : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n this.setParams(params);\r\n};\r\n\r\nAnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n if (data.assets) {\r\n len = data.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n this.animationData.__complete = false;\r\n dataManager.completeData(this.animationData, this.renderer.globalData.fontManager);\r\n this.renderer.includeLayers(data.layers);\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n assetLoader.load(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n};\r\n\r\nAnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n};\r\n\r\nAnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n this.renderer.configAnimation(animData);\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded\r\n && this.renderer.globalData.fontManager.isLoaded\r\n && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\r\n && (this.imagePreloader.loadedFootages())\r\n ) {\r\n this.isLoaded = true;\r\n dataManager.completeData(this.animationData, this.renderer.globalData.fontManager);\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resize = function () {\r\n this.renderer.updateContainerSize();\r\n};\r\n\r\nAnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n};\r\n\r\nAnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.audioController.resume();\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n};\r\n\r\nAnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) { // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i;\r\n var len = arr.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n // this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name !== name) || !this.renderer) {\r\n return;\r\n }\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n};\r\n\r\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.setVolume(val);\r\n};\r\n\r\nAnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n};\r\n\r\nAnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.mute();\r\n};\r\n\r\nAnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.unmute();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n};\r\n\r\n/* global CompExpressionInterface, expressionsPlugin: writable */\r\n/* exported expressionsPlugin */\r\n\r\nvar Expressions = (function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n return ob;\r\n}());\r\n\r\nexpressionsPlugin = Expressions;\r\n\r\n/* eslint-disable camelcase, no-unused-vars */\r\n/* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\r\n\r\nvar ExpressionManager = (function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = typeof a;\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n return retArr;\r\n }\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a - b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a % b;\r\n }\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0]; var g = val[1]; var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n switch (max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n default: break;\r\n }\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n b = l; // achromatic\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n if (t <= tMin) {\r\n return value1;\r\n } if (t >= tMax) {\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n return arr;\r\n }\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n return arr;\r\n }\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = (inTangents && inTangents[i]) ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = (outTangents && outTangents[i]) ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function () {\r\n return thisProperty.v;\r\n },\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n\r\n var scoped_bm_rt;\r\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n var numKeys = property.kf ? data.k.length : 0;\r\n\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random();\r\n // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n iWiggle += 1;\r\n }\r\n // var rnd2 = BMMath.random();\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n return arr;\r\n }\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n var mult = fn(t);\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n return arr;\r\n }\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n break;\r\n }\r\n }\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n if (!data.k.length || typeof (data.k[0]) === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: [],\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n\r\n lenKey = arr.length;\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n return obKey;\r\n }\r\n\r\n function framesToTime(frames, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return frames / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n return value.substring(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n return value.substr(init, end);\r\n }\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n if (_needsRandom) {\r\n seedRandom(randSeed);\r\n }\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId;\r\n\r\n // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n if (scoped_bm_rt.propType === 'shape') {\r\n scoped_bm_rt = scoped_bm_rt.v;\r\n }\r\n // globalData.popExpression();\r\n return scoped_bm_rt;\r\n }\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n return ob;\r\n}());\r\n\r\n/* global ExpressionManager, createTypedArray */\r\n/* exported expressionHelpers */\r\n\r\nvar expressionHelpers = (function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n if (v1.length) {\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n var delta = -0.001;\r\n // frameNum += this.elem.data.st;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty,\r\n };\r\n}());\r\n\r\n/* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\ninitialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\r\n\r\n(function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime(((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n return ret;\r\n }\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n return ret;\r\n }\r\n return lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\r\n }\r\n return this.getValueAtTime((((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime((((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration) + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n return ret;\r\n }\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + ((firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return ret;\r\n }\r\n return firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\r\n }\r\n return this.getValueAtTime(((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame))) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n var sampleValue;\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n i += 1;\r\n }\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix(),\r\n };\r\n }\r\n /// /\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(\r\n -anchor[0] * this.a.mult,\r\n -anchor[1] * this.a.mult,\r\n anchor[2] * this.a.mult\r\n );\r\n }\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(\r\n scale[0] * this.s.mult,\r\n scale[1] * this.s.mult,\r\n scale[2] * this.s.mult\r\n );\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult)\r\n .rotateY(rotationY * this.ry.mult)\r\n .rotateX(rotationX * this.rx.mult)\r\n .rotateZ(-orientation[2] * this.or.mult)\r\n .rotateY(orientation[1] * this.or.mult)\r\n .rotateX(orientation[0] * this.or.mult);\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(\r\n positionX * this.px.mult,\r\n positionY * this.py.mult,\r\n -positionZ * this.pz.mult\r\n );\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(\r\n position[0] * this.p.mult,\r\n position[1] * this.p.mult,\r\n -position[2] * this.p.mult\r\n );\r\n }\r\n return matrix;\r\n /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container);\r\n // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value,\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame,\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n ShapeExpressions.prototype = {\r\n vertices: function (prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n return arr;\r\n },\r\n points: function (time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function (time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function (time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function () {\r\n return this.v.c;\r\n },\r\n pointOnPath: function (perc, time) {\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = (shapePath.c && i === len - 1) ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n i += 1;\r\n }\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n return pt;\r\n },\r\n vectorOnPath: function (perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) { // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) { // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function (perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime,\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n };\r\n}());\r\n\r\n/* global ExpressionManager, TextProperty */\r\n\r\n(function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n}());\r\n\r\n/* global propertyGroupFactory, PropertyInterface */\r\n/* exported ShapePathInterface */\r\n\r\nvar ShapePathInterface = (\r\n\r\n function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n shape: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n ix: { value: shape.ix },\r\n propertyIndex: { value: shape.ix },\r\n mn: { value: shape.mn },\r\n propertyGroup: { value: propertyGroup },\r\n });\r\n return interfaceFunction;\r\n };\r\n }()\r\n);\r\n\r\n/* exported propertyGroupFactory */\r\n\r\nvar propertyGroupFactory = (function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n}());\r\n\r\n/* exported PropertyInterface */\r\n\r\nvar PropertyInterface = (function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName,\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\r\n/* exported ShapeExpressionInterface */\r\n\r\nvar ShapeExpressionInterface = (function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {\r\n // arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function () {\r\n return shape.nm;\r\n },\r\n });\r\n // interfaceFunction.content = interfaceFunction;\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n type: {\r\n get: function () {\r\n return 'a';\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p),\r\n });\r\n }\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n } if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n return null;\r\n }\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c),\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w),\r\n },\r\n dash: {\r\n get: function () {\r\n return dashOb;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { value: shape.mn },\r\n });\r\n\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s),\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n if ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n if ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p),\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a),\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r),\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk),\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt),\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or),\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os),\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir),\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p),\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r),\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n } if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c),\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o),\r\n },\r\n _name: { value: shape.nm },\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n return interfaces[value - 1];\r\n }\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported TextExpressionInterface */\r\n\r\nvar TextExpressionInterface = (function () {\r\n return function (elem) {\r\n var _prevValue;\r\n var _sourceText;\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function () {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n if (stringValue !== _prevValue) {\r\n elem.textProperty.currentData.t = _prevValue;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n }\r\n return _sourceText;\r\n },\r\n });\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\r\n/* exported LayerExpressionInterface */\r\n\r\nvar LayerExpressionInterface = (function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n default:\r\n return null;\r\n }\r\n }\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function () {\r\n return elem.hierarchy.length;\r\n },\r\n },\r\n parent: {\r\n get: function () {\r\n return elem.hierarchy[0].layerInterface;\r\n },\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function () {\r\n return transformInterface;\r\n },\r\n },\r\n active: {\r\n get: function () {\r\n return elem.isInRange;\r\n },\r\n },\r\n });\r\n\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global */\r\n/* exported FootageInterface */\r\n\r\nvar FootageInterface = (function () {\r\n var outlineInterfaceFactory = (function (elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n return '';\r\n }\r\n return init;\r\n });\r\n\r\n var dataInterfaceFactory = function (elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n}());\r\n\r\n/* exported CompExpressionInterface */\r\n\r\nvar CompExpressionInterface = (function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n // return {active:false};\r\n }\r\n Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface */\r\n/* exported TransformExpressionInterface */\r\n\r\nvar TransformExpressionInterface = (function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry),\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s),\r\n });\r\n var _px;\r\n var _py;\r\n var _pz;\r\n var _transformFactory;\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function () {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n return [\r\n _px(),\r\n _py(),\r\n _pz ? _pz() : 0];\r\n },\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or),\r\n });\r\n\r\n return _thisFunction;\r\n };\r\n}());\r\n\r\n/* exported ProjectInterface */\r\n\r\nvar ProjectInterface = (function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n return this.compositions[i].compInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n\r\n return _thisProjectFunction;\r\n };\r\n}());\r\n\r\n/* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\r\n/* exported EffectsExpressionInterface */\r\n\r\nvar EffectsExpressionInterface = (function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface,\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n var groupInterface = function (name) {\r\n i = 0;\r\n len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function () {\r\n return effects.length;\r\n },\r\n });\r\n return groupInterface;\r\n }\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n return effectElements[i]();\r\n }\r\n i += 1;\r\n }\r\n throw new Error();\r\n }\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function () {\r\n return effectElements[0]();\r\n },\r\n });\r\n }\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function () {\r\n return data.np;\r\n },\r\n },\r\n _name: { value: data.nm },\r\n propertyGroup: { value: _propertyGroup },\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global createSizedArray */\r\n/* exported MaskManagerInterface */\r\n\r\nvar MaskManagerInterface = (function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function () {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n return this._mask.prop;\r\n },\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function () {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n return this._mask.op.v * 100;\r\n },\r\n });\r\n\r\n var MaskManager = function (maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n var i;\r\n var len = maskManager.viewData.length;\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function (name) {\r\n i = 0;\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n return maskFunction;\r\n };\r\n return MaskManager;\r\n}());\r\n\r\n/* global createTypedArray */\r\n/* exported ExpressionPropertyInterface */\r\n\r\nvar ExpressionPropertyInterface = (function () {\r\n var defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\r\n var defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function () {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n },\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n var value = '';\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n val = property.v * mult;\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n var mult = 1 / property.mult;\r\n var len = (property.data && property.data.l) || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n return expressionValue;\r\n };\r\n }\r\n\r\n // TODO: try to avoid using this getter\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n } if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n}());\r\n\r\n/* global expressionHelpers, TextSelectorProp, ExpressionManager */\r\n/* exported TextExpressionSelectorPropFactory */\r\n\r\nvar TextExpressionSelectorPropFactory = (function () { // eslint-disable-line no-unused-vars\r\n function getValueProxy(index, total) {\r\n this.textIndex = index + 1;\r\n this.textTotal = total;\r\n this.v = this.getValue() * this.mult;\r\n return this.v;\r\n }\r\n\r\n return function (elem, data) {\r\n this.pv = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.mult = 0.01;\r\n this.propType = 'textSelector';\r\n this.textTotal = data.totalChars;\r\n this.selectorValue = 100;\r\n this.lastValue = [1, 1, 1];\r\n this.k = true;\r\n this.x = true;\r\n this.getValue = ExpressionManager.initiateExpression.bind(this)(elem, data, this);\r\n this.getMult = getValueProxy;\r\n this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;\r\n if (this.kf) {\r\n this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);\r\n } else {\r\n this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);\r\n }\r\n this.setGroupProperty = expressionHelpers.setGroupProperty;\r\n };\r\n}());\r\n\r\nvar propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\r\nTextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\r\n if (data.t === 1) {\r\n return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\r\n }\r\n return propertyGetTextProp(elem, data, arr);\r\n};\r\n\r\n/* global PropertyFactory */\r\n/* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\r\n\r\nfunction SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction NoValueEffect() {\r\n this.p = {};\r\n}\r\n\r\n/* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\nMaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\r\n\r\nfunction EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n}\r\n\r\nfunction GroupEffect(data, element) {\r\n this.init(data, element);\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], GroupEffect);\r\n\r\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\nGroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n};\r\n\r\n\r\nvar lottie = {};\r\n\r\nfunction setLocationHref(href) {\r\n locationHref = href;\r\n}\r\n\r\nfunction searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n}\r\n\r\nfunction setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n}\r\n\r\nfunction setIDPrefix(prefix) {\r\n idPrefix = prefix;\r\n}\r\n\r\nfunction loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n}\r\n\r\nfunction setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n default:\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n}\r\n\r\nfunction inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n}\r\n\r\nfunction installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n}\r\n\r\nfunction getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n case 'matrix':\r\n return Matrix;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nlottie.play = animationManager.play;\r\nlottie.pause = animationManager.pause;\r\nlottie.setLocationHref = setLocationHref;\r\nlottie.togglePause = animationManager.togglePause;\r\nlottie.setSpeed = animationManager.setSpeed;\r\nlottie.setDirection = animationManager.setDirection;\r\nlottie.stop = animationManager.stop;\r\nlottie.searchAnimations = searchAnimations;\r\nlottie.registerAnimation = animationManager.registerAnimation;\r\nlottie.loadAnimation = loadAnimation;\r\nlottie.setSubframeRendering = setSubframeRendering;\r\nlottie.resize = animationManager.resize;\r\n// lottie.start = start;\r\nlottie.goToAndStop = animationManager.goToAndStop;\r\nlottie.destroy = animationManager.destroy;\r\nlottie.setQuality = setQuality;\r\nlottie.inBrowser = inBrowser;\r\nlottie.installPlugin = installPlugin;\r\nlottie.freeze = animationManager.freeze;\r\nlottie.unfreeze = animationManager.unfreeze;\r\nlottie.setVolume = animationManager.setVolume;\r\nlottie.mute = animationManager.mute;\r\nlottie.unmute = animationManager.unmute;\r\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.7.13';\r\n\r\nfunction checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar standalone = '__[STANDALONE]__';\r\nvar animationData = '__[ANIMATIONDATA]__';\r\nvar renderer = '';\r\nvar queryString;\r\nif (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: '',\r\n };\r\n queryString = myScript.src.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\r\n renderer = getQueryVariable('renderer');\r\n}\r\nvar readyStateCheckInterval = setInterval(checkReady, 100);\r\n\nreturn lottie;\n}));","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","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}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function F() {};\n\n return {\n s: F,\n n: function n() {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function e(_e) {\n throw _e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function s() {\n it = it.call(o);\n },\n n: function n() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function e(_e2) {\n didErr = true;\n err = _e2;\n },\n f: function f() {\n try {\n if (!normalCompletion && it[\"return\"] != null) it[\"return\"]();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nmodule.exports = _createForOfIteratorHelper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;"],"sourceRoot":""}