{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../../modules/createNameContext.js","../../modules/HistoryContext.js","../../modules/RouterContext.js","../../modules/Router.js","../../modules/MemoryRouter.js","../../modules/Lifecycle.js","../../modules/generatePath.js","../../modules/Redirect.js","../../modules/matchPath.js","../../modules/Route.js","../../modules/StaticRouter.js","../../modules/Switch.js","../../modules/hooks.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/axios/index.js","../../modules/BrowserRouter.js","../../modules/HashRouter.js","../../modules/utils/locationUtils.js","../../modules/Link.js","../../modules/NavLink.js","../node_modules/axios/lib/utils.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/tiny-invariant/dist/tiny-invariant.esm.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../../src/hooks.tsx","../../src/styles.ts","../../src/Utils.ts","../../src/index.tsx","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/dayjs/dayjs.min.js","../node_modules/prop-types/index.js","../node_modules/react-dom/index.js","../node_modules/aos/dist/aos.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/object-assign/index.js","../node_modules/mini-create-react-context/dist/esm/index.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/cancel/isCancel.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/react-is/index.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/regenerator-runtime/runtime.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/core/enhanceError.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/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.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-is/cjs/react-is.production.min.js","../node_modules/dom-helpers/esm/removeClass.js","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/CSSTransition.js","../node_modules/dom-helpers/esm/addClass.js","../node_modules/dom-helpers/esm/hasClass.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js"],"names":["module","exports","require","_arrayLikeToArray","arr","len","length","i","arr2","Array","_slicedToArray","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","err","o","minLen","n","prototype","toString","call","slice","constructor","name","from","test","TypeError","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","error","Promise","then","_asyncToGenerator","fn","self","this","args","arguments","apply","_extends","assign","target","source","hasOwnProperty","createNamedContext","context","createContext","historyContext","Router","location","props","computeRootMatch","path","url","params","isExact","pathname","componentDidMount","_pendingLocation","componentWillUnmount","unlisten","render","RouterContext","history","state","match","staticContext","HistoryContext","children","React","Component","Lifecycle","onMount","componentDidUpdate","onUpdate","prevProps","onUnmount","cache","cacheCount","generatePath","generator","pathToRegexp","compilePath","pretty","Redirect","computedMatch","to","method","createLocation","prevLocation","locationsAreEqual","matchPath","options","exact","strict","sensitive","concat","matched","cacheKey","pathCache","keys","result","regexp","end","values","memo","Route","component","addLeadingSlash","stripBasename","basename","base","createURL","createPath","staticHandler","methodName","invariant","noop","Switch","child","element","useContext","useLocation","_inheritsLoose","subClass","superClass","create","__proto__","BrowserRouter","createHistory","resolveToLocation","currentLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","innerRef","navigate","onClick","rest","event","ex","isModifiedEvent","forwardedRef","Link","replace","href","NavLink","ariaCurrent","activeClassName","activeStyle","classNameProp","className","isActiveProp","isActive","locationProp","styleProp","style","toLocation","escapedPath","classnames","joinClassnames","bind","val","isUndefined","isObject","isPlainObject","getPrototypeOf","isFunction","forEach","obj","l","isArrayBuffer","isBuffer","isFormData","FormData","isArrayBufferView","ArrayBuffer","isView","buffer","isString","isNumber","isDate","isFile","isBlob","isStream","pipe","isURLSearchParams","URLSearchParams","isStandardBrowserEnv","navigator","product","window","document","merge","assignValue","extend","a","b","thisArg","trim","str","stripBOM","content","charCodeAt","_objectWithoutPropertiesLoose","excluded","sourceKeys","indexOf","prefix","condition","message","Error","_classCallCheck","instance","Constructor","isAbsolute","charAt","spliceOne","list","index","k","pop","resolvePathname","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","last","up","part","unshift","join","substr","valueOf","valueEqual","every","item","aValue","bValue","stripLeadingSlash","toLowerCase","hasBasename","stripTrailingSlash","search","hash","hashIndex","searchIndex","parsePath","decodeURI","e","URIError","createTransitionManager","prompt","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","listener","filter","notifyListeners","_len","_key","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","createBrowserHistory","globalHistory","canUseHistory","ua","userAgent","supportsHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","getDOMLocation","historyState","_ref","_window$location","createKey","Math","random","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","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","useIsomorphicLayoutEffect","Style","popupContent","tooltip","position","zIndex","modal","margin","popupArrow","height","width","background","color","overlay","top","bottom","left","right","display","POSITION_TYPES","getCoordinatesForPosition","offsetX","offsetY","arrow","CenterTop","triggerBounding","CenterLeft","ContentBounding","transform","arrowTop","arrowLeft","calculatePosition","bestCoords","wrapperBox","keepTooltipInside","boundingBox","innerHeight","selector","getTooltipBoundary","positions","contentBox","popupIdCounter","Popup","trigger","onOpen","onClose","defaultOpen","open","disabled","nested","closeOnDocumentClick","repositionOnResize","closeOnEscape","on","contentStyle","arrowStyle","overlayStyle","lockScroll","mouseEnterDelay","mouseLeaveDelay","useState","isOpen","setIsOpen","triggerRef","useRef","contentRef","arrowRef","focusedElBeforeOpen","popupId","isModal","timeOut","setPosition","focusContentOnOpen","lockScrolll","resetScroll","clearTimeout","useEffect","openPopup","closePopup","setTimeout","togglePopup","onMouseEnter","onContextMenu","onMouseLeave","focusableEls","firstEl","useImperativeHandle","ref","close","toggle","handler","cords","active","useOnEscape","els","firstFocusableEl","lastFocusableEl","useTabbing","useRepositionOnResize","refs","contains","r","useOnClickOutside","renderContent","popupContentStyle","styles","childrenElementProps","c","pointerEvents","addWarperAction","role","id","current","viewBox","d","fill","ovStyle","tabIndex","triggerProps","onAsArray","comp","renderTrigger","ReactDOM","PopupRoot","getRootPopup","_defineProperty","defineProperty","enumerable","configurable","writable","t","s","u","f","h","weekdays","months","$","String","z","utcOffset","abs","floor","m","date","year","month","clone","add","ceil","p","M","y","w","D","ms","Q","S","v","g","locale","$L","utc","$u","x","$x","$offset","parse","$d","Date","NaN","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","getTime","toDate","$locale","weekStart","$set","daysInMonth","get","Number","round","subtract","format","meridiem","YY","YYYY","MM","MMM","monthsShort","MMMM","DD","dd","weekdaysMin","ddd","weekdaysShort","dddd","H","HH","hh","A","mm","ss","SSS","Z","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","isDayjs","en","Ls","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","loaded","__esModule","default","offset","delay","easing","duration","disable","once","startEvent","throttleDelay","debounceDelay","disableMutationObserver","j","O","node","removeAttribute","mobile","phone","tablet","_","all","atob","isSupported","setAttribute","readyState","ready","refresh","refreshHard","leading","maxWait","trailing","cancel","flush","parseInt","Function","now","dataset","aos","MutationObserver","WebKitMutationObserver","MozMutationObserver","observe","documentElement","childList","subtree","removedNodes","addedNodes","vendor","opera","classList","remove","pageYOffset","anchor","anchorPlacement","isNaN","querySelectorAll","offsetHeight","offsetLeft","offsetTop","tagName","scrollLeft","scrollTop","offsetParent","_defineProperties","descriptor","_createClass","protoProps","staticProps","_getPrototypeOf","setPrototypeOf","_typeof","_possibleConstructorReturn","ReferenceError","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Super","NewTarget","_setPrototypeOf","_inherits","root","factory","svgNS","locationHref","initialDefaultFrame","_useWebWorker","subframeEnabled","idPrefix","expressionsPlugin","isSafari","cachedColors","bmRnd","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface","propertyNames","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","type","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","q","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","BaseEvent","triggerEvent","eventName","_cbs","callbacks","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","mode","lineCapEnum","lineJoinEnum","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","translate","tx","ty","tz","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","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","global","startdenom","significance","overflow","mask","ARC4","keylen","me","count","copy","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","fromCharCode","shortseed","entropy","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","double","pass","is_math_call","BezierFactory","ob","nm","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","aA1","aA2","B","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","object","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezierLengthPool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","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","requestAnimationFrame","cancelAnimationFrame","currTime","timeToCall","bez","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","data","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","JSON","stringify","ks","it","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","pathData","paths","__converted","checkPathProperties","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","singleShape","moduleOb","__complete","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","status","send","completeData","payload","animation","process","onComplete","onError","createProcess","loadAnimation","processId","origin","loadData","completeAnimation","anim","getFontProperties","fontData","fStyle","fWeight","weight","FontManager","emptyChar","size","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","innerText","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","appendChild","body","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","def","tHelper","fontProps","fFamily","textContent","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","char","fontPrototype","addChars","found","ch","addFonts","defs","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","monoCase","sansCase","fPath","fOrigin","rel","src","sc","helper","getCharData","warn","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","removeChild","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","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","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","frameRate","autoOriented","v1","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","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","is","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","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","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","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","op","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","comparePoints","buildShapeString","pathNodes","_o","shapeString","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","ImagePreloader","proxyImage","canvas","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","createImageData","setAttributeNS","_elementHelper","append","setCacheType","elementHelper","featureSupport","maskType","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","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","pi","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","line","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","shouldCombine","newLineFlag","charData","fontManager","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","xe","ne","sm","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","poolFactory","initialLength","_create","_release","pooling","cloned","shapeCollection","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","time","tm","dr","cm","__","BaseRenderer","SVGRenderer","animationItem","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","contentVisibility","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","hd","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","insertBefore","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","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","stop","gf","cst","opacityId","opFill","lc","lj","ml","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","gg","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","lineNumber","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","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","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","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","ef","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","newLength","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","wi","da","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","tg","transformedElementStyle","matrixValue","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","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","strokeWidth","lineHeight","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","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","addPlayingCount","activate","nowTime","elapsedTime","advanceTime","first","setParams","setSpeed","setDirection","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","loop","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","onSetupError","onSegmentComplete","animType","rendererSettings","autoloadSegments","initialSegment","fileName","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","frameModifier","goToAndPlay","playSegments","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getDuration","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","fetch","frames","$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","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedRandom","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","speed","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","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","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","defineProperties","_name","mn","parentPropertyGroup","propertyName","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","start","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","startTime","MaskManagerInterface","effects","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","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","queryString","pair","decodeURIComponent","useWebWorker","__getFactory","version","scripts","myScript","define","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","test1","getOwnPropertyNames","test2","test3","letter","shouldUseNative","symbols","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createEventEmitter","handlers","off","changedBits","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","_Component","_this","emitter","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","childContextTypes","PropTypes","isRequired","Consumer","_Component2","_this2","observedBits","_proto2","contextTypes","isarray","compile","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","escaped","capture","asterisk","repeat","optional","pattern","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","toUpperCase","matches","flags","opts","encode","encodeURIComponent","token","attachKeys","re","route","endsWithDelimiter","groups","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","utils","paramsSerializer","serializedParams","hashmarkIndex","__CANCEL__","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","headers","defaults","adapter","getDefaultAdapter","transformRequest","transformResponse","timeout","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","request","auth","username","password","unescape","Authorization","btoa","baseURL","responseURL","responseHeaders","getAllResponseHeaders","statusText","onabort","onerror","ontimeout","timeoutErrorMessage","xsrfValue","withCredentials","read","setRequestHeader","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","abort","enhanceError","code","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","Cancel","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","aa","ba","Set","ca","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","oa","pa","qa","ma","na","la","xlinkHref","ra","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ta","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","for","E","Ma","Ka","La","Na","stack","Oa","Pa","prepareStackTrace","Qa","tag","Ra","$$typeof","_context","_payload","_init","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","ownerDocument","eb","Children","db","selected","defaultSelected","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","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","lineClamp","order","orphans","tabSize","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","rb","sb","tb","setProperty","ub","menuitem","area","br","embed","hr","input","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","gc","hc","ic","jc","kc","mc","nc","Map","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","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","transition","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","F","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","unstable_UserBlockingPriority","ed","fd","gd","uc","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","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","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","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","datetime","email","number","range","tel","week","oe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","contentWindow","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","G","$e","has","af","bf","cf","df","passive","Nb","ff","parentWindow","hf","J","K","L","je","ke","jf","lf","mf","autoFocus","nf","__html","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","I","Cf","N","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","hg","ig","jg","kg","ReactCurrentBatchConfig","lg","mg","ng","og","pg","qg","rg","_currentValue","sg","childLanes","dependencies","firstContext","lanes","ug","vg","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","isMounted","_reactInternals","enqueueSetState","Hg","Ig","Jg","enqueueReplaceState","enqueueForceUpdate","Lg","shouldComponentUpdate","isPureReactComponent","Mg","updater","Ng","UNSAFE_componentWillReceiveProps","Og","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","Pg","Qg","_owner","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","ah","bh","dh","eh","gh","P","ih","memoizedProps","revealOrder","jh","kh","mh","nh","oh","pendingProps","ph","qh","rh","th","uh","_workInProgressVersionPrimary","vh","ReactCurrentDispatcher","wh","xh","R","T","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","queue","Ih","Jh","Kh","lastRenderedReducer","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","U","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useCallback","useLayoutEffect","useMemo","useReducer","useDebugValue","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","ReactCurrentOwner","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","UNSAFE_componentWillUpdate","componentWillUpdate","qi","ri","pendingContext","Bi","Di","Ei","si","retryLane","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","xi","yi","zi","isBackwards","rendering","renderingStartTime","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createTextNode","V","Hi","Ii","W","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","_reactRootContainer","ij","jj","kj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","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","onCommitFiberRoot","fk","gk","ik","isReactComponent","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","uk","hk","_calculateChangedBits","unstable_observedBits","unmount","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","Fragment","StrictMode","Profiler","Suspense","forceUpdate","__self","__source","escape","_status","_result","IsSomeRendererActing","toArray","only","PureComponent","cloneElement","_currentValue2","_threadCount","createFactory","createRef","isValidElement","lazy","performance","MessageChannel","unstable_forceFrameRate","port2","port1","sortIndex","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","async","iter","skipTempReset","prev","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Axios","mergeConfig","createInstance","defaultConfig","axios","instanceConfig","CancelToken","isCancel","promises","spread","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","fulfilled","rejected","getUri","use","eject","throwIfCancellationRequested","throwIfRequested","reason","fns","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","runClearTimeout","Item","array","nextTick","env","argv","versions","addListener","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","binding","cwd","chdir","umask","normalizedName","isAxiosError","columnNumber","write","expires","domain","secure","cookie","toGMTString","isAbsoluteURL","combineURLs","requestedURL","relativeURL","ignoreDuplicateOf","parsed","originURL","msie","urlParsingNode","resolveURL","protocol","host","hostname","port","requestURL","executor","resolvePromise","jsx","jsxs","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","bool","func","string","any","arrayOf","instanceOf","objectOf","oneOf","oneOfType","checkPropTypes","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Lazy","Portal","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","replaceClassName","origClass","classToRemove","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","initialStatus","appear","isMounting","enter","appearStatus","in","unmountOnExit","mountOnEnter","nextCallback","prevState","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","mounting","performEnter","performExit","appearing","_ref2","nodeRef","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","onExited","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","_this$props","childProps","TransitionGroupContext","removeClass","classes","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","classNames","isStringClassNames","baseClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","getChildMapping","mapFn","mapper","getNextChildMapping","prevChildMapping","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","TransitionGroup","handleExited","_assertThisInitialized","contextValue","firstRender","mounted","currentChildMapping","childFactory"],"mappings":"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","file":"static/js/2.2548d5d2.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","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}","module.exports = require(\"regenerator-runtime\");\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}","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}","// 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","// 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\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) this.unlisten();\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) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\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) && children.length === 0) {\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 Context 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(Context).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(Context).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(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","module.exports = require('./lib/axios');","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 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 method = replace ? 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\",\n activeStyle,\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 const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\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 ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n/*global toString:true*/\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.replace(/^\\s*/, '').replace(/\\s*$/, '');\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","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}","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","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function 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","import { useEffect, RefObject, useLayoutEffect } from 'react';\n\nexport const useOnEscape = (handler: () => void, active = true) => {\n useEffect(() => {\n if (!active) return;\n const listener = (event: any) => {\n // check if key is an Escape\n if (event.key === 'Escape') handler();\n };\n document.addEventListener('keyup', listener);\n\n return () => {\n if (!active) return;\n document.removeEventListener('keyup', listener);\n };\n }, [handler, active]);\n};\n\nexport const useRepositionOnResize = (handler: () => void, active = true) => {\n useEffect(() => {\n if (!active) return;\n const listener = () => {\n handler();\n };\n\n window.addEventListener('resize', listener);\n\n return () => {\n if (!active) return;\n window.removeEventListener('resize', listener);\n };\n }, [handler, active]);\n};\n\nexport const useOnClickOutside = (\n ref: RefObject | RefObject[],\n handler: () => void,\n active = true\n) => {\n useEffect(() => {\n if (!active) return;\n const listener = (event: any) => {\n // Do nothing if clicking ref's element or descendent elements\n const refs = Array.isArray(ref) ? ref : [ref];\n\n let contains = false;\n refs.forEach(r => {\n if (!r.current || r.current.contains(event.target)) {\n contains = true;\n return;\n }\n });\n event.stopPropagation();\n if (!contains) handler();\n };\n\n document.addEventListener('mousedown', listener);\n document.addEventListener('touchstart', listener);\n\n return () => {\n if (!active) return;\n document.removeEventListener('mousedown', listener);\n document.removeEventListener('touchstart', listener);\n };\n }, [ref, handler, active]);\n};\n\n// Make sure that user is not able TAB out of the Modal content on Open\nexport const useTabbing = (\n contentRef: RefObject,\n active = true\n) => {\n useEffect(() => {\n if (!active) return;\n const listener = (event: any) => {\n // check if key is an Tab\n if (event.keyCode === 9) {\n const els = contentRef?.current?.querySelectorAll(\n 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]'\n );\n\n const focusableEls = Array.prototype.slice.call(els);\n if (focusableEls.length === 1) {\n event.preventDefault();\n return;\n }\n\n const firstFocusableEl = focusableEls[0];\n const lastFocusableEl = focusableEls[focusableEls.length - 1];\n if (event.shiftKey && document.activeElement === firstFocusableEl) {\n event.preventDefault();\n lastFocusableEl.focus();\n } else if (document.activeElement === lastFocusableEl) {\n event.preventDefault();\n firstFocusableEl.focus();\n }\n }\n };\n\n document.addEventListener('keydown', listener);\n\n return () => {\n if (!active) return;\n document.removeEventListener('keydown', listener);\n };\n }, [contentRef, active]);\n};\n\nexport const useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n","import React from 'react';\n\ntype PopupStyle = {\n popupContent: {\n tooltip: React.CSSProperties;\n modal: React.CSSProperties;\n };\n popupArrow: React.CSSProperties;\n overlay: {\n tooltip: React.CSSProperties;\n modal: React.CSSProperties;\n };\n};\n\nconst Style: PopupStyle = {\n popupContent: {\n tooltip: {\n position: 'absolute',\n zIndex: 999,\n },\n modal: {\n position: 'relative',\n margin: 'auto',\n },\n },\n popupArrow: {\n height: '8px',\n width: '16px',\n position: 'absolute',\n background: 'transparent',\n color: '#FFF',\n zIndex: -1,\n },\n overlay: {\n tooltip: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n zIndex: 999,\n },\n modal: {\n position: 'fixed',\n top: '0',\n bottom: '0',\n left: '0',\n right: '0',\n display: 'flex',\n zIndex: 999,\n },\n },\n};\n\nexport default Style;\n","/* Algo to calculate position\n 1. center position for popup content : the center of the trigger will be the center of the content content\n so the popup content position will be like this :\n top => the y of the center for the trigger element : trigger.top + trigger.height/2\n left => the x of the center for the trigger element : trigger.left + trigger.width/2\n\n 2. translate position according to the first position attribute passed in the function argument\n for example :\n position = 'left top'\n we need to handle the first argument in the position: 'left' => that's mean we need to translate the popup content according to the X axis by - content.width/2\n\n 3.translate position according to the first position attribute passed in the function argument\n for example :\n position = 'left top'\n the second argument 'top' => translate popup content by + content.height*4/5\n\n 4. check if calculated position is going out of bounds of wrapper box or not. If yes repeat 1-3 for next position enum. By default wrapper box is window element\n*/\nimport { PopupPosition } from './types';\n\nexport const POSITION_TYPES: PopupPosition[] = [\n 'top left',\n 'top center',\n 'top right',\n 'right top',\n 'right center',\n 'right bottom',\n 'bottom left',\n 'bottom center',\n 'bottom right',\n 'left top',\n 'left center',\n 'left bottom',\n //'center center',\n];\n\ntype CordsType = {\n top: number;\n left: number;\n transform: string;\n arrowLeft: string;\n arrowTop: string;\n};\n\nconst getCoordinatesForPosition = (\n triggerBounding: DOMRect,\n ContentBounding: DOMRect,\n position: PopupPosition, //PopupPosition | PopupPosition[],\n arrow: boolean,\n { offsetX, offsetY }: { offsetX: number; offsetY: number }\n): CordsType => {\n const margin = arrow ? 8 : 0;\n const args = position.split(' ');\n // the step N 1 : center the popup content => ok\n const CenterTop = triggerBounding.top + triggerBounding.height / 2;\n const CenterLeft = triggerBounding.left + triggerBounding.width / 2;\n const { height, width } = ContentBounding;\n let top = CenterTop - height / 2;\n let left = CenterLeft - width / 2;\n let transform = '';\n let arrowTop = '0%';\n let arrowLeft = '0%';\n // the step N 2 : => ok\n switch (args[0]) {\n case 'top':\n top -= height / 2 + triggerBounding.height / 2 + margin;\n transform = `rotate(180deg) translateX(50%)`;\n arrowTop = '100%';\n arrowLeft = '50%';\n break;\n case 'bottom':\n top += height / 2 + triggerBounding.height / 2 + margin;\n transform = `rotate(0deg) translateY(-100%) translateX(-50%)`;\n arrowLeft = '50%';\n break;\n case 'left':\n left -= width / 2 + triggerBounding.width / 2 + margin;\n transform = ` rotate(90deg) translateY(50%) translateX(-25%)`;\n arrowLeft = '100%';\n arrowTop = '50%';\n break;\n case 'right':\n left += width / 2 + triggerBounding.width / 2 + margin;\n transform = `rotate(-90deg) translateY(-150%) translateX(25%)`;\n arrowTop = '50%';\n break;\n default:\n }\n switch (args[1]) {\n case 'top':\n top = triggerBounding.top;\n arrowTop = `${triggerBounding.height / 2}px`;\n break;\n case 'bottom':\n top = triggerBounding.top - height + triggerBounding.height;\n arrowTop = `${height - triggerBounding.height / 2}px`;\n break;\n case 'left':\n left = triggerBounding.left;\n arrowLeft = `${triggerBounding.width / 2}px`;\n break;\n case 'right':\n left = triggerBounding.left - width + triggerBounding.width;\n arrowLeft = `${width - triggerBounding.width / 2}px`;\n break;\n default:\n }\n\n top = args[0] === 'top' ? top - offsetY : top + offsetY;\n left = args[0] === 'left' ? left - offsetX : left + offsetX;\n\n return { top, left, transform, arrowLeft, arrowTop };\n};\n\nexport const getTooltipBoundary = (keepTooltipInside: string | Boolean) => {\n // add viewport\n let boundingBox = {\n top: 0,\n left: 0,\n /* eslint-disable-next-line no-undef */\n width: window.innerWidth,\n /* eslint-disable-next-line no-undef */\n height: window.innerHeight,\n };\n if (typeof keepTooltipInside === 'string') {\n /* eslint-disable-next-line no-undef */\n const selector = document.querySelector(keepTooltipInside);\n if (process.env.NODE_ENV !== 'production') {\n if (selector === null)\n throw new Error(\n `${keepTooltipInside} selector does not exist : keepTooltipInside must be a valid html selector 'class' or 'Id' or a boolean value`\n );\n }\n if (selector !== null) boundingBox = selector.getBoundingClientRect();\n }\n\n return boundingBox;\n};\n\nconst calculatePosition = (\n triggerBounding: DOMRect,\n ContentBounding: DOMRect,\n position: PopupPosition | PopupPosition[],\n arrow: boolean,\n { offsetX, offsetY }: { offsetX: number; offsetY: number },\n keepTooltipInside: string | boolean\n): CordsType => {\n let bestCoords: CordsType = {\n arrowLeft: '0%',\n arrowTop: '0%',\n left: 0,\n top: 0,\n transform: 'rotate(135deg)',\n };\n let i = 0;\n const wrapperBox = getTooltipBoundary(keepTooltipInside);\n let positions = Array.isArray(position) ? position : [position];\n\n // keepTooltipInside would be activated if the keepTooltipInside exist or the position is Array\n if (keepTooltipInside || Array.isArray(position))\n positions = [...positions, ...POSITION_TYPES];\n\n // add viewPort for WarpperBox\n // wrapperBox.top = wrapperBox.top + window.scrollY;\n // wrapperBox.left = wrapperBox.left + window.scrollX;\n\n while (i < positions.length) {\n bestCoords = getCoordinatesForPosition(\n triggerBounding,\n ContentBounding,\n positions[i],\n arrow,\n { offsetX, offsetY }\n );\n\n const contentBox = {\n top: bestCoords.top,\n left: bestCoords.left,\n width: ContentBounding.width,\n height: ContentBounding.height,\n };\n\n if (\n contentBox.top <= wrapperBox.top ||\n contentBox.left <= wrapperBox.left ||\n contentBox.top + contentBox.height >=\n wrapperBox.top + wrapperBox.height ||\n contentBox.left + contentBox.width >= wrapperBox.left + wrapperBox.width\n ) {\n i++;\n } else {\n break;\n }\n }\n\n return bestCoords;\n};\n\nexport default calculatePosition;\n","import React, {\n useState,\n useRef,\n useEffect,\n forwardRef,\n useImperativeHandle,\n} from 'react';\nimport ReactDOM from 'react-dom';\nimport { PopupProps, PopupActions } from './types';\nimport {\n useOnEscape,\n useRepositionOnResize,\n useOnClickOutside,\n useTabbing,\n useIsomorphicLayoutEffect,\n} from './hooks';\n\nimport './index.css';\n\nimport styles from './styles';\nimport calculatePosition from './Utils';\n\nlet popupIdCounter = 0;\n\nconst getRootPopup = () => {\n let PopupRoot = document.getElementById('popup-root');\n\n if (PopupRoot === null) {\n PopupRoot = document.createElement('div');\n PopupRoot.setAttribute('id', 'popup-root');\n document.body.appendChild(PopupRoot);\n }\n\n return PopupRoot;\n};\n\nexport const Popup = forwardRef(\n (\n {\n trigger = null,\n onOpen = () => {},\n onClose = () => {},\n defaultOpen = false,\n open = undefined,\n disabled = false,\n nested = false,\n closeOnDocumentClick = true,\n repositionOnResize = true,\n closeOnEscape = true,\n on = ['click'],\n contentStyle = {},\n arrowStyle = {},\n overlayStyle = {},\n className = '',\n position = 'bottom center',\n modal = false,\n lockScroll = false,\n arrow = true,\n offsetX = 0,\n offsetY = 0,\n mouseEnterDelay = 100,\n mouseLeaveDelay = 100,\n keepTooltipInside = false,\n children,\n },\n ref\n ) => {\n const [isOpen, setIsOpen] = useState(open || defaultOpen);\n const triggerRef = useRef(null);\n const contentRef = useRef(null);\n const arrowRef = useRef(null);\n const focusedElBeforeOpen = useRef(null);\n const popupId = useRef(`popup-${++popupIdCounter}`);\n\n const isModal = modal ? true : !trigger;\n const timeOut = useRef(0);\n\n useIsomorphicLayoutEffect(() => {\n if (isOpen) {\n focusedElBeforeOpen.current = document.activeElement;\n setPosition();\n focusContentOnOpen(); // for accessibility\n lockScrolll();\n } else {\n resetScroll();\n }\n return () => {\n clearTimeout(timeOut.current);\n };\n }, [isOpen]);\n\n // for uncontrolled popup we need to sync isOpen with open prop\n useEffect(() => {\n if (typeof open === 'boolean') {\n if (open) openPopup();\n else closePopup();\n }\n }, [open, disabled]);\n\n const openPopup = () => {\n if (isOpen || disabled) return;\n setIsOpen(true);\n setTimeout(onOpen, 0);\n };\n\n const closePopup = () => {\n if (!isOpen || disabled) return;\n setIsOpen(false);\n if (isModal) (focusedElBeforeOpen.current as HTMLElement).focus();\n setTimeout(onClose, 0);\n };\n\n const togglePopup = (event?: React.SyntheticEvent) => {\n event?.stopPropagation();\n if (!isOpen) openPopup();\n else closePopup();\n };\n\n const onMouseEnter = () => {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(openPopup, mouseEnterDelay);\n };\n const onContextMenu = (event?: React.SyntheticEvent) => {\n event?.preventDefault();\n togglePopup();\n };\n\n const onMouseLeave = () => {\n clearTimeout(timeOut.current);\n timeOut.current = setTimeout(closePopup, mouseLeaveDelay);\n };\n const lockScrolll = () => {\n if (isModal && lockScroll)\n document.getElementsByTagName('body')[0].style.overflow = 'hidden'; // migrate to document.body\n };\n\n const resetScroll = () => {\n if (isModal && lockScroll)\n document.getElementsByTagName('body')[0].style.overflow = 'auto';\n };\n const focusContentOnOpen = () => {\n const focusableEls = contentRef?.current?.querySelectorAll(\n 'a[href], area[href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), button:not([disabled]), [tabindex=\"0\"]'\n );\n const firstEl = Array.prototype.slice.call(focusableEls)[0];\n firstEl?.focus();\n };\n\n useImperativeHandle(ref, () => ({\n open: () => {\n openPopup();\n },\n close: () => {\n closePopup();\n },\n toggle: () => {\n togglePopup();\n },\n }));\n\n // set Position\n const setPosition = () => {\n if (isModal || !isOpen) return;\n if (!triggerRef?.current || !triggerRef?.current || !contentRef?.current)\n return; /// show error as one of ref is undefined\n const trigger = triggerRef.current.getBoundingClientRect();\n const content = contentRef.current.getBoundingClientRect();\n\n const cords = calculatePosition(\n trigger,\n content,\n position,\n arrow,\n {\n offsetX,\n offsetY,\n },\n keepTooltipInside\n );\n contentRef.current.style.top = `${cords.top + window.scrollY}px`;\n contentRef.current.style.left = `${cords.left + window.scrollX}px`;\n if (arrow && !!arrowRef.current) {\n arrowRef.current.style.transform = cords.transform;\n arrowRef.current.style.setProperty('-ms-transform', cords.transform);\n arrowRef.current.style.setProperty(\n '-webkit-transform',\n cords.transform\n );\n arrowRef.current.style.top =\n arrowStyle.top?.toString() || cords.arrowTop;\n arrowRef.current.style.left =\n arrowStyle.left?.toString() || cords.arrowLeft;\n }\n };\n // hooks\n useOnEscape(closePopup, closeOnEscape); // can be optimized if we disabled for hover\n useTabbing(contentRef, isOpen && isModal);\n useRepositionOnResize(setPosition, repositionOnResize);\n useOnClickOutside(\n !!trigger ? [contentRef, triggerRef] : [contentRef],\n closePopup,\n closeOnDocumentClick && !nested\n ); // we need to add a ne\n // render the trigger element and add events\n const renderTrigger = () => {\n const triggerProps: any = {\n key: 'T',\n ref: triggerRef,\n 'aria-describedby': popupId.current,\n };\n const onAsArray = Array.isArray(on) ? on : [on];\n for (let i = 0, len = onAsArray.length; i < len; i++) {\n switch (onAsArray[i]) {\n case 'click':\n triggerProps.onClick = togglePopup;\n break;\n case 'right-click':\n triggerProps.onContextMenu = onContextMenu;\n break;\n case 'hover':\n triggerProps.onMouseEnter = onMouseEnter;\n triggerProps.onMouseLeave = onMouseLeave;\n break;\n case 'focus':\n triggerProps.onFocus = onMouseEnter;\n triggerProps.onBlur = onMouseLeave;\n break;\n default:\n }\n }\n\n if (typeof trigger === 'function') {\n const comp = trigger(isOpen);\n return !!trigger && React.cloneElement(comp, triggerProps);\n }\n\n return !!trigger && React.cloneElement(trigger, triggerProps);\n };\n\n const addWarperAction = () => {\n const popupContentStyle = isModal\n ? styles.popupContent.modal\n : styles.popupContent.tooltip;\n\n const childrenElementProps: any = {\n className: `popup-content ${\n className !== ''\n ? className\n .split(' ')\n .map(c => `${c}-content`)\n .join(' ')\n : ''\n }`,\n style: {\n ...popupContentStyle,\n ...contentStyle,\n pointerEvents: 'auto', //closeOnDocumentClick && nested ? 'auto' : 'none',\n },\n ref: contentRef,\n onClick: (e: any) => {\n e.stopPropagation();\n },\n };\n if (!modal && on.indexOf('hover') >= 0) {\n childrenElementProps.onMouseEnter = onMouseEnter;\n childrenElementProps.onMouseLeave = onMouseLeave;\n }\n return childrenElementProps;\n };\n\n const renderContent = () => {\n return (\n \n {arrow && !isModal && (\n
\n `${c}-arrow`)\n .join(' ')\n : ''\n }`}\n viewBox=\"0 0 32 16\"\n style={{\n position: 'absolute',\n ...arrowStyle,\n }}\n >\n \n \n
\n )}\n {children && typeof children === 'function'\n ? children(closePopup, isOpen)\n : children}\n \n );\n };\n\n const overlay = !(on.indexOf('hover') >= 0);\n const ovStyle = isModal ? styles.overlay.modal : styles.overlay.tooltip;\n\n const content = [\n overlay && (\n `${c}-overlay`)\n .join(' ')\n : ''\n }`}\n style={{\n ...ovStyle,\n ...overlayStyle,\n pointerEvents:\n (closeOnDocumentClick && nested) || isModal ? 'auto' : 'none',\n }}\n onClick={closeOnDocumentClick && nested ? closePopup : undefined}\n tabIndex={-1}\n >\n {isModal && renderContent()}\n \n ),\n\n !isModal && renderContent(),\n ];\n\n return (\n <>\n {renderTrigger()}\n {isOpen && ReactDOM.createPortal(content, getRootPopup())}\n \n );\n }\n);\n\nexport default Popup;\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}","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):t.dayjs=e()}(this,function(){\"use strict\";var t=\"millisecond\",e=\"second\",n=\"minute\",r=\"hour\",i=\"day\",s=\"week\",u=\"month\",a=\"quarter\",o=\"year\",f=\"date\",h=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[^0-9]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?.?(\\d+)?$/,c=/\\[([^\\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\")},$=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},l={s:$,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+$(r,2,\"0\")+\":\"+$(i,2,\"0\")},m:function t(e,n){if(e.date()0&&void 0!==arguments[0]&&arguments[0];if(e&&(k=!0),k)return w=(0,y.default)(w,x),(0,b.default)(w,x.once),w},O=function(){w=(0,h.default)(),j()},M=function(){w.forEach(function(e,t){e.node.removeAttribute(\"data-aos\"),e.node.removeAttribute(\"data-aos-easing\"),e.node.removeAttribute(\"data-aos-duration\"),e.node.removeAttribute(\"data-aos-delay\")})},S=function(e){return e===!0||\"mobile\"===e&&p.default.mobile()||\"phone\"===e&&p.default.phone()||\"tablet\"===e&&p.default.tablet()||\"function\"==typeof e&&e()===!0},_=function(e){x=i(x,e),w=(0,h.default)();var t=document.all&&!window.atob;return S(x.disable)||t?M():(x.disableMutationObserver||d.default.isSupported()||(console.info('\\n aos: MutationObserver is not supported on this browser,\\n code mutations observing has been disabled.\\n You may have to call \"refreshHard()\" by yourself.\\n '),x.disableMutationObserver=!0),document.querySelector(\"body\").setAttribute(\"data-aos-easing\",x.easing),document.querySelector(\"body\").setAttribute(\"data-aos-duration\",x.duration),document.querySelector(\"body\").setAttribute(\"data-aos-delay\",x.delay),\"DOMContentLoaded\"===x.startEvent&&[\"complete\",\"interactive\"].indexOf(document.readyState)>-1?j(!0):\"load\"===x.startEvent?window.addEventListener(x.startEvent,function(){j(!0)}):document.addEventListener(x.startEvent,function(){j(!0)}),window.addEventListener(\"resize\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"orientationchange\",(0,s.default)(j,x.debounceDelay,!0)),window.addEventListener(\"scroll\",(0,u.default)(function(){(0,b.default)(w,x.once)},x.throttleDelay)),x.disableMutationObserver||d.default.ready(\"[data-aos]\",O),w)};e.exports={init:_,refresh:j,refreshHard:O}},function(e,t){},,,,,function(e,t){(function(t){\"use strict\";function n(e,t,n){function o(t){var n=b,o=v;return b=v=void 0,k=t,g=e.apply(o,n)}function r(e){return k=e,h=setTimeout(f,t),M?o(e):g}function a(e){var n=e-w,o=e-k,i=t-n;return S?j(i,y-o):i}function c(e){var n=e-w,o=e-k;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=O();return c(e)?d(e):void(h=setTimeout(f,a(e)))}function d(e){return h=void 0,_&&b?o(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),k=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(O())}function m(){var e=O(),n=c(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),o(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,k=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(s);return t=u(t)||0,i(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?x(u(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e,t,o){var r=!0,a=!0;if(\"function\"!=typeof e)throw new TypeError(s);return i(o)&&(r=\"leading\"in o?!!o.leading:r,a=\"trailing\"in o?!!o.trailing:a),n(e,t,{leading:r,maxWait:t,trailing:a})}function i(e){var t=\"undefined\"==typeof e?\"undefined\":c(e);return!!e&&(\"object\"==t||\"function\"==t)}function r(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":c(e))}function a(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":c(e))||r(e)&&k.call(e)==d}function u(e){if(\"number\"==typeof e)return e;if(a(e))return f;if(i(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=i(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(l,\"\");var n=m.test(e);return n||b.test(e)?v(e.slice(2),n?2:8):p.test(e)?f:+e}var c=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},s=\"Expected a function\",f=NaN,d=\"[object Symbol]\",l=/^\\s+|\\s+$/g,p=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,b=/^0o[0-7]+$/i,v=parseInt,y=\"object\"==(\"undefined\"==typeof t?\"undefined\":c(t))&&t&&t.Object===Object&&t,g=\"object\"==(\"undefined\"==typeof self?\"undefined\":c(self))&&self&&self.Object===Object&&self,h=y||g||Function(\"return this\")(),w=Object.prototype,k=w.toString,x=Math.max,j=Math.min,O=function(){return h.Date.now()};e.exports=o}).call(t,function(){return this}())},function(e,t){(function(t){\"use strict\";function n(e,t,n){function i(t){var n=b,o=v;return b=v=void 0,O=t,g=e.apply(o,n)}function r(e){return O=e,h=setTimeout(f,t),M?i(e):g}function u(e){var n=e-w,o=e-O,i=t-n;return S?x(i,y-o):i}function s(e){var n=e-w,o=e-O;return void 0===w||n>=t||n<0||S&&o>=y}function f(){var e=j();return s(e)?d(e):void(h=setTimeout(f,u(e)))}function d(e){return h=void 0,_&&b?i(e):(b=v=void 0,g)}function l(){void 0!==h&&clearTimeout(h),O=0,b=w=v=h=void 0}function p(){return void 0===h?g:d(j())}function m(){var e=j(),n=s(e);if(b=arguments,v=this,w=e,n){if(void 0===h)return r(w);if(S)return h=setTimeout(f,t),i(w)}return void 0===h&&(h=setTimeout(f,t)),g}var b,v,y,g,h,w,O=0,M=!1,S=!1,_=!0;if(\"function\"!=typeof e)throw new TypeError(c);return t=a(t)||0,o(n)&&(M=!!n.leading,S=\"maxWait\"in n,y=S?k(a(n.maxWait)||0,t):y,_=\"trailing\"in n?!!n.trailing:_),m.cancel=l,m.flush=p,m}function o(e){var t=\"undefined\"==typeof e?\"undefined\":u(e);return!!e&&(\"object\"==t||\"function\"==t)}function i(e){return!!e&&\"object\"==(\"undefined\"==typeof e?\"undefined\":u(e))}function r(e){return\"symbol\"==(\"undefined\"==typeof e?\"undefined\":u(e))||i(e)&&w.call(e)==f}function a(e){if(\"number\"==typeof e)return e;if(r(e))return s;if(o(e)){var t=\"function\"==typeof e.valueOf?e.valueOf():e;e=o(t)?t+\"\":t}if(\"string\"!=typeof e)return 0===e?e:+e;e=e.replace(d,\"\");var n=p.test(e);return n||m.test(e)?b(e.slice(2),n?2:8):l.test(e)?s:+e}var u=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},c=\"Expected a function\",s=NaN,f=\"[object Symbol]\",d=/^\\s+|\\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,p=/^0b[01]+$/i,m=/^0o[0-7]+$/i,b=parseInt,v=\"object\"==(\"undefined\"==typeof t?\"undefined\":u(t))&&t&&t.Object===Object&&t,y=\"object\"==(\"undefined\"==typeof self?\"undefined\":u(self))&&self&&self.Object===Object&&self,g=v||y||Function(\"return this\")(),h=Object.prototype,w=h.toString,k=Math.max,x=Math.min,j=function(){return g.Date.now()};e.exports=n}).call(t,function(){return this}())},function(e,t){\"use strict\";function n(e){var t=void 0,o=void 0,i=void 0;for(t=0;te.position?e.node.classList.add(\"aos-animate\"):\"undefined\"!=typeof o&&(\"false\"===o||!n&&\"true\"!==o)&&e.node.classList.remove(\"aos-animate\")},o=function(e,t){var o=window.pageYOffset,i=window.innerHeight;e.forEach(function(e,r){n(e,i+o,t)})};t.default=o},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(12),r=o(i),a=function(e,t){return e.forEach(function(e,n){e.node.classList.add(\"aos-init\"),e.position=(0,r.default)(e.node,t.offset)}),e};t.default=a},function(e,t,n){\"use strict\";function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,\"__esModule\",{value:!0});var i=n(13),r=o(i),a=function(e,t){var n=0,o=0,i=window.innerHeight,a={offset:e.getAttribute(\"data-aos-offset\"),anchor:e.getAttribute(\"data-aos-anchor\"),anchorPlacement:e.getAttribute(\"data-aos-anchor-placement\")};switch(a.offset&&!isNaN(a.offset)&&(o=parseInt(a.offset)),a.anchor&&document.querySelectorAll(a.anchor)&&(e=document.querySelectorAll(a.anchor)[0]),n=(0,r.default)(e).top,a.anchorPlacement){case\"top-bottom\":break;case\"center-bottom\":n+=e.offsetHeight/2;break;case\"bottom-bottom\":n+=e.offsetHeight;break;case\"top-center\":n+=i/2;break;case\"bottom-center\":n+=i/2+e.offsetHeight;break;case\"center-center\":n+=i/2+e.offsetHeight/2;break;case\"top-top\":n+=i;break;case\"bottom-top\":n+=e.offsetHeight+i;break;case\"center-top\":n+=e.offsetHeight/2+i}return a.anchorPlacement||a.offset||isNaN(t)||(o=t),n+o};t.default=a},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){for(var t=0,n=0;e&&!isNaN(e.offsetLeft)&&!isNaN(e.offsetTop);)t+=e.offsetLeft-(\"BODY\"!=e.tagName?e.scrollLeft:0),n+=e.offsetTop-(\"BODY\"!=e.tagName?e.scrollTop:0),e=e.offsetParent;return{top:n,left:t}};t.default=n},function(e,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){return e=e||document.querySelectorAll(\"[data-aos]\"),Array.prototype.map.call(e,function(e){return{node:e}})};t.default=n}])});","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import getPrototypeOf from \"@babel/runtime/helpers/esm/getPrototypeOf\";\nimport isNativeReflectConstruct from \"@babel/runtime/helpers/esm/isNativeReflectConstruct\";\nimport possibleConstructorReturn from \"@babel/runtime/helpers/esm/possibleConstructorReturn\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\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 \"@babel/runtime/helpers/esm/setPrototypeOf\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import React from 'react';\nexport default React.createContext(null);","(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, _useWebWorker:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix, _useWebWorker */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame, _useWebWorker */\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\nvar _useWebWorker = false;\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/* global _useWebWorker */\r\n\r\nvar dataManager = (function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function () {\r\n\r\n },\r\n postMessage: function (path) {\r\n workerFn({\r\n data: path,\r\n });\r\n },\r\n };\r\n var _workerSelf = {\r\n postMessage: function (data) {\r\n workerProxy.onmessage({\r\n data: data,\r\n });\r\n },\r\n };\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && _useWebWorker) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n /* exported dataManager */\r\n\r\n function dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\r\n function completeLayers(layers, comps) {\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);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\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 checkPathProperties = (function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a,\r\n };\r\n }\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p,\r\n };\r\n }\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r,\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 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) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\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.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n\r\n return moduleOb;\r\n }\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n /* exported assetLoader */\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = (function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\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, fullPath, 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 try {\r\n xhr.open('GET', path, true);\r\n } catch (error) {\r\n xhr.open('GET', fullPath + '/' + path, true);\r\n }\r\n xhr.send();\r\n }\r\n return {\r\n load: loadAsset,\r\n };\r\n }());\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n _workerSelf.dataManager.completeData(animation);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success',\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\r\n },\r\n function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error',\r\n });\r\n }\r\n );\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError,\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId,\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId,\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation,\r\n };\r\n}());\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 var keyframeMetadata;\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 keyframeMetadata = this.keyframesMetadata[i] || {};\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 (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyframeMetadata.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 (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__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 keyframeMetadata.__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 (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = 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 keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__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.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__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.keyframesMetadata = [];\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.keyframesMetadata = [];\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 var keyframeMetadata;\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 keyframeMetadata = this.keyframesMetadata[i] || {};\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 (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__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.keyframesMetadata = [];\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, dataManager */\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 dataManager.loadData(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/* 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 a: getProp(this._elem, this._textData.p.a, 0, 0, this),\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: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\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.v) {\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 // Force alignment only works with a single line for now\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + ((totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind) / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\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 (this._pathData.p.v) {\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.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 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 // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n var threshold = 0.5 - smoothness * 0.5;\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\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 contentVisibility: (config && config.contentVisibility) || 'visible',\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 this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\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 contentVisibility: (config && config.contentVisibility) || 'visible',\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 containerStyle.contentVisibility = this.renderConfig.contentVisibility;\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 if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\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, itemsData[i].gr, level + 1, ownTransformers, render);\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\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, 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 this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\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.setupAnimation(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 dataManager.loadAnimation(\r\n params.path,\r\n this.configAnimation,\r\n this.onSetupError\r\n );\r\n }\r\n};\r\n\r\nAnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n};\r\n\r\nAnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(\r\n data,\r\n this.configAnimation\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.completeAnimation(\r\n this.animationData,\r\n this.onSegmentComplete\r\n );\r\n};\r\n\r\nAnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\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 dataManager.loadData(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 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 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 this.trigger('drawnFrame');\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 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 case 'drawnFrame':\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 var frames = 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(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n return fr / 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 (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 (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\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.useWebWorker = function (flag) {\r\n _useWebWorker = flag;\r\n};\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.8.1';\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}));","/*\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","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","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\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\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\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\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)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\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","'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\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n if (\n (utils.isBlob(requestData) || utils.isFile(requestData)) &&\n requestData.type\n ) {\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 = 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 // Listen for ready state\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\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? 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 // 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(timeoutErrorMessage, config, '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 (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\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\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","'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","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v17.0.1\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(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 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 = Gp.constructor = GeneratorFunctionPrototype;\n 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 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 Gp[iteratorSymbol] = function() {\n return this;\n };\n\n 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, 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 Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\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\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');\n\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 // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.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 }));\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) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\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(\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(\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(\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');\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 /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(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\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');\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 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","/** @license React v17.0.1\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","/** @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","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","export default {\n disabled: false\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport addOneClass from 'dom-helpers/addClass';\nimport removeOneClass from 'dom-helpers/removeClass';\nimport React from 'react';\nimport Transition from './Transition';\nimport { classNamesShape } from './utils/PropTypes';\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return addOneClass(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return removeOneClass(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(React.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, Transition.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nexport default CSSTransition;","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}"],"sourceRoot":""}