{"version":3,"sources":["webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./src/lib/components/Loading/index.vue?aaed","webpack:///./node_modules/vue-lottie/src/lottie.vue?0453","webpack:///node_modules/vue-lottie/src/lottie.vue","webpack:///./node_modules/vue-lottie/src/lottie.vue?4aae","webpack:///./node_modules/vue-lottie/src/lottie.vue","webpack:///src/lib/components/Loading/index.vue","webpack:///./src/lib/components/Loading/index.vue?608e","webpack:///./src/lib/components/Loading/index.vue"],"names":["factory","root","window","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","test","navigator","userAgent","cachedColors","bm_rounder","Math","round","bm_rnd","bm_pow","pow","bm_sqrt","sqrt","bm_abs","abs","bm_floor","floor","bm_max","max","bm_min","min","blitter","BMMath","ProjectInterface","i","propertyNames","len","length","random","val","tOfVal","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","element","style","position","top","left","display","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","type","currentTime","totalTime","frameMultiplier","this","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","target","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","toString","BaseEvent","prototype","triggerEvent","eventName","args","_cbs","addEventListener","callback","push","removeEventListener","bind","splice","createTypedArray","createRegularArray","value","arr","Float32Array","Int16Array","Uint8ClampedArray","Array","apply","createNS","document","createElementNS","createTag","createElement","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","indexOf","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","mode","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","props","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","a","c","e","j","k","l","m","n","o","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","x","y","z","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","_a","_b","_c","_d","_e","_f","pool","math","nodecrypto","global","width","chunks","digits","rngname","startdenom","significance","overflow","mask","seedrandom","seed","options","key","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","int32","quick","double","S","pass","is_math_call","state","copy","keylen","me","count","slice","obj","depth","result","typ","smear","stringseed","charCodeAt","randomBytes","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","Date","screen","String","fromCharCode","BezierFactory","ob","getBezierEasing","beziers","nm","str","replace","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","points","_mSampleValues","_precomputed","get","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","extendPrototype","sources","destination","sourcePrototype","attr","hasOwnProperty","getDescriptor","object","Object","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","getPointInSegment","percent","t1","u1","ptX","ptY","bezier_segment_points","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","getTime","timeToCall","id","setTimeout","clearTimeout","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","JSON","parse","stringify","ks","it","path","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","pathData","paths","data","__converted","checkColors","iterateShapes","checkShapes","cl","completeData","__complete","singleShape","moduleOb","dataManager","FontManager","maxWaitingTime","emptyChar","w","size","combinedCharacters","setUpNode","font","family","parentNode","fontFamily","node","innerHTML","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","appendChild","body","offsetWidth","parent","checkLoadedFonts","fonts","loadedCount","loaded","fOrigin","origin","monoCase","sansCase","removeChild","now","initTime","isLoaded","createHelper","def","fontData","tHelper","setAttribute","fFamily","fStyle","fWeight","textContent","fClass","tCanvasHelper","getContext","addFonts","defs","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","querySelectorAll","href","rel","src","sc","helper","cache","addChars","found","ch","getCharData","char","console","warn","measureText","fontName","getFontByName","index","doubleSize","getComputedTextLength","singleSize","name","fName","getCombinedCharacterCodes","concat","Font","typekitLoaded","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","time","quaternionToEuler","slerp","constructor","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c3","s1","s2","s3","getValueAtCurrentTime","comp","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","applyToMatrix","mat","sk","sa","rz","ry","rx","or","px","py","pz","processKeys","forceRender","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","v1","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","point_pool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","init","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","convertEllToPath","s0","_cw","_v","StarShapeProperty","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","convertRectToPath","v0","getShapeProp","dataProp","keys","getConstructorFunction","getKeyframedConstructorFunction","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","RepeaterModifier","ShapeCollection","DashProperty","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","pop","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","cloned_path","currentV","currentI","currentO","closerV","distance","newPosPerc","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","copies","ceil","group","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","diff","buildShapeString","pathNodes","_o","_i","shapeString","ImagePreloader","proxyImage","canvas","height","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","getAssetsPath","assetData","assetsPath","original_path","imagePath","u","createImageData","img","crossOrigin","_imageLoaded","loadAssets","cb","images","_createImageData","setPath","setAssetsPath","getImage","destroy","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","loadAsset","errorCallback","XMLHttpRequest","open","responseType","err","send","onreadystatechange","readyState","status","load","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","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","animatorSelector","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","add","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","charAt","substr","newLineFlag","charData","styleName","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","toLowerCase","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","undefined","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","create","cloned","shapeCollection","BaseRenderer","SVGRenderer","animationItem","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","context","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","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","Error","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","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","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","perspective","webkitPerspective","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","component","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","_prototype","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","stop","gf","cst","opacityId","opFill","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","tm","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filter","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","content","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","lcEnum","ljEnum","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","elems","getElements","destroyElements","assetPath","pr","setAttributeNS","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","gradientConstructor","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","fn","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","groupPath","elemChildren","children","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","call","outputDelta","inputDelta","join","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","ef","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","fill","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","newLength","currentSavedOp","set","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","parentMatrix","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","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","compW","compH","innerElemStyle","strokeWidth","lineHeight","tParent","tCont","textPath","margin","Image","imageElem","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","getRegisteredAnimations","animations","addPlayingCount","activate","loadAnimation","params","setParams","setSpeed","setDirection","play","resume","nowTime","elapsedTime","advanceTime","first","pause","goToAndStop","isFrame","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","div","resize","freeze","unfreeze","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","loop","animationID","timeCompleted","segmentPos","_idle","_completedLoop","animType","rendererSettings","parseInt","autoloadSegments","lastIndexOf","fileName","trigger","initialSegment","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","error","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","frameModifier","goToAndPlay","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","end","pendingFrame","playSegments","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onComplete","onSegmentStart","onDestroy","getPath","getDuration","onError","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","Number","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","sum","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","rndm","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","defineProperty","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","__expression_functions","scoped_bm_rt","xf","eval","expression_function","numKeys","active","wiggle","freq","amp","addedAmps","periods","loopInDuration","duration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeIn","ease","nearestKey","framesToTime","frames","fps","timeToFrames","seedRandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","_cachingAtTime","getSpeedAtTime","delta","speed","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","endFrame","sampleFrequency","getTransformValueAtTime","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","propertyIndex","ix","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","iterateElements","view","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","pathInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","contentsInterfaceFactory","interfaces","interfaceFunction","_name","mn","numProperties","cix","transformInterface","transformInterfaceFactory","np","defineProperties","ExpressionPropertyInterface","_propertyGroup","_dashPropertyGroup","dashOb","addPropertyToDashOb","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","stringValue","toWorldMat","sampleImage","_registerMaskInterface","MaskManagerInterface","_registerEffectsInterface","effects","TransformExpressionInterface","anchorPointDescriptor","anchor_point","startTime","source","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","compositions","_thisProjectFunction","effectsData","createGroupInterface","createValueInterface","groupInterface","enabled","en","expressionProperty","MaskInterface","_mask","_data","MaskManager","_masksInterfaces","maskFunction","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","assign","speedAtTime","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","TextExpressionSelectorProp","getValueProxy","total","propertyGetTextProp","eff","lottie","setLocationHref","setSubframeRendering","setQuality","isNaN","inBrowser","installPlugin","plugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","__getFactory","version","scripts","myScript","setInterval","_vm","_h","$createElement","_self","staticClass","attrs","defaultOptions","staticRenderFns","ref","required","mounted","anim","$refs","lavContainer","$emit","components","Lottie","animationSpeed"],"mappings":"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","file":"js/chunk-87bb973c.07c3e295.js","sourcesContent":["(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\"use strict\";\r\nvar svgNS = \"http://www.w3.org/2000/svg\";\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar subframeEnabled = true;\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bm_rounder = Math.round;\r\nvar bm_rnd;\r\nvar bm_pow = Math.pow;\r\nvar bm_sqrt = Math.sqrt;\r\nvar bm_abs = Math.abs;\r\nvar bm_floor = Math.floor;\r\nvar bm_max = Math.max;\r\nvar bm_min = Math.min;\r\nvar blitter = 10;\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, len = propertyNames.length;\r\n for(i=0;i 1) {\r\n hsv[1] = 1;\r\n }\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 }\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 }\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\nfunction BaseEvent(){}\r\nBaseEvent.prototype = {\r\n\ttriggerEvent: function (eventName, args) {\r\n\t if (this._cbs[eventName]) {\r\n\t var len = this._cbs[eventName].length;\r\n\t for (var i = 0; i < len; i++){\r\n\t this._cbs[eventName][i](args);\r\n\t }\r\n\t }\r\n\t},\r\n\taddEventListener: function (eventName, callback) {\r\n\t if (!this._cbs[eventName]){\r\n\t this._cbs[eventName] = [];\r\n\t }\r\n\t this._cbs[eventName].push(callback);\r\n\r\n\t\treturn function() {\r\n\t\t\tthis.removeEventListener(eventName, callback);\r\n\t\t}.bind(this);\r\n\t},\r\n\tremoveEventListener: function (eventName,callback){\r\n\t if (!callback){\r\n\t this._cbs[eventName] = null;\r\n\t }else if(this._cbs[eventName]){\r\n\t var i = 0, len = this._cbs[eventName].length;\r\n\t while(i 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/*\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\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, currentT, 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)\r\n 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 } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\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) {\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, element) {\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 if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\nfunction extendPrototype(sources,destination){\r\n var i, len = sources.length, 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 (sourcePrototype.hasOwnProperty(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\tfunction ProxyFunction(){}\r\n\tProxyFunction.prototype = prototype;\r\n\treturn ProxyFunction;\r\n}\r\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\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\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = bezier_length_pool.newElement();\r\n len = pt3.length;\r\n for(k=0;k 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\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\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 function getSegmentArray() {\r\n\r\n }\r\n\r\n var bezier_segment_points = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\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, 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;\r\n var t0t0u0_3 = t0*t0*u0*3;\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;\r\n var t0t0u1_3 = t0*t0*u1 + u0*t0*t1 + t0*u0*t1;\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;\r\n var t0t1u1_3 = t0*t1*u1 + u0*t1*t1 + t0*u1*t1;\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;\r\n var t1t1u1_3 = t1*t1*u1 + u1*t1*t1 + t1*u1*t1;\r\n var t1t1t1 = t1*t1*t1;\r\n for(i=0;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;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\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, len = layers.length;\r\n for(i=0;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 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.innerHTML = \"@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++) {\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++) {\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, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1){\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen, perc, jLen, j, fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyData.bezierData) {\r\n keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1){\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX, outY, inX, inY, 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 \r\n } else {\r\n for(i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if(frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if(keyData.o.x.constructor === Array) {\r\n if (!keyData.__fnct) {\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = (typeof keyData.o.x[i] === 'undefined') ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = (typeof keyData.o.y[i] === 'undefined') ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = (typeof keyData.i.x[i] === 'undefined') ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = (typeof keyData.i.y[i] === 'undefined') ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct = fnc;\r\n } else {\r\n fnc = keyData.__fnct;\r\n }\r\n }\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], ay = a[1], az = a[2], aw = a[3],\r\n bx = b[0], by = b[1], bz = b[2], bw = b[3]\r\n\r\n var omega, cosom, sinom, scale0, 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(math_abs(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, len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (math_abs(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 multipliedValue;\r\n var i, 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, len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n var arr = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1};\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, len = data.k.length;\r\n var s, e,to,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.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem,data,type, mult, container) {\r\n var p;\r\n if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult, container);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult, container);\r\n break;\r\n }\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\nvar TransformPropertyFactory = (function() {\r\n\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]).rotateY(this.or.v[1]).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 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]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1,v2, 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, py = this.py, frameRate;\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 v1 = v2 = defaultVector\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 } else {\r\n return;\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]).rotateY(this.or.v[1]).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, len = data.or.k.length;\r\n for(i=0;i= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newElement();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function() {\r\n\tvar newPath = new ShapePath();\r\n\tnewPath.setPathData(this.c, this._length);\r\n\tvar vertices = this.v, outPoints = this.o, inPoints = this.i;\r\n\tvar init = 0;\r\n\tif (this.c) {\r\n\t\tnewPath.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 \tnewPath.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\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS,keyPropE,isHold, j, k, jLen, kLen, perc, 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,flag = true,keyData,nextKeyData;\r\n while(flag){\r\n keyData = kf[i];\r\n nextKeyData = kf[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for(j=0;j 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, 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 = shape_pool.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 } else 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 = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\r\n var i, 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 = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.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\r\n var cPoint = roundCorner;\r\n\r\n function EllShapeProperty(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 = shape_pool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollection_pool.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 EllShapeProperty.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], p1 = this.p.v[1], s0 = this.s.v[0]/2, 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], EllShapeProperty);\r\n\r\n return EllShapeProperty;\r\n }());\r\n\r\n var StarShapeProperty = (function() {\r\n\r\n function StarShapeProperty(elem,data) {\r\n this.v = shape_pool.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 = shapeCollection_pool.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 StarShapeProperty.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, rad,roundness,perimSegment, 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= 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, len = segments.length, 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 \r\n } else {\r\n var shapeS, 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, len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segments_length_pool.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, 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 s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;\r\n e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;\r\n if (s === e) {\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, len = this.shapes.length, j, jLen;\r\n var pathsData, pathData, totalShapeLength, 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 }\r\n } else if (!((e === 1 && s === 0) || (e===0 && s === 1))){\r\n var segments = [], shapeData, 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, shapeE = e, addedLength = 0, 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 }\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, 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, len = shapeData.shape.paths._length, j, jLen;\r\n var addedLength = 0;\r\n var currentLengthData,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 = shape_pool.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 = shape_pool.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\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\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 cloned_path = shape_pool.newElement();\r\n cloned_path.c = path.c;\r\n var i, len = path._length;\r\n var currentV,currentI,currentO,closerV, newV,newO,newI,distance,newPosPerc,index = 0;\r\n var vX,vY,oX,oY,iX,iY;\r\n for(i=0;i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\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, 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 i, len = elements.length;\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, 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, itemsTransform, i, dir, cont;\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({\"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 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 }\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 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 k;\r\n var tMat = this.tr.v.props;\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(iterationroundOffset){\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, 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.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\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 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, 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, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;i= 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/200, -(alignment[1] * yOff / 100));\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/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j 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\tthis.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 multipliedValue;\r\n var i, 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.pv = this.v = this.currentData;\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, textDocumentData;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0, len = textKeys.length;\r\n while(i <= len - 1) {\r\n textDocumentData = textKeys[i].s;\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 combinedCharacters = FontManager.getCombinedCharacterCodes();\r\n var charactersArray = [];\r\n var i = 0, len = text.length;\r\n var charCode;\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n if (combinedCharacters.indexOf(charCode) !== -1) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else {\r\n if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n charCode = text.charCodeAt(i + 1);\r\n if (charCode >= 0xDC00 && charCode <= 0xDFFF) {\r\n charactersArray.push(text.substr(i, 2));\r\n ++i;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\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, len;\r\n var newLineFlag, index = 0, val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0, currentPos = 0, currentLine = 0, lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j, jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData, cLength = 0;\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal', fStyle = 'normal';\r\n len = styles.length;\r\n var styleName;\r\n for(i=0;i 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 }\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 (currentChar === ' '){\r\n val = '\\u00A0';\r\n } else 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 = documentData.finalText[i];\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({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine, animatorJustifyOffset: 0});\r\n if(anchorGrouping == 2){\r\n currentSize += cLength;\r\n if(val === '' || val === '\\u00A0' || i === len - 1){\r\n if(val === '' || val === '\\u00A0'){\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){\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, animatorData, letterData;\r\n jLen = animators.length;\r\n var based, ind, indexes = [];\r\n for(j=0;j 0) {\r\n x1 = this.ne.v / 100.0;\r\n }\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 }\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;\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult*this.a.v;\r\n },\r\n getValue: function(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if(newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v/divisor;\r\n var s = this.s.v/divisor + o;\r\n var e = (this.e.v/divisor) + o;\r\n if(s>e){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n }\r\n extendPrototype([DynamicPropertyContainer], TextSelectorProp);\r\n\r\n function getTextSelectorProp(elem, data,arr) {\r\n return new TextSelectorProp(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n}());\r\n\r\n \r\nvar pool_factory = (function() {\r\n\treturn function(initialLength, _create, _release, _clone) {\r\n\r\n\t\tvar _length = 0;\r\n\t\tvar _maxLength = initialLength;\r\n\t\tvar pool = createSizedArray(_maxLength);\r\n\r\n\t\tvar ob = {\r\n\t\t\tnewElement: newElement,\r\n\t\t\trelease: release\r\n\t\t};\r\n\r\n\t\tfunction newElement(){\r\n\t\t\tvar element;\r\n\t\t\tif(_length){\r\n\t\t\t\t_length -= 1;\r\n\t\t\t\telement = pool[_length];\r\n\t\t\t} else {\r\n\t\t\t\telement = _create();\r\n\t\t\t}\r\n\t\t\treturn element;\r\n\t\t}\r\n\r\n\t\tfunction release(element) {\r\n\t\t\tif(_length === _maxLength) {\r\n\t\t\t\tpool = pooling.double(pool);\r\n\t\t\t\t_maxLength = _maxLength*2;\r\n\t\t\t}\r\n\t\t\tif (_release) {\r\n\t\t\t\t_release(element);\r\n\t\t\t}\r\n\t\t\tpool[_length] = element;\r\n\t\t\t_length += 1;\r\n\t\t}\r\n\r\n\t\tfunction clone() {\r\n\t\t\tvar clonedElement = newElement();\r\n\t\t\treturn _clone(clonedElement);\r\n\t\t}\r\n\r\n\t\treturn ob;\r\n\t};\r\n}());\r\n\r\nvar pooling = (function(){\r\n\r\n\tfunction double(arr){\r\n\t\treturn arr.concat(createSizedArray(arr.length));\r\n\t}\r\n\r\n\treturn {\r\n\t\tdouble: double\r\n\t};\r\n}());\r\nvar point_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn createTypedArray('float32', 2);\r\n\t}\r\n\treturn pool_factory(8, create);\r\n}());\r\nvar shape_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn new ShapePath();\r\n\t}\r\n\r\n\tfunction release(shapePath) {\r\n\t\tvar len = shapePath._length, i;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tpoint_pool.release(shapePath.v[i]);\r\n\t\t\tpoint_pool.release(shapePath.i[i]);\r\n\t\t\tpoint_pool.release(shapePath.o[i]);\r\n\t\t\tshapePath.v[i] = null;\r\n\t\t\tshapePath.i[i] = null;\r\n\t\t\tshapePath.o[i] = null;\r\n\t\t}\r\n\t\tshapePath._length = 0;\r\n\t\tshapePath.c = false;\r\n\t}\r\n\r\n\tfunction clone(shape) {\r\n\t\tvar cloned = factory.newElement();\r\n\t\tvar i, len = shape._length === undefined ? shape.v.length : shape._length;\r\n\t\tcloned.setLength(len);\r\n\t\tcloned.c = shape.c;\r\n\t\tvar pt;\r\n\t\t\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tcloned.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\t\t}\r\n\t\treturn cloned;\r\n\t}\r\n\r\n\tvar factory = pool_factory(4, create, release);\r\n\tfactory.clone = clone;\r\n\r\n\treturn factory;\r\n}());\r\nvar shapeCollection_pool = (function(){\r\n\tvar ob = {\r\n\t\tnewShapeCollection: newShapeCollection,\r\n\t\trelease: release\r\n\t};\r\n\r\n\tvar _length = 0;\r\n\tvar _maxLength = 4;\r\n\tvar pool = createSizedArray(_maxLength);\r\n\r\n\tfunction newShapeCollection(){\r\n\t\tvar shapeCollection;\r\n\t\tif(_length){\r\n\t\t\t_length -= 1;\r\n\t\t\tshapeCollection = pool[_length];\r\n\t\t} else {\r\n\t\t\tshapeCollection = new ShapeCollection();\r\n\t\t}\r\n\t\treturn shapeCollection;\r\n\t}\r\n\r\n\tfunction release(shapeCollection) {\r\n\t\tvar i, len = shapeCollection._length;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tshape_pool.release(shapeCollection.shapes[i]);\r\n\t\t}\r\n\t\tshapeCollection._length = 0;\r\n\r\n\t\tif(_length === _maxLength) {\r\n\t\t\tpool = pooling.double(pool);\r\n\t\t\t_maxLength = _maxLength*2;\r\n\t\t}\r\n\t\tpool[_length] = shapeCollection;\r\n\t\t_length += 1;\r\n\t}\r\n\r\n\treturn ob;\r\n}());\r\nvar segments_length_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn {\r\n\t\t\tlengths: [],\r\n\t\t\ttotalLength: 0\r\n\t\t};\r\n\t}\r\n\r\n\tfunction release(element) {\r\n\t\tvar i, len = element.lengths.length;\r\n\t\tfor(i=0;i= 0; i--) {\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 {\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 13:\r\n return this.createCamera(layer);\r\n }\r\n return this.createNull(layer);\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.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\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(ielementRel && fillType === 'meet' || animationRelelementRel && 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' && ((animationRelelementRel && 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') || (animationRelelementRel && fillType==='meet') || (animationRel= 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, 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++) {\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\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) ? false : true\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\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, nextLayer, tmpDOMElement;\r\n while(i= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function(pos, type){\r\n var perspectiveElem = createTag('div');\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if(type === '3d') {\r\n perspectiveElem.style.width = this.globalData.compSize.w+'px';\r\n perspectiveElem.style.height = this.globalData.compSize.h+'px';\r\n perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = \"50% 50%\";\r\n container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\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, len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for(i=0;i= 0; i --) {\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, len = this.threeDElements.length;\r\n while(ielementRel){\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 this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';\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, len = this.threeDElements.length;\r\n for(i=0;i 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\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, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\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\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, len;\r\n len = pathNodes._length;\r\n for(i=1;i 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\t/**\r\n * @function \r\n * Initializes hierarchy properties\r\n *\r\n */\r\n\tinitHierarchy: function() {\r\n\t\t//element's parent list\r\n\t this.hierarchy = [];\r\n\t //if element is parent of another layer _isParent will be true\r\n\t this._isParent = false;\r\n\t this.checkParenting();\r\n\t},\r\n\t/**\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\tsetHierarchy: function(hierarchy){\r\n\t this.hierarchy = hierarchy;\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer as parent.\r\n *\r\n */ \r\n\tsetAsParent: function() {\r\n\t this._isParent = true;\r\n\t},\r\n\t/**\r\n * @function \r\n * Searches layer's parenting chain\r\n *\r\n */ \r\n\tcheckParenting: function(){\r\n\t if (this.data.parent !== undefined){\r\n\t this.comp.buildElementParenting(this, this.data.parent, []);\r\n\t }\r\n\t}\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, 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\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\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, 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, len = transforms.length,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\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 {\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 {\r\n 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 },\r\n renderRenderable: function() {\r\n var i, 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 }else{\r\n return {w:this.data.width,h:this.data.height};\r\n }\r\n }\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\nfunction ProcessedElement(element, position) {\r\n\tthis.elem = element;\r\n\tthis.pos = position;\r\n}\r\nfunction SVGStyleData(data, level) {\r\n\tthis.data = data;\r\n\tthis.type = data.ty;\r\n\tthis.d = '';\r\n\tthis.lvl = level;\r\n\tthis._mdf = false;\r\n\tthis.closed = data.hd === true;\r\n\tthis.pElem = createNS('path');\r\n\tthis.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function() {\r\n\tthis.d = '';\r\n\tthis._mdf = false;\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, len = transformers.length;\r\n while(i < len) {\r\n \tif(transformers[i].mProps.dynamicProperties.length) {\r\n \t\tthis._isAnimated = true;\r\n \t\tbreak;\r\n \t}\r\n \ti += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function() {\r\n this._isAnimated = true;\r\n}\r\nfunction SVGTransformData(mProps, op, container) {\r\n\tthis.transform = {\r\n\t\tmProps: mProps,\r\n\t\top: op,\r\n\t\tcontainer: container\r\n\t};\r\n\tthis.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\nfunction SVGStrokeStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.w = PropertyFactory.getProp(elem,data.w,0,null,this);\r\n\tthis.d = new DashProperty(elem,data.d||{},'svg',this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\nfunction SVGFillStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\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\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function(pathElement,data){\r\n\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, j, jLen;\r\n jLen = data.g.p*4;\r\n for(j=0;j 0) {\r\n\t redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t if(redraw) {\r\n\t iterations = lvl - itemData.styles[l].lvl;\r\n\t k = itemData.transformers.length-1;\r\n\t while(iterations > 0) {\r\n\t props = itemData.transformers[k].mProps.v.props;\r\n\t 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\t iterations --;\r\n\t k --;\r\n\t }\r\n\t }\r\n\t } else {\r\n\t mat = _identityMatrix;\r\n\t }\r\n\t paths = itemData.sh.paths;\r\n\t jLen = paths._length;\r\n\t if(redraw){\r\n\t pathStringTransformed = '';\r\n\t for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n\t var dist = rad * percent;\r\n\t var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n\t var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n\t gfill.setAttribute('fx', x);\r\n\t gfill.setAttribute('fy', y);\r\n\t if (hasOpacity && !itemData.g._collapsable) {\r\n\t itemData.of.setAttribute('fx', x);\r\n\t itemData.of.setAttribute('fy', y);\r\n\t }\r\n\t }\r\n\t //gfill.setAttribute('fy','200');\r\n\t }\r\n\t};\r\n\r\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\r\n\t var styleElem = itemData.style;\r\n\t var d = itemData.d;\r\n\t if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n\t styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n\t styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n\t }\r\n\t if(itemData.c && (itemData.c._mdf || isFirstFrame)){\r\n\t styleElem.pElem.setAttribute('stroke','rgb(' + bm_floor(itemData.c.v[0]) + ',' + bm_floor(itemData.c.v[1]) + ',' + bm_floor(itemData.c.v[2]) + ')');\r\n\t }\r\n\t if(itemData.o._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n\t }\r\n\t if(itemData.w._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\t if(styleElem.msElem){\r\n\t styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n\t }\r\n\t }\r\n\t};\r\n\r\n\treturn ob;\r\n}())\r\nfunction ShapeTransformManager() {\r\n\tthis.sequences = {};\r\n\tthis.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n\taddTransformSequence: function(transforms) {\r\n\t\tvar i, len = transforms.length;\r\n\t\tvar key = '_';\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tkey += transforms[i].transform.key + '_';\r\n\t\t}\r\n\t\tvar sequence = this.sequences[key];\r\n\t\tif(!sequence) {\r\n\t\t\tsequence = {\r\n\t\t\t\ttransforms: [].concat(transforms),\r\n\t\t\t\tfinalTransform: new Matrix(),\r\n\t\t\t\t_mdf: false\r\n\t\t\t};\r\n\t\t\tthis.sequences[key] = sequence;\r\n\t\t\tthis.sequenceList.push(sequence);\r\n\t\t}\r\n\t\treturn sequence;\r\n\t},\r\n\tprocessSequence: function(sequence, isFirstFrame) {\r\n\t\tvar i = 0, len = sequence.transforms.length, _mdf = isFirstFrame;\r\n\t\twhile (i < len && !isFirstFrame) {\r\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\r\n\t\t\t\t_mdf = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\ti += 1\r\n\t\t}\r\n\t\tif (_mdf) {\r\n\t\t\tvar props;\r\n\t\t\tsequence.finalTransform.reset();\r\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\r\n\t\t props = sequence.transforms[i].transform.mProps.v.props;\r\n\t\t 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\t\t\t}\r\n\t\t}\r\n\t\tsequence._mdf = _mdf;\r\n\t\t\r\n\t},\r\n\tprocessSequences: function(isFirstFrame) {\r\n\t\tvar i, len = this.sequenceList.length;\r\n\t\tfor (i = 0; i < len; i += 1) {\r\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\r\n\t\t}\r\n\r\n\t},\r\n\tgetNewKey: function() {\r\n\t\treturn '_' + this.transform_key_count++;\r\n\t}\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 , len = styles.length,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\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, len = this.data.masksProperties.length;\r\n while(i=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n }\r\n },\r\n lcEnum: {\r\n '1': 'butt',\r\n '2': 'round',\r\n '3': 'square'\r\n },\r\n ljEnum: {\r\n '1': 'miter',\r\n '2': 'round',\r\n '3': 'bevel'\r\n },\r\n searchProcessedElement: function(elem){\r\n var elements = this.processedElements;\r\n var i = 0, 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\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,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= 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,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,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\nfunction IImageElement(data,globalData,comp){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data,globalData,comp);\r\n this.sourceRect = {top:0,left:0,width:this.assetData.w,height:this.assetData.h};\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function(){\r\n\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\treturn this.sourceRect;\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\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\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\nfunction SVGTextElement(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], SVGTextElement);\r\n\r\nSVGTextElement.prototype.createContent = function(){\r\n\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextElement.prototype.buildTextContents = function(textArray) {\r\n var i = 0, len = textArray.length;\r\n var textContents = [], 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\nSVGTextElement.prototype.buildNewText = function(){\r\n var i, 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, 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, shapeStr = '', singleShape = this.data.singleShape;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var trackingOffset = documentData.tr/1000*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 }\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, 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\nSVGTextElement.prototype.sourceRectAtTime = function(time){\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\nSVGTextElement.prototype.renderInnerContent = function(){\r\n\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,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, textSpan;\r\n for(i=0;i 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, 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', this.lcEnum[data.lc] || 'round');\r\n pathElement.setAttribute('stroke-linejoin',this.ljEnum[data.lj] || 'round');\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, 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, 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, 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, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], styleOb, currentTransform, modifier, processedPos;\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j 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;\r\n var sigmaY = (dimensions == 2) ? 0 : sigma;\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';\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\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\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path,groupPath, i, 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= 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 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, cnt, perc, bezier;\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\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\nfunction SVGDropShadowEffect(filter, filterManager){\r\n filter.setAttribute('x','-100%');\r\n filter.setAttribute('y','-100%');\r\n filter.setAttribute('width','400%');\r\n filter.setAttribute('height','400%');\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\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\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, 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, 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, len = elements.length;\r\n while (i < len) {\r\n \tif (elements[i] && elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n};\r\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i 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\n\r\nCVImageElement.prototype.renderInnerContent = function(parentMatrix){\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\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,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,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\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, len = this.masksProperties.length, hasMasks = false;\r\n for (i = 0; i < len; i++) {\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, len = this.masksProperties.length;\r\n var pt,pts,data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i++) {\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, jLen = data._length;\r\n for (j = 1; j < jLen; j++) {\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\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('+bm_floor(elementData.c.v[0])+','+bm_floor(elementData.c.v[1])+','+bm_floor(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 = this.lcEnum[data.lc] || 'round';\r\n styleElem.lj = this.ljEnum[data.lj] || 'round';\r\n if(data.lj == 1) {\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(data) {\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, 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, 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, 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, len = styles.length, j, jLen;\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, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], processedPos, modifier, 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=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\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, len, j, 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, 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 + bm_floor(itemData.c.v[0]) + ',' \r\n + bm_floor(itemData.c.v[1]) + ',' \r\n + bm_floor(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 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 grd;\r\n var pt1 = itemData.s.v, 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 >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\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 var grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i, 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\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('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(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\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\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\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, 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, shapeData, k, kLen, shapes, j, jLen, pathNodes, commands, pathArr, singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n var xPos = 0, yPos = 0, 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