{"version":3,"sources":["webpack:///D:/a/1/s/src/app/core/directives/lottie/lottie.shared.directive.ts","webpack:///D:/a/1/s/src/app/core/directives/lottie/lottie.directive.shared.module.ts","webpack:///D:/a/1/s/node_modules/lottie-web/build/player/lottie.js"],"names":["LottieDirective","_elementRef","this","_animationName","nativeElement","getAttribute","_instance","loadAnimation","container","renderer","loop","autoplay","path","destroy","LottieDirectiveSharedModule","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","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","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","Uint8ClampedArray","Float32Array","Int16Array","value","arr","Array","apply","createNS","document","createElementNS","createTag","createElement","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","indexOf","_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","pool","math","global","startdenom","significance","overflow","ARC4","key","keylen","me","S","width","count","copy","slice","mixkey","seed","smear","stringseed","charCodeAt","tostring","String","fromCharCode","options","shortseed","flatten","obj","depth","result","typ","entropy","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","Date","screen","arc4","prng","int32","quick","double","pass","is_math_call","state","BezierFactory","ob","nm","str","replace","beziers","bezEasing","BezierEasing","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","get","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","aA","aB","currentX","currentT","extendPrototype","sources","destination","sourcePrototype","attr","hasOwnProperty","getDescriptor","object","Object","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezier_segment_points","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","getTime","timeToCall","id","setTimeout","clearTimeout","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","data","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","singleShape","__used","JSON","parse","stringify","ks","it","checkVersion","minimum","animVersionString","animVersion","split","minimumVersion","checkText","iterateLayers","textLayer","animationData","assets","checkChars","chars","pathData","paths","__converted","checkColors","iterateShapes","checkShapes","cl","moduleOb","__complete","dataManager","FontManager","emptyChar","w","size","combinedCharacters","setUpNode","font","family","parentNode","fontFamily","node","innerHTML","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","appendChild","body","offsetWidth","parent","createHelper","def","fontData","tHelper","setAttribute","fFamily","fStyle","fWeight","textContent","fClass","getContext","concat","Font","fonts","typekitLoaded","isLoaded","initTime","now","getCombinedCharacterCodes","addChars","found","ch","addFonts","defs","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","origin","querySelectorAll","href","rel","src","sc","helper","cache","checkLoadedFonts","getCharData","char","console","warn","getFontByName","name","fName","measureText","fontName","index","doubleSize","getComputedTextLength","singleSize","loadedCount","removeChild","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","createQuaternion","acos","constructor","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","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v1","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","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","interpolateShapeCurrentTime","resetShape","localShapeCollection","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","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","releasePathsData","release","processShapes","shapePaths","_s","totalShapeLength","edges","shapeS","shapeE","newShapesData","addShapes","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","buildShapeString","pathNodes","_o","_i","shapeString","ImagePreloader","proxyImage","canvas","height","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","createImageData","assetData","assetsPath","original_path","imagePath","u","img","crossOrigin","_imageLoaded","loadAssets","cb","images","_createImageData","setPath","setAssetsPath","getImage","featureSupport","maskType","filtersFactory","filId","fil","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","load","errorCallback","XMLHttpRequest","open","responseType","err","send","onreadystatechange","readyState","status","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","documentData","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","mask","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","add","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","charAt","substr","newLineFlag","charData","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","toLowerCase","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","undefined","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","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","filterSize","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","getShapeProp","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","getAssetsPath","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","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","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","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","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","createFilter","createAlphaToLuminanceFilter","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","time","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","fn","setElementStyles","render","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","sigma","dimensions","initialize","groupPath","elemChildren","children","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","units","color1","color2","color3","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","opacity","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","currentTransform","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","addPlayingCount","activate","resume","nowTime","elapsedTime","advanceTime","first","params","setParams","setSpeed","setDirection","play","pause","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","_idle","_completedLoop","animType","rendererSettings","parseInt","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","completeData","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","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","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","easeOut","val1","val2","applyEase","easeIn","ease","nearestKey","framesToTime","frames","fps","timeToFrames","seedRandom","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","speed","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ix","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","iterateElements","view","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","pathInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","interfaceFunction","interfaces","_name","mn","numProperties","cix","transformInterface","_propertyGroup","skewAxis","defineProperties","ExpressionPropertyInterface","np","_dashPropertyGroup","dashOb","addPropertyToDashOb","start","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_sourceText","_thisLayerFunction","stringValue","_prevValue","toWorldMat","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","startTime","source","MaskManagerInterface","effects","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","compositions","_thisProjectFunction","createGroupInterface","createValueInterface","groupInterface","enabled","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","assign","speedAtTime","defaultGetter","arrValue","TextExpressionSelectorProp","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","getValueProxy","total","eff","lottie","setLocationHref","setSubframeRendering","setQuality","isNaN","inBrowser","installPlugin","plugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","__getFactory","version","scripts","myScript","setInterval"],"mappings":"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","file":"x","sourcesContent":["import { Directive, ElementRef, OnInit, OnDestroy } from '@angular/core';\r\nimport lottie, { AnimationItem } from 'lottie-web';\r\n\r\n@Directive({\r\n selector: '[directive-lottie]',\r\n})\r\nexport class LottieDirective implements OnInit, OnDestroy {\r\n private _animationName: string;\r\n private _instance: AnimationItem;\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this._animationName = this._elementRef.nativeElement.getAttribute('directive-lottie');\r\n\r\n if (!this._animationName || !lottie) return;\r\n\r\n this._instance = lottie.loadAnimation({\r\n container: this._elementRef.nativeElement,\r\n renderer: 'svg',\r\n loop: true,\r\n autoplay: true,\r\n path: `/assets/animations/${this._animationName}.json`\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this._instance) {\r\n this._instance.destroy();\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { LottieDirective } from './lottie.shared.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n LottieDirective\r\n ],\r\n imports: [CommonModule],\r\n exports: [\r\n LottieDirective\r\n ],\r\n providers: [],\r\n})\r\nexport class LottieDirectiveSharedModule { }\r\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t\"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 (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = - 2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n }else{\r\n val = currentChar;\r\n }\r\n if(fontManager.chars){\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w*documentData.finalSize/100;\r\n }else{\r\n //var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n //tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if(currentChar === ' '){\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({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 === ' ' || i === len - 1){\r\n if(val === '' || val === ' '){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n }else if(anchorGrouping == 3){\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 filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%',\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n\r\n}\r\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 var filterSize = filterManager.container.globalData.renderConfig.filterSize\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\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