{"version":3,"sources":["node_modules/tslib/tslib.es6.js","src/js/components/AbstractComponent.ts","src/js/components/LanguageSelector.ts","src/js/scrollbar/ModalPlugin.ts","src/js/Page.ts","src/js/components/SlidingPageHead.ts","src/js/components/BirdsEyeView.ts","node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","src/js/components/MobileMenu.ts","node_modules/typewriter-effect/dist/core.js","src/js/components/Typewriter.ts","node_modules/lottie-web/build/player/lottie.js","src/js/components/Lottie.ts","src/js/components/Footer.ts","src/js/components/Modals.ts","src/js/components/Slider.ts","src/js/components/Steps.ts","src/js/components/Faq.ts","src/js/main.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","this","constructor","prototype","create","AbstractComponent","setScrollbarController","scrollbarController","createAnimationScenes","onWindowResize","lastSize","BREAKPOINT_SM","BREAKPOINT_MD","BREAKPOINT_LG","BREAKPOINT_XL","LanguageSelector","_super","initialize","_this","$dropdowns","document","querySelectorAll","$toggles","forEach","call","$toggle","addEventListener","event","onToggleClick","body","onBodyClick","window","$dropdown","positionDropdown","isOpen","width","innerWidth","classList","remove","style","display","opacity","preventDefault","close","open","clickedOnSafeElement","className","$target","target","tagName","toLowerCase","contains","parentElement","add","setTimeout","DURATION_OPACITY","$flag","querySelector","y","flagRect","getBoundingClientRect","dropdownSize","$pointer","x","DISTANCE_FROM_RIGHT","height","DISTANCE_FROM_TOGGLE","scrollY","top","left","Math","abs","apply","arguments","ModalPlugin","ScrollbarPlugin","transformDelta","delta","options","pluginName","defaultOptions","Page","addComponent","component","_a","name","scene","addTo","scrollMagicController","scenes","push","components","destroy","lastPageSize","innerHeight","onScrollbarScroll","refresh","IS_TOUCH_DEVICE","matchMedia","matches","Scrollbar","use","scrollTop","ScrollMagic.Controller","refreshInterval","$pageWrapper","init","addListener","resizeTimeout","undefined","clearTimeout","SlidingPageHead","$overlayPageHeadContent","$overlayPageHead","$revealPageHead","$endTrigger","$hamburger","$page","$headerHoverItems","calculateValues","onWindowScroll","status","$headerHoverItem","$element","getAttribute","update","offset","slidingEndY","pageStartY","position","triggerHeight","windowHeight","DISTANCE_PAGE_HEAD_AND_CONTENT_MOBILE","DISTANCE_PAGE_HEAD_AND_CONTENT_DESKTOP","paddingTop","BirdsEyeView","$outerWrapper","$innerWrapper","setWrapperSettings","ScrollMagic.Scene","triggerElement","triggerHook","duration","DURATION","setPin","setTween","gsap","timeline","fromTo","ease","scrollWidth","on","innerWrapperTop","outerWrapperTop","offsetTop","_toConsumableArray","arr","isArray","i","arr2","length","from","hasPassiveEvents","passiveTestOptions","passive","removeEventListener","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPaddingRight","allowTouchMove","el","some","lock","rawEvent","e","touches","setOverflowHidden","_reserveScrollBarGap","scrollBarGap","reserveScrollBarGap","documentElement","clientWidth","paddingRight","overflow","restoreOverflowSetting","isTargetElementTotallyScrolled","targetElement","scrollHeight","clientHeight","handleScroll","clientY","targetTouches","stopPropagation","disableBodyScroll","console","error","concat","ontouchstart","ontouchmove","_lock","enableBodyScroll","filter","MobileMenu","$content","$drawer","closeDrawer","openDrawer","isOpeningOrClosing","updatePluginOptions","DURATION_DRAWER_EXPAND","DURATION_DRAWER_CONTENT_OPACITY","module","exports","t","n","r","o","l","m","c","defineProperty","enumerable","get","Symbol","toStringTag","value","__esModule","bind","default","s","a","u","max","slice","cancelled","callback","round","handle","cancel","polyfill","requestAnimationFrame","cancelAnimationFrame","C","RegExp","createElement","innerHTML","childNodes","floor","random","f","v","h","g","w","E","T","keys","getOwnPropertySymbols","getOwnPropertyDescriptor","A","O","getOwnPropertyDescriptors","defineProperties","S","iterator","toString","TypeError","configurable","writable","cursorAnimation","lastFrameTime","pauseUntil","eventQueue","eventLoop","eventLoopPaused","reverseCalledEvents","calledEvents","visibleNodes","initialOptions","elements","container","wrapper","cursor","strings","delay","deleteSpeed","loop","autoStart","devMode","skipAddStyles","wrapperClassName","cursorClassName","stringSplitter","state","appendChild","runEventLoop","addEventToQueue","ms","typeString","pauseFor","deleteAll","typeOutHTMLString","split","typeCharacters","character","node","nodeType","parentNode","pasteString","textContent","speed","Error","cb","thisArg","addEventToStateProperty","eventName","eventArgs","Date","now","shift","logInDevMode","currentEvent","_","createTextNode","type","unshift","removingCharacterNode","N","parseInt","L","M","D","j","P","k","Q","R","temp","H","F","U","q","G","I","pop","removeChild","key","setupWrapperElement","___TYPEWRITER_JS_STYLES_ADDED___","head","typeOutAllStrings","start","log","Function","performance","hrtime","uptime","getTime","run","fun","array","nextTick","title","browser","env","argv","version","versions","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","Typewriter","$typewriter","startY","hasStarted","startTyping","typewriterRect","OFFSET_FROM_TOP","typewriter","TypewriterEffect","TYPEWRITER_DELAY","commands","segment","root","factory","svgNS","locationHref","initialDefaultFrame","subframeEnabled","expressionsPlugin","isSafari","userAgent","bm_pow","pow","bm_sqrt","sqrt","bm_floor","bm_max","bm_min","min","BMMath","ProjectInterface","propertyNames","len","val","absArr","createSizedArray","defaultCurveSegments","degToRads","PI","roundCorner","styleDiv","element","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","color","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","BaseEvent","triggerEvent","args","_cbs","splice","createTypedArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","indexOf","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","mode","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","rotate","rotateX","rotateY","rotateZ","skew","skewFromAxis","shear","scale","setTransform","translate","transform","applyToPoint","applyToX","applyToY","applyToZ","applyToPointArray","applyToTriplePoints","applyToPointStringified","toCSS","to2dCSS","clone","cloneFromProps","equals","inversePoints","inversePoint","getInverseMatrix","_t","isIdentity","_identity","_identityCalculated","props","angle","mCos","mSin","sx","sy","ax","ay","sz","tx","ty","tz","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","matr","z","determinant","inverseMatrix","pt","pts","retPts","pt1","pt2","pt3","p0","p4","p5","p12","p13","cssValue","roundMatrixProperty","pool","math","nodecrypto","global","chunks","rngname","startdenom","significance","mask","ARC4","keylen","me","count","copy","mixkey","seed","smear","stringseed","charCodeAt","tostring","String","fromCharCode","prng","arc4","shortseed","flatten","obj","depth","result","typ","entropy","randomBytes","out","Uint8Array","crypto","msCrypto","getRandomValues","plugins","screen","autoseed","int32","quick","double","pass","is_math_call","BezierFactory","ob","getBezierEasing","nm","str","replace","beziers","bezEasing","BezierEasing","kSplineTableSize","kSampleStepSize","float32ArraySupported","mX1","mY1","mX2","mY2","_precomputed","_precompute","calcBezier","_getTForX","_calcSampleValues","_mSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","getSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","aA1","aA2","B","aT","points","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","object","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","flag","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","dist1","dist2","dist3","diffDist","lastTime","vendors","currTime","timeToCall","id","bez","dataFunctionManager","completeLayers","layers","comps","fontManager","layerData","kLen","data","completed","tt","td","hasMask","maskProps","masksProperties","jLen","convertPathsToAbsoluteValues","__used","JSON","parse","stringify","findCompLayers","refId","completeShapes","ks","it","shapes","singleShape","path","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","animationData","iterateLayers","assets","textLayer","documentData","checkChars","chars","pathData","paths","__converted","checkColors","iterateShapes","checkShapes","cl","moduleOb","completeData","__complete","dataManager","FontManager","emptyChar","size","combinedCharacters","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","join","trimFontOptions","parent","Font","fonts","typekitLoaded","isLoaded","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","getCombinedCharacterCodes","addChars","found","fFamily","ch","addFonts","fontData","defs","list","def","tHelper","fontArr","_pendingFonts","loadedSelector","sc","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","origin","setAttribute","href","rel","src","helper","fStyle","fWeight","fClass","getContext","cache","getCharData","char","warn","getFontByName","fName","measureText","fontName","doubleSize","singleSize","index","getComputedTextLength","loadedCount","PropertyFactory","initFrame","math_abs","getProp","elem","mult","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","ValueProperty","effectsSequence","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","fnc","iterationIndex","lastIndex","keyframes","quat","qx","qy","qz","qw","heading","attitude","bank","nextKeyTime","keyTime","to","ti","ind","__fnct","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quatStart","quatEnd","endValue","sh","createQuaternion","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","atan2","asin","values","c3","s1","s2","s3","getValueAtCurrentTime","renderResult","comp","renderedFrame","endTime","_caching","setVValue","multipliedValue","processEffectsSequence","globalData","frameId","_isFirstFrame","finalValue","kf","addEffect","effectFunction","vel","st","arrLen","TransformPropertyFactory","defaultVector","TransformProperty","applyToMatrix","mat","sk","sa","rz","ry","rx","or","px","py","pz","forceRender","v1","v2","frameRate","_isDirty","precalculateMatrix","pre","appliedTransformations","autoOriented","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","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","isHold","vertexValue","keyPropE","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","cPoint","EllShapeProperty","convertEllToPath","s0","_cw","_v","StarShapeProperty","convertToPath","convertStarToPath","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","ir","longRound","os","shortRound","is","longPerimSegment","shortPerimSegment","currentAng","ox","oy","convertPolygonToPath","RectShapeProperty","convertRectToPath","v0","getShapeProp","getConstructorFunction","getKeyframedConstructorFunction","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","shapeS","shapeE","segmentOb","shapeSegments","releasePathsData","release","processShapes","_s","shapePaths","totalShapeLength","edges","lastShape","newShapesData","addShapes","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","segmentCount","currentLengthData","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","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","copies","ceil","group","ix","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","buildShapeString","pathNodes","_o","_i","shapeString","ImagePreloader","proxyImage","canvas","ctx","fillStyle","fillRect","loadAssets","imagesLoadedCb","totalImages","images","_createImageData","setAssetsPath","assetsPath","setPath","loadedAssets","getImage","assetData","img","createImgData","getAssetsPath","crossOrigin","_imageLoaded","createImageData","setAttributeNS","imageLoaded","setCacheType","original_path","imagePath","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","load","errorCallback","response","xhr","XMLHttpRequest","responseType","err","send","onreadystatechange","readyState","formatResponse","responseText","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","of","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","letterValue","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","rot","yOff","firstLine","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","atan","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","text","charCode","charactersArray","charAt","substr","newLineFlag","charData","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","textProperty","ne","xe","tot","easer","finalS","finalE","newCharsFlag","divisor","pool_factory","initialLength","_create","_release","_clone","pooling","cloned","shapeCollection","BaseRenderer","SVGRenderer","animationItem","config","svgElement","titleElement","titleId","descElement","descId","ariaLabel","description","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","filterID","properties","currentMasks","layerId","maskRef","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","insertBefore","hide","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","trProps","cTr","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","par","fillType","elementRel","animationRel","offsetHeight","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","pathShapeValue","pathString","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","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","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","attr1","attr2","ang","dist","hasOpacity","cValues","oValues","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","filterManager","feMerge","feMergeNode","matrixFilter","effectElements","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","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","cp","clipId","cpGroup","layerElementParent","ln","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","time","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","lc","lj","ml","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","fn","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","sigma","dimensions","sigmaX","sigmaY","edgeMode","groupPath","elemChildren","children","removeAttribute","pathMasker","getTotalLength","dasharrayValue","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","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","newLength","currentSavedOp","set","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","imgW","imgH","imgRel","canvasRel","widthCrop","heightCrop","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","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","tg","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","compW","compH","innerElemStyle","strokeWidth","lineHeight","tParent","tCont","textPath","margin","Image","imageElem","diffVector","mag","lookDir","lookLengthOnXZ","m_rotationX","m_rotationY","mTransf","hasMatrixChanged","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","registerAnimation","loadAnimation","params","animItem","AnimationItem","setupAnimation","setParams","setSpeed","animation","setDirection","play","pause","togglePause","searchAnimations","standalone","div","animElements","getElementsByClassName","getElementsByTagName","resize","goToAndStop","isFrame","freeze","unfreeze","activate","getRegisteredAnimations","animations","removeElement","ev","isPaused","subtractPlayingCount","setData","addPlayingCount","resume","nowTime","elapsedTime","advanceTime","first","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","animType","rendererSettings","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","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","expression","ExpressionManager","easeInBez","easeOutBez","easeInOutBez","initiateExpression","property","needsVelocity","_needsRandom","elemType","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loopOut","smooth","toWorld","fromWorld","fromComp","toComp","anchorPoint","thisLayer","thisComp","velocityAtTime","__expression_functions","scoped_bm_rt","xf","eval","expression_function","numKeys","active","wiggle","freq","amp","addedAmps","periods","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","seedRandom","seedrandom","randSeed","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","propertyGetProp","propertyIndex","ShapePropertyConstructorFunction","KeyframedShapePropertyConstructorFunction","ShapeExpressions","inTangents","outTangents","isClosed","pointOnPath","_segmentsLength","accumulatedLength","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","view","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","_name","mn","parentPropertyGroup","propertyName","interfaces","_interfaceFunction","iterateElements","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","groupInterfaceFactory","ExpressionPropertyInterface","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","rotation","outerRadius","outerRoundness","innerRoundness","innerRadius","starInterfaceFactory","rectInterfaceFactory","radius","roundedInterfaceFactory","repeaterInterfaceFactory","skewAxis","_sourceText","_thisLayerFunction","stringValue","_prevValue","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","startTime","source","MaskManagerInterface","effects","toWorldMat","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_transformFactory","_px","_py","_pz","_thisProjectFunction","compositions","effectsData","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","expressionValue","Number","completeProperty","arrValue","defaultGetter","TextExpressionSelectorProp","propertyGetTextProp","valueProp","assign","speedAtTime","getValueProxy","total","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","eff","lottie","setLocationHref","setSubframeRendering","setQuality","isNaN","inBrowser","installPlugin","plugin","getFactory","checkReady","clearInterval","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","__getFactory","scripts","myScript","setInterval","bodymovin","lottiePlayer","Lottie","$lottie","PLAYER","startAnimation","Footer","$brandLogo","resizeBrandLogo","getBrandLogoSize","BRAND_LOGO_WIDTH_TO_ANIMATION_DISTANCE_RATIO","BRAND_LOGO_DISTANCE_TO_RIGHT","BRAND_LOGO_MAX_WIDTH","marginLeft","BRAND_LOGO_WIDTH_TO_MARGIN_LEFT_RATIO","BRAND_LOGO_WIDTH_TO_HEIGHT_RATIO","Modals","$trigger","onTriggerClick","$backdrop","onBackdropOrCloseClick","positionBody","$currentModal","youtubePlayer","ANIMATION_DURATION","modalIdentifier","$videoWrapper","YT","Player","videoId","events","onReady","playVideo","$body","Slider","$slides","$slide","$control","$image","onControlClick","slides","controlLabelWidth","setActiveSlide","slide","controlHeight","activeSlide","newIndex","previousSlide","newSlide","Steps","$sticky","$steps","setAttributes","stickyRect","stepsRect","DISTANCE_FROM_TOP","endY","Faq","$loadMore","$hiddenQuestions","onLoadMoreClick","NodeList","map","WebFont","custom","families","page"],"mappings":"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","file":"main.min.js","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import * as ScrollMagic from 'scrollmagic';\nimport { Scrollbar } from 'smooth-scrollbar/scrollbar';\n\nexport default abstract class AbstractComponent {\n /**\n * The different breakpoints for responsiveness, in pixels.\n */\n public static readonly BREAKPOINT_SM = 576;\n public static readonly BREAKPOINT_MD = 768;\n public static readonly BREAKPOINT_LG = 992;\n public static readonly BREAKPOINT_XL = 1367;\n\n /**\n * The scrollbar controller.\n */\n protected scrollbarController?: Scrollbar;\n\n /**\n * Sets the scrollbar controller.\n *\n * @param scrollbar The scrollbar controller\n */\n public setScrollbarController(scrollbarController?: Scrollbar): void {\n this.scrollbarController = scrollbarController;\n }\n\n /**\n * Initializes the component.\n */\n public abstract initialize(): void;\n\n /**\n * Creates the animation scenes of the component.\n *\n * @return An array of animation scenes\n */\n public createAnimationScenes(): { name: string, scene: ScrollMagic.Scene }[] {\n return [];\n }\n\n /**\n * Called when the window is resized.\n *\n * @param lastSize The last stable page size\n */\n public onWindowResize(lastSize: { width: number, height: number }): void {}\n}\n","import AbstractComponent from './AbstractComponent';\n\nexport default class LanguageSelector extends AbstractComponent {\n /**\n * The vertical distance between the toggle button and the dropdown, in\n * pixels.\n */\n public static readonly DISTANCE_FROM_TOGGLE = 10;\n\n /**\n * The safe distance between the dropdown and the right side of the screen, in\n * pixels.\n */\n public static readonly DISTANCE_FROM_RIGHT = 16;\n\n /**\n * The duration of the `opacity` parameter of the dropdown from the CSS, in\n * milliseconds.\n */\n public static readonly DURATION_OPACITY = 150;\n\n /**\n * The HTML element of the dropdowns.\n */\n private $dropdowns: NodeListOf;\n\n /**\n * The HTML element of the toggle buttons.\n */\n private $toggles: NodeListOf;\n\n /**\n * Flag to indicate if the language selector is currenty open.\n */\n private isOpen: boolean = false;\n\n /**\n * Initializes the language selector.\n */\n public initialize(): void {\n this.$dropdowns = document.querySelectorAll('.language-selector');\n this.$toggles = document.querySelectorAll('.header__language, .mobile-nav__language');\n\n [].forEach.call(this.$toggles, ($toggle) => {\n $toggle.addEventListener('click', (event) => this.onToggleClick(event))\n });\n\n document.body.addEventListener('click', (event) => this.onBodyClick(event));\n\n window.addEventListener('resize', () => {\n [].forEach.call(this.$dropdowns, ($dropdown) => {\n this.positionDropdown($dropdown);\n });\n });\n }\n\n public onWindowResize(lastSize: { width: number, height: number }): void {\n if (this.isOpen) {\n if (\n (\n lastSize.width < AbstractComponent.BREAKPOINT_MD\n && window.innerWidth >= AbstractComponent.BREAKPOINT_MD\n )\n || (\n lastSize.width >= AbstractComponent.BREAKPOINT_MD\n && window.innerWidth < AbstractComponent.BREAKPOINT_MD\n )\n ) {\n this.isOpen = false;\n\n [].forEach.call(this.$toggles, ($toggle) => $toggle.classList.remove('is-open'));\n\n [].forEach.call(this.$dropdowns, ($dropdown) => {\n $dropdown.style.display = 'none';\n $dropdown.style.opacity = '0';\n });\n }\n }\n }\n\n /**\n * Called when the user clicks on a toggle button.\n *\n * @param event The event arguments\n */\n private onToggleClick(event: MouseEvent): void {\n event.preventDefault();\n\n if (!this.isOpen) {\n this.open();\n } else {\n this.close();\n }\n }\n\n /**\n * Called when the user clicks anywhere on the page.\n *\n * @param event The event arguments\n */\n private onBodyClick(event: MouseEvent): void {\n if (!this.isOpen) {\n return;\n }\n\n let clickedOnSafeElement = false;\n\n const safeClassNames = [\n 'mobile-nav__language',\n 'language-selector',\n 'header__language',\n ];\n\n [].forEach.call(safeClassNames, (className) => {\n let $target = event.target as HTMLElement;\n\n while ($target.tagName.toLowerCase() !== 'body') {\n if ($target.classList.contains(className)) {\n clickedOnSafeElement = true;\n\n break;\n }\n\n $target = $target.parentElement;\n }\n });\n\n if (!clickedOnSafeElement) {\n this.close();\n }\n }\n\n /**\n * Opens the language selector.\n *\n * @param $target The toggle button that was clicked on\n */\n private open(): void {\n [].forEach.call(this.$toggles, ($toggle) => $toggle.classList.add('is-open'));\n\n [].forEach.call(this.$dropdowns, ($dropdown) => {\n $dropdown.style.display = 'block';\n\n setTimeout(() => {\n this.positionDropdown($dropdown);\n\n $dropdown.style.opacity = '1';\n\n this.isOpen = true;\n }, 10);\n });\n }\n\n /**\n * Closes the language selector.\n */\n private close(): void {\n [].forEach.call(this.$toggles, ($toggle) => $toggle.classList.remove('is-open'));\n\n [].forEach.call(this.$dropdowns, ($dropdown) => {\n $dropdown.style.opacity = '0';\n\n setTimeout(() => {\n $dropdown.style.display = 'none';\n\n this.isOpen = false;\n }, LanguageSelector.DURATION_OPACITY);\n });\n }\n\n /**\n * Positions a dropdown relative to a toggle button.\n *\n * @param $dropdown The HTML element of the dropdown\n */\n private positionDropdown($dropdown: HTMLElement): void {\n let $flag: HTMLElement;\n\n if (window.innerWidth < AbstractComponent.BREAKPOINT_MD) {\n $flag = document.querySelector('.mobile-nav__language__flag');\n\n $dropdown.classList.add('is-white');\n } else {\n $flag = document.querySelector('.header__language__flag');\n\n $dropdown.classList.remove('is-white');\n }\n\n const flagRect = $flag.getBoundingClientRect();\n\n const dropdownSize = $dropdown.getBoundingClientRect();\n const $pointer = $dropdown.querySelector('.language-selector__pointer') as HTMLElement;\n\n // Determine the position of the dropdown from the left of the screen.\n let x = flagRect.x - ((dropdownSize.width - flagRect.width) / 2);\n\n if (x + dropdownSize.width + LanguageSelector.DISTANCE_FROM_RIGHT > window.innerWidth) {\n x = window.innerWidth - dropdownSize.width - LanguageSelector.DISTANCE_FROM_RIGHT;\n }\n\n // Determine the position of the dropdown from the top of the screen.\n let y: number;\n\n if (window.innerWidth < AbstractComponent.BREAKPOINT_MD) {\n y = flagRect.y - dropdownSize.height - LanguageSelector.DISTANCE_FROM_TOGGLE;\n } else {\n y = flagRect.y + flagRect.height + LanguageSelector.DISTANCE_FROM_TOGGLE;\n }\n\n if (window.innerWidth < AbstractComponent.BREAKPOINT_MD) {\n y += window.scrollY;\n }\n\n $dropdown.style.top = `${y}px`;\n $dropdown.style.left = `${x}px`;\n\n $pointer.style.left = `${Math.abs(x - flagRect.x) - ((12) / 2) + (flagRect.width / 2)}px`;\n }\n}\n","import { ScrollbarPlugin } from 'smooth-scrollbar';\nimport { Data2d } from 'smooth-scrollbar/interfaces';\n\nexport default class ModalPlugin extends ScrollbarPlugin {\n static pluginName = 'modal';\n\n static defaultOptions = {\n open: false,\n };\n\n transformDelta(delta: Data2d) {\n return this.options.open ? { x: 0, y: 0 } : delta;\n }\n}\n","import AbstractComponent from './components/AbstractComponent';\nimport * as ScrollMagic from 'scrollmagic';\nimport ModalPlugin from './scrollbar/ModalPlugin';\nimport Scrollbar from 'smooth-scrollbar';\n\nexport default class Page {\n /**\n * Tests whether the page is loaded on a touch enabled device, or not.\n */\n public static readonly IS_TOUCH_DEVICE = window.matchMedia('( pointer: coarse )').matches;\n\n /**\n * The ScrollMagic controller.\n */\n private scrollMagicController: ScrollMagic.Controller;\n\n /**\n * The scrollbar controller.\n */\n private scrollbarController?: Scrollbar;\n\n /**\n * The last stable page size.\n */\n private lastPageSize: { width: number, height: number };\n\n /**\n * The HTML element of the page wrapper.\n */\n private $pageWrapper: HTMLElement;\n\n /**\n * The components that are active on the page.\n */\n private components: AbstractComponent[] = [];\n\n /**\n * The animation scenes that are active on the page.\n */\n private scenes: ScrollMagic.Scene[] = [];\n\n /**\n * Initializes the page.\n */\n constructor() {\n Scrollbar.use(ModalPlugin);\n\n if (Page.IS_TOUCH_DEVICE) {\n document.body.classList.add('is-touch');\n }\n\n // Ensure that the user is at the top of the page, to prevent a white bar at\n // the bottom of the screen.\n document.body.scrollTop = 0;\n\n // Configure the ScrollMagic controller.\n this.scrollMagicController = new ScrollMagic.Controller({\n refreshInterval: 0,\n });\n\n // Configure the smooth scrollbar controller.\n this.$pageWrapper = document.querySelector('.page-wrapper');\n\n if (!Page.IS_TOUCH_DEVICE) {\n this.scrollbarController = Scrollbar.init(this.$pageWrapper);\n this.scrollbarController.addListener(() => this.onScrollbarScroll());\n }\n\n this.lastPageSize = {\n height: window.innerHeight,\n width: window.innerWidth,\n };\n\n // Attach a listener for when the window resized, but that is only called\n // when the new size of the window is stable.\n let resizeTimeout = undefined;\n\n window.addEventListener('resize', () => {\n if (resizeTimeout) {\n window.clearTimeout(resizeTimeout);\n }\n\n resizeTimeout = setTimeout(() => this.onWindowResize(), 200);\n });\n }\n\n /**\n * Adds a component to the page, and registers its animation scenes.\n *\n * @param component The component to add\n */\n public addComponent(component: AbstractComponent): void {\n component.setScrollbarController(this.scrollbarController);\n component.initialize();\n\n [].forEach.call(component.createAnimationScenes(), ({ name, scene }) => {\n scene.addTo(this.scrollMagicController);\n // scene.addIndicators({\n // name,\n // });\n\n this.scenes.push(scene);\n });\n\n this.components.push(component);\n }\n\n /**\n * Called when the window is resized and is stable.\n */\n private onWindowResize(): void {\n // Remove the previously created scenes.\n [].forEach.call(this.scenes, scene => scene.destroy(true));\n this.scenes = [];\n\n // Recreate the scenes for every component.\n [].forEach.call(this.components, component => {\n component.onWindowResize(this.lastPageSize);\n\n [].forEach.call(component.createAnimationScenes(), ({ name, scene }) => {\n scene.addTo(this.scrollMagicController);\n // scene.addIndicators({\n // name,\n // });\n\n this.scenes.push(scene);\n });\n });\n\n this.lastPageSize = {\n height: window.innerHeight,\n width: window.innerWidth,\n };\n }\n\n /**\n * Called when the page is scrolled using the smooth scrollbar controller.\n */\n private onScrollbarScroll(): void {\n [].forEach.call(this.scenes, scene => scene.refresh());\n }\n}\n","import AbstractComponent from './AbstractComponent';\nimport { ScrollStatus } from 'smooth-scrollbar/interfaces';\nimport Page from '../Page';\n\nexport default class SlidingPageHead extends AbstractComponent {\n /**\n * The distance between the end of the page head and the content on desktop,\n * in pixels. This value *must* be the same as in the SCSS.\n */\n public static readonly DISTANCE_PAGE_HEAD_AND_CONTENT_DESKTOP = 60;\n\n /**\n * The distance between the end of the page head and the content on mobile, in\n * pixels. This value *must* be the same as in the SCSS.\n */\n public static readonly DISTANCE_PAGE_HEAD_AND_CONTENT_MOBILE = 20;\n\n /**\n * The hamburger icon elements in the header.\n */\n private $hamburger: NodeListOf;\n\n /**\n * The HTML element of the content in the overlaid page head.\n */\n private $overlayPageHeadContent: HTMLElement;\n\n /**\n * An array of items in the headers that should have shared hover states.\n */\n private $headerHoverItems: NodeListOf[] = [];\n\n /**\n * The HTML element of the overlaid page head, that is slid away.\n */\n private $overlayPageHead: HTMLElement;\n\n /**\n * The HTML element of the page head, that is revealed on scroll.\n */\n private $revealPageHead: HTMLElement;\n\n /**\n * The HTML element of the trigger element in the page head at which the\n * effect should stop.\n */\n private $endTrigger: HTMLElement;\n\n /**\n * The HTML element of the page.\n */\n private $page: HTMLElement;\n\n /**\n * The Y-position at which the page should start, relative to the top of the\n * page.\n */\n private pageStartY: number;\n\n /**\n * The Y-position at which the page head should stop sliding, relative to the\n * top of the browser screen.\n */\n private slidingEndY: number;\n\n /**\n * Initializes the sliding page head.\n */\n public initialize(): void {\n this.$overlayPageHeadContent = document.querySelector('.sliding-page-head__overlay__content');\n this.$overlayPageHead = document.querySelector('.sliding-page-head__overlay');\n this.$revealPageHead = document.querySelector('.sliding-page-head');\n this.$endTrigger = document.querySelector('.sliding-page-head__end');\n this.$hamburger = document.querySelectorAll('.header__hamburger');\n this.$page = document.querySelector('.sliding-page-head__page');\n\n this.$headerHoverItems = [\n document.querySelectorAll('.header__nav__to-app'),\n document.querySelectorAll('.header__nav__link'),\n ];\n\n this.calculateValues();\n\n // It doesn't hurt to just always add the native scroll listener, and not\n // just on mobile. On desktop this event won't even be called, and even if\n // it would be called, the event listener will ignore it.\n window.addEventListener('scroll', () => this.onWindowScroll());\n\n if (this.scrollbarController) {\n this.scrollbarController.addListener((status) => this.onScrollbarScroll(status));\n }\n\n // Call the `onWindowScroll` event handler once to ensure that it displays\n // correctly when the user is already scrolled when the page is loaded on\n // mobile.\n if (Page.IS_TOUCH_DEVICE) {\n this.onWindowScroll();\n }\n\n // Add the event handlers for the items in the header that should share\n // hover states.\n [].forEach.call(this.$headerHoverItems, ($headerHoverItem) => {\n [].forEach.call($headerHoverItem, ($element) => {\n // Add the `has-hover` class to the other element in the headers when\n // the user moves their cursor enters it.\n $element.addEventListener('mouseenter', (event) => {\n [].forEach.call($headerHoverItem, ($element) => {\n if ((event.target as HTMLElement).getAttribute('href') === $element.getAttribute('href')) {\n $element.classList.add('has-hover');\n }\n });\n });\n\n // Remove the `has-hover` class from the other element in the headers\n // when the user moves their cursor leaves it.\n $element.addEventListener('mouseleave', () => {\n [].forEach.call($headerHoverItem, ($element) => {\n $element.classList.remove('has-hover');\n });\n });\n });\n });\n }\n\n /**\n * Called when the window is resized.\n *\n * @param lastSize The last stable page size\n */\n public onWindowResize(lastSize: { width: number, height: number }): void {\n // If the viewport was already on mobile, and the height is only changed\n // minimally, we shouldn't recalculate the values. This will prevent jumping\n // on some phones.\n if (\n Page.IS_TOUCH_DEVICE\n && Math.abs(window.innerHeight - lastSize.height) < 150\n ) {\n return;\n }\n\n // Give the browser the time to ensure that all the elements have the\n // correct settings.\n setTimeout(() => {\n this.calculateValues();\n\n if (Page.IS_TOUCH_DEVICE) {\n this.onWindowScroll();\n } else {\n this.scrollbarController.update();\n }\n }, 10);\n }\n\n /**\n * Called when the page is scrolled using the smooth scrollbar controller.\n *\n * @param status The status of the scrollbar\n */\n private onScrollbarScroll(status: ScrollStatus): void {\n if (status.offset.y + this.slidingEndY >= this.pageStartY) {\n this.$revealPageHead.style.top = `${this.pageStartY - this.slidingEndY}px`;\n\n [].forEach.call(this.$hamburger, $element => {\n $element.style.top = `${status.offset.y + 16 - (this.pageStartY - this.slidingEndY)}px`;\n });\n } else {\n this.$overlayPageHeadContent.style.top = `${status.offset.y}px`;\n this.$revealPageHead.style.top = `${status.offset.y}px`;\n\n [].forEach.call(this.$hamburger, $element => {\n $element.style.top = '16px'\n });\n }\n }\n\n /**\n * Called when the page is scrolled using the default scrollbar on mobile.\n */\n private onWindowScroll(): void {\n if (!Page.IS_TOUCH_DEVICE) {\n return;\n }\n\n if (window.scrollY + this.slidingEndY >= this.pageStartY) {\n this.$overlayPageHeadContent.style.position = 'absolute';\n this.$revealPageHead.style.position = 'absolute';\n\n this.$revealPageHead.style.top = `${this.pageStartY - this.slidingEndY}px`;\n } else {\n this.$overlayPageHeadContent.style.position = 'fixed';\n this.$revealPageHead.style.position = 'fixed';\n\n this.$revealPageHead.style.top = '0';\n }\n }\n\n /**\n * Calculates the necessary values.\n */\n private calculateValues(): void {\n const triggerHeight = this.$endTrigger.getBoundingClientRect().height;\n const windowHeight = window.innerHeight;\n\n this.slidingEndY = triggerHeight + ((windowHeight - triggerHeight) / 2);\n this.pageStartY = windowHeight * 2;\n\n if (window.innerWidth < AbstractComponent.BREAKPOINT_MD) {\n this.pageStartY -= SlidingPageHead.DISTANCE_PAGE_HEAD_AND_CONTENT_MOBILE;\n } else {\n this.pageStartY -= SlidingPageHead.DISTANCE_PAGE_HEAD_AND_CONTENT_DESKTOP;\n }\n\n this.$overlayPageHeadContent.style.height = `${this.slidingEndY}px`;\n this.$overlayPageHead.style.height = `${windowHeight}px`;\n this.$revealPageHead.style.height = `${this.slidingEndY}px`;\n this.$page.style.paddingTop = `${this.pageStartY}px`;\n }\n}\n","import AbstractComponent from './AbstractComponent';\nimport * as ScrollMagic from 'scrollmagic';\nimport { ScrollStatus } from 'smooth-scrollbar/interfaces';\nimport Page from '../Page';\nimport gsap from 'gsap';\n\nexport default class BirdsEyeView extends AbstractComponent {\n /**\n * The duration of the horizontal scroll, in pixels.\n */\n public static readonly DURATION = 1000;\n\n /**\n * The HTML element of the birds eye view.\n */\n private $element: HTMLElement;\n\n /**\n * The HTML element of the outer wrapper.\n */\n private $outerWrapper: HTMLElement;\n\n /**\n * The HTML element of the inner wrapper.\n */\n private $innerWrapper: HTMLElement;\n\n /**\n * The offset from the top of the page of the outer wrapper.\n */\n private outerWrapperTop: number;\n\n /**\n * The offset from the top of the page of the inner wrapper.\n */\n private innerWrapperTop: number;\n\n /**\n * Initializes the birds eye view.\n */\n public initialize(): void {\n this.$outerWrapper = document.querySelector('.birds-eye-view__outer-wrapper');\n this.$innerWrapper = document.querySelector('.birds-eye-view__inner-wrapper');\n this.$element = document.querySelector('.birds-eye-view');\n\n this.setWrapperSettings();\n\n if (this.scrollbarController) {\n this.scrollbarController.addListener((status) => this.onScrollbarScroll(status));\n }\n }\n\n /**\n * Creates the animation scenes.\n *\n * @return An array of animation scenes\n */\n public createAnimationScenes(): { name: string, scene: ScrollMagic.Scene }[] {\n const scenes: { name: string, scene: ScrollMagic.Scene }[] = [];\n\n if (window.innerWidth >= AbstractComponent.BREAKPOINT_MD) {\n if (!Page.IS_TOUCH_DEVICE) {\n scenes.push({\n scene: new ScrollMagic.Scene({\n triggerElement: this.$outerWrapper,\n triggerHook: 'onLeave',\n duration: BirdsEyeView.DURATION,\n })\n .on('enter', () => {\n this.$innerWrapper.classList.add('is-pinned');\n })\n .on('leave', () => {\n this.$innerWrapper.classList.remove('is-pinned');\n })\n .setTween(gsap.timeline().fromTo(\n this.$element,\n {\n x: '0px',\n },\n {\n ease: 'power1.inOut',\n x: `-${this.$element.scrollWidth - window.innerWidth + 340}px`,\n },\n )),\n name: 'Birds Eye View',\n });\n } else {\n scenes.push({\n scene: new ScrollMagic.Scene({\n triggerElement: this.$innerWrapper,\n triggerHook: 'onLeave',\n duration: BirdsEyeView.DURATION,\n })\n .setPin(this.$innerWrapper)\n .setTween(gsap.timeline().fromTo(\n this.$element,\n {\n x: '0px',\n },\n {\n ease: 'power1.inOut',\n x: `-${this.$element.scrollWidth - window.innerWidth + 340}px`,\n },\n )),\n name: 'Birds Eye View',\n });\n }\n }\n\n return scenes;\n }\n\n /**\n * Called when the window is resized.\n */\n public onWindowResize(): void {\n if (Page.IS_TOUCH_DEVICE) {\n return;\n }\n\n this.$innerWrapper.classList.remove('is-pinned');\n\n this.$innerWrapper.style.position = '';\n this.$innerWrapper.style.height = '';\n this.$outerWrapper.style.height = '';\n this.$innerWrapper.style.top = '';\n\n // Give the browser the time to apply the different CSS properties.\n setTimeout(() => this.setWrapperSettings(), 10);\n }\n\n /**\n * Called when the page is scrolled using the smooth scrollbar controller.\n *\n * @param status The status of the scrollbar\n */\n private onScrollbarScroll(status: ScrollStatus): void {\n if (this.$innerWrapper.classList.contains('is-pinned')) {\n this.$innerWrapper.style.top = `${status.offset.y}px`;\n } else if (status.offset.y > this.innerWrapperTop + BirdsEyeView.DURATION) {\n this.$innerWrapper.style.top = `${this.outerWrapperTop + BirdsEyeView.DURATION}px`;\n } else if (status.offset.y < this.innerWrapperTop) {\n this.$innerWrapper.style.top = `${this.outerWrapperTop}px`;\n }\n }\n\n /**\n * Sets the correct properties for the various wrappers.\n */\n private setWrapperSettings(): void {\n if (Page.IS_TOUCH_DEVICE) {\n return;\n }\n\n if (window.innerWidth >= AbstractComponent.BREAKPOINT_MD) {\n this.outerWrapperTop = this.$outerWrapper.offsetTop;\n this.innerWrapperTop = this.$innerWrapper.offsetTop;\n\n const { height } = this.$innerWrapper.getBoundingClientRect();\n\n this.$innerWrapper.style.position = 'absolute';\n this.$innerWrapper.style.height = `${height}px`;\n this.$innerWrapper.style.top = `${this.$outerWrapper.offsetTop}px`;\n\n this.$outerWrapper.style.height = `${height + BirdsEyeView.DURATION}px`;\n }\n }\n}\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n });\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n // Setting overflow on body/documentElement synchronously in Desktop Safari slows down\n // the responsiveness for some reason. Setting within a setTimeout fixes this.\n setTimeout(function () {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n });\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n if (isIosDevice) {\n // targetElement must be provided, and disableBodyScroll must not have been\n // called on this targetElement before.\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n if (targetElement && !locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n } else {\n setOverflowHidden(options);\n var _lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [_lock]);\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n locks = [];\n\n // Reset initial clientY.\n initialClientY = -1;\n } else {\n restoreOverflowSetting();\n locks = [];\n }\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (isIosDevice) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n\n documentListenerAdded = false;\n }\n } else {\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n if (!locks.length) {\n restoreOverflowSetting();\n }\n }\n};\n\n","import { disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\nimport AbstractComponent from './AbstractComponent';\nimport { ScrollStatus } from 'smooth-scrollbar/interfaces';\nimport Page from '../Page';\n\nexport default class MobileMenu extends AbstractComponent {\n /**\n * The duration of the `opacity` parameter of the drawer content from the CSS,\n * in milliseconds.\n */\n public static readonly DURATION_DRAWER_CONTENT_OPACITY = 150;\n\n /**\n * The duration of the expansion parameters of the drawer from the CSS, in\n * milliseconds.\n */\n public static readonly DURATION_DRAWER_EXPAND = 250;\n\n /**\n * Flag to indicate whether the drawer is opening or closing.\n */\n private isOpeningOrClosing: boolean = false;\n\n /**\n * The hamburger icon elements in the header.\n */\n private $hamburger: NodeListOf;\n\n /**\n * The HTML element of the drawer's content.\n */\n private $content: HTMLElement;\n\n /**\n * The HTML element of the drawer.\n */\n private $drawer: HTMLElement;\n\n /**\n * The HTML element of the hamburger button.\n */\n private $toggle: HTMLElement;\n\n /**\n * Flag to indicate if the drawer is currenty open.\n */\n private isOpen: boolean = false;\n\n /**\n * Initializes the mobile menu.\n */\n public initialize(): void {\n this.$hamburger = document.querySelectorAll('.header__hamburger');\n this.$content = document.querySelector('.mobile-nav__content');\n this.$toggle = document.querySelector('.mobile-nav__toggle');\n this.$drawer = document.querySelector('.mobile-nav');\n\n if (this.scrollbarController) {\n this.scrollbarController.addListener((status) => this.onScrollbarScroll(status));\n }\n\n this.$toggle.addEventListener('click', (event) => this.onToggleClick(event));\n }\n\n /**\n * Called when the page is scrolled using the smooth scrollbar controller.\n *\n * @param status The status of the scrollbar\n */\n private onScrollbarScroll(status: ScrollStatus): void {\n this.$drawer.style.top = `${status.offset.y}px`;\n\n [].forEach.call(this.$hamburger, $element => {\n $element.style.top = `${status.offset.y + 16}px`;\n });\n }\n\n /**\n * Called when the window is resized.\n */\n public onWindowResize(): void {\n if (this.isOpen) {\n if (window.innerWidth >= AbstractComponent.BREAKPOINT_MD) {\n this.closeDrawer();\n } else {\n this.$drawer.style.height = `${window.innerHeight}px`;\n }\n }\n }\n\n /**\n * Called when the user clicks on the hamburger icon.\n *\n * @param event The event arguments\n */\n private onToggleClick(event: MouseEvent): void {\n event.preventDefault();\n\n if (!this.isOpen) {\n this.openDrawer();\n } else {\n this.closeDrawer();\n }\n }\n\n /**\n * Opens the drawer.\n */\n private openDrawer(): void {\n if (this.isOpeningOrClosing) {\n return;\n }\n\n this.isOpeningOrClosing = true;\n\n if (Page.IS_TOUCH_DEVICE) {\n disableBodyScroll(this.$drawer);\n } else {\n this.scrollbarController.updatePluginOptions('modal', { open: true });\n }\n\n this.$drawer.style.height = `${window.innerHeight}px`;\n this.$drawer.classList.add('is-open');\n\n // Wait for the duration of the expanding animation of the background.\n setTimeout(() => {\n this.$content.style.display = 'flex';\n\n // Give the browser the time to apply the `flex` display on the content\n // wrapper.\n setTimeout(() => {\n this.$content.style.opacity = '1';\n\n this.isOpeningOrClosing = false;\n this.isOpen = true;\n }, 10);\n }, MobileMenu.DURATION_DRAWER_EXPAND);\n }\n\n /**\n * Closes the drawer.\n */\n private closeDrawer(): void {\n if (this.isOpeningOrClosing) {\n return;\n }\n\n this.isOpeningOrClosing = true;\n this.$content.style.opacity = '0';\n\n // Wait for the duration of the opacity animation of the content.\n setTimeout(() => {\n if (Page.IS_TOUCH_DEVICE) {\n enableBodyScroll(this.$drawer);\n } else {\n this.scrollbarController.updatePluginOptions('modal', { open: false });\n }\n\n this.$drawer.classList.remove('is-open');\n this.$content.style.display = 'none';\n\n // Wait for the duration of contracting animation of the background.\n setTimeout(() => {\n this.$drawer.style.height = '';\n\n this.isOpeningOrClosing = false;\n this.isOpen = false;\n }, MobileMenu.DURATION_DRAWER_EXPAND);\n }, MobileMenu.DURATION_DRAWER_CONTENT_OPACITY);\n }\n}\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(\"Typewriter\",[],t):\"object\"==typeof exports?exports.Typewriter=t():e.Typewriter=t()}(\"undefined\"!=typeof self?self:this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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 r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},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=3)}([,function(e,t,n){(function(t){for(var r=n(11),o=\"undefined\"==typeof window?t:window,i=[\"moz\",\"webkit\"],a=\"AnimationFrame\",s=o[\"request\"+a],u=o[\"cancel\"+a]||o[\"cancelRequest\"+a],c=0;!s&&c/i).test(e)},a=function(e){var t=document.createElement(\"div\");return t.innerHTML=e,t.childNodes},s=function(e,t){return Math.floor(Math.random()*(t-e+1))+e},u=function(e){var t=document.createElement(\"style\");t.appendChild(document.createTextNode(e)),document.head.appendChild(t)},c=\"TYPE_CHARACTER\",l=\"REMOVE_CHARACTER\",p=\"REMOVE_ALL\",d=\"REMOVE_LAST_VISIBLE_NODE\",f=\"PAUSE_FOR\",v=\"CALL_FUNCTION\",h=\"ADD_HTML_TAG_ELEMENT\",m=\"CHANGE_DELETE_SPEED\",y=\"CHANGE_DELAY\",g=\"CHANGE_CURSOR\",w=\"PASTE_STRING\",E=\"HTML_TAG\",T=\"TEXT_NODE\";function b(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:null;if(i(e))return u.typeOutHTMLString(e,t);if(e){var n=u.options||{},r=n.stringSplitter,o=\"function\"==typeof r?r(e):e.split(\"\");u.typeCharacters(o,t)}return u})),O(this,\"pasteString\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return i(e)?u.typeOutHTMLString(e,t,!0):(e&&u.addEventToQueue(w,{character:e,node:t}),u)})),O(this,\"typeOutHTMLString\",(function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2?arguments[2]:void 0,r=a(e);if(r.length>0)for(var o=0;o0&&void 0!==arguments[0]?arguments[0]:\"natural\";return u.addEventToQueue(p,{speed:e}),u})),O(this,\"changeDeleteSpeed\",(function(e){if(!e)throw new Error(\"Must provide new delete speed\");return u.addEventToQueue(m,{speed:e}),u})),O(this,\"changeDelay\",(function(e){if(!e)throw new Error(\"Must provide new delay\");return u.addEventToQueue(y,{delay:e}),u})),O(this,\"changeCursor\",(function(e){if(!e)throw new Error(\"Must provide new cursor\");return u.addEventToQueue(g,{cursor:e}),u})),O(this,\"deleteChars\",(function(e){if(!e)throw new Error(\"Must provide amount of characters to delete\");for(var t=0;t1&&void 0!==arguments[1]?arguments[1]:null;if(!e||!Array.isArray(e))throw new Error(\"Characters must be an array\");return e.forEach((function(e){u.addEventToQueue(c,{character:e,node:t})})),u})),O(this,\"removeCharacters\",(function(e){if(!e||!Array.isArray(e))throw new Error(\"Characters must be an array\");return e.forEach((function(){u.addEventToQueue(l)})),u})),O(this,\"addEventToQueue\",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return u.addEventToStateProperty(e,t,n,\"eventQueue\")})),O(this,\"addReverseCalledEvent\",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=u.options.loop;return r?u.addEventToStateProperty(e,t,n,\"reverseCalledEvents\"):u})),O(this,\"addEventToStateProperty\",(function(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,o={eventName:e,eventArgs:t||{}};return u.state[r]=n?[o].concat(S(u.state[r])):[].concat(S(u.state[r]),[o]),u})),O(this,\"runEventLoop\",(function(){u.state.lastFrameTime||(u.state.lastFrameTime=Date.now());var e=Date.now(),t=e-u.state.lastFrameTime;if(!u.state.eventQueue.length){if(!u.options.loop)return;u.state.eventQueue=S(u.state.calledEvents),u.state.calledEvents=[],u.options=A({},u.state.initialOptions)}if(u.state.eventLoop=o()(u.runEventLoop),!u.state.eventLoopPaused){if(u.state.pauseUntil){if(e1)for(var n=1;n this.onWindowScroll());\n\n if (this.scrollbarController) {\n this.scrollbarController.addListener((status) => this.onScrollbarScroll(status));\n }\n }\n\n /**\n * Called when the window is resized.\n *\n * @param lastSize The last stable page size\n */\n public onWindowResize(lastSize: { width: number, height: number }): void {\n this.calculateValues();\n }\n\n /**\n * Called when the page is scrolled using the smooth scrollbar controller.\n *\n * @param status The status of the scrollbar\n */\n private onScrollbarScroll(status: ScrollStatus): void {\n if (status.offset.y >= this.startY && !this.hasStarted) {\n this.startTyping();\n }\n }\n\n /**\n * Called when the page is scrolled using the default scrollbar on mobile.\n */\n private onWindowScroll(): void {\n if (!Page.IS_TOUCH_DEVICE) {\n return;\n }\n\n if (window.scrollY >= this.startY && !this.hasStarted) {\n this.startTyping();\n }\n }\n\n /**\n * Calculates the values.\n */\n private calculateValues(): void {\n const typewriterRect = this.$typewriter.getBoundingClientRect();\n let scrollY = 0;\n\n if (this.scrollbarController) {\n scrollY = this.scrollbarController.scrollTop;\n } else {\n scrollY = window.scrollY;\n }\n\n this.startY = typewriterRect.y + scrollY - Typewriter.OFFSET_FROM_TOP;\n\n if (\n Page.IS_TOUCH_DEVICE\n && window.scrollY >= this.startY\n && !this.hasStarted\n ) {\n this.startTyping();\n }\n }\n\n /**\n * Starts the typewriter.\n */\n private startTyping(): void {\n this.hasStarted = true;\n\n const typewriter = new TypewriterEffect(this.$content, {\n delay: Typewriter.TYPEWRITER_DELAY,\n });\n\n [].forEach.call(commands, (segment) => {\n typewriter[segment.type](segment.value);\n });\n\n typewriter.start();\n }\n}\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