{"version":3,"sources":["webpack:///./src/components/lottie/i4pro-lottie.vue?c088","webpack:///src/components/lottie/i4pro-lottie.vue","webpack:///./src/components/lottie/i4pro-lottie.vue?f9b2","webpack:///./src/components/lottie/i4pro-lottie.vue","webpack:///./node_modules/lottie-web/build/player/lottie.js"],"names":["render","_vm","this","_h","$createElement","_c","_self","ref","style","staticRenderFns","props","options","heightAnimation","widthAnimation","animationOnMouseMove","animationReverse","data","width","height","overflow","margin","pointerEvents","created","window","addEventListener","move","mounted","container","$refs","lavContainer","renderer","loop","autoplay","animationData","json","destroyed","removeEventListener","methods","component","factory","root","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","test","navigator","userAgent","cachedColors","bm_rounder","Math","round","bm_rnd","bm_pow","pow","bm_sqrt","sqrt","bm_abs","abs","bm_floor","floor","bm_max","max","bm_min","min","blitter","BMMath","ProjectInterface","i","propertyNames","len","length","random","val","tOfVal","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","element","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","callback","push","bind","splice","createTypedArray","createRegularArray","value","arr","Float32Array","Int16Array","Uint8ClampedArray","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","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","a","c","e","j","k","l","m","n","o","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","x","y","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_a","_b","_d","_e","_f","pool","math","nodecrypto","global","chunks","digits","rngname","startdenom","significance","mask","seedrandom","seed","key","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","int32","quick","double","S","pass","is_math_call","state","copy","keylen","me","count","slice","obj","depth","result","typ","smear","stringseed","charCodeAt","randomBytes","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","Date","screen","String","fromCharCode","BezierFactory","ob","getBezierEasing","beziers","nm","str","replace","bezEasing","BezierEasing","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","newtonRaphsonIterate","aGuessT","currentSlope","points","_mSampleValues","_precomputed","get","mY1","mY2","_precompute","_getTForX","_calcSampleValues","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","extendPrototype","sources","destination","sourcePrototype","attr","hasOwnProperty","getDescriptor","object","Object","getOwnPropertyDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","getPointInSegment","percent","t1","u1","ptX","ptY","bezier_segment_points","getNewSegment","startPerc","endPerc","t0","u0","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","getTime","timeToCall","id","setTimeout","clearTimeout","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","JSON","parse","stringify","ks","it","path","checkVersion","minimum","animVersionString","animVersion","split","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","pathData","paths","__converted","checkColors","iterateShapes","checkShapes","cl","completeData","__complete","singleShape","moduleOb","dataManager","FontManager","maxWaitingTime","emptyChar","w","size","combinedCharacters","trimFontOptions","font","familyArray","enabledFamilies","join","setUpNode","family","parentNode","fontFamily","node","innerText","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","appendChild","body","offsetWidth","parent","checkLoadedFonts","fonts","loadedCount","loaded","fOrigin","origin","monoCase","sansCase","removeChild","now","initTime","checkLoadedFontsBinded","setIsLoadedBinded","createHelper","def","fontData","tHelper","setAttribute","fFamily","fStyle","fWeight","textContent","fClass","tCanvasHelper","getContext","addFonts","defs","isLoaded","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","fPath","querySelectorAll","href","rel","src","sc","helper","cache","addChars","found","ch","getCharData","char","console","warn","measureText","fontName","getFontByName","index","doubleSize","getComputedTextLength","singleSize","name","fName","getCombinedCharacterCodes","setIsLoaded","concat","Font","typekitLoaded","fontPrototype","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","time","quaternionToEuler","slerp","constructor","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","values","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","applyToMatrix","mat","sk","sa","rz","ry","rx","or","px","py","pz","processKeys","forceRender","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","v1","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","TransformProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","point_pool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","init","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shapesEqual","shape1","shape2","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","convertEllToPath","s0","_cw","_v","StarShapeProperty","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","convertRectToPath","v0","getShapeProp","dataProp","keys","getConstructorFunction","getKeyframedConstructorFunction","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","pop","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","cloned_path","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","copies","ceil","group","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","diff","buildShapeString","pathNodes","_o","_i","shapeString","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","ImagePreloader","proxyImage","canvas","ctx","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","getAssetsPath","assetData","assetsPath","original_path","imagePath","u","createImageData","img","_imageLoaded","setAttributeNS","createImgData","crossOrigin","loadAssets","cb","images","_createImageData","setPath","setAssetsPath","getImage","destroy","setCacheType","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","loadAsset","errorCallback","XMLHttpRequest","open","responseType","err","send","onreadystatechange","readyState","status","load","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","add","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","charAt","substr","newLineFlag","charData","styleName","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","toLowerCase","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","undefined","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","create","cloned","shapeCollection","BaseRenderer","SVGRenderer","animationItem","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","rendererType","CanvasRenderer","clearCanvas","context","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","Error","AudioElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","insertBefore","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","tmpDOMElement","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","perspective","webkitPerspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","_prototype","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","stop","gf","cst","opacityId","opFill","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","tm","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","content","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","lcEnum","ljEnum","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","elems","getElements","destroyElements","pr","volumeValue","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","gradientConstructor","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","fn","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","kBlurrinessToSigma","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","groupPath","elemChildren","children","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","call","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","ef","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","fill","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","pe","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","newLength","currentSavedOp","set","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","parentMatrix","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","wi","da","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","tg","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","compW","compH","innerElemStyle","strokeWidth","lineHeight","tParent","tCont","textPath","Image","imageElem","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","getRegisteredAnimations","animations","addPlayingCount","activate","loadAnimation","params","setParams","setSpeed","setDirection","nowTime","elapsedTime","advanceTime","first","goToAndStop","isFrame","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","div","resize","freeze","unfreeze","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","animType","rendererSettings","parseInt","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","error","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","frameModifier","goToAndPlay","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","end","pendingFrame","playSegments","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onComplete","onSegmentStart","onDestroy","getPath","getDuration","onError","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","ExpressionManager","$bm_isInstanceOfArray","isNumerable","tOfV","Number","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","sum","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","rndm","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","defineProperty","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","__expression_functions","scoped_bm_rt","xf","eval","expression_function","numKeys","active","wiggle","freq","amp","addedAmps","periods","loopInDuration","duration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","yaw","easeOut","val1","val2","applyEase","easeIn","ease","nearestKey","framesToTime","frames","fps","timeToFrames","seedRandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","_cachingAtTime","getSpeedAtTime","delta","speed","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","endFrame","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","getShapeValueAtTime","shapeValue","propertyIndex","ix","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","unitVector","tangentOnPath","normalOnPath","propertyGetShapeProp","trims","calculateExpression","getExpressionValue","isKeyframed","hasExpressions","ShapePathInterface","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","defineProperties","mn","parentPropertyGroup","propertyName","_name","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","contentsInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","np","ExpressionPropertyInterface","_dashPropertyGroup","dashOb","addPropertyToDashOb","start","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","toWorldMat","sampleImage","_registerMaskInterface","MaskManagerInterface","_registerEffectsInterface","effects","TransformExpressionInterface","anchorPointDescriptor","anchor_point","startTime","source","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","_pz","_px","_py","compositions","_thisProjectFunction","effectsData","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","MaskInterface","_mask","_data","MaskManager","_masksInterfaces","maskFunction","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","assign","speedAtTime","UnidimensionalPropertyInterface","MultidimensionalPropertyInterface","arrValue","defaultGetter","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","TextExpressionSelectorProp","getValueProxy","total","propertyGetTextProp","eff","lottie","setLocationHref","setSubframeRendering","setQuality","isNaN","inBrowser","installPlugin","plugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","__getFactory","version","scripts","myScript","setInterval"],"mappings":"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","file":"js/chunk-27bf1ef9.349a0f6f.js","sourcesContent":["var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"lavContainer\",style:(_vm.style)})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./i4pro-lottie.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./i4pro-lottie.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./i4pro-lottie.vue?vue&type=template&id=3be28e45&\"\nimport script from \"./i4pro-lottie.vue?vue&type=script&lang=js&\"\nexport * from \"./i4pro-lottie.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","(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.innerText = \"@font-face {\" + \"font-family: \"+fontArr[i].fFamily+\"; font-style: normal; src: url('\"+fontArr[i].fPath+\"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\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 if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!((e === 1 && s === 0) || (e===0 && s === 1))){\r\n var segments = [], 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 6:\r\n return this.createAudio(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.createAudio = function(data){\r\n return new AudioElement(data, this.globalData, this);\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 AudioElement(data,globalData,comp){\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n\tthis.initBaseData(data, globalData, comp);\r\n\tthis._isPlaying = false;\r\n\tthis._canPlay = false;\r\n\tvar assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate,this) : {_placeholder:true};\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function(num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n};\r\n\r\nextendPrototype([RenderableElement,BaseElement,FrameElement], AudioElement);\r\n\r\nAudioElement.prototype.renderFrame = function() {\r\n\tif (this.isInRange && this._canPlay) {\r\n\t\tif (!this._isPlaying) {\r\n\t\t\tthis.audio.play();\r\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate);\r\n\t\t\tthis._isPlaying = true;\r\n\t\t} else if (!this.audio.playing()\r\n\t\t\t|| Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n\t\t) {\r\n\t\t\tthis.audio.seek(this._currentTime / this.globalData.frameRate)\r\n\t\t}\r\n\t}\r\n};\r\n\r\nAudioElement.prototype.show = function() {\r\n\t// this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function() {\r\n\tthis.audio.pause();\r\n\tthis._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function() {\r\n\tthis.audio.pause();\r\n\tthis._isPlaying = false;\r\n\tthis._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function() {\r\n\tthis._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function(rateValue) {\r\n\tthis.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function(volumeValue) {\r\n\tthis.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function() {\r\n\treturn null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function() {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function() {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function() {\r\n};\r\n\r\n\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