{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/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/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/regenerator/index.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/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/object-assign/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/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/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/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/regenerator-runtime/runtime.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/strict-uri-encode/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","Symbol","iterator","_arr","_n","_d","_e","undefined","_s","_i","next","done","value","err","o","minLen","n","prototype","toString","call","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","isAbsolute","charAt","spliceOne","list","index","k","pop","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","fn","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","entry","nextIndex","nextEntries","splice","canGo","bind","val","isUndefined","isObject","isPlainObject","getPrototypeOf","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","resolve","reject","_next","_throw","arg","info","error","Promise","then","_asyncToGenerator","self","condition","Error","core","version","__e","global","Function","__g","get","ctx","hide","has","$export","type","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","propIsEnumerable","propertyIsEnumerable","toObject","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","s","bitmap","$keys","enumBugKeys","id","px","toVal","mix","y","tmp","x","isNum","v","isNaN","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","node","duration","scrollHeight","style","requestAnimationFrame","setTimeout","collapseToast","useLayoutEffect","onEnter","useEffect","onExited","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","appendToast","delay","staleId","updateId","isNotValid","data","closeToast","removeToast","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","dequeueToast","toDequeue","removeFromCollection","toastContent","cloneElement","getToastToRender","toastToRender","toastList","getX","getY","useToast","useState","isRunning","setIsRunning","setPreventExitTransition","toastRef","drag","start","removalDistance","canCloseOnClick","canDrag","boundingRect","syncProps","top","bottom","left","right","pauseToast","playToast","bindFocusEvents","eventHandlers","onMouseDown","onTouchStart","onMouseUp","onTouchEnd","onDragTransitionEnd","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","containerStyle","pointerEvents","getClassName","newestOnTop","containers","lazy","generateToastId","getToastId","dispatchToast","containerDomNode","mergeOptions","createToastByType","pending","resetParams","resolver","input","promise","container","oldOptions","oldContent","nextOptions","config","containerConfig","latestInstance","containerInstance","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","method","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","$Symbol","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","__esModule","_iterator2","_interopRequireDefault","_symbol2","_typeof","default","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","IS_SET","FORCED","methods","IteratorPrototype","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","displayName","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","stop","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","objectAssign","keysSorter","sort","Number","extract","formatter","arrayFormat","accumulator","parserForArrayFormat","ret","param","shift","decodeURIComponent","reduce","Boolean","encoderForArrayFormat","val2","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","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","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","reverse","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","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","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","includes","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","queryString","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","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","rnds8","rng","validate","uuid","REGEX","byteToHex","v4","buf","rnds"],"mappings":"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","file":"static/js/2.3554902f.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 \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\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 = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","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 \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\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 if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_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 \"@babel/runtime/helpers/esm/arrayLikeToArray\";\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}","module.exports = require(\"regenerator-runtime\");\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');","/*\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","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","'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","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","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';\nvar strictUriEncode = require('strict-uri-encode');\nvar objectAssign = require('object-assign');\n\nfunction encoderForArrayFormat(opts) {\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (key, value, index) {\n\t\t\t\treturn value === null ? [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tindex,\n\t\t\t\t\t']'\n\t\t\t\t].join('') : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[',\n\t\t\t\t\tencode(index, opts),\n\t\t\t\t\t']=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'[]=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn function (key, value) {\n\t\t\t\treturn value === null ? encode(key, opts) : [\n\t\t\t\t\tencode(key, opts),\n\t\t\t\t\t'=',\n\t\t\t\t\tencode(value, opts)\n\t\t\t\t].join('');\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(opts) {\n\tvar result;\n\n\tswitch (opts.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn function (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 function (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} else if (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\tdefault:\n\t\t\treturn function (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 encode(value, opts) {\n\tif (opts.encode) {\n\t\treturn opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t} else if (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input)).sort(function (a, b) {\n\t\t\treturn Number(a) - Number(b);\n\t\t}).map(function (key) {\n\t\t\treturn input[key];\n\t\t});\n\t}\n\n\treturn input;\n}\n\nexports.extract = function (str) {\n\treturn str.split('?')[1] || '';\n};\n\nexports.parse = function (str, opts) {\n\topts = objectAssign({arrayFormat: 'none'}, opts);\n\n\tvar formatter = parserForArrayFormat(opts);\n\n\t// Create an object with no prototype\n\t// https://github.com/sindresorhus/query-string/issues/47\n\tvar ret = Object.create(null);\n\n\tif (typeof str !== 'string') {\n\t\treturn ret;\n\t}\n\n\tstr = str.trim().replace(/^(\\?|#|&)/, '');\n\n\tif (!str) {\n\t\treturn ret;\n\t}\n\n\tstr.split('&').forEach(function (param) {\n\t\tvar parts = param.replace(/\\+/g, ' ').split('=');\n\t\t// Firefox (pre 40) decodes `%3D` to `=`\n\t\t// https://github.com/sindresorhus/query-string/pull/37\n\t\tvar key = parts.shift();\n\t\tvar val = parts.length > 0 ? parts.join('=') : undefined;\n\n\t\t// missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tval = val === undefined ? null : decodeURIComponent(val);\n\n\t\tformatter(decodeURIComponent(key), val, ret);\n\t});\n\n\treturn Object.keys(ret).sort().reduce(function (result, key) {\n\t\tvar val = ret[key];\n\t\tif (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(val);\n\t\t} else {\n\t\t\tresult[key] = val;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n};\n\nexports.stringify = function (obj, opts) {\n\tvar defaults = {\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none'\n\t};\n\n\topts = objectAssign(defaults, opts);\n\n\tvar formatter = encoderForArrayFormat(opts);\n\n\treturn obj ? Object.keys(obj).sort().map(function (key) {\n\t\tvar val = obj[key];\n\n\t\tif (val === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (val === null) {\n\t\t\treturn encode(key, opts);\n\t\t}\n\n\t\tif (Array.isArray(val)) {\n\t\t\tvar result = [];\n\n\t\t\tval.slice().forEach(function (val2) {\n\t\t\t\tif (val2 === undefined) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tresult.push(formatter(key, val2, result.length));\n\t\t\t});\n\n\t\t\treturn result.join('&');\n\t\t}\n\n\t\treturn encode(key, opts) + '=' + encode(val, opts);\n\t}).filter(function (x) {\n\t\treturn x.length > 0;\n\t}).join('&') : '';\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","/**\n * Copyright (c) 2014-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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\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 exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"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\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\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}));","'use strict';\nmodule.exports = function (str) {\n\treturn encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n\t\treturn '%' + c.charCodeAt(0).toString(16).toUpperCase();\n\t});\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":""}