{"version":3,"file":"static/js/7780.8b22dc7b.chunk.js","mappings":"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","sources":["../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-lottie/dist/index.js"],"sourcesContent":["module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define(function() {\r\n return factory(root);\r\n });\r\n } else if (typeof module === \"object\" && module.exports) {\r\n module.exports = factory(root);\r\n } else {\r\n root.lottie = factory(root);\r\n root.bodymovin = root.lottie;\r\n }\r\n}((window || {}), function(window) {\r\n \"use strict\";\r\n var 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._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 (len === 1) {\r\n newValue = keyValue;\r\n } else {\r\n newValue[i] = 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].e) {\r\n s = data.k[i].s;\r\n e = data.k[i].e;\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 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.01) / 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 }\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 || !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 = false;\r\n var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\r\n var i, len = this.effectsSequence.length;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0};\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function EllShapeProperty(elem,data) {\r\n /*this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n };*/\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0,this);\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n };\r\n\r\n EllShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function (){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if(this._mdf){\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function() {\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapeProperty);\r\n\r\n return EllShapeProperty;\r\n }());\r\n\r\n var StarShapeProperty = (function() {\r\n\r\n function StarShapeProperty(elem,data) {\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if(data.sy === 1){\r\n this.ir = PropertyFactory.getProp(elem,data.ir,0,0,this);\r\n this.is = PropertyFactory.getProp(elem,data.is,0,0.01,this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem,data.pt,0,0,this);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.r = PropertyFactory.getProp(elem,data.r,0,degToRads,this);\r\n this.or = PropertyFactory.getProp(elem,data.or,0,0,this);\r\n this.os = PropertyFactory.getProp(elem,data.os,0,0.01,this);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n };\r\n\r\n StarShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function() {\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if(this._mdf){\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function() {\r\n var numPts = Math.floor(this.pt.v)*2;\r\n var angle = Math.PI*2/numPts;\r\n /*this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts;*/\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2*Math.PI*longRad/(numPts*2);\r\n var shortPerimSegment = 2*Math.PI*shortRad/(numPts*2);\r\n var i, rad,roundness,perimSegment, currentAng = -Math.PI/ 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for(i=0;i= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function(pathsData) {\r\n var i, len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segments_length_pool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var s, e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;\r\n e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;\r\n if (s === e) {\r\n\r\n }\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i, len = this.shapes.length, j, jLen;\r\n var pathsData, pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n }\r\n } else if (!((e === 1 && s === 0) || (e===0 && s === 1))){\r\n var segments = [], shapeData, localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s, shapeE = e, addedLength = 0, edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n //if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * (shapeS - 1),\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s:0,\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData,segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n } \r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n \r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n //Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n //Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function(newPaths, localShapeCollection) {\r\n var i, len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function(pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function(points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function(shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i, len = shapeData.shape.paths._length, j, jLen;\r\n var addedLength = 0;\r\n var currentLengthData,segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shape_pool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j +=1) {\r\n currentLengthData = lengths[j-1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if(addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1],'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shape_pool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\nfunction RoundCornersModifier(){}\r\nextendPrototype([ShapeModifier],RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function(elem,data){\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem,data.r,0,null,this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function(path, round){\r\n var cloned_path = shape_pool.newElement();\r\n cloned_path.c = path.c;\r\n var i, len = path._length;\r\n var currentV,currentI,currentO,closerV, newV,newO,newI,distance,newPosPerc,index = 0;\r\n var vX,vY,oX,oY,iX,iY;\r\n for(i=0;i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\r\n }\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function(elements){\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if(elements[i].ty === 'gr'){\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function(elements){\r\n var i, len = elements.length;\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if(elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var items, itemsTransform, i, dir, cont;\r\n if(this._mdf || _isFirstFrame){\r\n var copies = Math.ceil(this.c.v);\r\n if(this._groups.length < copies){\r\n while(this._groups.length < copies){\r\n var group = {\r\n it:this.cloneElements(this._elements),\r\n ty:'gr'\r\n };\r\n group.it.push({\"a\":{\"a\":0,\"ix\":1,\"k\":[0,0]},\"nm\":\"Transform\",\"o\":{\"a\":0,\"ix\":7,\"k\":100},\"p\":{\"a\":0,\"ix\":2,\"k\":[0,0]},\"r\":{\"a\":1,\"ix\":6,\"k\":[{s:0,e:0,t:0},{s:0,e:0,t:1}]},\"s\":{\"a\":0,\"ix\":3,\"k\":[100,100]},\"sa\":{\"a\":0,\"ix\":5,\"k\":0},\"sk\":{\"a\":0,\"ix\":4,\"k\":0},\"ty\":\"tr\"});\r\n \r\n this.arr.splice(0,0,group);\r\n this._groups.splice(0,0,group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for(i = 0; i <= this._groups.length - 1; i += 1){\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n cont += 1;\r\n }\r\n \r\n this._currentCopies = copies;\r\n ////\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset%1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var k;\r\n var tMat = this.tr.v.props;\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if(offset > 0) {\r\n while(iterationroundOffset){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if(offsetModulo){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j, jLen;\r\n while(cont){\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n if(iteration !== 0){\r\n if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);\r\n this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);\r\n this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);\r\n \r\n for(j=0;j 0.01){\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function() {\r\n if (this.o.length/2 !== this.c.length/4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0, len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if(!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function(forceRender){\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if(this.prop._mdf || forceRender){\r\n var i, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;i= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an/2 - letters[i].add;\r\n matrixHelper.translate(-offf,0,0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j 1;\r\n if(this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n}\r\n\r\nTextProperty.prototype.addEffect = function(effectFunction) {\r\n\tthis.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function(_finalValue) {\r\n if((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if(this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for(i = 0; i < len; i += 1) {\r\n //Checking if index changed to prevent creating a new object every time the expression updates.\r\n if(currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if(currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.pv = this.v = this.currentData;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n}\r\n\r\nTextProperty.prototype.getKeyframeValue = function() {\r\n var textKeys = this.data.d.k, textDocumentData;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0, len = textKeys.length;\r\n while(i <= len - 1) {\r\n textDocumentData = textKeys[i].s;\r\n if(i === len - 1 || textKeys[i+1].t > frameNum){\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if(this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function(text) {\r\n var combinedCharacters = FontManager.getCombinedCharacterCodes();\r\n var charactersArray = [];\r\n var i = 0, len = text.length;\r\n while (i < len) {\r\n if (combinedCharacters.indexOf(text.charCodeAt(i)) !== -1) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else {\r\n charactersArray.push(text.charAt(i));\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 (currentChar === ' '){\r\n val = '\\u00A0';\r\n } else 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 = documentData.finalText[i];\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 === '\\u00A0' || i === len - 1){\r\n if(val === '' || val === '\\u00A0'){\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= 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 ind = Math.min(Math.max(s,ind),e-1);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind-s)/(e-1-s)))))/2;\r\n mult = Math.max(mult,(1/(e-1-s))/(e-1-s));*/\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 = 1 - (s - ind);\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 };\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('x', -finalMat.props[12]);\r\n this.viewData[i].invRect.setAttribute('y', -finalMat.props[13]);\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('arial-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= 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 filter.setAttribute('x','-100%');\r\n filter.setAttribute('y','-100%');\r\n filter.setAttribute('width','400%');\r\n filter.setAttribute('height','400%');\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 if (this.failed) {\r\n return;\r\n }\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 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