{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./utils/isMobile.js","webpack:///./utils/isTablet.js","webpack:///./utils/addActiveLinkClass.js","webpack:///./utils/hiddenFromIndexLink.js","webpack:///./utils/index.js","webpack:///../node_modules/@uvocore-front/utils/dist/index.js","webpack:///./components/Animations/AnimateStats.js","webpack:///./components/Animations/AnimateStatsIcons.js","webpack:///./components/Animations/AnimateGuaranteeIcons.js","webpack:///./components/Animations/AnimateBoat.js","webpack:///./components/Animations/AnimateTarget.js","webpack:///./pages/about-us/js/index.js","webpack:///./components/Testimonials/Testimonials.js","webpack:///../node_modules/console-browserify/index.js","webpack:///../node_modules/webpack/buildin/global.js","webpack:///../node_modules/util/util.js","webpack:///../node_modules/lottie-web/build/player/lottie.js","webpack:///../node_modules/process/browser.js","webpack:///./components/CustomCarousel/index.js","webpack:///./components/Slider/index.js","webpack:///../node_modules/util/support/isBufferBrowser.js","webpack:///../node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///../node_modules/assert/assert.js","webpack:///../node_modules/object-assign/index.js","webpack:///./components/Header/js/headerHoverNavigation.js","webpack:///./components/Header/js/stickyHeader.js","webpack:///./components/Header/js/dropdownMenu.js","webpack:///./components/Header/js/toggleMenu.js","webpack:///./components/Header/js/Header.js","webpack:///../node_modules/hammerjs/hammer.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","isMobile","window","innerWidth","isTablet","addActiveLinkClass","anchorSelector","activeClass","anchors","document","querySelectorAll","current","location","pathname","length","getAttribute","classList","add","hiddenFromIndexLink","linksArray","forEach","link","addEventListener","e","url","currentTarget","href","debounce","func","wait","immediate","timeout","context","this","args","arguments","later","apply","callNow","clearTimeout","setTimeout","wrap","el","wrapper","parentNode","insertBefore","appendChild","wrapInner","parent","createElement","firstChild","default","iterator","constructor","deployHash","getElementsByTagName","Promise","u","concat","querySelector","f","async","defer","a","readyState","test","onload","onreadystatechange","src","innerHTML","element","marginValue","thresholdValue","callback","rootMargin","threshold","IntersectionObserver","isIntersecting","unobserve","target","slice","observe","widgetLink","loader","customLoader","insertLoaderTo","loaderPosition","fn","then","catch","Error","__WMS__","utils","loadScripts","addLoader","observeElement","getWidget","AnimateStats","statNumbers","Array","item","AnimateStatsIcons","animatedIcons","index","lottie","loadAnimation","container","renderer","loop","autoplay","path","AnimateGuaranteeIcons","AnimateBoat","AnimateTarget","monthNames","template","testimonialItem","date","Date","createdAt","getDate","getMonth","getFullYear","customerId","body","orderDiscipline","tmWidget","params","siteId","limit","minBodyLength","type","containerEl","callbackLoaded","Carousel","selector","itemWidth","margin","responsive","768","inactive","samples","sample","remove","util","assert","now","getTime","console","times","global","functions","log","warn","label","time","duration","err","message","format","error","stack","inspect","expression","arr","ok","tuple","g","Function","getOwnPropertyDescriptors","obj","keys","descriptors","getOwnPropertyDescriptor","formatRegExp","isString","objects","push","join","len","str","String","replace","x","Number","JSON","stringify","_","isNull","isObject","deprecate","msg","process","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","opts","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","style","styles","recurseTimes","isFunction","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","array","hash","val","idx","arrayToHash","getOwnPropertyNames","isError","indexOf","formatError","isRegExp","RegExp","toString","isDate","output","base","braces","isArray","toUTCString","formatProperty","match","formatArray","map","pop","reduce","prev","cur","numLinesEst","reduceToSingleString","desc","set","split","line","substr","ar","arg","re","objectToString","pad","debuglog","env","NODE_DEBUG","toUpperCase","pid","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","months","timestamp","getHours","getMinutes","getSeconds","prop","inherits","origin","kCustomPromisifiedSymbol","undefined","callbackifyOnRejected","reason","cb","newReason","promisify","original","TypeError","writable","configurable","promiseResolve","promiseReject","promise","resolve","reject","setPrototypeOf","getPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","self","nextTick","rej","factory","root","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","navigator","userAgent","cachedColors","bm_rounder","Math","round","bm_rnd","bm_pow","pow","bm_sqrt","sqrt","bm_abs","abs","bm_floor","floor","bm_max","max","bm_min","min","blitter","BMMath","ProjectInterface","propertyNames","random","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","flag","styleDiv","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","v","b","q","RGBtoHSV","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","BaseEvent","triggerEvent","eventName","_cbs","removeEventListener","splice","createTypedArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","dynamicProperties","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","props","rotate","angle","mCos","mSin","_t","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","j","k","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","y","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","pool","math","startdenom","significance","overflow","ARC4","keylen","me","S","width","count","copy","mixkey","seed","smear","stringseed","charCodeAt","tostring","fromCharCode","options","shortseed","flatten","result","typ","entropy","nodecrypto","out","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","double","pass","is_math_call","state","BezierFactory","ob","nm","beziers","bezEasing","BezierEasing","float32ArraySupported","A","aA1","aA2","B","C","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","point","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezier_segment_points","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","timeToCall","id","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","jLen","kLen","completed","tt","td","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","parse","ks","it","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","iterateLayers","textLayer","documentData","animationData","assets","checkChars","chars","pathData","paths","data","__converted","checkColors","iterateShapes","checkShapes","cl","singleShape","moduleOb","__complete","dataManager","FontManager","emptyChar","w","size","combinedCharacters","setUpNode","font","family","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","def","fontData","tHelper","setAttribute","fFamily","fStyle","fWeight","textContent","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","getCombinedCharacterCodes","addChars","found","ch","addFonts","defs","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","sc","helper","cache","getCharData","char","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","removeChild","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","values","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","px","py","pz","rx","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v1","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","point_pool","doubleArrayLength","setXYAt","pos","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","init","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","convertEllToPath","s0","_cw","_v","StarShapeProperty","ir","is","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","convertRectToPath","v0","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","cloned_path","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","copies","ceil","group","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","buildShapeString","pathNodes","_o","_i","shapeString","ImagePreloader","proxyImage","canvas","height","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","getAssetsPath","assetData","assetsPath","original_path","imagePath","_imageLoaded","images","loadAssets","_createImageData","setAssetsPath","setPath","destroy","getImage","img","createImgData","crossOrigin","createImageData","setAttributeNS","setCacheType","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","load","errorCallback","XMLHttpRequest","open","responseType","send","status","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","mask","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","charAt","newLineFlag","charData","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","toLowerCase","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","cloned","shapeCollection","BaseRenderer","SVGRenderer","animationItem","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","getShapeProp","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","perspective","webkitPerspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","component","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","stop","gf","cst","opacityId","opFill","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","tm","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","content","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","lcEnum","ljEnum","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","elems","getElements","destroyElements","assetPath","pr","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","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","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","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","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","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","compW","compH","innerElemStyle","strokeWidth","lineHeight","tParent","tCont","textPath","Image","imageElem","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","addPlayingCount","activate","resume","nowTime","elapsedTime","advanceTime","first","setParams","setSpeed","setDirection","play","pause","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","animType","rendererSettings","parseInt","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","completeData","loadNextSegment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","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","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","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","__expression_functions","scoped_bm_rt","xf","eval","expression_function","numKeys","active","wiggle","freq","amp","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","nearestKey","framesToTime","frames","fps","timeToFrames","seedRandom","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","speed","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","sampleValue","sampleFrequency","getTransformValueAtTime","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ix","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","mn","parentPropertyGroup","propertyName","_name","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","ExpressionPropertyInterface","_dashPropertyGroup","dashOb","addPropertyToDashOb","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_sourceText","_thisLayerFunction","stringValue","_prevValue","toWorldMat","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","startTime","source","MaskManagerInterface","effects","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","_pz","_px","_py","compositions","_thisProjectFunction","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","assign","speedAtTime","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TextExpressionSelectorProp","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","getValueProxy","total","eff","setLocationHref","setSubframeRendering","setQuality","isNaN","inBrowser","installPlugin","plugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","__getFactory","version","scripts","myScript","setInterval","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","slideItems","delta","calcPaddingToCenter","stage","nextBtn","hasAttribute","prevBtn","viewport","nav","refresh","stageWrapper","slideItemWrapper","dots","move","changeSlide","next","setNavButtonsPosition","repeat","dotItems","contains","Hammer","deltaX","getResponsiveProps","preInit","generateNav","attachSwipeHandlers","generateDots","setItemsWidth","setStageWidth","deactivate","onRefresh","marginRight","calculateStageWidth","breakPoints","breakPoint","getWindowWidth","setDefaultState","readUInt8","ctor","superCtor","super_","TempCtor","objectAssign","compare","Buffer","_isBuffer","hasOwn","pSlice","functionsHaveNames","pToString","isView","arrbuf","ArrayBuffer","DataView","buffer","regex","getName","truncate","something","rawname","fail","actual","expected","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","multiline","ignoreCase","Float64Array","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","sort","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","block","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","captureStackTrace","fn_name","next_line","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","test1","test2","test3","letter","shouldUseNative","from","symbols","navigationCursor","HoverNavigation","getBoundingClientRect","stickyHeaderInit","header","isOrderPage","isPlagckeckPage","paddingTop","headerHeight","pageYOffset","documentElement","scrollTop","clientTop","DropdownMenu","dropdownItems","toggle","MobileNavigationInit","button","overlay","menuBlock","getComputedStyle","visibility","innerHeight","menuOnClickHandler","exportName","VENDOR_PREFIXES","TEST_ELEMENT","setTimeoutContext","bindFn","invokeArrayArg","each","method","deprecationMessage","nextKey","extend","dest","merge","inherit","child","childP","baseP","_super","boolOrFn","ifUndefined","addEventListeners","types","handler","splitStr","removeEventListeners","inStr","find","trim","inArray","findByKey","toArray","uniqueArray","results","prefixed","prefix","camelProp","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","SUPPORT_TOUCH","SUPPORT_POINTER_EVENTS","SUPPORT_ONLY_TOUCH","PROPS_XY","PROPS_CLIENT_XY","Input","manager","inputTarget","domHandler","enable","inputHandler","eventType","input","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","isFinal","session","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","center","getCenter","timeStamp","deltaTime","getAngle","getDistance","offsetDelta","prevDelta","prevInput","deltaY","computeDeltaXY","offsetDirection","getDirection","overallVelocity","getVelocity","overallVelocityX","overallVelocityY","getRotation","maxPointers","velocityX","velocityY","last","lastInterval","computeIntervalInputData","srcEvent","computeInputData","recognize","clientX","clientY","evEl","evTarget","evWin","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","MouseInput","pressed","which","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","PointerEventInput","store","pointerEvents","MSPointerEvent","PointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","SingleTouchInput","started","normalizeSingleTouches","all","touches","changedTouches","TOUCH_INPUT_MAP","TouchInput","targetIds","getTouches","allTouches","identifier","targetTouches","changedTargetTouches","touch","TouchMouseInput","mouse","primaryTouch","lastTouches","recordTouches","eventData","setLastTouch","lastTouch","lts","isSyntheticEvent","dx","dy","inputEvent","inputData","isMouse","sourceCapabilities","firesTouchEvents","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_MAP","touchMap","cssSupports","CSS","supports","getTouchActionProps","TouchAction","compute","actions","touchAction","recognizers","recognizer","getTouchAction","hasPanX","hasPanY","cleanTouchActions","preventDefaults","prevented","preventDefault","hasNone","isTapPointer","isTapMovement","isTapTouchTime","DIRECTION_LEFT","DIRECTION_UP","preventSrc","Recognizer","defaults","simultaneous","requireFail","stateStr","directionStr","getRecognizerByNameIfManager","otherRecognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","preset","Manager","recognizeWith","dropRecognizeWith","requireFailure","dropRequireFailure","hasRequireFailures","canRecognizeWith","event","additionalEvent","tryEmit","canEmit","inputDataClone","attrTest","optionPointers","isRecognized","isValid","DIRECTION_HORIZONTAL","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","interval","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","inputClass","cssProps","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","handlers","oldCssProps","toggleCssProps","force","stopped","curRecognizer","existing","events","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","triggerDomEvent","INPUT_START","INPUT_MOVE","INPUT_END","INPUT_CANCEL","STATE_POSSIBLE","STATE_BEGAN","STATE_CHANGED","STATE_ENDED","STATE_RECOGNIZED","STATE_CANCELLED","STATE_FAILED","DIRECTION_NONE","DIRECTION_RIGHT","DIRECTION_DOWN","DIRECTION_VERTICAL","DIRECTION_ALL","Tap","Pan","Swipe","Pinch","Rotate","Press"],"mappings":"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","file":"js/about.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 106);\n","const isMobile = () => window.innerWidth < 1024;\n\nexport default isMobile;\n","const isTablet = () => window.innerWidth < 768;\n\nexport default isTablet;\n","/**\n *\n * @param anchorSelector\n * @param activeClass\n */\nconst addActiveLinkClass = ({\n anchorSelector = 'a',\n activeClass = 'active',\n}) => {\n const anchors = document.querySelectorAll(anchorSelector);\n if (!anchors) return;\n\n const current = window.location.pathname;\n\n for (let i = 0; i < anchors.length; i += 1) {\n if (anchors[i].getAttribute('href') === current) {\n anchors[i].classList.add(activeClass);\n }\n }\n};\n\nexport default addActiveLinkClass;\n","const hiddenFromIndexLink = () => {\n const linksArray = document.querySelectorAll('[data-link]');\n if (linksArray) {\n linksArray.forEach((link) => {\n link.addEventListener('click', (e) => {\n const url = e.currentTarget.getAttribute('data-link');\n window.location.href = `/${url}`;\n });\n });\n }\n};\n\nexport default hiddenFromIndexLink;\n","/* eslint-disable no-unused-expressions */\n\nexport { default as isMobile } from './isMobile';\nexport { default as isTablet } from './isTablet';\nexport { default as addActiveLinkClass } from './addActiveLinkClass';\nexport { default as isTouchDevice } from './isTouchDevice';\nexport { default as hiddenFromIndexLink } from './hiddenFromIndexLink';\n\nexport function debounce(func, wait, immediate) {\n let timeout;\n return function () { // eslint-disable-line\n const context = this;\n const args = arguments; // eslint-disable-line\n const later = function () { // eslint-disable-line\n timeout = null;\n if (!immediate) func.apply(context, args);\n };\n const callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n if (callNow) func.apply(context, args);\n };\n}\n\nexport function wrap(el, wrapper) {\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el);\n}\n\nexport const wrapAll = (query, tag) => {\n document.querySelectorAll(query).forEach((elem) => {\n const div = document.createElement(tag);\n elem.parentElement.insertBefore(div, elem);\n div.appendChild(elem);\n });\n};\n\nexport function wrapInner(parent, wrapper) {\n if (typeof wrapper === 'string') wrapper = document.createElement(wrapper); // eslint-disable-line\n\n parent.appendChild(wrapper);\n\n while (parent.firstChild !== wrapper) wrapper.appendChild(parent.firstChild);\n}\n\nexport function slideUp(block) {\n block.style.height = '0'; // eslint-disable-line\n}\n\nexport function slideDown(block) {\n block.style.height = `${block.children[0].offsetHeight}px`; // eslint-disable-line\n}\n\nexport function toggleSlide(block) {\n !block.offsetHeight ? slideDown(block) : slideUp(block);\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.utils=t():e.utils=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=1)}([function(e,t){function n(e){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e})(e)}function o(t){return\"function\"==typeof Symbol&&\"symbol\"===n(Symbol.iterator)?e.exports=o=function(e){return n(e)}:e.exports=o=function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":n(e)},o(t)}e.exports=o},function(e,t,n){e.exports=n(3)},function(e,t,n){},function(e,t,n){\"use strict\";n.r(t);var o=n(0),r=n.n(o),i=window.deployHash&&\"string\"==typeof window.deployHash&&\"\"!==window.deployHash?window.deployHash:\"\",c=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:document.getElementsByTagName(\"head\")[0],n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],o=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];return new Promise((function(r,c){if(e&&\"string\"==typeof e){var u=i?\"?v=\".concat(i):\"\",d=e+u;if(document.querySelector('script[src=\"'.concat(d,'\"]')))r();else{var f=document.createElement(\"script\");f.async=n,f.defer=o;var a=function(e,t){(t||!f.readyState||/loaded|complete/.test(f.readyState))&&(f.onload=null,f.onreadystatechange=null,f=void 0,t?c():r())};f.onload=a,f.onreadystatechange=a,f.src=d,t.appendChild(f)}}}))},u=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"center\";e&&\"string\"==typeof e&&(document.querySelector(\"\".concat(e)).innerHTML='\\n
\\n
\\n
\\n '))},d=(n(2),u),f=function(e){var t=e.element,n=e.marginValue,o=void 0===n?400:n,r=e.thresholdValue,i=void 0===r?0:r,c=e.callback,u=void 0===c?function(){}:c;if(t&&\"string\"==typeof t){var d=document.querySelectorAll(t),f={rootMargin:\"\".concat(o,\"px 0px \").concat(o,\"px 0px\"),threshold:i},a=new IntersectionObserver((function(e,t){e.forEach((function(e){e.isIntersecting&&(t.unobserve(e.target),u(e.target))}))}),f);d&&[].slice.call(d).forEach((function(e){a.observe(e)}))}},a=function(e){var t=e.widgetLink,n=e.loader,o=void 0===n||n,r=e.customLoader,i=void 0===r?void 0:r,u=e.insertLoaderTo,f=void 0===u?void 0:u,a=e.loaderPosition,l=void 0===a?\"center\":a,s=e.fn,p=void 0===s?function(){}:s;t&&\"string\"==typeof t&&c(t).then((function(){o&&i&&\"function\"==typeof i?i(f,l):o&&d(f,l),p()})).catch((function(e){throw new Error(e)}))};n.d(t,\"loadScripts\",(function(){return c})),n.d(t,\"addLoader\",(function(){return d})),n.d(t,\"observeElement\",(function(){return f})),n.d(t,\"getWidget\",(function(){return a})),window.__WMS__=\"object\"===(\"undefined\"==typeof __WMS__?\"undefined\":r()(__WMS__))?__WMS__:{},window.__WMS__.utils={loadScripts:c,addLoader:d,observeElement:f,getWidget:a}}])}));\n//# sourceMappingURL=index.js.map","/**\n * Animate Stat Numbers\n */\nconst AnimateStats = () => {\n const statNumbers = document.querySelectorAll('[data-stat-animated-number]');\n Array.prototype.slice.call(statNumbers).forEach((item) => {\n item.classList.add('show');\n });\n};\n\nexport default AnimateStats;\n","import lottie from 'lottie-web';\n\nconst AnimateStatsIcons = () => {\n const animatedIcons = document.querySelectorAll('[data-stat-lottie-icon]');\n\n [].slice.call(animatedIcons).forEach((item, index) => {\n // eslint-disable-next-line no-undef\n lottie.loadAnimation({\n container: document.querySelector(`[data-stat-lottie-icon=\"${index + 1}\"]`), // the dom element that will contain the animation\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: `/lottie/stat${index + 1}.json`, // the path to the animation json\n });\n });\n};\n\nexport default AnimateStatsIcons;\n","import lottie from 'lottie-web';\n\nconst AnimateGuaranteeIcons = () => {\n const animatedIcons = document.querySelectorAll('[data-guarantee-lottie-icon]');\n\n [].slice.call(animatedIcons).forEach((item, index) => {\n lottie.loadAnimation({\n container: document.querySelector(`[data-guarantee-lottie-icon=\"${index + 1}\"]`), // the dom element that will contain the animation\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: `/lottie/guarantee${index + 1}.json`, // the path to the animation json\n });\n });\n};\n\nexport default AnimateGuaranteeIcons;\n","import lottie from 'lottie-web';\n\nconst AnimateBoat = () => {\n lottie.loadAnimation({ //eslint-disable-line\n container: document.querySelector('[data-boat-lottie-icon]'), // the dom element that will contain the animation\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/college-gpa-calculator/boat.json', // the path to the animation json\n });\n};\n\nexport default AnimateBoat;\n","import lottie from 'lottie-web';\n\nconst AnimateTarget = () => {\n lottie.loadAnimation({\n container: document.querySelector('[data-animated-icon]'), // the dom element that will contain the animation\n renderer: 'svg',\n loop: true,\n autoplay: true,\n path: '/lottie/about_target.json', // the path to the animation json\n });\n};\n\nexport default AnimateTarget;\n","import '../../../components/Header/js/Header';\nimport '../../../components/Testimonials/Testimonials';\nimport { AnimateTarget } from '../../../components/Animations';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n AnimateTarget();\n});\n","import { observeElement, getWidget } from '@uvocore-front/utils';\nimport { isTablet } from '../../utils';\nimport Carousel from '../CustomCarousel';\n\nif (document.querySelector('[data-testimonials-list]')) {\n const monthNames = [\n 'Jan', 'Feb', 'Mar',\n 'Apr', 'May', 'Jun', 'Jul',\n 'Aug', 'Sep', 'Oct',\n 'Nov', 'Dec',\n ];\n\n const template = (testimonialItem) => {\n let date = new Date(testimonialItem.createdAt * 1000);\n date = `${date.getDate()} ${monthNames[date.getMonth()]} ${date.getFullYear()}`;\n\n return (\n `
\n
\n
customer's feedback (${testimonialItem.customerId})
\n
\n \"${testimonialItem.body}\"\n
\n
\n
\n
\n
\n
\n Discipline: ${testimonialItem.orderDiscipline}\n
\n
\n
customer's feedback (${testimonialItem.customerId})
\n
\n \"${testimonialItem.body}\"\n
\n
${date}
\n
\n
\n
\n
\n
`\n );\n };\n\n observeElement({ /* eslint-disable-line */\n element: '[data-testimonials-list]',\n marginValue: 200,\n callback: () => {\n getWidget({ /* eslint-disable-line */\n widgetLink: '/assets/js/testimonialsWidget.min.js',\n loader: false,\n fn: () => {\n window.tmWidget({\n params: {\n siteId: '15',\n limit: 6,\n minBodyLength: 0,\n },\n template,\n type: 'html',\n containerEl: '[data-testimonials-list]',\n callbackLoaded: () => {\n // eslint-disable-next-line no-new\n new Carousel({\n selector: document.querySelector('[data-testimonials-list]'),\n itemWidth: 255,\n margin: 0,\n responsive: {\n 768: {\n inactive: true,\n },\n },\n });\n\n if (!isTablet()) {\n const samples = document.querySelectorAll('[data-testimonials-item]');\n setTimeout(() => {\n samples[1].classList.add('is--active');\n }, 500);\n\n [].slice.call(samples).forEach((sample) => {\n sample.addEventListener('mouseenter', () => {\n if (document.querySelector('.Testimonial.is--active')) {\n document.querySelector('.Testimonial.is--active').classList.remove('is--active');\n sample.classList.add('is--active');\n }\n });\n });\n }\n },\n });\n },\n });\n },\n });\n}\n","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t\"use strict\";\r\nvar svgNS = \"http://www.w3.org/2000/svg\";\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar subframeEnabled = true;\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bm_rounder = Math.round;\r\nvar bm_rnd;\r\nvar bm_pow = Math.pow;\r\nvar bm_sqrt = Math.sqrt;\r\nvar bm_abs = Math.abs;\r\nvar bm_floor = Math.floor;\r\nvar bm_max = Math.max;\r\nvar bm_min = Math.min;\r\nvar blitter = 10;\r\n\r\nvar BMMath = {};\r\n(function(){\r\n var propertyNames = [\"abs\", \"acos\", \"acosh\", \"asin\", \"asinh\", \"atan\", \"atanh\", \"atan2\", \"ceil\", \"cbrt\", \"expm1\", \"clz32\", \"cos\", \"cosh\", \"exp\", \"floor\", \"fround\", \"hypot\", \"imul\", \"log\", \"log1p\", \"log2\", \"log10\", \"max\", \"min\", \"pow\", \"random\", \"round\", \"sign\", \"sin\", \"sinh\", \"sqrt\", \"tan\", \"tanh\", \"trunc\", \"E\", \"LN10\", \"LN2\", \"LOG10E\", \"LOG2E\", \"PI\", \"SQRT1_2\", \"SQRT2\"];\r\n var i, len = propertyNames.length;\r\n for(i=0;i 1) {\r\n hsv[1] = 1;\r\n }\r\n else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n }\r\n else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color,offset) {\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[0] += offset/360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n }\r\n else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function(){\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for(i=0;i<256;i+=1){\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length == 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function(r, g, b) {\r\n if(r<0){\r\n r = 0;\r\n }\r\n if(g<0){\r\n g = 0;\r\n }\r\n if(b<0){\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\nfunction BaseEvent(){}\r\nBaseEvent.prototype = {\r\n\ttriggerEvent: function (eventName, args) {\r\n\t if (this._cbs[eventName]) {\r\n\t var len = this._cbs[eventName].length;\r\n\t for (var i = 0; i < len; i++){\r\n\t this._cbs[eventName][i](args);\r\n\t }\r\n\t }\r\n\t},\r\n\taddEventListener: function (eventName, callback) {\r\n\t if (!this._cbs[eventName]){\r\n\t this._cbs[eventName] = [];\r\n\t }\r\n\t this._cbs[eventName].push(callback);\r\n\r\n\t\treturn function() {\r\n\t\t\tthis.removeEventListener(eventName, callback);\r\n\t\t}.bind(this);\r\n\t},\r\n\tremoveEventListener: function (eventName,callback){\r\n\t if (!callback){\r\n\t this._cbs[eventName] = null;\r\n\t }else if(this._cbs[eventName]){\r\n\t var i = 0, len = this._cbs[eventName].length;\r\n\t while(i 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n //Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /*if(this.isIdentity()) {\r\n return '';\r\n }*/\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return \"matrix(\" + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + \")\";\r\n }\r\n\r\n return function(){\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\nvar BezierFactory = (function(){\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a,b,c,d,nm){\r\n var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\\./g, 'p');\r\n if(beziers[str]){\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a,b,c,d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === \"function\";\r\n\r\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C (aA1) { return 3.0 * aA1; }\r\n\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier (aT, aA1, aA2) {\r\n return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;\r\n }\r\n\r\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope (aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\r\n var currentX, currentT, i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing (points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2)\r\n this._calcSampleValues();\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n }\r\n };\r\n\r\n return ob;\r\n\r\n}());\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if(!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\r\nfunction extendPrototype(sources,destination){\r\n var i, len = sources.length, sourcePrototype;\r\n for (i = 0;i < len;i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (sourcePrototype.hasOwnProperty(attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n\tfunction ProxyFunction(){}\r\n\tProxyFunction.prototype = prototype;\r\n\treturn ProxyFunction;\r\n}\r\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1,y1, x2,y2, x3,y3){\r\n var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){\r\n if(z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1,y1, x2,y2, x3,y3);\r\n }\r\n var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));\r\n var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));\r\n var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if(dist1 > dist2){\r\n if(dist1 > dist3){\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if(dist3 > dist2){\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function(){\r\n\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = bezier_length_pool.newElement();\r\n len = pt3.length;\r\n for(k=0;k lengthPos ? -1 : 1;\r\n var flag = true;\r\n while(flag){\r\n if(lengths[initPos] <= lengthPos && lengths[initPos+1] > lengthPos){\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos+1] - lengths[initPos]);\r\n flag = false;\r\n }else{\r\n initPos += dir;\r\n }\r\n if(initPos < 0 || initPos >= len - 1){\r\n //FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if(initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos+1] - percents[initPos])*lPerc;\r\n }\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\r\n var u1 = 1 - t1;\r\n var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;\r\n var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n function getSegmentArray() {\r\n\r\n }\r\n\r\n var bezier_segment_points = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\r\n var t0 = getDistancePerc(startPerc,bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc,bezierData);\r\n var i, len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0*u0*u0;\r\n var t0u0u0_3 = t0*u0*u0*3;\r\n var t0t0u0_3 = t0*t0*u0*3;\r\n var t0t0t0 = t0*t0*t0;\r\n //\r\n var u0u0u1 = u0*u0*u1;\r\n var t0u0u1_3 = t0*u0*u1 + u0*t0*u1 + u0*u0*t1;\r\n var t0t0u1_3 = t0*t0*u1 + u0*t0*t1 + t0*u0*t1;\r\n var t0t0t1 = t0*t0*t1;\r\n //\r\n var u0u1u1 = u0*u1*u1;\r\n var t0u1u1_3 = t0*u1*u1 + u0*t1*u1 + u0*u1*t1;\r\n var t0t1u1_3 = t0*t1*u1 + u0*t1*t1 + t0*u1*t1;\r\n var t0t1t1 = t0*t1*t1;\r\n //\r\n var u1u1u1 = u1*u1*u1;\r\n var t1u1u1_3 = t1*u1*u1 + u1*t1*u1 + u1*u1*t1;\r\n var t1t1u1_3 = t1*t1*u1 + u1*t1*t1 + t1*u1*t1;\r\n var t1t1t1 = t1*t1*t1;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\r\n }\r\n\r\n var checkText = (function(){\r\n var minimumVersion = [4,4,14];\r\n\r\n function updateTextLayer(textLayer){\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s:documentData,\r\n t:0\r\n }\r\n ]\r\n };\r\n }\r\n\r\n function iterateLayers(layers){\r\n var i, len = layers.length;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n arr[i].ks.k.c = arr[i].closed;\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = \"text/css\";\r\n s.innerHTML = \"@font-face {\" + \"font-family: \"+fontArr[i].fFamily+\"; font-style: normal; src: url('\"+fontArr[i].fPath+\"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = \"text/css\";\r\n l.rel = \"stylesheet\";\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('link');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('rel','stylesheet');\r\n sc.setAttribute('href',fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs,fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n //On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n //Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars){\r\n if(!chars){\r\n return;\r\n }\r\n if(!this.chars){\r\n this.chars = [];\r\n }\r\n var i, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1){\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen, perc, jLen, j, fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n if (keyData.to) {\r\n if (!keyData.bezierData) {\r\n keyData.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1){\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX, outY, inX, inY, keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = endValue[0];\r\n newValue[1] = endValue[1];\r\n newValue[2] = endValue[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(endValue);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n \r\n } else {\r\n for(i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if(frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if(keyData.o.x.constructor === Array) {\r\n if (!keyData.__fnct) {\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = (typeof keyData.o.x[i] === 'undefined') ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = (typeof keyData.o.y[i] === 'undefined') ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = (typeof keyData.i.x[i] === 'undefined') ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = (typeof keyData.i.y[i] === 'undefined') ? keyData.i.y[0] : keyData.i.y[i];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct = fnc;\r\n } else {\r\n fnc = keyData.__fnct;\r\n }\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime ));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n //based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0], ay = a[1], az = a[2], aw = a[3],\r\n bx = b[0], by = b[1], bz = b[2], bw = b[3]\r\n\r\n var omega, cosom, sinom, scale0, scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2*qy*qw-2*qx*qz , 1 - 2*qy*qy - 2*qz*qz)\r\n var attitude = Math.asin(2*qx*qy + 2*qz*qw) \r\n var bank = Math.atan2(2*qx*qw-2*qy*qz , 1 - 2*qx*qx - 2*qz*qz);\r\n out[0] = heading/degToRads;\r\n out[1] = attitude/degToRads;\r\n out[2] = bank/degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x,y,z,w];\r\n }\r\n\r\n function getValueAtCurrentTime(){\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;\r\n if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){\r\n if(this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if(this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if(math_abs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0, len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (math_abs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if(this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container){\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i, len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n var arr = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0, value: 0, _lastKeyframeIndex: -1};\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container){\r\n this.propType = 'multidimensional';\r\n var i, len = data.k.length;\r\n var s, e,to,ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],s[0] + to[0],s[1] + to[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],e[0] + ti[0],e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],s[0] + to[0],s[1] + to[1],s[2] + to[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],e[0] + ti[0],e[1] + ti[1],e[2] + ti[2]))){\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if(s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if(s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem,data,type, mult, container) {\r\n var p;\r\n if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult, container);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult, container);\r\n break;\r\n }\r\n }\r\n if(p.effectsSequence.length){\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n}());\r\nvar TransformPropertyFactory = (function() {\r\n\r\n var defaultVector = [0,0]\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender){\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if(this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if(this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4){\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1,v2, frameRate = this.elem.globalData.frameRate;\r\n if(this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame+this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate,0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if(this.p._caching.lastFrame+this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if(this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px, py = this.py, frameRate;\r\n if (px._caching.lastFrame+px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate,0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate,0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate,0);\r\n } else if(px._caching.lastFrame+px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate),0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate),0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame+px.offsetTime - 0.01) / frameRate,px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame+py.offsetTime - 0.01) / frameRate,py.offsetTime);\r\n }\r\n } else {\r\n v1 = v2 = defaultVector\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if(this.data.p && this.data.p.s){\r\n if(this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if(!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if(!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if(this.sk) {\r\n if(!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if(!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n } else {\r\n return;\r\n }\r\n } else if(!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient(){\r\n //\r\n //var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem,data,container){\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n //Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if(data.p && data.p.s){\r\n this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this);\r\n this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this);\r\n if(data.p.z){\r\n this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this);\r\n }\r\n }else{\r\n this.p = PropertyFactory.getProp(elem,data.p || {k:[0,0,0]},1,0,this);\r\n }\r\n if(data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if(data.or.k[0].ti) {\r\n var i, len = data.or.k.length;\r\n for(i=0;i= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newElement();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function() {\r\n\tvar newPath = new ShapePath();\r\n\tnewPath.setPathData(this.c, this._length);\r\n\tvar vertices = this.v, outPoints = this.o, inPoints = this.i;\r\n\tvar init = 0;\r\n\tif (this.c) {\r\n\t\tnewPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n \tnewPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\r\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS,keyPropE,isHold, j, k, jLen, kLen, perc, vertexValue;\r\n var kf = this.keyframes;\r\n if(frameNum < kf[0].t-this.offsetTime){\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n }else if(frameNum >= kf[kf.length - 1].t-this.offsetTime){\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /*if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n }*/\r\n isHold = true;\r\n }else{\r\n var i = iterationIndex;\r\n var len = kf.length- 1,flag = true,keyData,nextKeyData;\r\n while(flag){\r\n keyData = kf[i];\r\n nextKeyData = kf[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for(j=0;j endTime && frameNum > endTime)))){\r\n ////\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n ////\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape(){\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if(shape1._length !== shape2._length || shape1.c !== shape2.c){\r\n return false;\r\n }\r\n var i, len = shape1._length;\r\n for(i = 0; i < len; i += 1) {\r\n if(shape1.v[i][0] !== shape2.v[i][0] \r\n || shape1.v[i][1] !== shape2.v[i][1] \r\n || shape1.o[i][0] !== shape2.o[i][0] \r\n || shape1.o[i][1] !== shape2.o[i][1] \r\n || shape1.i[i][0] !== shape2.i[i][0] \r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if(!shapesEqual(this.v, newPath)) {\r\n this.v = shape_pool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n } else if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\r\n var i, len = this.effectsSequence.length;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0};\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function EllShapeProperty(elem,data) {\r\n /*this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n };*/\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0,this);\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n };\r\n\r\n EllShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function (){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if(this._mdf){\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function() {\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapeProperty);\r\n\r\n return EllShapeProperty;\r\n }());\r\n\r\n var StarShapeProperty = (function() {\r\n\r\n function StarShapeProperty(elem,data) {\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if(data.sy === 1){\r\n this.ir = PropertyFactory.getProp(elem,data.ir,0,0,this);\r\n this.is = PropertyFactory.getProp(elem,data.is,0,0.01,this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem,data.pt,0,0,this);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.r = PropertyFactory.getProp(elem,data.r,0,degToRads,this);\r\n this.or = PropertyFactory.getProp(elem,data.or,0,0,this);\r\n this.os = PropertyFactory.getProp(elem,data.os,0,0.01,this);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n };\r\n\r\n StarShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function() {\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if(this._mdf){\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function() {\r\n var numPts = Math.floor(this.pt.v)*2;\r\n var angle = Math.PI*2/numPts;\r\n /*this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts;*/\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2*Math.PI*longRad/(numPts*2);\r\n var shortPerimSegment = 2*Math.PI*shortRad/(numPts*2);\r\n var i, rad,roundness,perimSegment, currentAng = -Math.PI/ 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for(i=0;i= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function(pathsData) {\r\n var i, len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segments_length_pool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var s, e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;\r\n e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;\r\n if (s === e) {\r\n\r\n }\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i, len = this.shapes.length, j, jLen;\r\n var pathsData, pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n 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 13:\r\n return this.createCamera(layer);\r\n }\r\n return this.createNull(layer);\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function(){\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if(this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newElement = element.getBaseElement();\r\n if(!newElement){\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while(ielementRel && fillType === 'meet' || animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))/2*this.renderConfig.dpr;\r\n } else if(xPos === 'xMax' && ((animationRelelementRel && fillType === 'slice'))){\r\n this.transformCanvas.tx = (elementWidth-this.transformCanvas.w*(elementHeight/this.transformCanvas.h))*this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.tx = 0;\r\n }\r\n if(yPos === 'YMid' && ((animationRel>elementRel && fillType==='meet') || (animationRelelementRel && fillType==='meet') || (animationRel= 0; i-=1) {\r\n if(this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function(num, forceRender){\r\n if((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1){\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i, len = this.layers.length;\r\n if(!this.completeLayers){\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i++) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if(this.globalData._mdf) {\r\n if(this.renderConfig.clearCanvas === true){\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n }else{\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i-=1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if(this.renderConfig.clearCanvas !== true){\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function(pos){\r\n var elements = this.elements;\r\n if(elements[pos] || this.layers[pos].ty == 99){\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this,this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /*if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n }*/\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function(){\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function(){\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\nfunction HybridRenderer(animationItem, config){\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: (config && config.hideOnTransparent === false) ? false : true,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%',\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n\r\n}\r\n\r\nextendPrototype([BaseRenderer],HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function(){\r\n while(this.pendingElements.length){\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newDOMElement = element.getBaseElement();\r\n if(!newDOMElement){\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if(!layer.ddd || !this.supports3d){\r\n if(this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement,pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement, nextLayer, tmpDOMElement;\r\n while(i= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.createThreeDContainer = function(pos, type){\r\n var perspectiveElem = createTag('div');\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n if(type === '3d') {\r\n perspectiveElem.style.width = this.globalData.compSize.w+'px';\r\n perspectiveElem.style.height = this.globalData.compSize.h+'px';\r\n perspectiveElem.style.transformOrigin = perspectiveElem.style.mozTransformOrigin = perspectiveElem.style.webkitTransformOrigin = \"50% 50%\";\r\n container.style.transform = container.style.webkitTransform = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n }\r\n \r\n perspectiveElem.appendChild(container);\r\n //this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container:container,\r\n perspectiveElem:perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function(){\r\n var i, len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n for(i=0;i= 0; i --) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.addTo3dContainer = function(elem,pos){\r\n var i = 0, len = this.threeDElements.length;\r\n while(ielementRel){\r\n sx = elementWidth/(this.globalData.compSize.w);\r\n sy = elementWidth/(this.globalData.compSize.w);\r\n tx = 0;\r\n ty = ((elementHeight-this.globalData.compSize.h*(elementWidth/this.globalData.compSize.w))/2);\r\n }else{\r\n sx = elementHeight/(this.globalData.compSize.h);\r\n sy = elementHeight/(this.globalData.compSize.h);\r\n tx = (elementWidth-this.globalData.compSize.w*(elementHeight/this.globalData.compSize.h))/2;\r\n ty = 0;\r\n }\r\n this.resizerElem.style.transform = this.resizerElem.style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,'+sy+',0,0,0,0,1,0,'+tx+','+ty+',0,1)';\r\n};\r\n\r\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function(){\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function(){\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function(){\r\n this.buildAllItems();\r\n if(this.camera){\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i, len = this.threeDElements.length;\r\n for(i=0;i 0){\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function(pos){\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\r\n if(this.viewData[i].prop._mdf || isFirstFrame){\r\n this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);\r\n }\r\n if(this.viewData[i].op._mdf || isFirstFrame){\r\n this.viewData[i].elem.setAttribute('fill-opacity',this.viewData[i].op.v);\r\n }\r\n if(this.masksProperties[i].mode !== 'n'){\r\n if(this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)){\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS())\r\n }\r\n if(this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)){\r\n var feMorph = this.storedData[i].expan;\r\n if(this.storedData[i].x.v < 0){\r\n if(this.storedData[i].lastOperator !== 'erode'){\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter','url(' + locationHref + '#'+this.storedData[i].filterId+')');\r\n }\r\n feMorph.setAttribute('radius',-this.storedData[i].x.v);\r\n }else{\r\n if(this.storedData[i].lastOperator !== 'dilate'){\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter',null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);\r\n\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function(){\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w ;\r\n path += ' v' + this.globalData.compSize.h ;\r\n path += ' h-' + this.globalData.compSize.w ;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function(pathData,pathNodes,viewData){\r\n var pathString = \" M\"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n var i, len;\r\n len = pathNodes._length;\r\n for(i=1;i 1){\r\n pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n }\r\n //pathNodes.__renderedString = pathString;\r\n\r\n if(viewData.lastPath !== pathString){\r\n var pathShapeValue = '';\r\n if(viewData.elem){\r\n if(pathNodes.c){\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d',pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file \r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement(){}\r\n\r\nHierarchyElement.prototype = {\r\n\t/**\r\n * @function \r\n * Initializes hierarchy properties\r\n *\r\n */\r\n\tinitHierarchy: function() {\r\n\t\t//element's parent list\r\n\t this.hierarchy = [];\r\n\t //if element is parent of another layer _isParent will be true\r\n\t this._isParent = false;\r\n\t this.checkParenting();\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */ \r\n\tsetHierarchy: function(hierarchy){\r\n\t this.hierarchy = hierarchy;\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer as parent.\r\n *\r\n */ \r\n\tsetAsParent: function() {\r\n\t this._isParent = true;\r\n\t},\r\n\t/**\r\n * @function \r\n * Searches layer's parenting chain\r\n *\r\n */ \r\n\tcheckParenting: function(){\r\n\t if (this.data.parent !== undefined){\r\n\t this.comp.buildElementParenting(this, this.data.parent, []);\r\n\t }\r\n\t}\r\n};\r\n/**\r\n * @file \r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement(){}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function(){\r\n //set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n //list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function \r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n * \r\n */\r\n prepareProperties: function(num, isVisible) {\r\n var i, len = this.dynamicProperties.length;\r\n for (i = 0;i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function(prop) {\r\n if(this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n};\r\nfunction TransformElement(){}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {o:0},\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n //TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n //this.createElements();\r\n }\r\n },\r\n renderTransform: function() {\r\n\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0, len = this.hierarchy.length;\r\n //Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n \r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i, len = transforms.length,ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n //ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n};\r\nfunction RenderableElement(){\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function() {\r\n //layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n //layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n //list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function(){\r\n if(this.finalTransform.mProp.o.v <= 0) {\r\n if(!this.isTransparent && this.globalData.renderConfig.hideOnTransparent){\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if(this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * \r\n */\r\n checkLayerLimits: function(num) {\r\n if(this.data.ip - this.data.st <= num && this.data.op - this.data.st > num)\r\n {\r\n if(this.isInRange !== true){\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else {\r\n if(this.isInRange !== false){\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n }\r\n },\r\n renderRenderable: function() {\r\n var i, len = this.renderableComponents.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /*this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame);*/\r\n },\r\n sourceRectAtTime: function(){\r\n return {\r\n top:0,\r\n left:0,\r\n width:100,\r\n height:100\r\n };\r\n },\r\n getLayerSize: function(){\r\n if(this.data.ty === 5){\r\n return {w:this.data.textData.width,h:this.data.textData.height};\r\n }else{\r\n return {w:this.data.width,h:this.data.height};\r\n }\r\n }\r\n};\r\nfunction RenderableDOMElement() {}\r\n\r\n(function(){\r\n var _prototype = {\r\n initElement: function(data,globalData,comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function(){\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function(){\r\n if (this.isInRange && !this.isTransparent){\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function() {\r\n //If it is exported as hidden (data.hd === true) no need to render\r\n //If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function() {},\r\n prepareFrame: function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function(){\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\nfunction ProcessedElement(element, position) {\r\n\tthis.elem = element;\r\n\tthis.pos = position;\r\n}\r\nfunction SVGStyleData(data, level) {\r\n\tthis.data = data;\r\n\tthis.type = data.ty;\r\n\tthis.d = '';\r\n\tthis.lvl = level;\r\n\tthis._mdf = false;\r\n\tthis.closed = data.hd === true;\r\n\tthis.pElem = createNS('path');\r\n\tthis.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function() {\r\n\tthis.d = '';\r\n\tthis._mdf = false;\r\n};\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n //TODO find if there are some cases where _isAnimated can be false. \r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0, len = transformers.length;\r\n while(i < len) {\r\n \tif(transformers[i].mProps.dynamicProperties.length) {\r\n \t\tthis._isAnimated = true;\r\n \t\tbreak;\r\n \t}\r\n \ti += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function() {\r\n this._isAnimated = true;\r\n}\r\nfunction SVGTransformData(mProps, op, container) {\r\n\tthis.transform = {\r\n\t\tmProps: mProps,\r\n\t\top: op,\r\n\t\tcontainer: container\r\n\t};\r\n\tthis.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\r\nfunction SVGStrokeStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.w = PropertyFactory.getProp(elem,data.w,0,null,this);\r\n\tthis.d = new DashProperty(elem,data.d||{},'svg',this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\nfunction SVGFillStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\nfunction SVGGradientFillStyleData(elem, data, styleOb){\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function(elem, data, styleOb){\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,null,this);\r\n this.e = PropertyFactory.getProp(elem,data.e,1,null,this);\r\n this.h = PropertyFactory.getProp(elem,data.h||{k:0},0,0.01,this);\r\n this.a = PropertyFactory.getProp(elem,data.a||{k:0},0,degToRads,this);\r\n this.g = new GradientProperty(elem,data.g,this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function(pathElement,data){\r\n\r\n var gradientId = createElementID();\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id',gradientId);\r\n gfill.setAttribute('spreadMethod','pad');\r\n gfill.setAttribute('gradientUnits','userSpaceOnUse');\r\n var stops = [];\r\n var stop, j, jLen;\r\n jLen = data.g.p*4;\r\n for(j=0;j 0) {\r\n\t redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t if(redraw) {\r\n\t iterations = lvl - itemData.styles[l].lvl;\r\n\t k = itemData.transformers.length-1;\r\n\t while(iterations > 0) {\r\n\t props = itemData.transformers[k].mProps.v.props;\r\n\t mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t }\r\n\t } else {\r\n\t mat = _identityMatrix;\r\n\t }\r\n\t paths = itemData.sh.paths;\r\n\t jLen = paths._length;\r\n\t if(redraw){\r\n\t pathStringTransformed = '';\r\n\t for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n\t var dist = rad * percent;\r\n\t var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n\t var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n\t gfill.setAttribute('fx', x);\r\n\t gfill.setAttribute('fy', y);\r\n\t if (hasOpacity && !itemData.g._collapsable) {\r\n\t itemData.of.setAttribute('fx', x);\r\n\t itemData.of.setAttribute('fy', y);\r\n\t }\r\n\t }\r\n\t //gfill.setAttribute('fy','200');\r\n\t }\r\n\t};\r\n\r\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\r\n\t var styleElem = itemData.style;\r\n\t var d = itemData.d;\r\n\t if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n\t styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n\t styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n\t }\r\n\t if(itemData.c && (itemData.c._mdf || isFirstFrame)){\r\n\t styleElem.pElem.setAttribute('stroke','rgb(' + bm_floor(itemData.c.v[0]) + ',' + bm_floor(itemData.c.v[1]) + ',' + bm_floor(itemData.c.v[2]) + ')');\r\n\t }\r\n\t if(itemData.o._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n\t }\r\n\t if(itemData.w._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\t if(styleElem.msElem){\r\n\t styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n\t }\r\n\t }\r\n\t};\r\n\r\n\treturn ob;\r\n}())\r\nfunction ShapeTransformManager() {\r\n\tthis.sequences = {};\r\n\tthis.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n\taddTransformSequence: function(transforms) {\r\n\t\tvar i, len = transforms.length;\r\n\t\tvar key = '_';\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tkey += transforms[i].transform.key + '_';\r\n\t\t}\r\n\t\tvar sequence = this.sequences[key];\r\n\t\tif(!sequence) {\r\n\t\t\tsequence = {\r\n\t\t\t\ttransforms: [].concat(transforms),\r\n\t\t\t\tfinalTransform: new Matrix(),\r\n\t\t\t\t_mdf: false\r\n\t\t\t};\r\n\t\t\tthis.sequences[key] = sequence;\r\n\t\t\tthis.sequenceList.push(sequence);\r\n\t\t}\r\n\t\treturn sequence;\r\n\t},\r\n\tprocessSequence: function(sequence, isFirstFrame) {\r\n\t\tvar i = 0, len = sequence.transforms.length, _mdf = isFirstFrame;\r\n\t\twhile (i < len && !isFirstFrame) {\r\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\r\n\t\t\t\t_mdf = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\ti += 1\r\n\t\t}\r\n\t\tif (_mdf) {\r\n\t\t\tvar props;\r\n\t\t\tsequence.finalTransform.reset();\r\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\r\n\t\t props = sequence.transforms[i].transform.mProps.v.props;\r\n\t\t sequence.finalTransform.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tsequence._mdf = _mdf;\r\n\t\t\r\n\t},\r\n\tprocessSequences: function(isFirstFrame) {\r\n\t\tvar i, len = this.sequenceList.length;\r\n\t\tfor (i = 0; i < len; i += 1) {\r\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\r\n\t\t}\r\n\r\n\t},\r\n\tgetNewKey: function() {\r\n\t\treturn '_' + this.transform_key_count++;\r\n\t}\r\n}\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0,0,0,0,0,0];\r\n var ty = 4;\r\n if(data.ty == 'rc'){\r\n ty = 5;\r\n }else if(data.ty == 'el'){\r\n ty = 6;\r\n }else if(data.ty == 'sr'){\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element,data,ty,element);\r\n var i , len = styles.length,styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: []\r\n }\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\nfunction BaseElement(){\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function(){\r\n if(!this.data.hasMask){\r\n return false;\r\n }\r\n var i = 0, len = this.data.masksProperties.length;\r\n while(i=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n }\r\n },\r\n lcEnum: {\r\n '1': 'butt',\r\n '2': 'round',\r\n '3': 'square'\r\n },\r\n ljEnum: {\r\n '1': 'miter',\r\n '2': 'round',\r\n '3': 'bevel'\r\n },\r\n searchProcessedElement: function(elem){\r\n var elements = this.processedElements;\r\n var i = 0, len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function(elem, pos){\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while(i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n};\r\nfunction ITextElement(){\r\n}\r\n\r\nITextElement.prototype.initElement = function(data,globalData,comp){\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if(this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function(matrixHelper, shapes) {\r\n var j,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if(this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function() {\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i += 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function(elems){\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function(){\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function(){\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function(){\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\nfunction IImageElement(data,globalData,comp){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data,globalData,comp);\r\n this.sourceRect = {top:0,left:0,width:this.assetData.w,height:this.assetData.h};\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function(){\r\n\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width',this.assetData.w+\"px\");\r\n this.innerElem.setAttribute('height',this.assetData.h+\"px\");\r\n this.innerElem.setAttribute('preserveAspectRatio',this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);\r\n \r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function() {\r\n\treturn this.sourceRect;\r\n}\r\nfunction ISolidElement(data,globalData,comp){\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function(){\r\n\r\n var rect = createNS('rect');\r\n ////rect.style.width = this.data.sw;\r\n ////rect.style.height = this.data.sh;\r\n ////rect.style.fill = this.data.sc;\r\n rect.setAttribute('width',this.data.sw);\r\n rect.setAttribute('height',this.data.sh);\r\n rect.setAttribute('fill',this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\nfunction SVGCompElement(data,globalData,comp){\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n //this.layerElement = createNS('g');\r\n this.initElement(data,globalData,comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate,this) : {_placeholder:true};\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\nfunction SVGTextElement(data,globalData,comp){\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data,globalData,comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement], SVGTextElement);\r\n\r\nSVGTextElement.prototype.createContent = function(){\r\n\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextElement.prototype.buildTextContents = function(textArray) {\r\n var i = 0, len = textArray.length;\r\n var textContents = [], currentTextContent = '';\r\n while (i < len) {\r\n if(textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n}\r\n\r\nSVGTextElement.prototype.buildNewText = function(){\r\n var i, len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if(documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n }else{\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if(documentData.sc){\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if(fontData.fClass){\r\n this.layerElement.setAttribute('class',fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight, fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes, shapeStr = '', singleShape = this.data.singleShape;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n if(singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch(documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor',justify);\r\n tElement.setAttribute('letter-spacing',trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for ( i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n \r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData, charData;\r\n for (i = 0; i < len; i += 1) {\r\n if(!usesGlyphs || !singleShape || i === 0){\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs?'path':'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin','round');\r\n tSpan.setAttribute('stroke-miterlimit','4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n \r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if(letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n //xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if(usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if(!singleShape){\r\n tSpan.setAttribute('d',this.createPathShape(matrixHelper,shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper,shapes);\r\n }\r\n } else {\r\n if(singleShape) {\r\n tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\",\"preserve\");\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d',shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length){\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n \r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextElement.prototype.sourceRectAtTime = function(time){\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if(this._sizeChanged){\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextElement.prototype.renderInnerContent = function(){\r\n\r\n if(!this.data.singleShape){\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if(this.lettersChangedFlag || this.textAnimator.lettersChangedFlag){\r\n this._sizeChanged = true;\r\n var i,len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter, textSpan;\r\n for(i=0;i 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function(shapes){\r\n var i, len = shapes.length;\r\n for(i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.createStyleElement = function(data, level){\r\n //TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if(data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if(data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if(data.ty === 'gf' || data.ty === 'gs') {\r\n var gradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new gradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask','url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n \r\n if(data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', this.lcEnum[data.lc] || 'round');\r\n pathElement.setAttribute('stroke-linejoin',this.ljEnum[data.lj] || 'round');\r\n pathElement.setAttribute('fill-opacity','0');\r\n if(data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit',data.ml);\r\n }\r\n }\r\n\r\n if(data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if(data.ln){\r\n pathElement.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n pathElement.setAttribute('class',data.cl);\r\n }\r\n if(data.bm){\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function(data) {\r\n var elementData = new ShapeGroupData();\r\n if(data.ln){\r\n elementData.gr.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n elementData.gr.setAttribute('class',data.cl);\r\n }\r\n if(data.bm){\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function(data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this,data,this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function(data, ownTransformers, level) {\r\n var ty = 4;\r\n if(data.ty === 'rc'){\r\n ty = 5;\r\n }else if(data.ty === 'el'){\r\n ty = 6;\r\n }else if(data.ty === 'sr'){\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this,data,ty,this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function(data, element) {\r\n var i = 0, len = this.animatedContents.length;\r\n while(i < len) {\r\n if(this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function(elementData){\r\n var arr = elementData.styles;\r\n var j, jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function(){\r\n this._isFirstFrame = true;\r\n var i, len = this.itemsData.length;\r\n for( i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function(arr,itemsData,prevViewData,container, level, transformers, render){\r\n var ownTransformers = [].concat(transformers);\r\n var i, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], styleOb, currentTransform, modifier, processedPos;\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma;\r\n var sigmaY = (dimensions == 2) ? 0 : sigma;\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + \" \" + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate';\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n}\r\nfunction SVGStrokeEffect(elem, filterManager){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function(){\r\n\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path,groupPath, i, len;\r\n if(this.filterManager.effectElements[1].p.v === 1){\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g'); \r\n groupPath.setAttribute('fill','none');\r\n groupPath.setAttribute('stroke-linecap','round');\r\n groupPath.setAttribute('stroke-dashoffset',1);\r\n for(i;i= max){\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos++] = colorValue;\r\n cnt += 256/(segments-1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n var val, cnt, perc, bezier;\r\n var effectElements = this.filterManager.effectElements;\r\n if(this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)){\r\n val = this.getTableValue(effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v,effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues',val);\r\n this.feFuncGComposed.setAttribute('tableValues',val);\r\n this.feFuncBComposed.setAttribute('tableValues',val);\r\n }\r\n\r\n\r\n if(this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)){\r\n val = this.getTableValue(effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v,effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)){\r\n val = this.getTableValue(effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v,effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)){\r\n val = this.getTableValue(effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v,effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)){\r\n val = this.getTableValue(effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v,effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues',val);\r\n }\r\n \r\n }\r\n};\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in','SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n if(forceRender || this.filterManager.effectElements[4].p._mdf){\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if(forceRender || this.filterManager.effectElements[0].p._mdf){\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));\r\n }\r\n if(forceRender || this.filterManager.effectElements[1].p._mdf){\r\n this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);\r\n }\r\n if(forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf){\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /*if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n }*/\r\n }\r\n};\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function(mask) {\r\n var i = 0, len = _svgMatteSymbols.length;\r\n while(i < len) {\r\n if(_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function(mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if(!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0, len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if(nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {\r\n if(!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function() {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0, len = elements.length;\r\n while (i < len) {\r\n \tif (elements[i] && elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n};\r\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i canvasRel && par === 'xMidYMid slice') || (imgRel < canvasRel && par !== 'xMidYMid slice')) {\r\n heightCrop = imgH;\r\n widthCrop = heightCrop*canvasRel;\r\n } else {\r\n widthCrop = imgW;\r\n heightCrop = widthCrop/canvasRel;\r\n }\r\n ctx.drawImage(this.img,(imgW-widthCrop)/2,(imgH-heightCrop)/2,widthCrop,heightCrop,0,0,this.assetData.w,this.assetData.h);\r\n this.img = canvas;\r\n }\r\n\r\n};\r\n\r\nCVImageElement.prototype.renderInnerContent = function(parentMatrix){\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function(){\r\n this.img = null;\r\n};\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate, this) : {_placeholder:true};\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function() {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function(){\r\n var i,len = this.layers.length;\r\n for( i = len - 1; i >= 0; i -= 1 ){\r\n if(this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\nfunction CVMaskElement(data,element){\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i, len = this.masksProperties.length, hasMasks = false;\r\n for (i = 0; i < len; i++) {\r\n if(this.masksProperties[i].mode !== 'n'){\r\n hasMasks = true;\r\n }\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element,this.masksProperties[i],3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if(hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if(!this.hasMasks){\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i, len = this.masksProperties.length;\r\n var pt,pts,data;\r\n ctx.beginPath();\r\n for (i = 0; i < len; i++) {\r\n if(this.masksProperties[i].mode !== 'n'){\r\n if (this.masksProperties[i].inv) {\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, 0);\r\n ctx.lineTo(this.element.globalData.compSize.w, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, this.element.globalData.compSize.h);\r\n ctx.lineTo(0, 0);\r\n }\r\n data = this.viewData[i].v;\r\n pt = transform.applyToPointArray(data.v[0][0],data.v[0][1],0);\r\n ctx.moveTo(pt[0], pt[1]);\r\n var j, jLen = data._length;\r\n for (j = 1; j < jLen; j++) {\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[j], data.v[j]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n};\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,CVBaseElement,IShapeElement,HierarchyElement,FrameElement,RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = {opacity:1,_opMdf:false};\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function(){\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function(data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true\r\n };\r\n var elementData = {};\r\n if(data.ty == 'fl' || data.ty == 'st'){\r\n elementData.c = PropertyFactory.getProp(this,data.c,1,255,this);\r\n if(!elementData.c.k){\r\n styleElem.co = 'rgb('+bm_floor(elementData.c.v[0])+','+bm_floor(elementData.c.v[1])+','+bm_floor(elementData.c.v[2])+')';\r\n }\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n elementData.s = PropertyFactory.getProp(this,data.s,1,null,this);\r\n elementData.e = PropertyFactory.getProp(this,data.e,1,null,this);\r\n elementData.h = PropertyFactory.getProp(this,data.h||{k:0},0,0.01,this);\r\n elementData.a = PropertyFactory.getProp(this,data.a||{k:0},0,degToRads,this);\r\n elementData.g = new GradientProperty(this,data.g,this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this,data.o,0,0.01,this);\r\n if(data.ty == 'st' || data.ty == 'gs') {\r\n styleElem.lc = this.lcEnum[data.lc] || 'round';\r\n styleElem.lj = this.ljEnum[data.lj] || 'round';\r\n if(data.lj == 1) {\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this,data.w,0,null,this);\r\n if(!elementData.w.k){\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if(data.d){\r\n var d = new DashProperty(this,data.d,'canvas', this);\r\n elementData.d = d;\r\n if(!elementData.d.k){\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function(data) {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function(data) {\r\n var elementData = {\r\n transform : {\r\n opacity: 1,\r\n _opMdf:false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this,data.o,0,0.01,this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this,data,this)\r\n }\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function(data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n \r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function() {\r\n this._isFirstFrame = true;\r\n var i, len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function(transform) {\r\n var i, len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if(!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function() {\r\n var i, len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if(!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.closeStyles = function(styles) {\r\n var i, len = styles.length, j, jLen;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.searchShapes = function(arr,itemsData, prevViewData, shouldRender, transforms){\r\n var i, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], processedPos, modifier, currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st'|| arr[i].ty == 'gf'|| arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n \r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j=0;i-=1){\r\n if(items[i].ty == 'tr'){\r\n groupTransform = data[i].transform;\r\n this.renderShapeTransform(parentTransform, groupTransform);\r\n }else if(items[i].ty == 'sh' || items[i].ty == 'el' || items[i].ty == 'rc' || items[i].ty == 'sr'){\r\n this.renderPath(items[i],data[i]);\r\n }else if(items[i].ty == 'fl'){\r\n this.renderFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'st'){\r\n this.renderStroke(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gf' || items[i].ty == 'gs'){\r\n this.renderGradientFill(items[i],data[i],groupTransform);\r\n }else if(items[i].ty == 'gr'){\r\n this.renderShape(groupTransform,items[i].it,data[i].it);\r\n }else if(items[i].ty == 'tm'){\r\n //\r\n }\r\n }\r\n if(isMain){\r\n this.drawLayer();\r\n }\r\n \r\n};\r\n\r\nCVShapeElement.prototype.renderStyledShape = function(styledShape, shape){\r\n if(this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i, len, j, jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if(pathNodes && pathNodes.v){\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i])\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0)\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0])\r\n });\r\n shapeNodes.push({\r\n t: 'z'\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n}\r\n\r\nCVShapeElement.prototype.renderPath = function(pathData,itemData){\r\n if(pathData.hd !== true && pathData._shouldRender) {\r\n var i, len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' \r\n + bm_floor(itemData.c.v[0]) + ',' \r\n + bm_floor(itemData.c.v[1]) + ',' \r\n + bm_floor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n if(!styleElem.grd || itemData.g._mdf || itemData.s._mdf || itemData.e._mdf || (styleData.t !== 1 && (itemData.h._mdf || itemData.a._mdf))) {\r\n var ctx = this.globalData.canvasContext;\r\n var grd;\r\n var pt1 = itemData.s.v, pt2 = itemData.e.v;\r\n if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v >= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n var dist = rad * percent;\r\n var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n var grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i, len = styleData.g.p;\r\n var cValues = itemData.g.c;\r\n var opacity = 1;\r\n\r\n for (i = 0; i < len; i += 1){\r\n if(itemData.g._hasOpacity && itemData.g._collapsable) {\r\n opacity = itemData.g.o[i*2 + 1];\r\n }\r\n grd.addColorStop(cValues[i * 4] / 100,'rgba('+ cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ','+cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v*groupTransform.opacity;\r\n \r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function(styleData,itemData, groupTransform){\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if(d && (d._mdf || this._isFirstFrame)){\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if(itemData.c._mdf || this._isFirstFrame){\r\n styleElem.co = 'rgb('+bm_floor(itemData.c.v[0])+','+bm_floor(itemData.c.v[1])+','+bm_floor(itemData.c.v[2])+')';\r\n }\r\n if(itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame){\r\n styleElem.coOp = itemData.o.v*groupTransform.opacity;\r\n }\r\n if(itemData.w._mdf || this._isFirstFrame){\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\n\r\nCVShapeElement.prototype.destroy = function(){\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function() {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\nfunction CVTextElement(data, globalData, comp){\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: ''\r\n };\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([BaseElement,TransformElement,CVBaseElement,HierarchyElement,FrameElement,RenderableElement,ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function(){\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if(documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n }else{\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if(documentData.sc){\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i, len;\r\n var letters = documentData.l;\r\n var matrixHelper = this.mHelper;\r\n this.stroke = hasStroke;\r\n this.values.fValue = documentData.finalSize + 'px '+ this.globalData.fontManager.getFontByName(documentData.f).fFamily;\r\n len = documentData.finalText.length;\r\n //this.tHelper.font = this.values.fValue;\r\n var charData, shapeData, k, kLen, shapes, j, jLen, pathNodes, commands, pathArr, singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var cnt = 0;\r\n for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n matrixHelper.reset();\r\n if(singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize/100,documentData.finalSize/100);\r\n if(singleShape){\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for(j=0;j