{"version":3,"sources":["webpack:///./src/assets/icon-pump.svg","webpack:///./src/components/dumb/ProfileItem.vue?86f6","webpack:///./src/components/dumb/ProfileItem.vue","webpack:///./src/components/dumb/ProfileItem.vue?4671","webpack:///./src/components/dumb/ProfileItem.vue?57ce","webpack:///./src/components/CarHeadings.vue?c2fb","webpack:///./src/components/CarHeadings.vue","webpack:///./src/components/CarHeadings.vue?27ae","webpack:///./src/components/CarHeadings.vue?b987","webpack:///./src/components/CarDetails.vue?6eee","webpack:///./src/components/dumb/IconList.vue?9941","webpack:///./src/components/dumb/IconList.vue","webpack:///./src/components/dumb/IconList.vue?8cd1","webpack:///./src/components/dumb/IconList.vue?e768","webpack:///./src/components/CarDetails.vue","webpack:///./src/components/CarDetails.vue?a796","webpack:///./src/components/CarDetails.vue?f667","webpack:///./src/assets/icon-fuel-economy.svg","webpack:///./src/assets/icon-gearstick.svg","webpack:///./src/assets/icon-paint.svg","webpack:///./src/assets/icon-lock2.svg","webpack:///./src/components/CarDetails.vue?e4d5","webpack:///./src/assets/icon-trim.svg","webpack:///./src/components/FinanceDetails.vue?4395","webpack:///./src/components/FinanceDetails.vue","webpack:///./src/components/FinanceDetails.vue?db85","webpack:///./src/components/FinanceDetails.vue?abfd","webpack:///./node_modules/vue-lottie/src/lottie.vue?36a6","webpack:///node_modules/vue-lottie/src/lottie.vue","webpack:///./node_modules/vue-lottie/src/lottie.vue?5058","webpack:///./node_modules/vue-lottie/src/lottie.vue","webpack:///./src/assets/glass.jpg","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///./src/components/OfferGroup.vue?e6de","webpack:///./src/components/dumb/CarOffer.vue?7c65","webpack:///./src/components/dumb/CarOffer.vue","webpack:///./src/components/dumb/CarOffer.vue?1e8f","webpack:///./src/components/dumb/CarOffer.vue?7192","webpack:///./src/components/OfferGroup.vue","webpack:///./src/components/OfferGroup.vue?d7d2","webpack:///./src/components/OfferGroup.vue?dc75"],"names":["module","exports","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","image","_e","title","staticStyle","domProps","_s","text","_t","_l","btn","key","href","target","on","$event","handleButtonClick","_v","staticRenderFns","name","props","type","String","buttons","Array","accordion","methods","callback","component","VAvatar","VBtn","VCol","VImg","VRow","showCashHeadings","hasDriveawayOffer","cashItems","cashSubHeading","showFinanceHeadings","financeItems","finance","isLoading","financeSubHeading","extend","size","hideFinance","Boolean","showFinance","hideCash","disableDisclaimer","components","HeadingColumns","OfferGroup","computed","app","$store","state","vehicle","customer","dealer","tpr","arr","offers","filter","o","offerType","VehiclePrice","length","showPriceDisclaimer","getters","vehicleFinalPrice","flow","step","isCurrentOffer","specialItem","SpecialType","isGreatValue","items","push","sup","disclaimerKey","heading","getFormattedPrice","weeklyPayment","subtext","apr","comparisonRate","Math","round","gfv","tooltip","value","d","specialUniqueName","specialExtraInfo","currentOfferSubtext","shortFormattedDate","ValidTo","subHeading","disclaimer","hideTitle","class","level","vehicleYear","model","strippedFullDescription","inclOption","vehicleInclOption","hideImage","vehicleImage","modal","hideBullets","iconItems","i","style","getColourStyles","bg","colour","bo","bordercolour","headingLevel","Number","IconList","imagesHero","side","vArray","produced","split","toLowerCase","includes","mLength","materialCode","substring","fuel","transmission","paintName","trimName","getColour","financeHeadingListItems","getFinanceHeadingListItems","financeHeading","ref","factory","root","window","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","test","navigator","userAgent","cachedColors","bm_rounder","bm_rnd","bm_pow","pow","bm_sqrt","sqrt","bm_abs","abs","bm_floor","floor","bm_max","max","bm_min","min","blitter","BMMath","ProjectInterface","propertyNames","len","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","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","s","v","r","g","b","f","p","q","t","RGBtoHSV","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","toString","BaseEvent","prototype","triggerEvent","eventName","args","_cbs","addEventListener","removeEventListener","bind","splice","createTypedArray","createRegularArray","Float32Array","Int16Array","Uint8ClampedArray","apply","createNS","document","createElementNS","createTag","createElement","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","indexOf","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","mode","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","rotate","angle","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","a","c","e","j","k","l","m","n","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","_f","pool","math","nodecrypto","global","width","chunks","digits","rngname","startdenom","significance","overflow","mask","seedrandom","seed","options","entropy","shortseed","mixkey","flatten","tostring","autoseed","arc4","ARC4","prng","int32","quick","double","S","pass","is_math_call","copy","keylen","me","count","slice","obj","depth","result","typ","smear","stringseed","charCodeAt","randomBytes","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","Date","screen","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","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","pathData","paths","data","__converted","checkColors","iterateShapes","checkShapes","cl","completeData","__complete","singleShape","moduleOb","dataManager","FontManager","maxWaitingTime","emptyChar","w","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","rel","src","sc","helper","cache","addChars","found","ch","getCharData","char","console","warn","_warned","measureText","fontName","getFontByName","index","doubleSize","getComputedTextLength","singleSize","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","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","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","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","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","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","height","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","charCode","charactersArray","charAt","substr","newLineFlag","charData","styleName","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","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","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","context","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","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","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","margin","Image","imageElem","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","getRegisteredAnimations","animations","addPlayingCount","activate","loadAnimation","params","setParams","setSpeed","setDirection","nowTime","elapsedTime","advanceTime","first","goToAndStop","isFrame","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","getElementsByTagName","div","resize","freeze","unfreeze","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","loop","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","$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","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","parentGroupWrapper","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","getMatrix","toWorldMat","propMatrix","toWorldVec","applyPoint","fromWorldVec","invertPoint","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","onCollection","driveawayOffer","EOfferTypePillTextVehiclePrice","textOffer","EOfferTypePillTextVehicleText","financeOffer","EOfferTypePillTextFinanceText","pillText","price","priceDisclaimer","ends","$props","validTo","dArr1","toISOString","dArr2","dStr","formatPrice","offerArray","main","replaceDisclaimerSymbol","submain","inclusions","map","disclaimers","firstOpenSquare","firstCloseSquare","hasFirstDisclaimerInHeading","disclaimerSymbolFromHeading","Key","isDisclaimerValid","txt","CarOffer","FinanceText","VehicleText","enabledOffers","all","paymentMethod","isOfferTypeEnabled","hasOffer"],"mappings":"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","file":"omniv2/js/chunkchunk-63e89d3c.067ca994.js","sourcesContent":["module.exports = __webpack_public_path__ + \"omniv2/img/icon-pump.0bc2bad2.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tb-profile\"},[_c('v-row',{staticClass:\"flex-column flex-md-row\",attrs:{\"wrap\":\"\"}},[_c('v-col',{staticClass:\"text-center\",attrs:{\"cols\":\"auto\"}},[(_vm.image)?_c('v-avatar',{staticClass:\"mr-md-12 tb-avatar\",attrs:{\"max-width\":\"100%\",\"size\":\"200px\",\"rounded\":\"\"}},[_c('v-img',{attrs:{\"src\":_vm.image,\"aspect-ratio\":\"1\"}})],1):_vm._e()],1),_c('v-col',{staticClass:\"text-center text-md-left\"},[(!!_vm.title)?_c('h3',{staticClass:\"text-h5 text-sm-h4 tb-text\",staticStyle:{\"font-weight\":\"normal\"},domProps:{\"innerHTML\":_vm._s(_vm.title)}}):_vm._e(),(!!_vm.text)?_c('p',{staticClass:\"text-body-2 text-sm-body-1 mt-6 tb-text\",domProps:{\"innerHTML\":_vm._s(_vm.text)}}):_vm._e(),_vm._t(\"default\"),_c('v-row',{staticClass:\"pt-6\",attrs:{\"justify\":\"center\",\"justify-md\":\"start\",\"wrap\":\"\"}},_vm._l((_vm.buttons),function(btn){return _c('v-col',{key:btn.text,staticClass:\"pt-2 py-sm-4\",attrs:{\"cols\":\"12\",\"sm\":\"auto\"}},[_c('v-btn',{attrs:{\"block\":\"\",\"outlined\":\"\",\"rounded\":\"\",\"depressed\":\"\",\"href\":btn.href,\"target\":btn.target},on:{\"click\":function($event){return _vm.handleButtonClick(btn)}}},[_vm._v(_vm._s(btn.text))])],1)}),1),_vm._t(\"afterbuttons\")],2)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Analytics from '../../mixins/analytics';\r\n\r\nexport default {\r\n\tname: 'ProfileItem', \r\n\tprops: {\r\n\t\ttitle: {\r\n\t\t\ttype: String\r\n\t\t},\r\n\t\ttext: {\r\n\t\t\ttype: String\r\n\t\t},\r\n\t\timage: {\r\n\t\t\ttype: String\r\n\t\t},\r\n\t\tbuttons: {\r\n\t\t\ttype: Array\r\n\t\t}, \r\n\t\taccordion: {\r\n\t\t\ttype: Array\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\thandleButtonClick(btn: any): void {\r\n\t\t\t// Analytics.sendButtonClick(btn.text);\r\n\t\t\tif (btn.callback){\r\n\t\t\t\tbtn.callback();\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ProfileItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ProfileItem.vue?vue&type=template&id=5874bed8&\"\nimport script from \"./ProfileItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./ProfileItem.vue?vue&type=script&lang=ts&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VAvatar } from 'vuetify/lib/components/VAvatar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VAvatar,VBtn,VCol,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"tb-car-headings\"},[(_vm.showCashHeadings && !_vm.hasDriveawayOffer)?[_c('HeadingColumns',{attrs:{\"big\":true,\"items\":_vm.cashItems,\"globalSubHeading\":_vm.cashSubHeading}})]:_vm._e(),_c('OfferGroup'),_vm._t(\"default\",[(_vm.showFinanceHeadings && _vm.showCashHeadings)?_c('hr',{staticClass:\"mt-0 mb-6\"}):_vm._e()]),(_vm.showFinanceHeadings)?[_c('HeadingColumns',{staticClass:\"mt-n2\",attrs:{\"items\":_vm.financeItems,\"loading\":_vm.finance.isLoading,\"globalSubHeading\":_vm.financeSubHeading}})]:_vm._e()],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { mapState } from 'vuex';\r\nimport HeadingColumns from './dumb/HeadingColumns.vue';\r\nimport OfferGroup from './OfferGroup.vue';\r\nimport Helpers from '../mixins/helpers';\r\n// import Analytics from '../mixins/analytics';\r\nimport { EOfferType } from '../enums';\r\nimport { IOffersItem } from '@/types';\r\n\r\nexport default Vue.extend({\r\n\tname: 'CarHeadings', \r\n\tprops: {\r\n\t\ttype: {\r\n\t\t\ttype: String\r\n\t\t}, \r\n\t\tsize: {\r\n\t\t\ttype: String\r\n\t\t}, \r\n\t\thideFinance: {\r\n\t\t\ttype: Boolean\r\n\t\t}, \r\n\t\tshowFinance: {\r\n\t\t\ttype: Boolean\r\n\t\t}, \r\n\t\thideCash: {\r\n\t\t\ttype: Boolean\r\n\t\t}, \r\n\t\tdisableDisclaimer: {\r\n\t\t\ttype: Boolean\r\n\t\t}\r\n\t},\r\n\tcomponents: {\r\n\t\tHeadingColumns, \r\n\t\tOfferGroup\r\n\t}, \r\n\tcomputed: {\r\n\t\t...mapState({\r\n\t\t\tapp(): any { return this.$store.state.app },\r\n\t\t\tvehicle(): any { return this.$store.state.vehicle },\r\n\t\t\tfinance(): any { return this.$store.state.finance },\r\n\t\t\tcustomer(): any { return this.$store.state.customer },\r\n\t\t\tdealer(): any { return this.$store.state.dealer },\r\n\t\t\ttpr(): any { return this.$store.state.tpr }\r\n\t\t}), \r\n\t\thasDriveawayOffer(): boolean {\r\n\t\t\tconst arr = this.vehicle.offers.filter((o: IOffersItem) => o.offerType == EOfferType.VehiclePrice);\r\n\t\t\treturn !!arr.length;\r\n\t\t},\r\n\t\tshowPriceDisclaimer(): boolean {\r\n\t\t\treturn this.$store.getters.showPriceDisclaimer;\r\n\t\t},\r\n\t\tvehicleFinalPrice(): number {\r\n return this.$store.getters.vehicleFinalPrice;\r\n\t\t},\r\n\t\tflow(): string {\r\n\t\t\treturn this.$store.getters.flow;\r\n\t\t},\r\n\t\tshowCashHeadings(): boolean {\r\n\t\t\treturn !this.hideCash;\r\n\t\t},\r\n\t\tshowFinanceHeadings(): boolean {\r\n\t\t\treturn !this.hideFinance && (\r\n\t\t\t\tthis.flow == 'campaign' || \r\n\t\t\t\tthis.flow == 'business-campaign' || \r\n\t\t\t\t(this.flow == 'get-tpr' && this.app.step != 0) || \r\n\t\t\t\tthis.flow == 'adjust-tpr' || \r\n\t\t\t\tthis.showFinance\r\n\t\t\t); \r\n\t\t},\r\n\t\tisCurrentOffer(): boolean {\r\n\t\t\treturn this.vehicle.specialItem && this.vehicle.specialItem.SpecialType == 'Special Offer';\r\n\t\t},\r\n\t\tisGreatValue(): boolean {\r\n\t\t\treturn this.vehicle.specialItem && this.vehicle.specialItem.SpecialType == 'Great Value';\r\n\t\t},\r\n\t\tcashSubHeading(): string {\r\n\t\t\treturn this.isCurrentOffer ? 'Current offer' : '';\r\n\t\t},\r\n\t\tfinanceSubHeading(): string {\r\n\t\t\tif (this.flow == 'campaign'){\r\n\t\t\t\treturn `Finance Offer`;\r\n\t\t\t}\r\n\t\t\tif (this.flow == 'business-campaign'){\r\n\t\t\t\treturn `Finance Offer`;\r\n\t\t\t}\r\n\t\t\telse if (this.flow == 'adjust-tpr'){\r\n\t\t\t\treturn `Toyota Personalised Repayment Quote`;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t},\r\n\t\tfinanceItems(): Array {\r\n\t\t\tconst items = [];\r\n\t\t\titems.push({\r\n\t\t\t\tsup: this.finance.disclaimerKey,\r\n\t\t\t\theading: Helpers.getFormattedPrice(this.finance.weeklyPayment) + '/wk', \r\n\t\t\t\tsubtext: 'with Toyota Access' + (this.flow == 'business' || this.flow == 'business-campaign' ? ' for
business applicants' : '')\r\n\t\t\t});\r\n\t\t\titems.push({\r\n\t\t\t\theading: this.finance.apr + '%', \r\n\t\t\t\tsubtext: 'Interest rate'\r\n\t\t\t});\r\n\t\t\tif (this.flow != 'business' && this.flow != 'business-campaign'){\r\n\t\t\t\titems.push({\r\n\t\t\t\t\theading: this.finance.comparisonRate + '%', \r\n\t\t\t\t\tsubtext: 'Comparison rate'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\titems.push({\r\n\t\t\t\theading: Helpers.getFormattedPrice(Math.round(this.finance.gfv)), \r\n\t\t\t\tsubtext: 'Guaranteed
Future Value', \r\n\t\t\t\ttooltip: {\r\n\t\t\t\t\ttitle: 'What is a Guaranteed Future Value?', \r\n\t\t\t\t\tvalue: 'Guaranteed Future Value (GFV) is the minimum value of your Toyota at the end of the loan term, as determined by Toyota Finance using the loan term and estimated kilometres per year. The GFV becomes the final payment of your loan if you choose to keep your vehicle.'\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn items;\r\n\t\t},\r\n\t\tcashItems(): Array {\r\n\t\t\tconst d = (this.isCurrentOffer ? 'Driveaway ': '') + this.vehicle.disclaimerKey;\r\n\t\t\tconst subtext = this.vehicle.specialUniqueName ? this.vehicle.specialExtraInfo : '';\r\n\t\t\tlet currentOfferSubtext = '';\r\n\t\t\tif (this.isCurrentOffer){\r\n\t\t\t\tcurrentOfferSubtext = 'Offer valid to ' + Helpers.shortFormattedDate(this.vehicle.specialItem.ValidTo) + '';\r\n\t\t\t}\r\n\t\t\treturn [{\r\n\t\t\t\tsubHeading: !this.isCurrentOffer ? 'Total Driveaway' : (this.isGreatValue ? 'Toyota Value' : ''), \r\n\t\t\t\theading: Helpers.getFormattedPrice(this.vehicleFinalPrice as number), \r\n\t\t\t\tsup: d, \r\n\t\t\t\tsubtext: currentOfferSubtext + subtext, \r\n\t\t\t\tdisclaimer: this.showPriceDisclaimer \r\n\t\t\t}];\r\n\t\t}\r\n\t}\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarHeadings.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarHeadings.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CarHeadings.vue?vue&type=template&id=4869aee6&\"\nimport script from \"./CarHeadings.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarHeadings.vue?vue&type=script&lang=ts&\"\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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tb-car-details\"},[(!_vm.hideTitle)?_c('h2',{class:'text-h'+(_vm.level+1)+' text-sm-h'+_vm.level},[_vm._v(\" \"+_vm._s(_vm.vehicleYear)+\" \"+_vm._s(_vm.vehicle.model)+\" \"),(_vm.vehicle.strippedFullDescription || _vm.vehicle.inclOption)?_c('small',{staticClass:\"text-body-1\"},[_vm._v(\" \"+_vm._s(_vm.vehicle.strippedFullDescription)+\" \"),(_vm.vehicle.inclOption)?[(_vm.vehicle.strippedFullDescription)?_c('br'):_vm._e(),_vm._v(\" \"+_vm._s(_vm.vehicleInclOption)+\" \")]:_vm._e()],2):_vm._e()]):_vm._e(),(!_vm.hideImage)?_c('div',{staticClass:\"tb-car-image__holder\"},[_c('v-img',{attrs:{\"src\":_vm.vehicleImage,\"alt\":_vm.vehicle.modal}})],1):_vm._e(),(!_vm.hideBullets)?_c('IconList',{staticClass:\"mt-4\",attrs:{\"items\":_vm.iconItems}}):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"tb-icon-list\"},_vm._l((_vm.items),function(i){return _c('li',{key:i.image},[(i.image)?_c('img',{attrs:{\"src\":i.image,\"alt\":i.text}}):_vm._e(),(i.colour)?_c('div',{staticClass:\"tb-icon-colour\",style:(_vm.getColourStyles(i))}):_vm._e(),_c('span',{domProps:{\"innerHTML\":_vm._s(i.text)}})])}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nexport default Vue.extend({\r\n\tname: 'IconList', \r\n\tprops: ['items'], \r\n\tmethods: {\r\n\t\tgetColourStyles(i: any): string {\r\n\t\t\tconst bg = `background-color: ${i.colour}; `;\r\n\t\t\tconst bo = i.bordercolour ? `border: solid 1px ${i.bordercolour} ` : '';\r\n\t\t\treturn bg + bo;\r\n\t\t}\r\n\t}\r\n});\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IconList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./IconList.vue?vue&type=template&id=2ed5db71&\"\nimport script from \"./IconList.vue?vue&type=script&lang=ts&\"\nexport * from \"./IconList.vue?vue&type=script&lang=ts&\"\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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport Helpers from '../mixins/helpers';\r\nimport IconList from '@/components/dumb/IconList.vue';\r\nimport { mapState } from 'vuex';\r\n\r\ndeclare const require: any\r\n\r\nexport default Vue.extend({\r\n\tname: 'CarDetails', \r\n\tprops: {\r\n\t\theadingLevel: Number, \r\n\t\thideImage: Boolean,\r\n\t\thideTitle: Boolean, \r\n\t\thideBullets: Boolean\r\n\t},\r\n\tcomponents: {\r\n\t\tIconList\r\n\t}, \r\n\tcomputed: {\r\n\t\t...mapState({\r\n\t\t\tvehicle(): any {\r\n\t\t\t\treturn this.$store.state.vehicle;\r\n\t\t\t}, \r\n\t\t\tvehicleImage(): string {\r\n\t\t\t\treturn this.vehicle.imagesHero.side;\r\n\t\t\t}\r\n\t\t}),\r\n\t\tvehicleYear(): string {\r\n\t\t\tconst vArray = this.vehicle.produced.split('-');\r\n\t\t\treturn vArray.length ? vArray[0] : ''\r\n\t\t}, \r\n\t\tvehicleInclOption(): string {\r\n\t\t\tconst o = this.vehicle.inclOption.toLowerCase().includes('with') ? this.vehicle.inclOption : 'With ' + this.vehicle.inclOption;\r\n\t\t\treturn this.vehicle.inclOption ? o : '';\r\n\t\t}, \r\n\t\tlevel(): number {\r\n\t\t\treturn this.headingLevel || 2;\r\n\t\t},\r\n\t\ticonItems(): Array {\r\n\t\t\tconst mLength = this.vehicle.materialCode.length;\r\n\t\t\tconst code = this.vehicle.materialCode.substring(mLength - 3);\r\n\t\t\tconst trimCode = this.vehicle.materialCode.substring(mLength - 7, mLength - 3);\r\n\r\n\t\t\treturn [\r\n\t\t\t\t{\r\n\t\t\t\t\timage: require('@/assets/icon-pump.svg'),\r\n\t\t\t\t\ttext: this.vehicle.fuel\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\timage: require('@/assets/icon-gearstick.svg'),\r\n\t\t\t\t\ttext: this.vehicle.transmission\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\timage: require('@/assets/icon-paint.svg'),\r\n\t\t\t\t\ttext: this.vehicle.paintName\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\timage: require('@/assets/icon-trim.svg'),\r\n\t\t\t\t\ttext: this.vehicle.trimName\r\n\t\t\t\t}\r\n\t\t\t];\r\n\t\t}\r\n\t}, \r\n\tmethods: {\r\n\t\tgetColour(){\r\n\t\t\treturn Helpers.getColour(this.vehicle);\r\n\t\t}\r\n\t}\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./CarDetails.vue?vue&type=template&id=1f77901e&scoped=true&\"\nimport script from \"./CarDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./CarDetails.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./CarDetails.vue?vue&type=style&index=0&id=1f77901e&scoped=true&lang=css&\"\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 \"1f77901e\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VImg } from 'vuetify/lib/components/VImg';\ninstallComponents(component, {VImg})\n","module.exports = __webpack_public_path__ + \"omniv2/img/icon-fuel-economy.881c736f.svg\";","module.exports = __webpack_public_path__ + \"omniv2/img/icon-gearstick.241d3273.svg\";","module.exports = __webpack_public_path__ + \"omniv2/img/icon-paint.cde0bd74.svg\";","module.exports = __webpack_public_path__ + \"omniv2/img/icon-lock2.e970bb51.svg\";","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarDetails.vue?vue&type=style&index=0&id=1f77901e&scoped=true&lang=css&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarDetails.vue?vue&type=style&index=0&id=1f77901e&scoped=true&lang=css&\"","module.exports = __webpack_public_path__ + \"omniv2/img/icon-trim.1e20a239.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tb-finance-details\"},[_c('h3',{staticClass:\"tb-subheading mb-2\"},[_vm._v(\"Finance Breakdown:\")]),_c('ul',{staticClass:\"tb-finance-details-bullets\"},_vm._l((_vm.financeHeadingListItems),function(i){return _c('li',{key:i,staticClass:\"text-body-3\"},[_vm._v(_vm._s(i))])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from 'vue';\r\nimport { mapState } from 'vuex';\r\nimport Helpers from '@/mixins/helpers';\r\nexport default Vue.extend({\r\n\tname: 'FinanceDetails', \r\n\tcomputed: {\r\n\t\t...mapState({\r\n\t\t\tfinance(): any { return this.$store.state.finance }\r\n\t\t}), \r\n\t\tfinanceHeadingListItems(): Array {\r\n\t\t\treturn Helpers.getFinanceHeadingListItems(this.finance.financeHeading);\r\n\t\t}\r\n\t}\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinanceDetails.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FinanceDetails.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FinanceDetails.vue?vue&type=template&id=560aefb6&\"\nimport script from \"./FinanceDetails.vue?vue&type=script&lang=ts&\"\nexport * from \"./FinanceDetails.vue?vue&type=script&lang=ts&\"\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","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 }","\n\n\n","import mod from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../cache-loader/dist/cjs.js??ref--12-0!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js!../../cache-loader/dist/cjs.js??ref--0-0!../../vue-loader/lib/index.js??vue-loader-options!./lottie.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./lottie.vue?vue&type=template&id=3c796cc7&\"\nimport script from \"./lottie.vue?vue&type=script&lang=js&\"\nexport * from \"./lottie.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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","module.exports = __webpack_public_path__ + \"omniv2/img/glass.80d64085.jpg\";","(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.data = data;\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem,data,type, mult, container) {\r\n var p;\r\n if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult, container);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult, container);\r\n break;\r\n }\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