{"version":3,"file":"static/js/main.11e5488a.js","mappings":"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","sources":["../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/assign.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/create.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/index.js","../node_modules/babel-runtime/node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_a-function.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_array-includes.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_cof.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_core.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ctx.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_defined.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_descriptors.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_dom-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_enum-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_export.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_fails.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_global.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_has.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_hide.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_html.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-array.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_is-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_library.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_meta.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dp.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-dps.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopd.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gopn.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gops.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-keys.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-pie.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_property-desc.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_redefine.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared-key.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_shared.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_string-at.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-integer.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-iobject.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-length.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-object.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_to-primitive.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_uid.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-define.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks-ext.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/_wks.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.create.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es6.symbol.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-lottie/dist/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","Desktop/AIFocus/AIFocus.js","Desktop/Approach/Approach.js","Shared/Contact/Contact.js","Desktop/Expertise/Expertise.js","Shared/Header/logoc.svg","Shared/Header/Header.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/objectSpread2.js","Desktop/Introduction/Introduction.js","Desktop/Navbar/Navbar.js","Desktop/Services/Services.js","Desktop/Desktop.js","Mobile/Introduction/MobileIntroduction.js","Mobile/Mobile.js","App.js","reportWebVitals.js","index.js"],"sourcesContent":["module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","\"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};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","module.exports = function () { /* empty */ };\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = {};\n","module.exports = true;\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\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) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","exports.f = {}.propertyIsEnumerable;\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","module.exports = require('./_hide');\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","exports.f = require('./_wks');\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\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","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","(typeof navigator !== \"undefined\") && (function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.lottie = factory());\r\n})(this, (function () { 'use strict';\r\n\r\n var svgNS = 'http://www.w3.org/2000/svg';\r\n var locationHref = '';\r\n var _useWebWorker = false;\r\n var initialDefaultFrame = -999999;\r\n\r\n var setWebWorker = function setWebWorker(flag) {\r\n _useWebWorker = !!flag;\r\n };\r\n\r\n var getWebWorker = function getWebWorker() {\r\n return _useWebWorker;\r\n };\r\n\r\n var setLocationHref = function setLocationHref(value) {\r\n locationHref = value;\r\n };\r\n\r\n var getLocationHref = function getLocationHref() {\r\n return locationHref;\r\n };\r\n\r\n function createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n }\r\n\r\n function extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n }\r\n\r\n function getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n }\r\n\r\n function createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n }\r\n\r\n // import Howl from '../../3rd_party/howler';\r\n var audioControllerFactory = function () {\r\n function AudioController(audioFactory) {\r\n this.audios = [];\r\n this.audioFactory = audioFactory;\r\n this._volume = 1;\r\n this._isMuted = false;\r\n }\r\n\r\n AudioController.prototype = {\r\n addAudio: function addAudio(audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function pause() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function resume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function setRate(rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function createAudio(assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n }\r\n\r\n if (window.Howl) {\r\n return new window.Howl({\r\n src: [assetPath]\r\n });\r\n }\r\n\r\n return {\r\n isPlaying: false,\r\n play: function play() {\r\n this.isPlaying = true;\r\n },\r\n seek: function seek() {\r\n this.isPlaying = false;\r\n },\r\n playing: function playing() {},\r\n rate: function rate() {},\r\n setVolume: function setVolume() {}\r\n };\r\n },\r\n setAudioFactory: function setAudioFactory(audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function setVolume(value) {\r\n this._volume = value;\r\n\r\n this._updateVolume();\r\n },\r\n mute: function mute() {\r\n this._isMuted = true;\r\n\r\n this._updateVolume();\r\n },\r\n unmute: function unmute() {\r\n this._isMuted = false;\r\n\r\n this._updateVolume();\r\n },\r\n getVolume: function getVolume() {\r\n return this._volume;\r\n },\r\n _updateVolume: function _updateVolume() {\r\n var i;\r\n var len = this.audios.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].volume(this._volume * (this._isMuted ? 0 : 1));\r\n }\r\n }\r\n };\r\n return function () {\r\n return new AudioController();\r\n };\r\n }();\r\n\r\n var createTypedArray = function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n }\r\n\r\n if (type === 'int16') {\r\n return new Int16Array(len);\r\n }\r\n\r\n if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n\r\n return createRegularArray(type, len);\r\n }\r\n\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n\r\n return createRegularArray;\r\n }();\r\n\r\n function createSizedArray(len) {\r\n return Array.apply(null, {\r\n length: len\r\n });\r\n }\r\n\r\n function _typeof$6(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$6 = function _typeof(obj) { return typeof obj; }; } else { _typeof$6 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$6(obj); }\r\n var subframeEnabled = true;\r\n var expressionsPlugin = null;\r\n var expressionsInterfaces = null;\r\n var idPrefix$1 = '';\r\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\n var _shouldRoundValues = false;\r\n var bmPow = Math.pow;\r\n var bmSqrt = Math.sqrt;\r\n var bmFloor = Math.floor;\r\n var bmMax = Math.max;\r\n var bmMin = Math.min;\r\n var BMMath = {};\r\n\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;\r\n var len = propertyNames.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n })();\r\n\r\n function ProjectInterface$1() {\r\n return {};\r\n }\r\n\r\n BMMath.random = Math.random;\r\n\r\n BMMath.abs = function (val) {\r\n var tOfVal = _typeof$6(val);\r\n\r\n if (tOfVal === 'object' && val.length) {\r\n var absArr = createSizedArray(val.length);\r\n var i;\r\n var len = val.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n\r\n return absArr;\r\n }\r\n\r\n return Math.abs(val);\r\n };\r\n\r\n var defaultCurveSegments = 150;\r\n var degToRads = Math.PI / 180;\r\n var roundCorner = 0.5519;\r\n\r\n function roundValues(flag) {\r\n _shouldRoundValues = !!flag;\r\n }\r\n\r\n function bmRnd(value) {\r\n if (_shouldRoundValues) {\r\n return Math.round(value);\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function styleDiv(element) {\r\n element.style.position = 'absolute';\r\n element.style.top = 0;\r\n element.style.left = 0;\r\n element.style.display = 'block';\r\n element.style.transformOrigin = '0 0';\r\n element.style.webkitTransformOrigin = '0 0';\r\n element.style.backfaceVisibility = 'visible';\r\n element.style.webkitBackfaceVisibility = 'visible';\r\n element.style.transformStyle = 'preserve-3d';\r\n element.style.webkitTransformStyle = 'preserve-3d';\r\n element.style.mozTransformStyle = 'preserve-3d';\r\n }\r\n\r\n function BMEnterFrameEvent(type, currentTime, totalTime, frameMultiplier) {\r\n this.type = type;\r\n this.currentTime = currentTime;\r\n this.totalTime = totalTime;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMCompleteLoopEvent(type, totalLoops, currentLoop, frameMultiplier) {\r\n this.type = type;\r\n this.currentLoop = currentLoop;\r\n this.totalLoops = totalLoops;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n }\r\n\r\n function BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n }\r\n\r\n function BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n }\r\n\r\n function BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n }\r\n\r\n function BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n }\r\n\r\n function BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n }\r\n\r\n var createElementID = function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix$1 + '__lottie_element_' + _count;\r\n };\r\n }();\r\n\r\n function HSVtoRGB(h, s, v) {\r\n var r;\r\n var g;\r\n var b;\r\n var i;\r\n var f;\r\n var p;\r\n var q;\r\n var t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n\r\n switch (i % 6) {\r\n case 0:\r\n r = v;\r\n g = t;\r\n b = p;\r\n break;\r\n\r\n case 1:\r\n r = q;\r\n g = v;\r\n b = p;\r\n break;\r\n\r\n case 2:\r\n r = p;\r\n g = v;\r\n b = t;\r\n break;\r\n\r\n case 3:\r\n r = p;\r\n g = q;\r\n b = v;\r\n break;\r\n\r\n case 4:\r\n r = t;\r\n g = p;\r\n b = v;\r\n break;\r\n\r\n case 5:\r\n r = v;\r\n g = p;\r\n b = q;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [r, g, b];\r\n }\r\n\r\n function RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var d = max - min;\r\n var h;\r\n var s = max === 0 ? 0 : d / max;\r\n var v = max / 255;\r\n\r\n switch (max) {\r\n case min:\r\n h = 0;\r\n break;\r\n\r\n case r:\r\n h = g - b + d * (g < b ? 6 : 0);\r\n h /= 6 * d;\r\n break;\r\n\r\n case g:\r\n h = b - r + d * 2;\r\n h /= 6 * d;\r\n break;\r\n\r\n case b:\r\n h = r - g + d * 4;\r\n h /= 6 * d;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n return [h, s, v];\r\n }\r\n\r\n function addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\r\n\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n } else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n function 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\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n }\r\n\r\n var rgbToHex = function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n\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\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n }();\r\n\r\n var setSubframeEnabled = function setSubframeEnabled(flag) {\r\n subframeEnabled = !!flag;\r\n };\r\n\r\n var getSubframeEnabled = function getSubframeEnabled() {\r\n return subframeEnabled;\r\n };\r\n\r\n var setExpressionsPlugin = function setExpressionsPlugin(value) {\r\n expressionsPlugin = value;\r\n };\r\n\r\n var getExpressionsPlugin = function getExpressionsPlugin() {\r\n return expressionsPlugin;\r\n };\r\n\r\n var setExpressionInterfaces = function setExpressionInterfaces(value) {\r\n expressionsInterfaces = value;\r\n };\r\n\r\n var getExpressionInterfaces = function getExpressionInterfaces() {\r\n return expressionsInterfaces;\r\n };\r\n\r\n var setDefaultCurveSegments = function setDefaultCurveSegments(value) {\r\n defaultCurveSegments = value;\r\n };\r\n\r\n var getDefaultCurveSegments = function getDefaultCurveSegments() {\r\n return defaultCurveSegments;\r\n };\r\n\r\n var setIdPrefix = function setIdPrefix(value) {\r\n idPrefix$1 = value;\r\n };\r\n\r\n var getIdPrefix = function getIdPrefix() {\r\n return idPrefix$1;\r\n };\r\n\r\n function createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n }\r\n\r\n function _typeof$5(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$5 = function _typeof(obj) { return typeof obj; }; } else { _typeof$5 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$5(obj); }\r\n\r\n var dataManager = function () {\r\n var _counterId = 1;\r\n var processes = [];\r\n var workerFn;\r\n var workerInstance;\r\n var workerProxy = {\r\n onmessage: function onmessage() {},\r\n postMessage: function postMessage(path) {\r\n workerFn({\r\n data: path\r\n });\r\n }\r\n };\r\n var _workerSelf = {\r\n postMessage: function postMessage(data) {\r\n workerProxy.onmessage({\r\n data: data\r\n });\r\n }\r\n };\r\n\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && getWebWorker()) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], {\r\n type: 'text/javascript'\r\n }); // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\r\n }\r\n\r\n workerFn = fn;\r\n return workerProxy;\r\n }\r\n\r\n function setupWorker() {\r\n if (!workerInstance) {\r\n workerInstance = createWorker(function workerStart(e) {\r\n function dataFunctionManager() {\r\n function completeLayers(layers, comps) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if ('ks' in layerData && !layerData.completed) {\r\n layerData.completed = true;\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k);\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].s[0]);\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n convertPathsToAbsoluteValues(maskProps[j].pt.k[k].e[0]);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 0) {\r\n layerData.layers = findCompLayers(layerData.refId, comps);\r\n completeLayers(layerData.layers, comps);\r\n } else if (layerData.ty === 4) {\r\n completeShapes(layerData.shapes);\r\n } else if (layerData.ty === 5) {\r\n completeText(layerData);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function completeChars(chars, assets) {\r\n if (chars) {\r\n var i = 0;\r\n var len = chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (chars[i].t === 1) {\r\n // var compData = findComp(chars[i].data.refId, assets);\r\n chars[i].data.layers = findCompLayers(chars[i].data.refId, assets); // chars[i].data.ip = 0;\r\n // chars[i].data.op = 99999;\r\n // chars[i].data.st = 0;\r\n // chars[i].data.sr = 1;\r\n // chars[i].w = compData.w;\r\n // chars[i].data.ks = {\r\n // a: { k: [0, 0, 0], a: 0 },\r\n // p: { k: [0, -compData.h, 0], a: 0 },\r\n // r: { k: 0, a: 0 },\r\n // s: { k: [100, 100], a: 0 },\r\n // o: { k: 100, a: 0 },\r\n // };\r\n\r\n completeLayers(chars[i].data.layers, assets);\r\n }\r\n }\r\n }\r\n }\r\n\r\n function findComp(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n return comps[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function findCompLayers(id, comps) {\r\n var comp = findComp(id, comps);\r\n\r\n if (comp) {\r\n if (!comp.layers.__used) {\r\n comp.layers.__used = true;\r\n return comp.layers;\r\n }\r\n\r\n return JSON.parse(JSON.stringify(comp.layers));\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function completeShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; 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\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].s[0]);\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n convertPathsToAbsoluteValues(arr[i].ks.k[j].e[0]);\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function convertPathsToAbsoluteValues(path) {\r\n var i;\r\n var len = path.i.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n path.i[i][0] += path.v[i][0];\r\n path.i[i][1] += path.v[i][1];\r\n path.o[i][0] += path.v[i][0];\r\n path.o[i][1] += path.v[i][1];\r\n }\r\n }\r\n\r\n function checkVersion(minimum, animVersionString) {\r\n var animVersion = animVersionString ? animVersionString.split('.') : [100, 100, 100];\r\n\r\n if (minimum[0] > animVersion[0]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n }\r\n\r\n if (animVersion[2] > minimum[2]) {\r\n return false;\r\n }\r\n\r\n return null;\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 s: documentData,\r\n t: 0\r\n }]\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkChars = function () {\r\n var minimumVersion = [4, 7, 99];\r\n return function (animationData) {\r\n if (animationData.chars && !checkVersion(minimumVersion, animationData.v)) {\r\n var i;\r\n var len = animationData.chars.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var charData = animationData.chars[i];\r\n\r\n if (charData.data && charData.data.shapes) {\r\n completeShapes(charData.data.shapes);\r\n charData.data.ip = 0;\r\n charData.data.op = 99999;\r\n charData.data.st = 0;\r\n charData.data.sr = 1;\r\n charData.data.ks = {\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n }\r\n };\r\n\r\n if (!animationData.chars[i].t) {\r\n charData.data.shapes.push({\r\n ty: 'no'\r\n });\r\n charData.data.shapes[0].it.push({\r\n p: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n s: {\r\n k: [100, 100],\r\n a: 0\r\n },\r\n a: {\r\n k: [0, 0],\r\n a: 0\r\n },\r\n r: {\r\n k: 0,\r\n a: 0\r\n },\r\n o: {\r\n k: 100,\r\n a: 0\r\n },\r\n sk: {\r\n k: 0,\r\n a: 0\r\n },\r\n sa: {\r\n k: 0,\r\n a: 0\r\n },\r\n ty: 'tr'\r\n });\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkPathProperties = function () {\r\n var minimumVersion = [5, 7, 15];\r\n\r\n function updateTextLayer(textLayer) {\r\n var pathData = textLayer.t.p;\r\n\r\n if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a\r\n };\r\n }\r\n\r\n if (typeof pathData.p === 'number') {\r\n pathData.p = {\r\n a: 0,\r\n k: pathData.p\r\n };\r\n }\r\n\r\n if (typeof pathData.r === 'number') {\r\n pathData.r = {\r\n a: 0,\r\n k: pathData.r\r\n };\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 5) {\r\n updateTextLayer(layers[i]);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkColors = function () {\r\n var minimumVersion = [4, 1, 9];\r\n\r\n function iterateShapes(shapes) {\r\n var i;\r\n var len = shapes.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n iterateShapes(shapes[i].it);\r\n } else if (shapes[i].ty === 'fl' || shapes[i].ty === 'st') {\r\n if (shapes[i].c.k && shapes[i].c.k[0].i) {\r\n jLen = shapes[i].c.k.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[i].c.k[j].s) {\r\n shapes[i].c.k[j].s[0] /= 255;\r\n shapes[i].c.k[j].s[1] /= 255;\r\n shapes[i].c.k[j].s[2] /= 255;\r\n shapes[i].c.k[j].s[3] /= 255;\r\n }\r\n\r\n if (shapes[i].c.k[j].e) {\r\n shapes[i].c.k[j].e[0] /= 255;\r\n shapes[i].c.k[j].e[1] /= 255;\r\n shapes[i].c.k[j].e[2] /= 255;\r\n shapes[i].c.k[j].e[3] /= 255;\r\n }\r\n }\r\n } else {\r\n shapes[i].c.k[0] /= 255;\r\n shapes[i].c.k[1] /= 255;\r\n shapes[i].c.k[2] /= 255;\r\n shapes[i].c.k[3] /= 255;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (layers[i].ty === 4) {\r\n iterateShapes(layers[i].shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n var checkShapes = function () {\r\n var minimumVersion = [4, 4, 18];\r\n\r\n function completeClosingShapes(arr) {\r\n var i;\r\n var len = arr.length;\r\n var j;\r\n var jLen;\r\n\r\n for (i = len - 1; 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\r\n for (j = 0; j < jLen; j += 1) {\r\n if (arr[i].ks.k[j].s) {\r\n arr[i].ks.k[j].s[0].c = arr[i].closed;\r\n }\r\n\r\n if (arr[i].ks.k[j].e) {\r\n arr[i].ks.k[j].e[0].c = arr[i].closed;\r\n }\r\n }\r\n }\r\n } else if (arr[i].ty === 'gr') {\r\n completeClosingShapes(arr[i].it);\r\n }\r\n }\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var layerData;\r\n var i;\r\n var len = layers.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (maskProps[j].pt.k.i) {\r\n maskProps[j].pt.k.c = maskProps[j].cl;\r\n } else {\r\n kLen = maskProps[j].pt.k.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (maskProps[j].pt.k[k].s) {\r\n maskProps[j].pt.k[k].s[0].c = maskProps[j].cl;\r\n }\r\n\r\n if (maskProps[j].pt.k[k].e) {\r\n maskProps[j].pt.k[k].e[0].c = maskProps[j].cl;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (layerData.ty === 4) {\r\n completeClosingShapes(layerData.shapes);\r\n }\r\n }\r\n }\r\n\r\n return function (animationData) {\r\n if (checkVersion(minimumVersion, animationData.v)) {\r\n iterateLayers(animationData.layers);\r\n\r\n if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.assets[i].layers) {\r\n iterateLayers(animationData.assets[i].layers);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }();\r\n\r\n function completeData(animationData) {\r\n if (animationData.__complete) {\r\n return;\r\n }\r\n\r\n checkColors(animationData);\r\n checkText(animationData);\r\n checkChars(animationData);\r\n checkPathProperties(animationData);\r\n checkShapes(animationData);\r\n completeLayers(animationData.layers, animationData.assets);\r\n completeChars(animationData.chars, animationData.assets);\r\n animationData.__complete = true;\r\n }\r\n\r\n function completeText(data) {\r\n if (data.t.a.length === 0 && !('m' in data.t.p)) {// data.singleShape = true;\r\n }\r\n }\r\n\r\n var moduleOb = {};\r\n moduleOb.completeData = completeData;\r\n moduleOb.checkColors = checkColors;\r\n moduleOb.checkChars = checkChars;\r\n moduleOb.checkPathProperties = checkPathProperties;\r\n moduleOb.checkShapes = checkShapes;\r\n moduleOb.completeLayers = completeLayers;\r\n return moduleOb;\r\n }\r\n\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n if (!_workerSelf.assetLoader) {\r\n _workerSelf.assetLoader = function () {\r\n function formatResponse(xhr) {\r\n // using typeof doubles the time of execution of this method,\r\n // so if available, it's better to use the header to validate the type\r\n var contentTypeHeader = xhr.getResponseHeader('content-type');\r\n\r\n if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && _typeof$5(xhr.response) === 'object') {\r\n return xhr.response;\r\n }\r\n\r\n if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n }\r\n\r\n if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function loadAsset(path, fullPath, callback, errorCallback) {\r\n var response;\r\n var xhr = new XMLHttpRequest(); // set responseType after calling open or IE will break.\r\n\r\n try {\r\n // This crashes on Android WebView prior to KitKat\r\n xhr.responseType = 'json';\r\n } catch (err) {} // eslint-disable-line no-empty\r\n\r\n\r\n xhr.onreadystatechange = function () {\r\n if (xhr.readyState === 4) {\r\n if (xhr.status === 200) {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } else {\r\n try {\r\n response = formatResponse(xhr);\r\n callback(response);\r\n } catch (err) {\r\n if (errorCallback) {\r\n errorCallback(err);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n try {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), path, true);\r\n } catch (error) {\r\n // Hack to workaround banner validation\r\n xhr.open(['G', 'E', 'T'].join(''), fullPath + '/' + path, true);\r\n }\r\n\r\n xhr.send();\r\n }\r\n\r\n return {\r\n load: loadAsset\r\n };\r\n }();\r\n }\r\n\r\n if (e.data.type === 'loadAnimation') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n\r\n _workerSelf.dataManager.completeData(animation);\r\n\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: animation,\r\n status: 'success'\r\n });\r\n } else if (e.data.type === 'loadData') {\r\n _workerSelf.assetLoader.load(e.data.path, e.data.fullPath, function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success'\r\n });\r\n }, function () {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n status: 'error'\r\n });\r\n });\r\n }\r\n });\r\n\r\n workerInstance.onmessage = function (event) {\r\n var data = event.data;\r\n var id = data.id;\r\n var process = processes[id];\r\n processes[id] = null;\r\n\r\n if (data.status === 'success') {\r\n process.onComplete(data.payload);\r\n } else if (process.onError) {\r\n process.onError();\r\n }\r\n };\r\n }\r\n }\r\n\r\n function createProcess(onComplete, onError) {\r\n _counterId += 1;\r\n var id = 'processId_' + _counterId;\r\n processes[id] = {\r\n onComplete: onComplete,\r\n onError: onError\r\n };\r\n return id;\r\n }\r\n\r\n function loadAnimation(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadAnimation',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function loadData(path, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'loadData',\r\n path: path,\r\n fullPath: window.location.origin + window.location.pathname,\r\n id: processId\r\n });\r\n }\r\n\r\n function completeAnimation(anim, onComplete, onError) {\r\n setupWorker();\r\n var processId = createProcess(onComplete, onError);\r\n workerInstance.postMessage({\r\n type: 'complete',\r\n animation: anim,\r\n id: processId\r\n });\r\n }\r\n\r\n return {\r\n loadAnimation: loadAnimation,\r\n loadData: loadData,\r\n completeAnimation: completeAnimation\r\n };\r\n }();\r\n\r\n var ImagePreloader = function () {\r\n var proxyImage = function () {\r\n var canvas = createTag('canvas');\r\n canvas.width = 1;\r\n canvas.height = 1;\r\n var ctx = canvas.getContext('2d');\r\n ctx.fillStyle = 'rgba(0,0,0,0)';\r\n ctx.fillRect(0, 0, 1, 1);\r\n return canvas;\r\n }();\r\n\r\n function imageLoaded() {\r\n this.loadedAssets += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function footageLoaded() {\r\n this.loadedFootagesCount += 1;\r\n\r\n if (this.loadedAssets === this.totalImages && this.loadedFootagesCount === this.totalFootages) {\r\n if (this.imagesLoadedCb) {\r\n this.imagesLoadedCb(null);\r\n }\r\n }\r\n }\r\n\r\n function getAssetsPath(assetData, assetsPath, originalPath) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = assetsPath + imagePath;\r\n } else {\r\n path = originalPath;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function testImageLoaded(img) {\r\n var _count = 0;\r\n var intervalId = setInterval(function () {\r\n var box = img.getBBox();\r\n\r\n if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n\r\n clearInterval(intervalId);\r\n }\r\n\r\n _count += 1;\r\n }.bind(this), 50);\r\n }\r\n\r\n function createImageData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createNS('image');\r\n\r\n if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\r\n\r\n if (this._elementHelper.append) {\r\n this._elementHelper.append(img);\r\n } else {\r\n this._elementHelper.appendChild(img);\r\n }\r\n\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createImgData(assetData) {\r\n var path = getAssetsPath(assetData, this.assetsPath, this.path);\r\n var img = createTag('img');\r\n img.crossOrigin = 'anonymous';\r\n img.addEventListener('load', this._imageLoaded, false);\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.src = path;\r\n var ob = {\r\n img: img,\r\n assetData: assetData\r\n };\r\n return ob;\r\n }\r\n\r\n function createFootageData(data) {\r\n var ob = {\r\n assetData: data\r\n };\r\n var path = getAssetsPath(data, this.assetsPath, this.path);\r\n dataManager.loadData(path, function (footageData) {\r\n ob.img = footageData;\r\n\r\n this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\r\n\r\n this._footageLoaded();\r\n }.bind(this));\r\n return ob;\r\n }\r\n\r\n function loadAssets(assets, cb) {\r\n this.imagesLoadedCb = cb;\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!assets[i].layers) {\r\n if (!assets[i].t || assets[i].t === 'seq') {\r\n this.totalImages += 1;\r\n this.images.push(this._createImageData(assets[i]));\r\n } else if (assets[i].t === 3) {\r\n this.totalFootages += 1;\r\n this.images.push(this.createFootageData(assets[i]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setPath(path) {\r\n this.path = path || '';\r\n }\r\n\r\n function setAssetsPath(path) {\r\n this.assetsPath = path || '';\r\n }\r\n\r\n function getAsset(assetData) {\r\n var i = 0;\r\n var len = this.images.length;\r\n\r\n while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function destroy() {\r\n this.imagesLoadedCb = null;\r\n this.images.length = 0;\r\n }\r\n\r\n function loadedImages() {\r\n return this.totalImages === this.loadedAssets;\r\n }\r\n\r\n function loadedFootages() {\r\n return this.totalFootages === this.loadedFootagesCount;\r\n }\r\n\r\n function setCacheType(type, elementHelper) {\r\n if (type === 'svg') {\r\n this._elementHelper = elementHelper;\r\n this._createImageData = this.createImageData.bind(this);\r\n } else {\r\n this._createImageData = this.createImgData.bind(this);\r\n }\r\n }\r\n\r\n function ImagePreloaderFactory() {\r\n this._imageLoaded = imageLoaded.bind(this);\r\n this._footageLoaded = footageLoaded.bind(this);\r\n this.testImageLoaded = testImageLoaded.bind(this);\r\n this.createFootageData = createFootageData.bind(this);\r\n this.assetsPath = '';\r\n this.path = '';\r\n this.totalImages = 0;\r\n this.totalFootages = 0;\r\n this.loadedAssets = 0;\r\n this.loadedFootagesCount = 0;\r\n this.imagesLoadedCb = null;\r\n this.images = [];\r\n }\r\n\r\n ImagePreloaderFactory.prototype = {\r\n loadAssets: loadAssets,\r\n setAssetsPath: setAssetsPath,\r\n setPath: setPath,\r\n loadedImages: loadedImages,\r\n loadedFootages: loadedFootages,\r\n destroy: destroy,\r\n getAsset: getAsset,\r\n createImgData: createImgData,\r\n createImageData: createImageData,\r\n imageLoaded: imageLoaded,\r\n footageLoaded: footageLoaded,\r\n setCacheType: setCacheType\r\n };\r\n return ImagePreloaderFactory;\r\n }();\r\n\r\n function BaseEvent() {}\r\n\r\n BaseEvent.prototype = {\r\n triggerEvent: function triggerEvent(eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\r\n\r\n for (var i = 0; i < callbacks.length; i += 1) {\r\n callbacks[i](args);\r\n }\r\n }\r\n },\r\n addEventListener: function addEventListener(eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\r\n }\r\n\r\n this._cbs[eventName].push(callback);\r\n\r\n return function () {\r\n this.removeEventListener(eventName, callback);\r\n }.bind(this);\r\n },\r\n removeEventListener: function removeEventListener(eventName, callback) {\r\n if (!callback) {\r\n this._cbs[eventName] = null;\r\n } else if (this._cbs[eventName]) {\r\n var i = 0;\r\n var len = this._cbs[eventName].length;\r\n\r\n while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n\r\n i -= 1;\r\n len -= 1;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!this._cbs[eventName].length) {\r\n this._cbs[eventName] = null;\r\n }\r\n }\r\n }\r\n };\r\n\r\n var markerParser = function () {\r\n function parsePayloadLines(payload) {\r\n var lines = payload.split('\\r\\n');\r\n var keys = {};\r\n var line;\r\n var keysCount = 0;\r\n\r\n for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\r\n\r\n for (var i = 0; i < _markers.length; i += 1) {\r\n var _marker = _markers[i];\r\n var markerData = {\r\n time: _marker.tm,\r\n duration: _marker.dr\r\n };\r\n\r\n try {\r\n markerData.payload = JSON.parse(_markers[i].cm);\r\n } catch (_) {\r\n try {\r\n markerData.payload = parsePayloadLines(_markers[i].cm);\r\n } catch (__) {\r\n markerData.payload = {\r\n name: _markers[i].cm\r\n };\r\n }\r\n }\r\n\r\n markers.push(markerData);\r\n }\r\n\r\n return markers;\r\n };\r\n }();\r\n\r\n var ProjectInterface = function () {\r\n function registerComposition(comp) {\r\n this.compositions.push(comp);\r\n }\r\n\r\n return function () {\r\n function _thisProjectFunction(name) {\r\n var i = 0;\r\n var len = this.compositions.length;\r\n\r\n while (i < len) {\r\n if (this.compositions[i].data && this.compositions[i].data.nm === name) {\r\n if (this.compositions[i].prepareFrame && this.compositions[i].data.xt) {\r\n this.compositions[i].prepareFrame(this.currentFrame);\r\n }\r\n\r\n return this.compositions[i].compInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n return _thisProjectFunction;\r\n };\r\n }();\r\n\r\n var renderers = {};\r\n\r\n var registerRenderer = function registerRenderer(key, value) {\r\n renderers[key] = value;\r\n };\r\n\r\n function getRenderer(key) {\r\n return renderers[key];\r\n }\r\n\r\n function _typeof$4(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$4 = function _typeof(obj) { return typeof obj; }; } else { _typeof$4 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$4(obj); }\r\n\r\n var AnimationItem = function AnimationItem() {\r\n this._cbs = [];\r\n this.name = '';\r\n this.path = '';\r\n this.isLoaded = false;\r\n this.currentFrame = 0;\r\n this.currentRawFrame = 0;\r\n this.firstFrame = 0;\r\n this.totalFrames = 0;\r\n this.frameRate = 0;\r\n this.frameMult = 0;\r\n this.playSpeed = 1;\r\n this.playDirection = 1;\r\n this.playCount = 0;\r\n this.animationData = {};\r\n this.assets = [];\r\n this.isPaused = true;\r\n this.autoplay = false;\r\n this.loop = true;\r\n this.renderer = null;\r\n this.animationID = createElementID();\r\n this.assetsPath = '';\r\n this.timeCompleted = 0;\r\n this.segmentPos = 0;\r\n this.isSubframeEnabled = getSubframeEnabled();\r\n this.segments = [];\r\n this._idle = true;\r\n this._completedLoop = false;\r\n this.projectInterface = ProjectInterface();\r\n this.imagePreloader = new ImagePreloader();\r\n this.audioController = audioControllerFactory();\r\n this.markers = [];\r\n this.configAnimation = this.configAnimation.bind(this);\r\n this.onSetupError = this.onSetupError.bind(this);\r\n this.onSegmentComplete = this.onSegmentComplete.bind(this);\r\n this.drawnFrameEvent = new BMEnterFrameEvent('drawnFrame', 0, 0, 0);\r\n };\r\n\r\n extendPrototype([BaseEvent], AnimationItem);\r\n\r\n AnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n\r\n var animType = 'svg';\r\n\r\n if (params.animType) {\r\n animType = params.animType;\r\n } else if (params.renderer) {\r\n animType = params.renderer;\r\n }\r\n\r\n var RendererClass = getRenderer(animType);\r\n this.renderer = new RendererClass(this, params.rendererSettings);\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n\r\n if (params.loop === '' || params.loop === null || params.loop === undefined || params.loop === true) {\r\n this.loop = true;\r\n } else if (params.loop === false) {\r\n this.loop = false;\r\n } else {\r\n this.loop = parseInt(params.loop, 10);\r\n }\r\n\r\n this.autoplay = 'autoplay' in params ? params.autoplay : true;\r\n this.name = params.name ? params.name : '';\r\n this.autoloadSegments = Object.prototype.hasOwnProperty.call(params, 'autoloadSegments') ? params.autoloadSegments : true;\r\n this.assetsPath = params.assetsPath;\r\n this.initialSegment = params.initialSegment;\r\n\r\n if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\r\n }\r\n\r\n if (params.animationData) {\r\n this.setupAnimation(params.animationData);\r\n } else if (params.path) {\r\n if (params.path.lastIndexOf('\\\\') !== -1) {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('\\\\') + 1);\r\n } else {\r\n this.path = params.path.substr(0, params.path.lastIndexOf('/') + 1);\r\n }\r\n\r\n this.fileName = params.path.substr(params.path.lastIndexOf('/') + 1);\r\n this.fileName = this.fileName.substr(0, this.fileName.lastIndexOf('.json'));\r\n dataManager.loadAnimation(params.path, this.configAnimation, this.onSetupError);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n };\r\n\r\n AnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(data, this.configAnimation);\r\n };\r\n\r\n AnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (_typeof$4(animationData) !== 'object') {\r\n animationData = JSON.parse(animationData);\r\n }\r\n }\r\n\r\n var params = {\r\n wrapper: wrapper,\r\n animationData: animationData\r\n };\r\n var wrapperAttributes = wrapper.attributes;\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value : wrapperAttributes.getNamedItem('bm-path') ? wrapperAttributes.getNamedItem('bm-path').value : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value : wrapperAttributes.getNamedItem('bm-renderer') ? wrapperAttributes.getNamedItem('bm-renderer').value : 'canvas';\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value : wrapperAttributes.getNamedItem('bm-loop') ? wrapperAttributes.getNamedItem('bm-loop').value : '';\r\n\r\n if (loop === 'false') {\r\n params.loop = false;\r\n } else if (loop === 'true') {\r\n params.loop = true;\r\n } else if (loop !== '') {\r\n params.loop = parseInt(loop, 10);\r\n }\r\n\r\n var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value : wrapperAttributes.getNamedItem('bm-autoplay') ? wrapperAttributes.getNamedItem('bm-autoplay').value : true;\r\n params.autoplay = autoplay !== 'false';\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value : wrapperAttributes.getNamedItem('bm-name') ? wrapperAttributes.getNamedItem('bm-name').value : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value : wrapperAttributes.getNamedItem('bm-prerender') ? wrapperAttributes.getNamedItem('bm-prerender').value : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n\r\n this.setParams(params);\r\n };\r\n\r\n AnimationItem.prototype.includeLayers = function (data) {\r\n if (data.op > this.animationData.op) {\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n\r\n var layers = this.animationData.layers;\r\n var i;\r\n var len = layers.length;\r\n var newLayers = data.layers;\r\n var j;\r\n var jLen = newLayers.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (layers[i].id === newLayers[j].id) {\r\n layers[i] = newLayers[j];\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n if (data.chars || data.fonts) {\r\n this.renderer.globalData.fontManager.addChars(data.chars);\r\n this.renderer.globalData.fontManager.addFonts(data.fonts, this.renderer.globalData.defs);\r\n }\r\n\r\n if (data.assets) {\r\n len = data.assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(this.animationData, this.onSegmentComplete);\r\n };\r\n\r\n AnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments || segments.length === 0 || !this.autoloadSegments) {\r\n this.trigger('data_ready');\r\n this.timeCompleted = this.totalFrames;\r\n return;\r\n }\r\n\r\n var segment = segments.shift();\r\n this.timeCompleted = segment.time * this.frameRate;\r\n var segmentPath = this.path + this.fileName + '_' + this.segmentPos + '.json';\r\n this.segmentPos += 1;\r\n dataManager.loadData(segmentPath, this.includeLayers.bind(this), function () {\r\n this.trigger('data_failed');\r\n }.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n\r\n this.loadNextSegment();\r\n };\r\n\r\n AnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n };\r\n\r\n AnimationItem.prototype.preloadImages = function () {\r\n this.imagePreloader.setAssetsPath(this.assetsPath);\r\n this.imagePreloader.setPath(this.path);\r\n this.imagePreloader.loadAssets(this.animationData.assets, this.imagesLoaded.bind(this));\r\n };\r\n\r\n AnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.animationData = animData;\r\n\r\n if (this.initialSegment) {\r\n this.totalFrames = Math.floor(this.initialSegment[1] - this.initialSegment[0]);\r\n this.firstFrame = Math.round(this.initialSegment[0]);\r\n } else {\r\n this.totalFrames = Math.floor(this.animationData.op - this.animationData.ip);\r\n this.firstFrame = Math.round(this.animationData.ip);\r\n }\r\n\r\n this.renderer.configAnimation(animData);\r\n\r\n if (!animData.assets) {\r\n animData.assets = [];\r\n }\r\n\r\n this.assets = this.animationData.assets;\r\n this.frameRate = this.animationData.fr;\r\n this.frameMult = this.animationData.fr / 1000;\r\n this.renderer.searchExtraCompositions(animData.assets);\r\n this.markers = markerParser(animData.markers || []);\r\n this.trigger('config_ready');\r\n this.preloadImages();\r\n this.loadSegments();\r\n this.updaFrameModifier();\r\n this.waitForFontsLoaded();\r\n\r\n if (this.isPaused) {\r\n this.audioController.pause();\r\n }\r\n } catch (error) {\r\n this.triggerConfigError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n\r\n if (this.renderer.globalData.fontManager.isLoaded) {\r\n this.checkLoaded();\r\n } else {\r\n setTimeout(this.waitForFontsLoaded.bind(this), 20);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded && this.renderer.globalData.fontManager.isLoaded && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas') && this.imagePreloader.loadedFootages()) {\r\n this.isLoaded = true;\r\n var expressionsPlugin = getExpressionsPlugin();\r\n\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n\r\n this.renderer.initItems();\r\n setTimeout(function () {\r\n this.trigger('DOMLoaded');\r\n }.bind(this), 0);\r\n this.gotoFrame();\r\n\r\n if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resize = function (width, height) {\r\n // Adding this validation for backwards compatibility in case an event object was being passed down\r\n var _width = typeof width === 'number' ? width : undefined;\r\n\r\n var _height = typeof height === 'number' ? height : undefined;\r\n\r\n this.renderer.updateContainerSize(_width, _height);\r\n };\r\n\r\n AnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n };\r\n\r\n AnimationItem.prototype.gotoFrame = function () {\r\n this.currentFrame = this.isSubframeEnabled ? this.currentRawFrame : ~~this.currentRawFrame; // eslint-disable-line no-bitwise\r\n\r\n if (this.timeCompleted !== this.totalFrames && this.currentFrame > this.timeCompleted) {\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n };\r\n\r\n AnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\r\n }\r\n\r\n try {\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n } catch (error) {\r\n this.triggerRenderFrameError(error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.trigger('_pause');\r\n this.audioController.resume();\r\n\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n };\r\n\r\n AnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this.trigger('_play');\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n if (this.isPaused === true) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n };\r\n\r\n AnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n this.goToAndStop(marker.time, true);\r\n }\r\n } else if (isFrame) {\r\n this.setCurrentRawFrameValue(value);\r\n } else {\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n\r\n this.pause();\r\n };\r\n\r\n AnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n var numValue = Number(value);\r\n\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\r\n\r\n if (marker) {\r\n if (!marker.duration) {\r\n this.goToAndStop(marker.time, true);\r\n } else {\r\n this.playSegments([marker.time, marker.time + marker.duration], true);\r\n }\r\n }\r\n } else {\r\n this.goToAndStop(numValue, isFrame, name);\r\n }\r\n\r\n this.play();\r\n };\r\n\r\n AnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false; // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if (nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + nextValue % this.totalFrames);\r\n\r\n if (!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n };\r\n\r\n AnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\r\n\r\n if (arr[1] < arr[0]) {\r\n if (this.frameModifier > 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[0] - arr[1];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if (arr[1] > arr[0]) {\r\n if (this.frameModifier < 0) {\r\n if (this.playSpeed < 0) {\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n\r\n this.totalFrames = arr[1] - arr[0];\r\n this.timeCompleted = this.totalFrames;\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n\r\n this.trigger('segmentStart');\r\n };\r\n\r\n AnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\r\n\r\n if (this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.totalFrames = end - init;\r\n this.timeCompleted = this.totalFrames;\r\n\r\n if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n\r\n if (_typeof$4(arr[0]) === 'object') {\r\n var i;\r\n var len = arr.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n\r\n if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n };\r\n\r\n AnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.checkSegments = function (offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n\r\n return false;\r\n };\r\n\r\n AnimationItem.prototype.destroy = function (name) {\r\n if (name && this.name !== name || !this.renderer) {\r\n return;\r\n }\r\n\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = null;\r\n this.onLoopComplete = null;\r\n this.onComplete = null;\r\n this.onSegmentStart = null;\r\n this.onDestroy = null;\r\n this.renderer = null;\r\n this.renderer = null;\r\n this.imagePreloader = null;\r\n this.projectInterface = null;\r\n };\r\n\r\n AnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n };\r\n\r\n AnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n };\r\n\r\n AnimationItem.prototype.setLoop = function (isLooping) {\r\n this.loop = isLooping;\r\n };\r\n\r\n AnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.setVolume(val);\r\n };\r\n\r\n AnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n };\r\n\r\n AnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.mute();\r\n };\r\n\r\n AnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n\r\n this.audioController.unmute();\r\n };\r\n\r\n AnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n this.audioController.setRate(this.playSpeed * this.playDirection);\r\n };\r\n\r\n AnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n\r\n return path;\r\n };\r\n\r\n AnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n AnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n };\r\n\r\n AnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n };\r\n\r\n AnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n };\r\n\r\n AnimationItem.prototype.updateDocumentData = function (path, documentData, index) {\r\n try {\r\n var element = this.renderer.getElementByPath(path);\r\n element.updateDocumentData(documentData, index);\r\n } catch (error) {// TODO: decide how to handle catch case\r\n }\r\n };\r\n\r\n AnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n\r\n case 'drawnFrame':\r\n this.drawnFrameEvent.currentTime = this.currentFrame;\r\n this.drawnFrameEvent.totalTime = this.totalFrames;\r\n this.drawnFrameEvent.direction = this.frameModifier;\r\n this.triggerEvent(name, this.drawnFrameEvent);\r\n break;\r\n\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n\r\n if (name === 'enterFrame' && this.onEnterFrame) {\r\n this.onEnterFrame.call(this, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameMult));\r\n }\r\n\r\n if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\r\n }\r\n\r\n if (name === 'segmentStart' && this.onSegmentStart) {\r\n this.onSegmentStart.call(this, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n }\r\n\r\n if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerRenderFrameError = function (nativeError) {\r\n var error = new BMRenderFrameErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n AnimationItem.prototype.triggerConfigError = function (nativeError) {\r\n var error = new BMConfigErrorEvent(nativeError, this.currentFrame);\r\n this.triggerEvent('error', error);\r\n\r\n if (this.onError) {\r\n this.onError.call(this, error);\r\n }\r\n };\r\n\r\n var animationManager = function () {\r\n var moduleOb = {};\r\n var registeredAnimations = [];\r\n var initTime = 0;\r\n var len = 0;\r\n var playingAnimationsNum = 0;\r\n var _stopped = true;\r\n var _isFrozen = false;\r\n\r\n function removeElement(ev) {\r\n var i = 0;\r\n var animItem = ev.target;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].animation === animItem) {\r\n registeredAnimations.splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n\r\n if (!animItem.isPaused) {\r\n subtractPlayingCount();\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n function registerAnimation(element, animationData) {\r\n if (!element) {\r\n return null;\r\n }\r\n\r\n var i = 0;\r\n\r\n while (i < len) {\r\n if (registeredAnimations[i].elem === element && registeredAnimations[i].elem !== null) {\r\n return registeredAnimations[i].animation;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, element);\r\n animItem.setData(element, animationData);\r\n return animItem;\r\n }\r\n\r\n function getRegisteredAnimations() {\r\n var i;\r\n var lenAnims = registeredAnimations.length;\r\n var animations = [];\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\r\n }\r\n\r\n return animations;\r\n }\r\n\r\n function addPlayingCount() {\r\n playingAnimationsNum += 1;\r\n activate();\r\n }\r\n\r\n function subtractPlayingCount() {\r\n playingAnimationsNum -= 1;\r\n }\r\n\r\n function setupAnimation(animItem, element) {\r\n animItem.addEventListener('destroy', removeElement);\r\n animItem.addEventListener('_active', addPlayingCount);\r\n animItem.addEventListener('_idle', subtractPlayingCount);\r\n registeredAnimations.push({\r\n elem: element,\r\n animation: animItem\r\n });\r\n len += 1;\r\n }\r\n\r\n function loadAnimation(params) {\r\n var animItem = new AnimationItem();\r\n setupAnimation(animItem, null);\r\n animItem.setParams(params);\r\n return animItem;\r\n }\r\n\r\n function setSpeed(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setSpeed(val, animation);\r\n }\r\n }\r\n\r\n function setDirection(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setDirection(val, animation);\r\n }\r\n }\r\n\r\n function play(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n\r\n initTime = nowTime;\r\n\r\n if (playingAnimationsNum && !_isFrozen) {\r\n window.requestAnimationFrame(resume);\r\n } else {\r\n _stopped = true;\r\n }\r\n }\r\n\r\n function first(nowTime) {\r\n initTime = nowTime;\r\n window.requestAnimationFrame(resume);\r\n }\r\n\r\n function pause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.pause(animation);\r\n }\r\n }\r\n\r\n function goToAndStop(value, isFrame, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.goToAndStop(value, isFrame, animation);\r\n }\r\n }\r\n\r\n function stop(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.stop(animation);\r\n }\r\n }\r\n\r\n function togglePause(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.togglePause(animation);\r\n }\r\n }\r\n\r\n function destroy(animation) {\r\n var i;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer) {\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')), [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\r\n\r\n for (i = 0; i < lenAnims; i += 1) {\r\n if (renderer) {\r\n animElements[i].setAttribute('data-bm-type', renderer);\r\n }\r\n\r\n registerAnimation(animElements[i], animationData);\r\n }\r\n\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\r\n }\r\n\r\n var body = document.getElementsByTagName('body')[0];\r\n body.innerText = '';\r\n var div = createTag('div');\r\n div.style.width = '100%';\r\n div.style.height = '100%';\r\n div.setAttribute('data-bm-type', renderer);\r\n body.appendChild(div);\r\n registerAnimation(div, animationData);\r\n }\r\n }\r\n\r\n function resize() {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.resize();\r\n }\r\n }\r\n\r\n function activate() {\r\n if (!_isFrozen && playingAnimationsNum) {\r\n if (_stopped) {\r\n window.requestAnimationFrame(first);\r\n _stopped = false;\r\n }\r\n }\r\n }\r\n\r\n function freeze() {\r\n _isFrozen = true;\r\n }\r\n\r\n function unfreeze() {\r\n _isFrozen = false;\r\n activate();\r\n }\r\n\r\n function setVolume(val, animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.setVolume(val, animation);\r\n }\r\n }\r\n\r\n function mute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.mute(animation);\r\n }\r\n }\r\n\r\n function unmute(animation) {\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.unmute(animation);\r\n }\r\n }\r\n\r\n moduleOb.registerAnimation = registerAnimation;\r\n moduleOb.loadAnimation = loadAnimation;\r\n moduleOb.setSpeed = setSpeed;\r\n moduleOb.setDirection = setDirection;\r\n moduleOb.play = play;\r\n moduleOb.pause = pause;\r\n moduleOb.stop = stop;\r\n moduleOb.togglePause = togglePause;\r\n moduleOb.searchAnimations = searchAnimations;\r\n moduleOb.resize = resize; // moduleOb.start = start;\r\n\r\n moduleOb.goToAndStop = goToAndStop;\r\n moduleOb.destroy = destroy;\r\n moduleOb.freeze = freeze;\r\n moduleOb.unfreeze = unfreeze;\r\n moduleOb.setVolume = setVolume;\r\n moduleOb.mute = mute;\r\n moduleOb.unmute = unmute;\r\n moduleOb.getRegisteredAnimations = getRegisteredAnimations;\r\n return moduleOb;\r\n }();\r\n\r\n /* eslint-disable */\r\n var 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 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\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n } // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n\r\n\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 var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) {\r\n return 1.0 - 3.0 * aA2 + 3.0 * aA1;\r\n }\r\n\r\n function B(aA1, aA2) {\r\n return 3.0 * aA2 - 6.0 * aA1;\r\n }\r\n\r\n function C(aA1) {\r\n return 3.0 * aA1;\r\n } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n\r\n\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n\r\n\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,\r\n currentT,\r\n i = 0;\r\n\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n\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\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\r\n return aGuessT;\r\n }\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n\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 this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n get: function get(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\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 // Private part\r\n _precompute: function _precompute() {\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\r\n if (mX1 !== mY1 || mX2 !== mY2) {\r\n this._calcSampleValues();\r\n }\r\n },\r\n _calcSampleValues: function _calcSampleValues() {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n\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 _getTForX(aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\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\r\n --currentSample; // Interpolate to provide an initial guess for t\r\n\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n }\r\n\r\n if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n };\r\n return ob;\r\n }();\r\n\r\n var pooling = function () {\r\n function _double(arr) {\r\n return arr.concat(createSizedArray(arr.length));\r\n }\r\n\r\n return {\r\n \"double\": _double\r\n };\r\n }();\r\n\r\n var poolFactory = function () {\r\n return function (initialLength, _create, _release) {\r\n var _length = 0;\r\n var _maxLength = initialLength;\r\n var pool = createSizedArray(_maxLength);\r\n var ob = {\r\n newElement: newElement,\r\n release: release\r\n };\r\n\r\n function newElement() {\r\n var element;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\r\n }\r\n\r\n return element;\r\n }\r\n\r\n function release(element) {\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n if (_release) {\r\n _release(element);\r\n }\r\n\r\n pool[_length] = element;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n };\r\n }();\r\n\r\n var bezierLengthPool = function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', getDefaultCurveSegments()),\r\n lengths: createTypedArray('float32', getDefaultCurveSegments())\r\n };\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n var segmentsLengthPool = function () {\r\n function create() {\r\n return {\r\n lengths: [],\r\n totalLength: 0\r\n };\r\n }\r\n\r\n function release(element) {\r\n var i;\r\n var len = element.lengths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\r\n }\r\n\r\n element.lengths.length = 0;\r\n }\r\n\r\n return poolFactory(8, create, release);\r\n }();\r\n\r\n function bezFunction() {\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\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\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\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point = [];\r\n var lastPoint = [];\r\n var lengthData = bezierLengthPool.newElement();\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * pt3[i] + 3 * (1 - perc) * bmPow(perc, 2) * pt4[i] + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n\r\n lastPoint[i] = point[i];\r\n }\r\n\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\r\n }\r\n\r\n lengthData.addedLength = addedLength;\r\n return lengthData;\r\n };\r\n }();\r\n\r\n function getSegmentsLength(shapeData) {\r\n var segmentsLength = segmentsLengthPool.newElement();\r\n var closed = shapeData.c;\r\n var pathV = shapeData.v;\r\n var pathO = shapeData.o;\r\n var pathI = shapeData.i;\r\n var i;\r\n var len = shapeData._length;\r\n var lengths = segmentsLength.lengths;\r\n var totalLength = 0;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[i + 1], pathO[i], pathI[i + 1]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n if (closed && len) {\r\n lengths[i] = getBezierLength(pathV[i], pathV[0], pathO[i], pathI[0]);\r\n totalLength += lengths[i].addedLength;\r\n }\r\n\r\n segmentsLength.totalLength = totalLength;\r\n return segmentsLength;\r\n }\r\n\r\n function BezierData(length) {\r\n this.segmentLength = 0;\r\n this.points = new Array(length);\r\n }\r\n\r\n function PointData(partial, point) {\r\n this.partialLength = partial;\r\n this.point = point;\r\n }\r\n\r\n var buildBezierData = function () {\r\n var storedData = {};\r\n return function (pt1, pt2, pt3, pt4) {\r\n var bezierName = (pt1[0] + '_' + pt1[1] + '_' + pt2[0] + '_' + pt2[1] + '_' + pt3[0] + '_' + pt3[1] + '_' + pt4[0] + '_' + pt4[1]).replace(/\\./g, 'p');\r\n\r\n if (!storedData[bezierName]) {\r\n var curveSegments = getDefaultCurveSegments();\r\n var k;\r\n var i;\r\n var len;\r\n var ptCoord;\r\n var perc;\r\n var addedLength = 0;\r\n var ptDistance;\r\n var point;\r\n var lastPoint = null;\r\n\r\n if (pt1.length === 2 && (pt1[0] !== pt2[0] || pt1[1] !== pt2[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt1[0] + pt3[0], pt1[1] + pt3[1]) && pointOnLine2D(pt1[0], pt1[1], pt2[0], pt2[1], pt2[0] + pt4[0], pt2[1] + pt4[1])) {\r\n curveSegments = 2;\r\n }\r\n\r\n var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\r\n\r\n for (k = 0; k < curveSegments; k += 1) {\r\n point = createSizedArray(len);\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptCoord = bmPow(1 - perc, 3) * pt1[i] + 3 * bmPow(1 - perc, 2) * perc * (pt1[i] + pt3[i]) + 3 * (1 - perc) * bmPow(perc, 2) * (pt2[i] + pt4[i]) + bmPow(perc, 3) * pt2[i];\r\n point[i] = ptCoord;\r\n\r\n if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n }\r\n\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n bezierData.points[k] = new PointData(ptDistance, point);\r\n lastPoint = point;\r\n }\r\n\r\n bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\r\n }\r\n\r\n return storedData[bezierName];\r\n };\r\n }();\r\n\r\n function getDistancePerc(perc, bezierData) {\r\n var percents = bezierData.percents;\r\n var lengths = bezierData.lengths;\r\n var len = percents.length;\r\n var initPos = bmFloor((len - 1) * perc);\r\n var lengthPos = perc * bezierData.addedLength;\r\n var lPerc = 0;\r\n\r\n if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n\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\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\r\n flag = false;\r\n }\r\n }\r\n\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent, bezierData);\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 var bezierSegmentPoints = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1, pt2, pt3, pt4, startPerc, endPerc, bezierData) {\r\n if (startPerc < 0) {\r\n startPerc = 0;\r\n } else if (startPerc > 1) {\r\n startPerc = 1;\r\n }\r\n\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;\r\n var 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; // eslint-disable-line camelcase\r\n\r\n var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\r\n\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; // eslint-disable-line camelcase\r\n\r\n var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\r\n\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; // eslint-disable-line camelcase\r\n\r\n var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\r\n\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; // eslint-disable-line camelcase\r\n\r\n var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n\r\n var t1t1t1 = t1 * t1 * t1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierSegmentPoints[i * 4] = math.round((u0u0u0 * pt1[i] + t0u0u0_3 * pt3[i] + t0t0u0_3 * pt4[i] + t0t0t0 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 1] = math.round((u0u0u1 * pt1[i] + t0u0u1_3 * pt3[i] + t0t0u1_3 * pt4[i] + t0t0t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 2] = math.round((u0u1u1 * pt1[i] + t0u1u1_3 * pt3[i] + t0t1u1_3 * pt4[i] + t0t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n\r\n bezierSegmentPoints[i * 4 + 3] = math.round((u1u1u1 * pt1[i] + t1u1u1_3 * pt3[i] + t1t1u1_3 * pt4[i] + t1t1t1 * pt2[i]) * 1000) / 1000; // eslint-disable-line camelcase\r\n }\r\n\r\n return bezierSegmentPoints;\r\n }\r\n\r\n return {\r\n getSegmentsLength: getSegmentsLength,\r\n getNewSegment: getNewSegment,\r\n getPointInSegment: getPointInSegment,\r\n buildBezierData: buildBezierData,\r\n pointOnLine2D: pointOnLine2D,\r\n pointOnLine3D: pointOnLine3D\r\n };\r\n }\r\n\r\n var bez = bezFunction();\r\n\r\n var PropertyFactory = function () {\r\n var initFrame = initialDefaultFrame;\r\n var mathAbs = Math.abs;\r\n\r\n function interpolateValue(frameNum, caching) {\r\n var offsetTime = this.offsetTime;\r\n var newValue;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\r\n }\r\n\r\n var iterationIndex = caching.lastIndex;\r\n var i = iterationIndex;\r\n var len = this.keyframes.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = this.keyframes[i];\r\n nextKeyData = this.keyframes[i + 1];\r\n\r\n if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n\r\n iterationIndex = 0;\r\n break;\r\n }\r\n\r\n if (nextKeyData.t - offsetTime > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\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 keyframeMetadata = this.keyframesMetadata[i] || {};\r\n var k;\r\n var kLen;\r\n var perc;\r\n var jLen;\r\n var j;\r\n var fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n var endValue;\r\n\r\n if (keyData.to) {\r\n if (!keyframeMetadata.bezierData) {\r\n keyframeMetadata.bezierData = bez.buildBezierData(keyData.s, nextKeyData.s || keyData.e, keyData.to, keyData.ti);\r\n }\r\n\r\n var bezierData = keyframeMetadata.bezierData;\r\n\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\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n } // caching._lastKeyframeIndex = -1;\r\n\r\n } else {\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__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 keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\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\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\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\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\r\n break;\r\n }\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\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;\r\n var outY;\r\n var inX;\r\n var inY;\r\n var keyValue;\r\n len = keyData.s.length;\r\n endValue = nextKeyData.s || keyData.e;\r\n\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 } 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 (!keyframeMetadata.__fnct) {\r\n keyframeMetadata.__fnct = [];\r\n }\r\n\r\n if (!keyframeMetadata.__fnct[i]) {\r\n outX = keyData.o.x[i] === undefined ? keyData.o.x[0] : keyData.o.x[i];\r\n outY = keyData.o.y[i] === undefined ? keyData.o.y[0] : keyData.o.y[i];\r\n inX = keyData.i.x[i] === undefined ? keyData.i.x[0] : keyData.i.x[i];\r\n inY = 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 keyframeMetadata.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct[i];\r\n }\r\n } else if (!keyframeMetadata.__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.keyframeMetadata = fnc;\r\n } else {\r\n fnc = keyframeMetadata.__fnct;\r\n }\r\n\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n } // based on @Toji's https://github.com/toji/gl-matrix/\r\n\r\n\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\r\n var ay = a[1];\r\n var az = a[2];\r\n var aw = a[3];\r\n var bx = b[0];\r\n var by = b[1];\r\n var bz = b[2];\r\n var bw = b[3];\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n\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\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\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 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 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\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\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\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n\r\n if (mathAbs(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;\r\n var len = this.v.length;\r\n\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n\r\n if (mathAbs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\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\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\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;\r\n var len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n\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\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.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: 0,\r\n _lastKeyframeIndex: -1\r\n };\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;\r\n var len = data.k.length;\r\n var s;\r\n var e;\r\n var to;\r\n var ti;\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n\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\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\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.data = data;\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\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\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\r\n this._caching = {\r\n lastFrame: initFrame,\r\n lastIndex: 0,\r\n value: createTypedArray('float32', arrLen)\r\n };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n\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\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\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\n\r\n function DynamicPropertyContainer() {}\r\n\r\n DynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n this.container.addDynamicProperty(this);\r\n this._isAnimated = true;\r\n }\r\n },\r\n iterateDynamicProperties: function iterateDynamicProperties() {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function initDynamicPropertyContainer(container) {\r\n this.container = container;\r\n this.dynamicProperties = [];\r\n this._mdf = false;\r\n this._isAnimated = false;\r\n }\r\n };\r\n\r\n var pointPool = function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n\r\n return poolFactory(8, create);\r\n }();\r\n\r\n function ShapePath() {\r\n this.c = false;\r\n this._length = 0;\r\n this._maxLength = 8;\r\n this.v = createSizedArray(this._maxLength);\r\n this.o = createSizedArray(this._maxLength);\r\n this.i = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\r\n\r\n while (i < len) {\r\n this.v[i] = pointPool.newElement();\r\n this.o[i] = pointPool.newElement();\r\n this.i[i] = pointPool.newElement();\r\n i += 1;\r\n }\r\n };\r\n\r\n ShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n this._length = len;\r\n };\r\n\r\n ShapePath.prototype.doubleArrayLength = function () {\r\n this.v = this.v.concat(createSizedArray(this._maxLength));\r\n this.i = this.i.concat(createSizedArray(this._maxLength));\r\n this.o = this.o.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n };\r\n\r\n ShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n\r\n if (!arr[pos] || arr[pos] && !replace) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n };\r\n\r\n ShapePath.prototype.setTripleAt = function (vX, vY, oX, oY, iX, iY, pos, replace) {\r\n this.setXYAt(vX, vY, 'v', pos, replace);\r\n this.setXYAt(oX, oY, 'o', pos, replace);\r\n this.setXYAt(iX, iY, 'i', pos, replace);\r\n };\r\n\r\n ShapePath.prototype.reverse = function () {\r\n var newPath = new ShapePath();\r\n newPath.setPathData(this.c, this._length);\r\n var vertices = this.v;\r\n var outPoints = this.o;\r\n var inPoints = this.i;\r\n var init = 0;\r\n\r\n if (this.c) {\r\n newPath.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\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n var i;\r\n\r\n for (i = init; i < len; i += 1) {\r\n newPath.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\r\n return newPath;\r\n };\r\n\r\n ShapePath.prototype.length = function () {\r\n return this._length;\r\n };\r\n\r\n var shapePool = function () {\r\n function create() {\r\n return new ShapePath();\r\n }\r\n\r\n function release(shapePath) {\r\n var len = shapePath._length;\r\n var i;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n pointPool.release(shapePath.v[i]);\r\n pointPool.release(shapePath.i[i]);\r\n pointPool.release(shapePath.o[i]);\r\n shapePath.v[i] = null;\r\n shapePath.i[i] = null;\r\n shapePath.o[i] = null;\r\n }\r\n\r\n shapePath._length = 0;\r\n shapePath.c = false;\r\n }\r\n\r\n function clone(shape) {\r\n var cloned = factory.newElement();\r\n var i;\r\n var len = shape._length === undefined ? shape.v.length : shape._length;\r\n cloned.setLength(len);\r\n cloned.c = shape.c;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n cloned.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 }\r\n\r\n return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n return factory;\r\n }();\r\n\r\n function ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n }\r\n\r\n ShapeCollection.prototype.addShape = function (shapeData) {\r\n if (this._length === this._maxLength) {\r\n this.shapes = this.shapes.concat(createSizedArray(this._maxLength));\r\n this._maxLength *= 2;\r\n }\r\n\r\n this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n };\r\n\r\n ShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n\r\n this._length = 0;\r\n };\r\n\r\n var shapeCollectionPool = function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release\r\n };\r\n var _length = 0;\r\n var _maxLength = 4;\r\n var pool = createSizedArray(_maxLength);\r\n\r\n function newShapeCollection() {\r\n var shapeCollection;\r\n\r\n if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\r\n }\r\n\r\n return shapeCollection;\r\n }\r\n\r\n function release(shapeCollection) {\r\n var i;\r\n var len = shapeCollection._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\r\n }\r\n\r\n shapeCollection._length = 0;\r\n\r\n if (_length === _maxLength) {\r\n pool = pooling[\"double\"](pool);\r\n _maxLength *= 2;\r\n }\r\n\r\n pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePropertyFactory = function () {\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS;\r\n var keyPropE;\r\n var isHold;\r\n var j;\r\n var k;\r\n var jLen;\r\n var kLen;\r\n var perc;\r\n var vertexValue;\r\n var kf = this.keyframes;\r\n\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\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n\r\n if (nextKeyData.t - this.offsetTime > frameNum) {\r\n break;\r\n }\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\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n\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\r\n if (keyframeMetadata.__fnct) {\r\n fnc = keyframeMetadata.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y).get;\r\n keyframeMetadata.__fnct = fnc;\r\n }\r\n\r\n perc = fnc((frameNum - (keyData.t - this.offsetTime)) / (nextKeyData.t - this.offsetTime - (keyData.t - this.offsetTime)));\r\n }\r\n\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n\r\n keyPropS = keyData.s[0];\r\n }\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 < jLen; j += 1) {\r\n for (k = 0; k < kLen; k += 1) {\r\n vertexValue = isHold ? keyPropS.i[j][k] : keyPropS.i[j][k] + (keyPropE.i[j][k] - keyPropS.i[j][k]) * perc;\r\n previousValue.i[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.o[j][k] : keyPropS.o[j][k] + (keyPropE.o[j][k] - keyPropS.o[j][k]) * perc;\r\n previousValue.o[j][k] = vertexValue;\r\n vertexValue = isHold ? keyPropS.v[j][k] : keyPropS.v[j][k] + (keyPropE.v[j][k] - keyPropS.v[j][k]) * perc;\r\n previousValue.v[j][k] = vertexValue;\r\n }\r\n }\r\n }\r\n\r\n function interpolateShapeCurrentTime() {\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 var lastFrame = this._caching.lastFrame;\r\n\r\n if (!(lastFrame !== initFrame && (lastFrame < initTime && frameNum < initTime || lastFrame > 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\r\n var i;\r\n var len = shape1._length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0] || shape1.v[i][1] !== shape2.v[i][1] || shape1.o[i][0] !== shape2.o[i][0] || shape1.o[i][1] !== shape2.o[i][1] || shape1.i[i][0] !== shape2.i[i][0] || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\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 = shapePool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\r\n\r\n if (this.kf) {\r\n finalValue = this.pv;\r\n } else if (this.data.ks) {\r\n finalValue = this.data.ks.k;\r\n } else {\r\n finalValue = this.data.pt.k;\r\n }\r\n\r\n var i;\r\n var len = this.effectsSequence.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\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 = shapePool.clone(pathData);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.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.keyframesMetadata = [];\r\n this.k = true;\r\n this.kf = true;\r\n var len = this.keyframes[0].s[0].i.length;\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shapePool.clone(this.v);\r\n this.localShapeCollection = shapeCollectionPool.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 = {\r\n lastFrame: initFrame,\r\n lastIndex: 0\r\n };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\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 var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollectionPool.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\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 EllShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\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 convertEllToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var s0 = this.s.v[0] / 2;\r\n var s1 = this.s.v[1] / 2;\r\n\r\n var _cw = this.d !== 3;\r\n\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 extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n return EllShapePropertyFactory;\r\n }();\r\n\r\n var StarShapeProperty = function () {\r\n function StarShapePropertyFactory(elem, data) {\r\n this.v = shapePool.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\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\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 = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n\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 StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function convertStarToPath() {\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\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;\r\n var rad;\r\n var roundness;\r\n var perimSegment;\r\n var 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\r\n for (i = 0; i < numPts; i += 1) {\r\n rad = longFlag ? longRad : shortRad;\r\n roundness = longFlag ? longRound : shortRound;\r\n perimSegment = longFlag ? longPerimSegment : shortPerimSegment;\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n /* this.v.v[i] = [x,y];\r\n this.v.i[i] = [x+ox*perimSegment*roundness*dir,y+oy*perimSegment*roundness*dir];\r\n this.v.o[i] = [x-ox*perimSegment*roundness*dir,y-oy*perimSegment*roundness*dir];\r\n this.v._length = numPts; */\r\n\r\n longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function convertPolygonToPath() {\r\n var numPts = Math.floor(this.pt.v);\r\n var angle = Math.PI * 2 / numPts;\r\n var rad = this.or.v;\r\n var roundness = this.os.v;\r\n var perimSegment = 2 * Math.PI * rad / (numPts * 4);\r\n var i;\r\n var currentAng = -Math.PI * 0.5;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n currentAng += this.r.v;\r\n this.v._length = 0;\r\n\r\n for (i = 0; i < numPts; i += 1) {\r\n var x = rad * Math.cos(currentAng);\r\n var y = rad * Math.sin(currentAng);\r\n var ox = x === 0 && y === 0 ? 0 : y / Math.sqrt(x * x + y * y);\r\n var oy = x === 0 && y === 0 ? 0 : -x / Math.sqrt(x * x + y * y);\r\n x += +this.p.v[0];\r\n y += +this.p.v[1];\r\n this.v.setTripleAt(x, y, x - ox * perimSegment * roundness * dir, y - oy * perimSegment * roundness * dir, x + ox * perimSegment * roundness * dir, y + oy * perimSegment * roundness * dir, i, true);\r\n currentAng += angle * dir;\r\n }\r\n\r\n this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n return StarShapePropertyFactory;\r\n }();\r\n\r\n var RectShapeProperty = function () {\r\n function RectShapePropertyFactory(elem, data) {\r\n this.v = shapePool.newElement();\r\n this.v.c = true;\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.d = data.d;\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 this.r = PropertyFactory.getProp(elem, data.r, 0, 0, this);\r\n\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertRectToPath();\r\n }\r\n }\r\n\r\n RectShapePropertyFactory.prototype = {\r\n convertRectToPath: function convertRectToPath() {\r\n var p0 = this.p.v[0];\r\n var p1 = this.p.v[1];\r\n var v0 = this.s.v[0] / 2;\r\n var v1 = this.s.v[1] / 2;\r\n var round = bmMin(v0, v1, this.r.v);\r\n var cPoint = round * (1 - roundCorner);\r\n this.v._length = 0;\r\n\r\n if (this.d === 2 || this.d === 1) {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, 0, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, p0 + v0, p1 + v1 - round, 1, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0 + round, p1 + v1, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, 4, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1 + round, 5, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, 6, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, p0 + v0 - round, p1 - v1, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0 + cPoint, p1 + v1, p0 - v0, p1 + v1, 2);\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0, p1 - v1 + cPoint, p0 - v0, p1 - v1, 3);\r\n }\r\n } else {\r\n this.v.setTripleAt(p0 + v0, p1 - v1 + round, p0 + v0, p1 - v1 + cPoint, p0 + v0, p1 - v1 + round, 0, true);\r\n\r\n if (round !== 0) {\r\n this.v.setTripleAt(p0 + v0 - round, p1 - v1, p0 + v0 - round, p1 - v1, p0 + v0 - cPoint, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0 + round, p1 - v1, 2, true);\r\n this.v.setTripleAt(p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + round, p0 - v0, p1 - v1 + cPoint, 3, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1 - round, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1 - round, 4, true);\r\n this.v.setTripleAt(p0 - v0 + round, p1 + v1, p0 - v0 + round, p1 + v1, p0 - v0 + cPoint, p1 + v1, 5, true);\r\n this.v.setTripleAt(p0 + v0 - round, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0 - round, p1 + v1, 6, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - round, p0 + v0, p1 + v1 - cPoint, 7, true);\r\n } else {\r\n this.v.setTripleAt(p0 - v0, p1 - v1, p0 - v0 + cPoint, p1 - v1, p0 - v0, p1 - v1, 1, true);\r\n this.v.setTripleAt(p0 - v0, p1 + v1, p0 - v0, p1 + v1 - cPoint, p0 - v0, p1 + v1, 2, true);\r\n this.v.setTripleAt(p0 + v0, p1 + v1, p0 + v0 - cPoint, p1 + v1, p0 + v0, p1 + v1, 3, true);\r\n }\r\n }\r\n },\r\n getValue: function getValue() {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n return RectShapePropertyFactory;\r\n }();\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\r\n\r\n if (type === 3 || type === 4) {\r\n var dataProp = type === 3 ? data.pt : data.ks;\r\n var keys = dataProp.k;\r\n\r\n if (keys.length) {\r\n prop = new KeyframedShapeProperty(elem, data, type);\r\n } else {\r\n prop = new ShapeProperty(elem, data, type);\r\n }\r\n } else if (type === 5) {\r\n prop = new RectShapeProperty(elem, data);\r\n } else if (type === 6) {\r\n prop = new EllShapeProperty(elem, data);\r\n } else if (type === 7) {\r\n prop = new StarShapeProperty(elem, data);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n }\r\n\r\n function getConstructorFunction() {\r\n return ShapeProperty;\r\n }\r\n\r\n function getKeyframedConstructorFunction() {\r\n return KeyframedShapeProperty;\r\n }\r\n\r\n var ob = {};\r\n ob.getShapeProp = getShapeProp;\r\n ob.getConstructorFunction = getConstructorFunction;\r\n ob.getKeyframedConstructorFunction = getKeyframedConstructorFunction;\r\n return ob;\r\n }();\r\n\r\n /*!\r\n Transformation Matrix v2.0\r\n (c) Epistemex 2014-2015\r\n www.epistemex.com\r\n By Ken Fyrstenberg\r\n Contributions by leeoniya.\r\n License: MIT, header required.\r\n */\r\n\r\n /**\r\n * 2D transformation matrix object initialized with identity matrix.\r\n *\r\n * The matrix can synchronize a canvas context by supplying the context\r\n * as an argument, or later apply current absolute transform to an\r\n * existing context.\r\n *\r\n * All values are handled as floating point values.\r\n *\r\n * @param {CanvasRenderingContext2D} [context] - Optional context to sync with Matrix\r\n * @prop {number} a - scale x\r\n * @prop {number} b - shear y\r\n * @prop {number} c - shear x\r\n * @prop {number} d - scale y\r\n * @prop {number} e - translate x\r\n * @prop {number} f - translate y\r\n * @prop {CanvasRenderingContext2D|null} [context=null] - set or get current canvas context\r\n * @constructor\r\n */\r\n\r\n var Matrix = function () {\r\n var _cos = Math.cos;\r\n var _sin = Math.sin;\r\n var _tan = Math.tan;\r\n var _rnd = Math.round;\r\n\r\n function reset() {\r\n this.props[0] = 1;\r\n this.props[1] = 0;\r\n this.props[2] = 0;\r\n this.props[3] = 0;\r\n this.props[4] = 0;\r\n this.props[5] = 1;\r\n this.props[6] = 0;\r\n this.props[7] = 0;\r\n this.props[8] = 0;\r\n this.props[9] = 0;\r\n this.props[10] = 1;\r\n this.props[11] = 0;\r\n this.props[12] = 0;\r\n this.props[13] = 0;\r\n this.props[14] = 0;\r\n this.props[15] = 1;\r\n return this;\r\n }\r\n\r\n function rotate(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateX(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(1, 0, 0, 0, 0, mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateY(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, 0, mSin, 0, 0, 1, 0, 0, -mSin, 0, mCos, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function rotateZ(angle) {\r\n if (angle === 0) {\r\n return this;\r\n }\r\n\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function shear(sx, sy) {\r\n return this._t(1, sy, sx, 1, 0, 0);\r\n }\r\n\r\n function skew(ax, ay) {\r\n return this.shear(_tan(ax), _tan(ay));\r\n }\r\n\r\n function skewFromAxis(ax, angle) {\r\n var mCos = _cos(angle);\r\n\r\n var mSin = _sin(angle);\r\n\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1); // return this._t(mCos, mSin, -mSin, mCos, 0, 0)._t(1, 0, _tan(ax), 1, 0, 0)._t(mCos, -mSin, mSin, mCos, 0, 0);\r\n }\r\n\r\n function scale(sx, sy, sz) {\r\n if (!sz && sz !== 0) {\r\n sz = 1;\r\n }\r\n\r\n if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\r\n }\r\n\r\n return this._t(sx, 0, 0, 0, 0, sy, 0, 0, 0, 0, sz, 0, 0, 0, 0, 1);\r\n }\r\n\r\n function setTransform(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) {\r\n this.props[0] = a;\r\n this.props[1] = b;\r\n this.props[2] = c;\r\n this.props[3] = d;\r\n this.props[4] = e;\r\n this.props[5] = f;\r\n this.props[6] = g;\r\n this.props[7] = h;\r\n this.props[8] = i;\r\n this.props[9] = j;\r\n this.props[10] = k;\r\n this.props[11] = l;\r\n this.props[12] = m;\r\n this.props[13] = n;\r\n this.props[14] = o;\r\n this.props[15] = p;\r\n return this;\r\n }\r\n\r\n function translate(tx, ty, tz) {\r\n tz = tz || 0;\r\n\r\n if (tx !== 0 || ty !== 0 || tz !== 0) {\r\n return this._t(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, tx, ty, tz, 1);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n function transform(a2, b2, c2, d2, e2, f2, g2, h2, i2, j2, k2, l2, m2, n2, o2, p2) {\r\n var _p = this.props;\r\n\r\n if (a2 === 1 && b2 === 0 && c2 === 0 && d2 === 0 && e2 === 0 && f2 === 1 && g2 === 0 && h2 === 0 && i2 === 0 && j2 === 0 && k2 === 1 && l2 === 0) {\r\n // NOTE: commenting this condition because TurboFan deoptimizes code when present\r\n // if(m2 !== 0 || n2 !== 0 || o2 !== 0){\r\n _p[12] = _p[12] * a2 + _p[15] * m2;\r\n _p[13] = _p[13] * f2 + _p[15] * n2;\r\n _p[14] = _p[14] * k2 + _p[15] * o2;\r\n _p[15] *= p2; // }\r\n\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n var a1 = _p[0];\r\n var b1 = _p[1];\r\n var c1 = _p[2];\r\n var d1 = _p[3];\r\n var e1 = _p[4];\r\n var f1 = _p[5];\r\n var g1 = _p[6];\r\n var h1 = _p[7];\r\n var i1 = _p[8];\r\n var j1 = _p[9];\r\n var k1 = _p[10];\r\n var l1 = _p[11];\r\n var m1 = _p[12];\r\n var n1 = _p[13];\r\n var o1 = _p[14];\r\n var p1 = _p[15];\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\r\n */\r\n\r\n _p[0] = a1 * a2 + b1 * e2 + c1 * i2 + d1 * m2;\r\n _p[1] = a1 * b2 + b1 * f2 + c1 * j2 + d1 * n2;\r\n _p[2] = a1 * c2 + b1 * g2 + c1 * k2 + d1 * o2;\r\n _p[3] = a1 * d2 + b1 * h2 + c1 * l2 + d1 * p2;\r\n _p[4] = e1 * a2 + f1 * e2 + g1 * i2 + h1 * m2;\r\n _p[5] = e1 * b2 + f1 * f2 + g1 * j2 + h1 * n2;\r\n _p[6] = e1 * c2 + f1 * g2 + g1 * k2 + h1 * o2;\r\n _p[7] = e1 * d2 + f1 * h2 + g1 * l2 + h1 * p2;\r\n _p[8] = i1 * a2 + j1 * e2 + k1 * i2 + l1 * m2;\r\n _p[9] = i1 * b2 + j1 * f2 + k1 * j2 + l1 * n2;\r\n _p[10] = i1 * c2 + j1 * g2 + k1 * k2 + l1 * o2;\r\n _p[11] = i1 * d2 + j1 * h2 + k1 * l2 + l1 * p2;\r\n _p[12] = m1 * a2 + n1 * e2 + o1 * i2 + p1 * m2;\r\n _p[13] = m1 * b2 + n1 * f2 + o1 * j2 + p1 * n2;\r\n _p[14] = m1 * c2 + n1 * g2 + o1 * k2 + p1 * o2;\r\n _p[15] = m1 * d2 + n1 * h2 + o1 * l2 + p1 * p2;\r\n this._identityCalculated = false;\r\n return this;\r\n }\r\n\r\n function isIdentity() {\r\n if (!this._identityCalculated) {\r\n this._identity = !(this.props[0] !== 1 || this.props[1] !== 0 || this.props[2] !== 0 || this.props[3] !== 0 || this.props[4] !== 0 || this.props[5] !== 1 || this.props[6] !== 0 || this.props[7] !== 0 || this.props[8] !== 0 || this.props[9] !== 0 || this.props[10] !== 1 || this.props[11] !== 0 || this.props[12] !== 0 || this.props[13] !== 0 || this.props[14] !== 0 || this.props[15] !== 1);\r\n this._identityCalculated = true;\r\n }\r\n\r\n return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n this.props[i] = props[i];\r\n }\r\n }\r\n\r\n function applyToPoint(x, y, z) {\r\n return {\r\n x: x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n y: x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n z: x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]\r\n };\r\n /* return {\r\n x: x * me.a + y * me.c + me.e,\r\n y: x * me.b + y * me.d + me.f\r\n }; */\r\n }\r\n\r\n function applyToX(x, y, z) {\r\n return x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12];\r\n }\r\n\r\n function applyToY(x, y, z) {\r\n return x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13];\r\n }\r\n\r\n function applyToZ(x, y, z) {\r\n return x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14];\r\n }\r\n\r\n function getInverseMatrix() {\r\n var determinant = this.props[0] * this.props[5] - this.props[1] * this.props[4];\r\n var a = this.props[5] / determinant;\r\n var b = -this.props[1] / determinant;\r\n var c = -this.props[4] / determinant;\r\n var d = this.props[0] / determinant;\r\n var e = (this.props[4] * this.props[13] - this.props[5] * this.props[12]) / determinant;\r\n var f = -(this.props[0] * this.props[13] - this.props[1] * this.props[12]) / determinant;\r\n var inverseMatrix = new Matrix();\r\n inverseMatrix.props[0] = a;\r\n inverseMatrix.props[1] = b;\r\n inverseMatrix.props[4] = c;\r\n inverseMatrix.props[5] = d;\r\n inverseMatrix.props[12] = e;\r\n inverseMatrix.props[13] = f;\r\n return inverseMatrix;\r\n }\r\n\r\n function inversePoint(pt) {\r\n var inverseMatrix = this.getInverseMatrix();\r\n return inverseMatrix.applyToPointArray(pt[0], pt[1], pt[2] || 0);\r\n }\r\n\r\n function inversePoints(pts) {\r\n var i;\r\n var len = pts.length;\r\n var retPts = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\r\n }\r\n\r\n return retPts;\r\n }\r\n\r\n function applyToTriplePoints(pt1, pt2, pt3) {\r\n var arr = createTypedArray('float32', 6);\r\n\r\n if (this.isIdentity()) {\r\n arr[0] = pt1[0];\r\n arr[1] = pt1[1];\r\n arr[2] = pt2[0];\r\n arr[3] = pt2[1];\r\n arr[4] = pt3[0];\r\n arr[5] = pt3[1];\r\n } else {\r\n var p0 = this.props[0];\r\n var p1 = this.props[1];\r\n var p4 = this.props[4];\r\n var p5 = this.props[5];\r\n var p12 = this.props[12];\r\n var p13 = this.props[13];\r\n arr[0] = pt1[0] * p0 + pt1[1] * p4 + p12;\r\n arr[1] = pt1[0] * p1 + pt1[1] * p5 + p13;\r\n arr[2] = pt2[0] * p0 + pt2[1] * p4 + p12;\r\n arr[3] = pt2[0] * p1 + pt2[1] * p5 + p13;\r\n arr[4] = pt3[0] * p0 + pt3[1] * p4 + p12;\r\n arr[5] = pt3[0] * p1 + pt3[1] * p5 + p13;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12], x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13], x * this.props[2] + y * this.props[6] + z * this.props[10] + this.props[14]];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function applyToPointStringified(x, y) {\r\n if (this.isIdentity()) {\r\n return x + ',' + y;\r\n }\r\n\r\n var _p = this.props;\r\n return Math.round((x * _p[0] + y * _p[4] + _p[12]) * 100) / 100 + ',' + Math.round((x * _p[1] + y * _p[5] + _p[13]) * 100) / 100;\r\n }\r\n\r\n function toCSS() {\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\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var i = 0;\r\n var props = this.props;\r\n var cssValue = 'matrix3d(';\r\n var v = 10000;\r\n\r\n while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n\r\n if (val < 0.000001 && val > 0 || val > -0.000001 && val < 0) {\r\n return _rnd(val * v) / v;\r\n }\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\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n\r\n var _a = roundMatrixProperty(props[0]);\r\n\r\n var _b = roundMatrixProperty(props[1]);\r\n\r\n var _c = roundMatrixProperty(props[4]);\r\n\r\n var _d = roundMatrixProperty(props[5]);\r\n\r\n var _e = roundMatrixProperty(props[12]);\r\n\r\n var _f = roundMatrixProperty(props[13]);\r\n\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n }();\r\n\r\n function _typeof$3(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$3 = function _typeof(obj) { return typeof obj; }; } else { _typeof$3 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$3(obj); }\r\n var lottie = {};\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n\r\n function setLocation(href) {\r\n setLocationHref(href);\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n setSubframeEnabled(flag);\r\n }\r\n\r\n function setPrefix(prefix) {\r\n setIdPrefix(prefix);\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n setDefaultCurveSegments(200);\r\n break;\r\n\r\n default:\r\n case 'medium':\r\n setDefaultCurveSegments(50);\r\n break;\r\n\r\n case 'low':\r\n setDefaultCurveSegments(10);\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n setDefaultCurveSegments(value);\r\n }\r\n\r\n if (getDefaultCurveSegments() >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n setExpressionsPlugin(plugin);\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n\r\n case 'matrix':\r\n return Matrix;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n lottie.play = animationManager.play;\r\n lottie.pause = animationManager.pause;\r\n lottie.setLocationHref = setLocation;\r\n lottie.togglePause = animationManager.togglePause;\r\n lottie.setSpeed = animationManager.setSpeed;\r\n lottie.setDirection = animationManager.setDirection;\r\n lottie.stop = animationManager.stop;\r\n lottie.searchAnimations = searchAnimations;\r\n lottie.registerAnimation = animationManager.registerAnimation;\r\n lottie.loadAnimation = loadAnimation;\r\n lottie.setSubframeRendering = setSubframeRendering;\r\n lottie.resize = animationManager.resize; // lottie.start = start;\r\n\r\n lottie.goToAndStop = animationManager.goToAndStop;\r\n lottie.destroy = animationManager.destroy;\r\n lottie.setQuality = setQuality;\r\n lottie.inBrowser = inBrowser;\r\n lottie.installPlugin = installPlugin;\r\n lottie.freeze = animationManager.freeze;\r\n lottie.unfreeze = animationManager.unfreeze;\r\n lottie.setVolume = animationManager.setVolume;\r\n lottie.mute = animationManager.mute;\r\n lottie.unmute = animationManager.unmute;\r\n lottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottie.useWebWorker = setWebWorker;\r\n lottie.setIDPrefix = setPrefix;\r\n lottie.__getFactory = getFactory;\r\n lottie.version = '5.10.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var queryString = '';\r\n\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n queryString = myScript.src ? myScript.src.replace(/^[^\\?]+\\??/, '') : ''; // eslint-disable-line no-useless-escape\r\n\r\n renderer = getQueryVariable('renderer');\r\n }\r\n\r\n var readyStateCheckInterval = setInterval(checkReady, 100); // this adds bodymovin to the window object for backwards compatibility\r\n\r\n try {\r\n if (!((typeof exports === \"undefined\" ? \"undefined\" : _typeof$3(exports)) === 'object' && typeof module !== 'undefined') && !(typeof define === 'function' && define.amd) // eslint-disable-line no-undef\r\n ) {\r\n window.bodymovin = lottie;\r\n }\r\n } catch (err) {//\r\n }\r\n\r\n var ShapeModifiers = function () {\r\n var ob = {};\r\n var modifiers = {};\r\n ob.registerModifier = registerModifier;\r\n ob.getModifier = getModifier;\r\n\r\n function registerModifier(nm, factory) {\r\n if (!modifiers[nm]) {\r\n modifiers[nm] = factory;\r\n }\r\n }\r\n\r\n function getModifier(nm, elem, data) {\r\n return new modifiers[nm](elem, data);\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function ShapeModifier() {}\r\n\r\n ShapeModifier.prototype.initModifierProperties = function () {};\r\n\r\n ShapeModifier.prototype.addShapeToModifier = function () {};\r\n\r\n ShapeModifier.prototype.addShape = function (data) {\r\n if (!this.closed) {\r\n // Adding shape to dynamic properties. It covers the case where a shape has no effects applied, to reset it's _mdf state on every tick.\r\n data.sh.container.addDynamicProperty(data.sh);\r\n var shapeData = {\r\n shape: data.sh,\r\n data: data,\r\n localShapeCollection: shapeCollectionPool.newShapeCollection()\r\n };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n };\r\n\r\n ShapeModifier.prototype.init = function (elem, data) {\r\n this.shapes = [];\r\n this.elem = elem;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, data);\r\n this.frameId = initialDefaultFrame;\r\n this.closed = false;\r\n this.k = false;\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\n ShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n function TrimModifier() {}\r\n\r\n extendPrototype([ShapeModifier], TrimModifier);\r\n\r\n TrimModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.s = PropertyFactory.getProp(elem, data.s, 0, 0.01, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0.01, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0, this);\r\n this.sValue = 0;\r\n this.eValue = 0;\r\n this.getValue = this.processKeys;\r\n this.m = data.m;\r\n this._isAnimated = !!this.s.effectsSequence.length || !!this.e.effectsSequence.length || !!this.o.effectsSequence.length;\r\n };\r\n\r\n TrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n };\r\n\r\n TrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\r\n\r\n if (e <= 1) {\r\n segments.push({\r\n s: s,\r\n e: e\r\n });\r\n } else if (s >= 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\r\n var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n\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\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\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n\r\n return shapeSegments;\r\n };\r\n\r\n TrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n\r\n pathsData.length = 0;\r\n return pathsData;\r\n };\r\n\r\n TrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var o = this.o.v % 360 / 360;\r\n\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n\r\n if (this.s.v > 1) {\r\n s = 1 + o;\r\n } else if (this.s.v < 0) {\r\n s = 0 + o;\r\n } else {\r\n s = this.s.v + o;\r\n }\r\n\r\n if (this.e.v > 1) {\r\n e = 1 + o;\r\n } else if (this.e.v < 0) {\r\n e = 0 + o;\r\n } else {\r\n e = this.e.v + o;\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\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\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var pathsData;\r\n var pathData;\r\n var totalShapeLength;\r\n var 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 if (this._mdf) {\r\n this.shapes[i].pathsData.length = 0;\r\n }\r\n }\r\n } else if (!(e === 1 && s === 0 || e === 0 && s === 1)) {\r\n var segments = [];\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i]; // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n\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\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\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\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\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes(); // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n\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\r\n jLen = edges.length;\r\n\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\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\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n\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\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\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\n TrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n };\r\n\r\n TrimModifier.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\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.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\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n };\r\n\r\n TrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\r\n var len = shapeData.shape.paths._length;\r\n var j;\r\n var jLen;\r\n var addedLength = 0;\r\n var currentLengthData;\r\n var segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n\r\n if (!shapePath) {\r\n shapePath = shapePool.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\r\n shapes.push(shapePath);\r\n\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\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n\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); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n\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); // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\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\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n\r\n return shapes;\r\n };\r\n\r\n function PuckerAndBloatModifier() {}\r\n\r\n extendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\n\r\n PuckerAndBloatModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this._isAnimated = !!this.amount.effectsSequence.length;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processPath = function (path, amount) {\r\n var percent = amount / 100;\r\n var centerPoint = [0, 0];\r\n var pathLength = path._length;\r\n var i = 0;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n centerPoint[0] += path.v[i][0];\r\n centerPoint[1] += path.v[i][1];\r\n }\r\n\r\n centerPoint[0] /= pathLength;\r\n centerPoint[1] /= pathLength;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < pathLength; i += 1) {\r\n vX = path.v[i][0] + (centerPoint[0] - path.v[i][0]) * percent;\r\n vY = path.v[i][1] + (centerPoint[1] - path.v[i][1]) * percent;\r\n oX = path.o[i][0] + (centerPoint[0] - path.o[i][0]) * -percent;\r\n oY = path.o[i][1] + (centerPoint[1] - path.o[i][1]) * -percent;\r\n iX = path.i[i][0] + (centerPoint[0] - path.i[i][0]) * -percent;\r\n iY = path.i[i][1] + (centerPoint[1] - path.i[i][1]) * -percent;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, i);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n PuckerAndBloatModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n var TransformPropertyFactory = function () {\r\n var defaultVector = [0, 0];\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n\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\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\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\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\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\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\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 var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n\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\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\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\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\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime(this.p.keyframes[this.p.keyframes.length - 1].t / frameRate, 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\r\n\r\n if (px._caching.lastFrame + px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate, 0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2[0] = px.getValueAtTime(px.keyframes[0].t / frameRate, 0);\r\n v2[1] = py.getValueAtTime(py.keyframes[0].t / frameRate, 0);\r\n } else if (px._caching.lastFrame + px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime(px.keyframes[px.keyframes.length - 1].t / frameRate, 0);\r\n v1[1] = py.getValueAtTime(py.keyframes[py.keyframes.length - 1].t / frameRate, 0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame + px.offsetTime - 0.01) / frameRate, px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame + py.offsetTime - 0.01) / frameRate, py.offsetTime);\r\n }\r\n } else {\r\n v2 = defaultVector;\r\n v1 = v2;\r\n }\r\n\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\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\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\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\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\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 }\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 // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n\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(); // Precalculated matrix with non animated properties\r\n\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n\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\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 || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n }\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\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.or.k[i].to = null;\r\n data.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this); // sh Indicates it needs to be capped between -180 and 180\r\n\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n }\r\n\r\n if (data.sk) {\r\n this.sk = PropertyFactory.getProp(elem, data.sk, 0, degToRads, this);\r\n this.sa = PropertyFactory.getProp(elem, data.sa, 0, degToRads, this);\r\n }\r\n\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: [0, 0, 0]\r\n }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: [100, 100, 100]\r\n }, 1, 0.01, this); // Opacity is not part of the transform properties, that's why it won't use this.dynamicProperties. That way transforms won't get updated if opacity changes.\r\n\r\n if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = {\r\n _mdf: false,\r\n v: 1\r\n };\r\n }\r\n\r\n this._isDirty = true;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n }\r\n\r\n TransformProperty.prototype = {\r\n applyToMatrix: applyToMatrix,\r\n getValue: processKeys,\r\n precalculateMatrix: precalculateMatrix,\r\n autoOrient: autoOrient\r\n };\r\n extendPrototype([DynamicPropertyContainer], TransformProperty);\r\n TransformProperty.prototype.addDynamicProperty = addDynamicProperty;\r\n TransformProperty.prototype._addDynamicProperty = DynamicPropertyContainer.prototype.addDynamicProperty;\r\n\r\n function getTransformProperty(elem, data, container) {\r\n return new TransformProperty(elem, data, container);\r\n }\r\n\r\n return {\r\n getTransformProperty: getTransformProperty\r\n };\r\n }();\r\n\r\n function RepeaterModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\n RepeaterModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.c = PropertyFactory.getProp(elem, data.c, 0, null, this);\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, null, this);\r\n this.tr = TransformPropertyFactory.getTransformProperty(elem, data.tr, this);\r\n this.so = PropertyFactory.getProp(elem, data.tr.so, 0, 0.01, this);\r\n this.eo = PropertyFactory.getProp(elem, data.tr.eo, 0, 0.01, this);\r\n this.data = data;\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = !!this.dynamicProperties.length;\r\n this.pMatrix = new Matrix();\r\n this.rMatrix = new Matrix();\r\n this.sMatrix = new Matrix();\r\n this.tMatrix = new Matrix();\r\n this.matrix = new Matrix();\r\n };\r\n\r\n RepeaterModifier.prototype.applyTransforms = function (pMatrix, rMatrix, sMatrix, transform, perc, inv) {\r\n var dir = inv ? -1 : 1;\r\n var scaleX = transform.s.v[0] + (1 - transform.s.v[0]) * (1 - perc);\r\n var scaleY = transform.s.v[1] + (1 - transform.s.v[1]) * (1 - perc);\r\n pMatrix.translate(transform.p.v[0] * dir * perc, transform.p.v[1] * dir * perc, transform.p.v[2]);\r\n rMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n rMatrix.rotate(-transform.r.v * dir * perc);\r\n rMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n sMatrix.translate(-transform.a.v[0], -transform.a.v[1], transform.a.v[2]);\r\n sMatrix.scale(inv ? 1 / scaleX : scaleX, inv ? 1 / scaleY : scaleY);\r\n sMatrix.translate(transform.a.v[0], transform.a.v[1], transform.a.v[2]);\r\n };\r\n\r\n RepeaterModifier.prototype.init = function (elem, arr, pos, elemsData) {\r\n this.elem = elem;\r\n this.arr = arr;\r\n this.pos = pos;\r\n this.elemsData = elemsData;\r\n this._currentCopies = 0;\r\n this._elements = [];\r\n this._groups = [];\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.initModifierProperties(elem, arr[pos]);\r\n\r\n while (pos > 0) {\r\n pos -= 1; // this._elements.unshift(arr.splice(pos,1)[0]);\r\n\r\n this._elements.unshift(arr[pos]);\r\n }\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\n RepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n };\r\n\r\n RepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n };\r\n\r\n RepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n\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({\r\n a: {\r\n a: 0,\r\n ix: 1,\r\n k: [0, 0]\r\n },\r\n nm: 'Transform',\r\n o: {\r\n a: 0,\r\n ix: 7,\r\n k: 100\r\n },\r\n p: {\r\n a: 0,\r\n ix: 2,\r\n k: [0, 0]\r\n },\r\n r: {\r\n a: 1,\r\n ix: 6,\r\n k: [{\r\n s: 0,\r\n e: 0,\r\n t: 0\r\n }, {\r\n s: 0,\r\n e: 0,\r\n t: 1\r\n }]\r\n },\r\n s: {\r\n a: 0,\r\n ix: 3,\r\n k: [100, 100]\r\n },\r\n sa: {\r\n a: 0,\r\n ix: 5,\r\n k: 0\r\n },\r\n sk: {\r\n a: 0,\r\n ix: 4,\r\n k: 0\r\n },\r\n ty: 'tr'\r\n });\r\n this.arr.splice(0, 0, group);\r\n\r\n this._groups.splice(0, 0, group);\r\n\r\n this._currentCopies += 1;\r\n }\r\n\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n\r\n cont = 0;\r\n var renderFlag;\r\n\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\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\r\n\r\n if (transformData.transform.op.v !== 0) {\r\n transformData.transform.op._mdf = true;\r\n transformData.transform.op.v = 0;\r\n } else {\r\n transformData.transform.op._mdf = false;\r\n }\r\n }\r\n\r\n cont += 1;\r\n }\r\n\r\n this._currentCopies = copies; /// /\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 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 (iteration < roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n iteration += 1;\r\n }\r\n\r\n if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, offsetModulo, false);\r\n iteration += offsetModulo;\r\n }\r\n } else if (offset < 0) {\r\n while (iteration > roundOffset) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\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\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;\r\n var jLen;\r\n\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._currentCopies === 1 ? this.so.v : this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n\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\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 < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n\r\n this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\r\n }\r\n }\r\n\r\n iteration += 1;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n } else {\r\n cont = this._currentCopies;\r\n i = 0;\r\n dir = 1;\r\n\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n items[items.length - 1].transform.mProps._mdf = false;\r\n items[items.length - 1].transform.op._mdf = false;\r\n cont -= 1;\r\n i += dir;\r\n }\r\n }\r\n\r\n return hasReloaded;\r\n };\r\n\r\n RepeaterModifier.prototype.addShape = function () {};\r\n\r\n function RoundCornersModifier() {}\r\n\r\n extendPrototype([ShapeModifier], RoundCornersModifier);\r\n\r\n RoundCornersModifier.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\n RoundCornersModifier.prototype.processPath = function (path, round) {\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n var i;\r\n var len = path._length;\r\n var currentV;\r\n var currentI;\r\n var currentO;\r\n var closerV;\r\n var distance;\r\n var newPosPerc;\r\n var index = 0;\r\n var vX;\r\n var vY;\r\n var oX;\r\n var oY;\r\n var iX;\r\n var iY;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentV = path.v[i];\r\n currentO = path.o[i];\r\n currentI = path.i[i];\r\n\r\n if (currentV[0] === currentO[0] && currentV[1] === currentO[1] && currentV[0] === currentI[0] && currentV[1] === currentI[1]) {\r\n if ((i === 0 || i === len - 1) && !path.c) {\r\n clonedPath.setTripleAt(currentV[0], currentV[1], currentO[0], currentO[1], currentI[0], currentI[1], index);\r\n /* clonedPath.v[index] = currentV;\r\n clonedPath.o[index] = currentO;\r\n clonedPath.i[index] = currentI; */\r\n\r\n index += 1;\r\n } else {\r\n if (i === 0) {\r\n closerV = path.v[len - 1];\r\n } else {\r\n closerV = path.v[i - 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n iX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = iX;\r\n iY = currentV[1] - (currentV[1] - closerV[1]) * newPosPerc;\r\n vY = iY;\r\n oX = vX - (vX - currentV[0]) * roundCorner;\r\n oY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n\r\n if (i === len - 1) {\r\n closerV = path.v[0];\r\n } else {\r\n closerV = path.v[i + 1];\r\n }\r\n\r\n distance = Math.sqrt(Math.pow(currentV[0] - closerV[0], 2) + Math.pow(currentV[1] - closerV[1], 2));\r\n newPosPerc = distance ? Math.min(distance / 2, round) / distance : 0;\r\n oX = currentV[0] + (closerV[0] - currentV[0]) * newPosPerc;\r\n vX = oX;\r\n oY = currentV[1] + (closerV[1] - currentV[1]) * newPosPerc;\r\n vY = oY;\r\n iX = vX - (vX - currentV[0]) * roundCorner;\r\n iY = vY - (vY - currentV[1]) * roundCorner;\r\n clonedPath.setTripleAt(vX, vY, oX, oY, iX, iY, index);\r\n index += 1;\r\n }\r\n } else {\r\n clonedPath.setTripleAt(path.v[i][0], path.v[i][1], path.o[i][0], path.o[i][1], path.i[i][0], path.i[i][1], index);\r\n index += 1;\r\n }\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n RoundCornersModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var rd = this.rd.v;\r\n\r\n if (rd !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function floatEqual(a, b) {\r\n return Math.abs(a - b) * 100000 <= Math.min(Math.abs(a), Math.abs(b));\r\n }\r\n\r\n function floatZero(f) {\r\n return Math.abs(f) <= 0.00001;\r\n }\r\n\r\n function lerp(p0, p1, amount) {\r\n return p0 * (1 - amount) + p1 * amount;\r\n }\r\n\r\n function lerpPoint(p0, p1, amount) {\r\n return [lerp(p0[0], p1[0], amount), lerp(p0[1], p1[1], amount)];\r\n }\r\n\r\n function quadRoots(a, b, c) {\r\n // no root\r\n if (a === 0) return [];\r\n var s = b * b - 4 * a * c; // Complex roots\r\n\r\n if (s < 0) return [];\r\n var singleRoot = -b / (2 * a); // 1 root\r\n\r\n if (s === 0) return [singleRoot];\r\n var delta = Math.sqrt(s) / (2 * a); // 2 roots\r\n\r\n return [singleRoot - delta, singleRoot + delta];\r\n }\r\n\r\n function polynomialCoefficients(p0, p1, p2, p3) {\r\n return [-p0 + 3 * p1 - 3 * p2 + p3, 3 * p0 - 6 * p1 + 3 * p2, -3 * p0 + 3 * p1, p0];\r\n }\r\n\r\n function singlePoint(p) {\r\n return new PolynomialBezier(p, p, p, p, false);\r\n }\r\n\r\n function PolynomialBezier(p0, p1, p2, p3, linearize) {\r\n if (linearize && pointEqual(p0, p1)) {\r\n p1 = lerpPoint(p0, p3, 1 / 3);\r\n }\r\n\r\n if (linearize && pointEqual(p2, p3)) {\r\n p2 = lerpPoint(p0, p3, 2 / 3);\r\n }\r\n\r\n var coeffx = polynomialCoefficients(p0[0], p1[0], p2[0], p3[0]);\r\n var coeffy = polynomialCoefficients(p0[1], p1[1], p2[1], p3[1]);\r\n this.a = [coeffx[0], coeffy[0]];\r\n this.b = [coeffx[1], coeffy[1]];\r\n this.c = [coeffx[2], coeffy[2]];\r\n this.d = [coeffx[3], coeffy[3]];\r\n this.points = [p0, p1, p2, p3];\r\n }\r\n\r\n PolynomialBezier.prototype.point = function (t) {\r\n return [((this.a[0] * t + this.b[0]) * t + this.c[0]) * t + this.d[0], ((this.a[1] * t + this.b[1]) * t + this.c[1]) * t + this.d[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.derivative = function (t) {\r\n return [(3 * t * this.a[0] + 2 * this.b[0]) * t + this.c[0], (3 * t * this.a[1] + 2 * this.b[1]) * t + this.c[1]];\r\n };\r\n\r\n PolynomialBezier.prototype.tangentAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[1], p[0]);\r\n };\r\n\r\n PolynomialBezier.prototype.normalAngle = function (t) {\r\n var p = this.derivative(t);\r\n return Math.atan2(p[0], p[1]);\r\n };\r\n\r\n PolynomialBezier.prototype.inflectionPoints = function () {\r\n var denom = this.a[1] * this.b[0] - this.a[0] * this.b[1];\r\n if (floatZero(denom)) return [];\r\n var tcusp = -0.5 * (this.a[1] * this.c[0] - this.a[0] * this.c[1]) / denom;\r\n var square = tcusp * tcusp - 1 / 3 * (this.b[1] * this.c[0] - this.b[0] * this.c[1]) / denom;\r\n if (square < 0) return [];\r\n var root = Math.sqrt(square);\r\n\r\n if (floatZero(root)) {\r\n if (root > 0 && root < 1) return [tcusp];\r\n return [];\r\n }\r\n\r\n return [tcusp - root, tcusp + root].filter(function (r) {\r\n return r > 0 && r < 1;\r\n });\r\n };\r\n\r\n PolynomialBezier.prototype.split = function (t) {\r\n if (t <= 0) return [singlePoint(this.points[0]), this];\r\n if (t >= 1) return [this, singlePoint(this.points[this.points.length - 1])];\r\n var p10 = lerpPoint(this.points[0], this.points[1], t);\r\n var p11 = lerpPoint(this.points[1], this.points[2], t);\r\n var p12 = lerpPoint(this.points[2], this.points[3], t);\r\n var p20 = lerpPoint(p10, p11, t);\r\n var p21 = lerpPoint(p11, p12, t);\r\n var p3 = lerpPoint(p20, p21, t);\r\n return [new PolynomialBezier(this.points[0], p10, p20, p3, true), new PolynomialBezier(p3, p21, p12, this.points[3], true)];\r\n };\r\n\r\n function extrema(bez, comp) {\r\n var min = bez.points[0][comp];\r\n var max = bez.points[bez.points.length - 1][comp];\r\n\r\n if (min > max) {\r\n var e = max;\r\n max = min;\r\n min = e;\r\n } // Derivative roots to find min/max\r\n\r\n\r\n var f = quadRoots(3 * bez.a[comp], 2 * bez.b[comp], bez.c[comp]);\r\n\r\n for (var i = 0; i < f.length; i += 1) {\r\n if (f[i] > 0 && f[i] < 1) {\r\n var val = bez.point(f[i])[comp];\r\n if (val < min) min = val;else if (val > max) max = val;\r\n }\r\n }\r\n\r\n return {\r\n min: min,\r\n max: max\r\n };\r\n }\r\n\r\n PolynomialBezier.prototype.bounds = function () {\r\n return {\r\n x: extrema(this, 0),\r\n y: extrema(this, 1)\r\n };\r\n };\r\n\r\n PolynomialBezier.prototype.boundingBox = function () {\r\n var bounds = this.bounds();\r\n return {\r\n left: bounds.x.min,\r\n right: bounds.x.max,\r\n top: bounds.y.min,\r\n bottom: bounds.y.max,\r\n width: bounds.x.max - bounds.x.min,\r\n height: bounds.y.max - bounds.y.min,\r\n cx: (bounds.x.max + bounds.x.min) / 2,\r\n cy: (bounds.y.max + bounds.y.min) / 2\r\n };\r\n };\r\n\r\n function intersectData(bez, t1, t2) {\r\n var box = bez.boundingBox();\r\n return {\r\n cx: box.cx,\r\n cy: box.cy,\r\n width: box.width,\r\n height: box.height,\r\n bez: bez,\r\n t: (t1 + t2) / 2,\r\n t1: t1,\r\n t2: t2\r\n };\r\n }\r\n\r\n function splitData(data) {\r\n var split = data.bez.split(0.5);\r\n return [intersectData(split[0], data.t1, data.t), intersectData(split[1], data.t, data.t2)];\r\n }\r\n\r\n function boxIntersect(b1, b2) {\r\n return Math.abs(b1.cx - b2.cx) * 2 < b1.width + b2.width && Math.abs(b1.cy - b2.cy) * 2 < b1.height + b2.height;\r\n }\r\n\r\n function intersectsImpl(d1, d2, depth, tolerance, intersections, maxRecursion) {\r\n if (!boxIntersect(d1, d2)) return;\r\n\r\n if (depth >= maxRecursion || d1.width <= tolerance && d1.height <= tolerance && d2.width <= tolerance && d2.height <= tolerance) {\r\n intersections.push([d1.t, d2.t]);\r\n return;\r\n }\r\n\r\n var d1s = splitData(d1);\r\n var d2s = splitData(d2);\r\n intersectsImpl(d1s[0], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[0], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[0], depth + 1, tolerance, intersections, maxRecursion);\r\n intersectsImpl(d1s[1], d2s[1], depth + 1, tolerance, intersections, maxRecursion);\r\n }\r\n\r\n PolynomialBezier.prototype.intersections = function (other, tolerance, maxRecursion) {\r\n if (tolerance === undefined) tolerance = 2;\r\n if (maxRecursion === undefined) maxRecursion = 7;\r\n var intersections = [];\r\n intersectsImpl(intersectData(this, 0, 1), intersectData(other, 0, 1), 0, tolerance, intersections, maxRecursion);\r\n return intersections;\r\n };\r\n\r\n PolynomialBezier.shapeSegment = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[index], shapePath.o[index], shapePath.i[nextIndex], shapePath.v[nextIndex], true);\r\n };\r\n\r\n PolynomialBezier.shapeSegmentInverted = function (shapePath, index) {\r\n var nextIndex = (index + 1) % shapePath.length();\r\n return new PolynomialBezier(shapePath.v[nextIndex], shapePath.i[nextIndex], shapePath.o[index], shapePath.v[index], true);\r\n };\r\n\r\n function crossProduct(a, b) {\r\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\r\n }\r\n\r\n function lineIntersection(start1, end1, start2, end2) {\r\n var v1 = [start1[0], start1[1], 1];\r\n var v2 = [end1[0], end1[1], 1];\r\n var v3 = [start2[0], start2[1], 1];\r\n var v4 = [end2[0], end2[1], 1];\r\n var r = crossProduct(crossProduct(v1, v2), crossProduct(v3, v4));\r\n if (floatZero(r[2])) return null;\r\n return [r[0] / r[2], r[1] / r[2]];\r\n }\r\n\r\n function polarOffset(p, angle, length) {\r\n return [p[0] + Math.cos(angle) * length, p[1] - Math.sin(angle) * length];\r\n }\r\n\r\n function pointDistance(p1, p2) {\r\n return Math.hypot(p1[0] - p2[0], p1[1] - p2[1]);\r\n }\r\n\r\n function pointEqual(p1, p2) {\r\n return floatEqual(p1[0], p2[0]) && floatEqual(p1[1], p2[1]);\r\n }\r\n\r\n function ZigZagModifier() {}\r\n\r\n extendPrototype([ShapeModifier], ZigZagModifier);\r\n\r\n ZigZagModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amplitude = PropertyFactory.getProp(elem, data.s, 0, null, this);\r\n this.frequency = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this.pointsType = PropertyFactory.getProp(elem, data.pt, 0, null, this);\r\n this._isAnimated = this.amplitude.effectsSequence.length !== 0 || this.frequency.effectsSequence.length !== 0 || this.pointsType.effectsSequence.length !== 0;\r\n };\r\n\r\n function setPoint(outputBezier, point, angle, direction, amplitude, outAmplitude, inAmplitude) {\r\n var angO = angle - Math.PI / 2;\r\n var angI = angle + Math.PI / 2;\r\n var px = point[0] + Math.cos(angle) * direction * amplitude;\r\n var py = point[1] - Math.sin(angle) * direction * amplitude;\r\n outputBezier.setTripleAt(px, py, px + Math.cos(angO) * outAmplitude, py - Math.sin(angO) * outAmplitude, px + Math.cos(angI) * inAmplitude, py - Math.sin(angI) * inAmplitude, outputBezier.length());\r\n }\r\n\r\n function getPerpendicularVector(pt1, pt2) {\r\n var vector = [pt2[0] - pt1[0], pt2[1] - pt1[1]];\r\n var rot = -Math.PI * 0.5;\r\n var rotatedVector = [Math.cos(rot) * vector[0] - Math.sin(rot) * vector[1], Math.sin(rot) * vector[0] + Math.cos(rot) * vector[1]];\r\n return rotatedVector;\r\n }\r\n\r\n function getProjectingAngle(path, cur) {\r\n var prevIndex = cur === 0 ? path.length() - 1 : cur - 1;\r\n var nextIndex = (cur + 1) % path.length();\r\n var prevPoint = path.v[prevIndex];\r\n var nextPoint = path.v[nextIndex];\r\n var pVector = getPerpendicularVector(prevPoint, nextPoint);\r\n return Math.atan2(0, 1) - Math.atan2(pVector[1], pVector[0]);\r\n }\r\n\r\n function zigZagCorner(outputBezier, path, cur, amplitude, frequency, pointType, direction) {\r\n var angle = getProjectingAngle(path, cur);\r\n var point = path.v[cur % path._length];\r\n var prevPoint = path.v[cur === 0 ? path._length - 1 : cur - 1];\r\n var nextPoint = path.v[(cur + 1) % path._length];\r\n var prevDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - prevPoint[0], 2) + Math.pow(point[1] - prevPoint[1], 2)) : 0;\r\n var nextDist = pointType === 2 ? Math.sqrt(Math.pow(point[0] - nextPoint[0], 2) + Math.pow(point[1] - nextPoint[1], 2)) : 0;\r\n setPoint(outputBezier, path.v[cur % path._length], angle, direction, amplitude, nextDist / ((frequency + 1) * 2), prevDist / ((frequency + 1) * 2), pointType);\r\n }\r\n\r\n function zigZagSegment(outputBezier, segment, amplitude, frequency, pointType, direction) {\r\n for (var i = 0; i < frequency; i += 1) {\r\n var t = (i + 1) / (frequency + 1);\r\n var dist = pointType === 2 ? Math.sqrt(Math.pow(segment.points[3][0] - segment.points[0][0], 2) + Math.pow(segment.points[3][1] - segment.points[0][1], 2)) : 0;\r\n var angle = segment.normalAngle(t);\r\n var point = segment.point(t);\r\n setPoint(outputBezier, point, angle, direction, amplitude, dist / ((frequency + 1) * 2), dist / ((frequency + 1) * 2), pointType);\r\n direction = -direction;\r\n }\r\n\r\n return direction;\r\n }\r\n\r\n ZigZagModifier.prototype.processPath = function (path, amplitude, frequency, pointType) {\r\n var count = path._length;\r\n var clonedPath = shapePool.newElement();\r\n clonedPath.c = path.c;\r\n\r\n if (!path.c) {\r\n count -= 1;\r\n }\r\n\r\n if (count === 0) return clonedPath;\r\n var direction = -1;\r\n var segment = PolynomialBezier.shapeSegment(path, 0);\r\n zigZagCorner(clonedPath, path, 0, amplitude, frequency, pointType, direction);\r\n\r\n for (var i = 0; i < count; i += 1) {\r\n direction = zigZagSegment(clonedPath, segment, amplitude, frequency, pointType, -direction);\r\n\r\n if (i === count - 1 && !path.c) {\r\n segment = null;\r\n } else {\r\n segment = PolynomialBezier.shapeSegment(path, (i + 1) % count);\r\n }\r\n\r\n zigZagCorner(clonedPath, path, i + 1, amplitude, frequency, pointType, direction);\r\n }\r\n\r\n return clonedPath;\r\n };\r\n\r\n ZigZagModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amplitude = this.amplitude.v;\r\n var frequency = Math.max(0, Math.round(this.frequency.v));\r\n var pointType = this.pointsType.v;\r\n\r\n if (amplitude !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amplitude, frequency, pointType));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function linearOffset(p1, p2, amount) {\r\n var angle = Math.atan2(p2[0] - p1[0], p2[1] - p1[1]);\r\n return [polarOffset(p1, angle, amount), polarOffset(p2, angle, amount)];\r\n }\r\n\r\n function offsetSegment(segment, amount) {\r\n var p0;\r\n var p1a;\r\n var p1b;\r\n var p2b;\r\n var p2a;\r\n var p3;\r\n var e;\r\n e = linearOffset(segment.points[0], segment.points[1], amount);\r\n p0 = e[0];\r\n p1a = e[1];\r\n e = linearOffset(segment.points[1], segment.points[2], amount);\r\n p1b = e[0];\r\n p2b = e[1];\r\n e = linearOffset(segment.points[2], segment.points[3], amount);\r\n p2a = e[0];\r\n p3 = e[1];\r\n var p1 = lineIntersection(p0, p1a, p1b, p2b);\r\n if (p1 === null) p1 = p1a;\r\n var p2 = lineIntersection(p2a, p3, p1b, p2b);\r\n if (p2 === null) p2 = p2a;\r\n return new PolynomialBezier(p0, p1, p2, p3);\r\n }\r\n\r\n function joinLines(outputBezier, seg1, seg2, lineJoin, miterLimit) {\r\n var p0 = seg1.points[3];\r\n var p1 = seg2.points[0]; // Bevel\r\n\r\n if (lineJoin === 3) return p0; // Connected, they don't need a joint\r\n\r\n if (pointEqual(p0, p1)) return p0; // Round\r\n\r\n if (lineJoin === 2) {\r\n var angleOut = -seg1.tangentAngle(1);\r\n var angleIn = -seg2.tangentAngle(0) + Math.PI;\r\n var center = lineIntersection(p0, polarOffset(p0, angleOut + Math.PI / 2, 100), p1, polarOffset(p1, angleOut + Math.PI / 2, 100));\r\n var radius = center ? pointDistance(center, p0) : pointDistance(p0, p1) / 2;\r\n var tan = polarOffset(p0, angleOut, 2 * radius * roundCorner);\r\n outputBezier.setXYAt(tan[0], tan[1], 'o', outputBezier.length() - 1);\r\n tan = polarOffset(p1, angleIn, 2 * radius * roundCorner);\r\n outputBezier.setTripleAt(p1[0], p1[1], p1[0], p1[1], tan[0], tan[1], outputBezier.length());\r\n return p1;\r\n } // Miter\r\n\r\n\r\n var t0 = pointEqual(p0, seg1.points[2]) ? seg1.points[0] : seg1.points[2];\r\n var t1 = pointEqual(p1, seg2.points[1]) ? seg2.points[3] : seg2.points[1];\r\n var intersection = lineIntersection(t0, p0, p1, t1);\r\n\r\n if (intersection && pointDistance(intersection, p0) < miterLimit) {\r\n outputBezier.setTripleAt(intersection[0], intersection[1], intersection[0], intersection[1], intersection[0], intersection[1], outputBezier.length());\r\n return intersection;\r\n }\r\n\r\n return p0;\r\n }\r\n\r\n function getIntersection(a, b) {\r\n var intersect = a.intersections(b);\r\n if (intersect.length && floatEqual(intersect[0][0], 1)) intersect.shift();\r\n if (intersect.length) return intersect[0];\r\n return null;\r\n }\r\n\r\n function pruneSegmentIntersection(a, b) {\r\n var outa = a.slice();\r\n var outb = b.slice();\r\n var intersect = getIntersection(a[a.length - 1], b[0]);\r\n\r\n if (intersect) {\r\n outa[a.length - 1] = a[a.length - 1].split(intersect[0])[0];\r\n outb[0] = b[0].split(intersect[1])[1];\r\n }\r\n\r\n if (a.length > 1 && b.length > 1) {\r\n intersect = getIntersection(a[0], b[b.length - 1]);\r\n\r\n if (intersect) {\r\n return [[a[0].split(intersect[0])[0]], [b[b.length - 1].split(intersect[1])[1]]];\r\n }\r\n }\r\n\r\n return [outa, outb];\r\n }\r\n\r\n function pruneIntersections(segments) {\r\n var e;\r\n\r\n for (var i = 1; i < segments.length; i += 1) {\r\n e = pruneSegmentIntersection(segments[i - 1], segments[i]);\r\n segments[i - 1] = e[0];\r\n segments[i] = e[1];\r\n }\r\n\r\n if (segments.length > 1) {\r\n e = pruneSegmentIntersection(segments[segments.length - 1], segments[0]);\r\n segments[segments.length - 1] = e[0];\r\n segments[0] = e[1];\r\n }\r\n\r\n return segments;\r\n }\r\n\r\n function offsetSegmentSplit(segment, amount) {\r\n /*\r\n We split each bezier segment into smaller pieces based\r\n on inflection points, this ensures the control point\r\n polygon is convex.\r\n (A cubic bezier can have none, one, or two inflection points)\r\n */\r\n var flex = segment.inflectionPoints();\r\n var left;\r\n var right;\r\n var split;\r\n var mid;\r\n\r\n if (flex.length === 0) {\r\n return [offsetSegment(segment, amount)];\r\n }\r\n\r\n if (flex.length === 1 || floatEqual(flex[1], 1)) {\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n split = segment.split(flex[0]);\r\n left = split[0];\r\n var t = (flex[1] - flex[0]) / (1 - flex[0]);\r\n split = split[1].split(t);\r\n mid = split[0];\r\n right = split[1];\r\n return [offsetSegment(left, amount), offsetSegment(mid, amount), offsetSegment(right, amount)];\r\n }\r\n\r\n function OffsetPathModifier() {}\r\n\r\n extendPrototype([ShapeModifier], OffsetPathModifier);\r\n\r\n OffsetPathModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.amount = PropertyFactory.getProp(elem, data.a, 0, null, this);\r\n this.miterLimit = PropertyFactory.getProp(elem, data.ml, 0, null, this);\r\n this.lineJoin = data.lj;\r\n this._isAnimated = this.amount.effectsSequence.length !== 0;\r\n };\r\n\r\n OffsetPathModifier.prototype.processPath = function (inputBezier, amount, lineJoin, miterLimit) {\r\n var outputBezier = shapePool.newElement();\r\n outputBezier.c = inputBezier.c;\r\n var count = inputBezier.length();\r\n\r\n if (!inputBezier.c) {\r\n count -= 1;\r\n }\r\n\r\n var i;\r\n var j;\r\n var segment;\r\n var multiSegments = [];\r\n\r\n for (i = 0; i < count; i += 1) {\r\n segment = PolynomialBezier.shapeSegment(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n\r\n if (!inputBezier.c) {\r\n for (i = count - 1; i >= 0; i -= 1) {\r\n segment = PolynomialBezier.shapeSegmentInverted(inputBezier, i);\r\n multiSegments.push(offsetSegmentSplit(segment, amount));\r\n }\r\n }\r\n\r\n multiSegments = pruneIntersections(multiSegments); // Add bezier segments to the output and apply line joints\r\n\r\n var lastPoint = null;\r\n var lastSeg = null;\r\n\r\n for (i = 0; i < multiSegments.length; i += 1) {\r\n var multiSegment = multiSegments[i];\r\n if (lastSeg) lastPoint = joinLines(outputBezier, lastSeg, multiSegment[0], lineJoin, miterLimit);\r\n lastSeg = multiSegment[multiSegment.length - 1];\r\n\r\n for (j = 0; j < multiSegment.length; j += 1) {\r\n segment = multiSegment[j];\r\n\r\n if (lastPoint && pointEqual(segment.points[0], lastPoint)) {\r\n outputBezier.setXYAt(segment.points[1][0], segment.points[1][1], 'o', outputBezier.length() - 1);\r\n } else {\r\n outputBezier.setTripleAt(segment.points[0][0], segment.points[0][1], segment.points[1][0], segment.points[1][1], segment.points[0][0], segment.points[0][1], outputBezier.length());\r\n }\r\n\r\n outputBezier.setTripleAt(segment.points[3][0], segment.points[3][1], segment.points[3][0], segment.points[3][1], segment.points[2][0], segment.points[2][1], outputBezier.length());\r\n lastPoint = segment.points[3];\r\n }\r\n }\r\n\r\n if (multiSegments.length) joinLines(outputBezier, lastSeg, multiSegments[0][0], lineJoin, miterLimit);\r\n return outputBezier;\r\n };\r\n\r\n OffsetPathModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var shapePaths;\r\n var i;\r\n var len = this.shapes.length;\r\n var j;\r\n var jLen;\r\n var amount = this.amount.v;\r\n var miterLimit = this.miterLimit.v;\r\n var lineJoin = this.lineJoin;\r\n\r\n if (amount !== 0) {\r\n var shapeData;\r\n var localShapeCollection;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\r\n\r\n if (!(!shapeData.shape._mdf && !this._mdf && !_isFirstFrame)) {\r\n localShapeCollection.releaseShapes();\r\n shapeData.shape._mdf = true;\r\n shapePaths = shapeData.shape.paths.shapes;\r\n jLen = shapeData.shape.paths._length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount, lineJoin, miterLimit));\r\n }\r\n }\r\n\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n };\r\n\r\n function getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n var fWeight = 'normal';\r\n var fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n style: fStyle,\r\n weight: fontData.fWeight || fWeight\r\n };\r\n }\r\n\r\n var FontManager = function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n data: {\r\n shapes: []\r\n }\r\n };\r\n var combinedCharacters = []; // Hindi characters\r\n\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n var surrogateModifiers = ['d83cdffb', 'd83cdffc', 'd83cdffd', 'd83cdffe', 'd83cdfff'];\r\n var zeroWidthJoiner = [65039, 8205];\r\n\r\n function trimFontOptions(font) {\r\n var familyArray = font.split(',');\r\n var i;\r\n var len = familyArray.length;\r\n var enabledFamilies = [];\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (familyArray[i] !== 'sans-serif' && familyArray[i] !== 'monospace') {\r\n enabledFamilies.push(familyArray[i]);\r\n }\r\n }\r\n\r\n return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span'); // Node is invisible to screen readers.\r\n\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span'); // Characters that vary significantly among different fonts\r\n\r\n node.innerText = 'giItT1WQy@!-/#'; // Visible - so we can measure it - but not on the screen\r\n\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px'; // Large font size makes even subtle changes obvious\r\n\r\n parentNode.style.fontSize = '300px'; // Reset any font properties\r\n\r\n parentNode.style.fontVariant = 'normal';\r\n parentNode.style.fontStyle = 'normal';\r\n parentNode.style.fontWeight = 'normal';\r\n parentNode.style.letterSpacing = '0';\r\n parentNode.appendChild(node);\r\n document.body.appendChild(parentNode); // Remember width with no applied web font\r\n\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return {\r\n node: node,\r\n w: width,\r\n parent: parentNode\r\n };\r\n }\r\n\r\n function checkLoadedFonts() {\r\n var i;\r\n var len = this.fonts.length;\r\n var node;\r\n var w;\r\n var loadedCount = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.fonts[i].loaded) {\r\n loadedCount -= 1;\r\n } else if (this.fonts[i].fOrigin === 'n' || this.fonts[i].origin === 0) {\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].monoCase.node;\r\n w = this.fonts[i].monoCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n } else {\r\n node = this.fonts[i].sansCase.node;\r\n w = this.fonts[i].sansCase.w;\r\n\r\n if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\r\n }\r\n }\r\n\r\n if (this.fonts[i].loaded) {\r\n this.fonts[i].sansCase.parent.parentNode.removeChild(this.fonts[i].sansCase.parent);\r\n this.fonts[i].monoCase.parent.parentNode.removeChild(this.fonts[i].monoCase.parent);\r\n }\r\n }\r\n }\r\n\r\n if (loadedCount !== 0 && Date.now() - this.initTime < maxWaitingTime) {\r\n setTimeout(this.checkLoadedFontsBinded, 20);\r\n } else {\r\n setTimeout(this.setIsLoadedBinded, 10);\r\n }\r\n }\r\n\r\n function createHelper(fontData, def) {\r\n var engine = document.body && def ? 'svg' : 'canvas';\r\n var helper;\r\n var fontProps = getFontProperties(fontData);\r\n\r\n if (engine === 'svg') {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px'; // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n tHelper.setAttribute('font-family', fontData.fFamily);\r\n tHelper.setAttribute('font-style', fontProps.style);\r\n tHelper.setAttribute('font-weight', fontProps.weight);\r\n tHelper.textContent = '1';\r\n\r\n if (fontData.fClass) {\r\n tHelper.style.fontFamily = 'inherit';\r\n tHelper.setAttribute('class', fontData.fClass);\r\n } else {\r\n tHelper.style.fontFamily = fontData.fFamily;\r\n }\r\n\r\n def.appendChild(tHelper);\r\n helper = tHelper;\r\n } else {\r\n var tCanvasHelper = new OffscreenCanvas(500, 500).getContext('2d');\r\n tCanvasHelper.font = fontProps.style + ' ' + fontProps.weight + ' 100px ' + fontData.fFamily;\r\n helper = tCanvasHelper;\r\n }\r\n\r\n function measure(text) {\r\n if (engine === 'svg') {\r\n helper.textContent = text;\r\n return helper.getComputedTextLength();\r\n }\r\n\r\n return helper.measureText(text).width;\r\n }\r\n\r\n return {\r\n measureText: measure\r\n };\r\n }\r\n\r\n function addFonts(fontData, defs) {\r\n if (!fontData) {\r\n this.isLoaded = true;\r\n return;\r\n }\r\n\r\n if (this.chars) {\r\n this.isLoaded = true;\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n if (!document.body) {\r\n this.isLoaded = true;\r\n fontData.list.forEach(function (data) {\r\n data.helper = createHelper(data);\r\n data.cache = {};\r\n });\r\n this.fonts = fontData.list;\r\n return;\r\n }\r\n\r\n var fontArr = fontData.list;\r\n var i;\r\n var len = fontArr.length;\r\n var _pendingFonts = len;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var shouldLoadFont = true;\r\n var loadedSelector;\r\n var j;\r\n fontArr[i].loaded = false;\r\n fontArr[i].monoCase = setUpNode(fontArr[i].fFamily, 'monospace');\r\n fontArr[i].sansCase = setUpNode(fontArr[i].fFamily, 'sans-serif');\r\n\r\n if (!fontArr[i].fPath) {\r\n fontArr[i].loaded = true;\r\n _pendingFonts -= 1;\r\n } else if (fontArr[i].fOrigin === 'p' || fontArr[i].origin === 3) {\r\n loadedSelector = document.querySelectorAll('style[f-forigin=\"p\"][f-family=\"' + fontArr[i].fFamily + '\"], style[f-origin=\"3\"][f-family=\"' + fontArr[i].fFamily + '\"]');\r\n\r\n if (loadedSelector.length > 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = 'text/css';\r\n s.innerText = '@font-face {font-family: ' + fontArr[i].fFamily + \"; font-style: normal; src: url('\" + fontArr[i].fPath + \"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if (fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1) {\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j += 1) {\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 += 1) {\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\r\n fontArr[i].helper = createHelper(fontArr[i], defs);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\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\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\r\n\r\n while (j < jLen) {\r\n if (this.chars[j].style === chars[i].style && this.chars[j].fFamily === chars[i].fFamily && this.chars[j].ch === chars[i].ch) {\r\n found = true;\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (!found) {\r\n this.chars.push(chars[i]);\r\n jLen += 1;\r\n }\r\n }\r\n }\r\n\r\n function getCharData(_char, style, font) {\r\n var i = 0;\r\n var len = this.chars.length;\r\n\r\n while (i < len) {\r\n if (this.chars[i].ch === _char && this.chars[i].style === style && this.chars[i].fFamily === font) {\r\n return this.chars[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if ((typeof _char === 'string' && _char.charCodeAt(0) !== 13 || !_char) && console && console.warn // eslint-disable-line no-console\r\n && !this._warned) {\r\n this._warned = true;\r\n console.warn('Missing character from exported characters list: ', _char, style, font); // eslint-disable-line no-console\r\n }\r\n\r\n return emptyChar;\r\n }\r\n\r\n function measureText(_char2, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n\r\n var index = _char2.charCodeAt(0);\r\n\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n\r\n if (_char2 === ' ') {\r\n var doubleSize = tHelper.measureText('|' + _char2 + '|');\r\n var singleSize = tHelper.measureText('||');\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n fontData.cache[index + 1] = tHelper.measureText(_char2) / 100;\r\n }\r\n }\r\n\r\n return fontData.cache[index + 1] * size;\r\n }\r\n\r\n function getFontByName(name) {\r\n var i = 0;\r\n var len = this.fonts.length;\r\n\r\n while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return this.fonts[0];\r\n }\r\n\r\n function isModifier(firstCharCode, secondCharCode) {\r\n var sum = firstCharCode.toString(16) + secondCharCode.toString(16);\r\n return surrogateModifiers.indexOf(sum) !== -1;\r\n }\r\n\r\n function isZeroWidthJoiner(firstCharCode, secondCharCode) {\r\n if (!secondCharCode) {\r\n return firstCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(_char3) {\r\n return combinedCharacters.indexOf(_char3) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function Font() {\r\n this.fonts = [];\r\n this.chars = null;\r\n this.typekitLoaded = 0;\r\n this.isLoaded = false;\r\n this._warned = false;\r\n this.initTime = Date.now();\r\n this.setIsLoadedBinded = this.setIsLoaded.bind(this);\r\n this.checkLoadedFontsBinded = this.checkLoadedFonts.bind(this);\r\n };\r\n\r\n Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n var fontPrototype = {\r\n addChars: addChars,\r\n addFonts: addFonts,\r\n getCharData: getCharData,\r\n getFontByName: getFontByName,\r\n measureText: measureText,\r\n checkLoadedFonts: checkLoadedFonts,\r\n setIsLoaded: setIsLoaded\r\n };\r\n Font.prototype = fontPrototype;\r\n return Font;\r\n }();\r\n\r\n function RenderableElement() {}\r\n\r\n RenderableElement.prototype = {\r\n initRenderable: function initRenderable() {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false; // layer's display state\r\n\r\n this.hidden = false; // If layer's transparency equals 0, it can be hidden\r\n\r\n this.isTransparent = false; // list of animated components\r\n\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function addRenderableComponent(component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function removeRenderableComponent(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 prepareRenderableFrame(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function checkTransparency() {\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 /**\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 checkLayerLimits(num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\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 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 renderRenderable: function renderRenderable() {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n\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 },\r\n sourceRectAtTime: function sourceRectAtTime() {\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 getLayerSize() {\r\n if (this.data.ty === 5) {\r\n return {\r\n w: this.data.textData.width,\r\n h: this.data.textData.height\r\n };\r\n }\r\n\r\n return {\r\n w: this.data.width,\r\n h: this.data.height\r\n };\r\n }\r\n };\r\n\r\n var getBlendMode = function () {\r\n var blendModeEnums = {\r\n 0: 'source-over',\r\n 1: 'multiply',\r\n 2: 'screen',\r\n 3: 'overlay',\r\n 4: 'darken',\r\n 5: 'lighten',\r\n 6: 'color-dodge',\r\n 7: 'color-burn',\r\n 8: 'hard-light',\r\n 9: 'soft-light',\r\n 10: 'difference',\r\n 11: 'exclusion',\r\n 12: 'hue',\r\n 13: 'saturation',\r\n 14: 'color',\r\n 15: 'luminosity'\r\n };\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n }();\r\n\r\n function SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n }\r\n\r\n function LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n }\r\n\r\n function NoValueEffect() {\r\n this.p = {};\r\n }\r\n\r\n function EffectsManager(data, element) {\r\n var effects = data.ef || [];\r\n this.effectElements = [];\r\n var i;\r\n var len = effects.length;\r\n var effectItem;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectItem = new GroupEffect(effects[i], element);\r\n this.effectElements.push(effectItem);\r\n }\r\n }\r\n\r\n function GroupEffect(data, element) {\r\n this.init(data, element);\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], GroupEffect);\r\n GroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\n GroupEffect.prototype.init = function (data, element) {\r\n this.data = data;\r\n this.effectElements = [];\r\n this.initDynamicPropertyContainer(element);\r\n var i;\r\n var len = this.data.ef.length;\r\n var eff;\r\n var effects = this.data.ef;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n };\r\n\r\n function BaseElement() {}\r\n\r\n BaseElement.prototype = {\r\n checkMasks: function checkMasks() {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\r\n\r\n while (i < len) {\r\n if (this.data.masksProperties[i].mode !== 'n' && this.data.masksProperties[i].cl !== false) {\r\n return true;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return false;\r\n },\r\n initExpressions: function initExpressions() {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var LayerExpressionInterface = expressionsInterfaces('layer');\r\n var EffectsExpressionInterface = expressionsInterfaces('effects');\r\n var ShapeExpressionInterface = expressionsInterfaces('shape');\r\n var TextExpressionInterface = expressionsInterfaces('text');\r\n var CompExpressionInterface = expressionsInterfaces('comp');\r\n this.layerInterface = LayerExpressionInterface(this);\r\n\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\r\n }\r\n\r\n var effectsInterface = EffectsExpressionInterface.createEffectsInterface(this, this.layerInterface);\r\n this.layerInterface.registerEffectsInterface(effectsInterface);\r\n\r\n if (this.data.ty === 0 || this.data.xt) {\r\n this.compInterface = CompExpressionInterface(this);\r\n } else if (this.data.ty === 4) {\r\n this.layerInterface.shapeInterface = ShapeExpressionInterface(this.shapesData, this.itemsData, this.layerInterface);\r\n this.layerInterface.content = this.layerInterface.shapeInterface;\r\n } else if (this.data.ty === 5) {\r\n this.layerInterface.textInterface = TextExpressionInterface(this);\r\n this.layerInterface.text = this.layerInterface.textInterface;\r\n }\r\n },\r\n setBlendMode: function setBlendMode() {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function initBaseData(data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID(); // Stretch factor for old animations missing this property.\r\n\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n } // effects manager\r\n\r\n\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function getType() {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function sourceRectAtTime() {}\r\n };\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 function FrameElement() {}\r\n\r\n FrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function initFrame() {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false; // list of animated properties\r\n\r\n this.dynamicProperties = []; // If layer has been modified in current tick this will be true\r\n\r\n this._mdf = false;\r\n },\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 prepareProperties(num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n\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\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 addDynamicProperty(prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n };\r\n\r\n function FootageElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.footageData = globalData.imageLoader.getAsset(this.assetData);\r\n this.initBaseData(data, globalData, comp);\r\n }\r\n\r\n FootageElement.prototype.prepareFrame = function () {};\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\n FootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n FootageElement.prototype.renderFrame = function () {};\r\n\r\n FootageElement.prototype.destroy = function () {};\r\n\r\n FootageElement.prototype.initExpressions = function () {\r\n var expressionsInterfaces = getExpressionInterfaces();\r\n\r\n if (!expressionsInterfaces) {\r\n return;\r\n }\r\n\r\n var FootageInterface = expressionsInterfaces('footage');\r\n this.layerInterface = FootageInterface(this);\r\n };\r\n\r\n FootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n };\r\n\r\n function AudioElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initRenderable();\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initBaseData(data, globalData, comp);\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n this.audio = this.globalData.audioController.createAudio(assetPath);\r\n this._currentTime = 0;\r\n this.globalData.audioController.addAudio(this);\r\n this._volumeMultiplier = 1;\r\n this._volume = 1;\r\n this._previousVolume = null;\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n this.lv = PropertyFactory.getProp(this, data.au && data.au.lv ? data.au.lv : {\r\n k: [100]\r\n }, 1, 0.01, this);\r\n }\r\n\r\n AudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n this._currentTime = timeRemapped;\r\n } else {\r\n this._currentTime = num / this.data.sr;\r\n }\r\n\r\n this._volume = this.lv.v[0];\r\n var totalVolume = this._volume * this._volumeMultiplier;\r\n\r\n if (this._previousVolume !== totalVolume) {\r\n this._previousVolume = totalVolume;\r\n this.audio.volume(totalVolume);\r\n }\r\n };\r\n\r\n extendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\n AudioElement.prototype.renderFrame = function () {\r\n if (this.isInRange && this._canPlay) {\r\n if (!this._isPlaying) {\r\n this.audio.play();\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n this._isPlaying = true;\r\n } else if (!this.audio.playing() || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n };\r\n\r\n AudioElement.prototype.show = function () {// this.audio.play()\r\n };\r\n\r\n AudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n };\r\n\r\n AudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n };\r\n\r\n AudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n };\r\n\r\n AudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n };\r\n\r\n AudioElement.prototype.volume = function (volumeValue) {\r\n this._volumeMultiplier = volumeValue;\r\n this._previousVolume = volumeValue * this._volume;\r\n this.audio.volume(this._previousVolume);\r\n };\r\n\r\n AudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n AudioElement.prototype.destroy = function () {};\r\n\r\n AudioElement.prototype.sourceRectAtTime = function () {};\r\n\r\n AudioElement.prototype.initExpressions = function () {};\r\n\r\n function BaseRenderer() {}\r\n\r\n BaseRenderer.prototype.checkLayers = function (num) {\r\n var i;\r\n var len = this.layers.length;\r\n var data;\r\n this.completeLayers = true;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n\r\n if (data.ip - data.st <= num - this.layers[i].st && data.op - data.st > num - this.layers[i].st) {\r\n this.buildItem(i);\r\n }\r\n }\r\n\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n\r\n case 0:\r\n return this.createComp(layer);\r\n\r\n case 1:\r\n return this.createSolid(layer);\r\n\r\n case 3:\r\n return this.createNull(layer);\r\n\r\n case 4:\r\n return this.createShape(layer);\r\n\r\n case 5:\r\n return this.createText(layer);\r\n\r\n case 6:\r\n return this.createAudio(layer);\r\n\r\n case 13:\r\n return this.createCamera(layer);\r\n\r\n case 15:\r\n return this.createFootage(layer);\r\n\r\n default:\r\n return this.createNull(layer);\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n };\r\n\r\n BaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n };\r\n\r\n BaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n\r\n this.checkPendingElements();\r\n };\r\n\r\n BaseRenderer.prototype.includeLayers = function (newLayers) {\r\n this.completeLayers = false;\r\n var i;\r\n var len = newLayers.length;\r\n var j;\r\n var jLen = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n\r\n while (j < jLen) {\r\n if (this.layers[j].id === newLayers[i].id) {\r\n this.layers[j] = newLayers[i];\r\n break;\r\n }\r\n\r\n j += 1;\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n };\r\n\r\n BaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.buildElementParenting = function (element, parentName, hierarchy) {\r\n var elements = this.elements;\r\n var layers = this.layers;\r\n var i = 0;\r\n var len = layers.length;\r\n\r\n while (i < len) {\r\n if (layers[i].ind == parentName) {\r\n // eslint-disable-line eqeqeq\r\n if (!elements[i] || elements[i] === true) {\r\n this.buildItem(i);\r\n this.addPendingElement(element);\r\n } else {\r\n hierarchy.push(elements[i]);\r\n elements[i].setAsParent();\r\n\r\n if (layers[i].parent !== undefined) {\r\n this.buildElementParenting(element, layers[i].parent, hierarchy);\r\n } else {\r\n element.setHierarchy(hierarchy);\r\n }\r\n }\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n };\r\n\r\n BaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i]);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n BaseRenderer.prototype.getElementById = function (ind) {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.ind === ind) {\r\n return this.elements[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n BaseRenderer.prototype.getElementByPath = function (path) {\r\n var pathValue = path.shift();\r\n var element;\r\n\r\n if (typeof pathValue === 'number') {\r\n element = this.elements[pathValue];\r\n } else {\r\n var i;\r\n var len = this.elements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i].data.nm === pathValue) {\r\n element = this.elements[i];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (path.length === 0) {\r\n return element;\r\n }\r\n\r\n return element.getElementByPath(path);\r\n };\r\n\r\n BaseRenderer.prototype.setupGlobalData = function (animData, fontsContainer) {\r\n this.globalData.fontManager = new FontManager();\r\n this.globalData.fontManager.addChars(animData.chars);\r\n this.globalData.fontManager.addFonts(animData.fonts, fontsContainer);\r\n this.globalData.getAssetData = this.animationItem.getAssetData.bind(this.animationItem);\r\n this.globalData.getAssetsPath = this.animationItem.getAssetsPath.bind(this.animationItem);\r\n this.globalData.imageLoader = this.animationItem.imagePreloader;\r\n this.globalData.audioController = this.animationItem.audioController;\r\n this.globalData.frameId = 0;\r\n this.globalData.frameRate = animData.fr;\r\n this.globalData.nm = animData.nm;\r\n this.globalData.compSize = {\r\n w: animData.w,\r\n h: animData.h\r\n };\r\n };\r\n\r\n function TransformElement() {}\r\n\r\n TransformElement.prototype = {\r\n initTransform: function initTransform() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {\r\n o: 0\r\n },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n } // TODO: check TYPE 11: Guided elements\r\n\r\n\r\n if (this.data.ty !== 11) {// this.createElements();\r\n }\r\n },\r\n renderTransform: function renderTransform() {\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;\r\n var len = this.hierarchy.length; // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n\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\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\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 globalToLocal(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n\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\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0); // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n };\r\n\r\n function MaskElement(data, element, globalData) {\r\n this.data = data;\r\n this.element = element;\r\n this.globalData = globalData;\r\n this.storedData = [];\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.maskElement = null;\r\n var defs = this.globalData.defs;\r\n var i;\r\n var len = this.masksProperties ? this.masksProperties.length : 0;\r\n this.viewData = createSizedArray(len);\r\n this.solidPath = '';\r\n var path;\r\n var properties = this.masksProperties;\r\n var count = 0;\r\n var currentMasks = [];\r\n var j;\r\n var jLen;\r\n var layerId = createElementID();\r\n var rect;\r\n var expansor;\r\n var feMorph;\r\n var x;\r\n var maskType = 'clipPath';\r\n var maskRef = 'clip-path';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (properties[i].mode !== 'a' && properties[i].mode !== 'n' || properties[i].inv || properties[i].o.k !== 100 || properties[i].o.x) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n }\r\n\r\n if ((properties[i].mode === 's' || properties[i].mode === 'i') && count === 0) {\r\n rect = createNS('rect');\r\n rect.setAttribute('fill', '#ffffff');\r\n rect.setAttribute('width', this.element.comp.data.w || 0);\r\n rect.setAttribute('height', this.element.comp.data.h || 0);\r\n currentMasks.push(rect);\r\n } else {\r\n rect = null;\r\n }\r\n\r\n path = createNS('path');\r\n\r\n if (properties[i].mode === 'n') {\r\n // TODO move this to a factory or to a constructor\r\n this.viewData[i] = {\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n elem: path,\r\n lastPath: ''\r\n };\r\n defs.appendChild(path);\r\n } else {\r\n count += 1;\r\n path.setAttribute('fill', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n path.setAttribute('clip-rule', 'nonzero');\r\n var filterID;\r\n\r\n if (properties[i].x.k !== 0) {\r\n maskType = 'mask';\r\n maskRef = 'mask';\r\n x = PropertyFactory.getProp(this.element, properties[i].x, 0, null, this.element);\r\n filterID = createElementID();\r\n expansor = createNS('filter');\r\n expansor.setAttribute('id', filterID);\r\n feMorph = createNS('feMorphology');\r\n feMorph.setAttribute('operator', 'erode');\r\n feMorph.setAttribute('in', 'SourceGraphic');\r\n feMorph.setAttribute('radius', '0');\r\n expansor.appendChild(feMorph);\r\n defs.appendChild(expansor);\r\n path.setAttribute('stroke', properties[i].mode === 's' ? '#000000' : '#ffffff');\r\n } else {\r\n feMorph = null;\r\n x = null;\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.storedData[i] = {\r\n elem: path,\r\n x: x,\r\n expan: feMorph,\r\n lastPath: '',\r\n lastOperator: '',\r\n filterId: filterID,\r\n lastRadius: 0\r\n };\r\n\r\n if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\r\n }\r\n\r\n var mask = createNS('mask');\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.setAttribute('id', layerId + '_' + count);\r\n mask.appendChild(path);\r\n defs.appendChild(mask);\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + layerId + '_' + count + ')');\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n } // TODO move this to a factory or to a constructor\r\n\r\n\r\n this.viewData[i] = {\r\n elem: path,\r\n lastPath: '',\r\n op: PropertyFactory.getProp(this.element, properties[i].o, 0, 0.01, this.element),\r\n prop: ShapePropertyFactory.getShapeProp(this.element, properties[i], 3),\r\n invRect: rect\r\n };\r\n\r\n if (!this.viewData[i].prop.k) {\r\n this.drawPath(properties[i], this.viewData[i].prop.v, this.viewData[i]);\r\n }\r\n }\r\n }\r\n\r\n this.maskElement = createNS(maskType);\r\n len = currentMasks.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.maskElement.appendChild(currentMasks[i]);\r\n }\r\n\r\n if (count > 0) {\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, 'url(' + getLocationHref() + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n MaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n };\r\n\r\n MaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\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\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\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n\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(' + getLocationHref() + '#' + this.storedData[i].filterId + ')');\r\n }\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\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 MaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n };\r\n\r\n MaskElement.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\n MaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\r\n\r\n for (i = 1; i < len; i += 1) {\r\n // pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[i][0]+','+pathNodes.i[i][1] + \" \"+pathNodes.v[i][0]+','+pathNodes.v[i][1];\r\n pathString += ' C' + pathNodes.o[i - 1][0] + ',' + pathNodes.o[i - 1][1] + ' ' + pathNodes.i[i][0] + ',' + pathNodes.i[i][1] + ' ' + pathNodes.v[i][0] + ',' + pathNodes.v[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\r\n if (pathNodes.c && len > 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 } // pathNodes.__renderedString = pathString;\r\n\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n\r\n viewData.lastPath = pathString;\r\n }\r\n };\r\n\r\n MaskElement.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 var filtersFactory = function () {\r\n var ob = {};\r\n ob.createFilter = createFilter;\r\n ob.createAlphaToLuminanceFilter = createAlphaToLuminanceFilter;\r\n\r\n function createFilter(filId, skipCoordinates) {\r\n var fil = createNS('filter');\r\n fil.setAttribute('id', filId);\r\n\r\n if (skipCoordinates !== true) {\r\n fil.setAttribute('filterUnits', 'objectBoundingBox');\r\n fil.setAttribute('x', '0%');\r\n fil.setAttribute('y', '0%');\r\n fil.setAttribute('width', '100%');\r\n fil.setAttribute('height', '100%');\r\n }\r\n\r\n return fil;\r\n }\r\n\r\n function createAlphaToLuminanceFilter() {\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 1');\r\n return feColorMatrix;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var featureSupport = function () {\r\n var ob = {\r\n maskType: true,\r\n svgLumaHidden: true,\r\n offscreenCanvas: typeof OffscreenCanvas !== 'undefined'\r\n };\r\n\r\n if (/MSIE 10/i.test(navigator.userAgent) || /MSIE 9/i.test(navigator.userAgent) || /rv:11.0/i.test(navigator.userAgent) || /Edge\\/\\d./i.test(navigator.userAgent)) {\r\n ob.maskType = false;\r\n }\r\n\r\n if (/firefox/i.test(navigator.userAgent)) {\r\n ob.svgLumaHidden = false;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var registeredEffects = {};\r\n var idPrefix = 'filter_result_';\r\n\r\n function SVGEffects(elem) {\r\n var i;\r\n var source = 'SourceGraphic';\r\n var len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = createElementID();\r\n var fil = filtersFactory.createFilter(filId, true);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n var type = elem.data.ef[i].ty;\r\n\r\n if (registeredEffects[type]) {\r\n var Effect = registeredEffects[type].effect;\r\n filterManager = new Effect(fil, elem.effectsManager.effectElements[i], elem, idPrefix + count, source);\r\n source = idPrefix + count;\r\n\r\n if (registeredEffects[type].countsAsEffect) {\r\n count += 1;\r\n }\r\n }\r\n\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n SVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n };\r\n\r\n function registerEffect(id, effect, countsAsEffect) {\r\n registeredEffects[id] = {\r\n effect: effect,\r\n countsAsEffect: countsAsEffect\r\n };\r\n }\r\n\r\n function SVGBaseElement() {}\r\n\r\n SVGBaseElement.prototype = {\r\n initRendererElement: function initRendererElement() {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.matteElement = createNS('g');\r\n this.transformedElement = this.layerElement;\r\n this.maskedElement = this.layerElement;\r\n this._sizeChanged = false;\r\n var layerElementParent = null; // If this layer acts as a mask for the following layer\r\n\r\n if (this.data.td) {\r\n this.matteMasks = {};\r\n var gg = createNS('g');\r\n gg.setAttribute('id', this.layerId);\r\n gg.appendChild(this.layerElement);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(gg);\r\n } else if (this.data.tt) {\r\n this.matteElement.appendChild(this.layerElement);\r\n layerElementParent = this.matteElement;\r\n this.baseElement = this.matteElement;\r\n } else {\r\n this.baseElement = this.layerElement;\r\n }\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n } // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\r\n\r\n\r\n if (this.data.ty === 0 && !this.data.hd) {\r\n var cp = createNS('clipPath');\r\n var pt = createNS('path');\r\n pt.setAttribute('d', 'M0,0 L' + this.data.w + ',0 L' + this.data.w + ',' + this.data.h + ' L0,' + this.data.h + 'z');\r\n var clipId = createElementID();\r\n cp.setAttribute('id', clipId);\r\n cp.appendChild(pt);\r\n this.globalData.defs.appendChild(cp);\r\n\r\n if (this.checkMasks()) {\r\n var cpGroup = createNS('g');\r\n cpGroup.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\r\n\r\n if (layerElementParent) {\r\n layerElementParent.appendChild(this.transformedElement);\r\n } else {\r\n this.baseElement = this.transformedElement;\r\n }\r\n } else {\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + clipId + ')');\r\n }\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n this.transformedElement.setAttribute('opacity', this.finalTransform.mProp.o.v);\r\n }\r\n },\r\n destroyBaseElement: function destroyBaseElement() {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function getBaseElement() {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n getMatte: function getMatte(matteType) {\r\n // This should not be a common case. But for backward compatibility, we'll create the matte object.\r\n // It solves animations that have two consecutive layers marked as matte masks.\r\n // Which is an undefined behavior in AE.\r\n if (!this.matteMasks) {\r\n this.matteMasks = {};\r\n }\r\n\r\n if (!this.matteMasks[matteType]) {\r\n var id = this.layerId + '_' + matteType;\r\n var filId;\r\n var fil;\r\n var useElement;\r\n var gg;\r\n\r\n if (matteType === 1 || matteType === 3) {\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', id);\r\n masker.setAttribute('mask-type', matteType === 3 ? 'luminance' : 'alpha');\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n masker.appendChild(useElement);\r\n this.globalData.defs.appendChild(masker);\r\n\r\n if (!featureSupport.maskType && matteType === 1) {\r\n masker.setAttribute('mask-type', 'luminance');\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId);\r\n this.globalData.defs.appendChild(fil);\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n gg.appendChild(useElement);\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n }\r\n } else if (matteType === 2) {\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', id);\r\n maskGroup.setAttribute('mask-type', 'alpha');\r\n var maskGrouper = createNS('g');\r\n maskGroup.appendChild(maskGrouper);\r\n filId = createElementID();\r\n fil = filtersFactory.createFilter(filId); /// /\r\n\r\n var feCTr = createNS('feComponentTransfer');\r\n feCTr.setAttribute('in', 'SourceGraphic');\r\n fil.appendChild(feCTr);\r\n var feFunc = createNS('feFuncA');\r\n feFunc.setAttribute('type', 'table');\r\n feFunc.setAttribute('tableValues', '1.0 0.0');\r\n feCTr.appendChild(feFunc); /// /\r\n\r\n this.globalData.defs.appendChild(fil);\r\n var alphaRect = createNS('rect');\r\n alphaRect.setAttribute('width', this.comp.data.w);\r\n alphaRect.setAttribute('height', this.comp.data.h);\r\n alphaRect.setAttribute('x', '0');\r\n alphaRect.setAttribute('y', '0');\r\n alphaRect.setAttribute('fill', '#ffffff');\r\n alphaRect.setAttribute('opacity', '0');\r\n maskGrouper.setAttribute('filter', 'url(' + getLocationHref() + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n useElement = createNS('use');\r\n useElement.setAttributeNS('http://www.w3.org/1999/xlink', 'href', '#' + this.layerId);\r\n maskGrouper.appendChild(useElement);\r\n\r\n if (!featureSupport.maskType) {\r\n maskGroup.setAttribute('mask-type', 'luminance');\r\n fil.appendChild(filtersFactory.createAlphaToLuminanceFilter());\r\n gg = createNS('g');\r\n maskGrouper.appendChild(alphaRect);\r\n gg.appendChild(this.layerElement);\r\n maskGrouper.appendChild(gg);\r\n }\r\n\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\r\n\r\n this.matteMasks[matteType] = id;\r\n }\r\n\r\n return this.matteMasks[matteType];\r\n },\r\n setMatte: function setMatte(id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n\r\n this.matteElement.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n }\r\n };\r\n\r\n /**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n function HierarchyElement() {}\r\n\r\n HierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function initHierarchy() {\r\n // element's parent list\r\n this.hierarchy = []; // if element is parent of another layer _isParent will be true\r\n\r\n this._isParent = false;\r\n this.checkParenting();\r\n },\r\n\r\n /**\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 setHierarchy: function setHierarchy(hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function setAsParent() {\r\n this._isParent = true;\r\n },\r\n\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function checkParenting() {\r\n if (this.data.parent !== undefined) {\r\n this.comp.buildElementParenting(this, this.data.parent, []);\r\n }\r\n }\r\n };\r\n\r\n function RenderableDOMElement() {}\r\n\r\n (function () {\r\n var _prototype = {\r\n initElement: function initElement(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 hide() {\r\n // console.log('HIDE', this);\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 show() {\r\n // console.log('SHOW', this);\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\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\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\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function renderInnerContent() {},\r\n prepareFrame: function prepareFrame(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 destroy() {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n })();\r\n\r\n function IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0,\r\n left: 0,\r\n width: this.assetData.w,\r\n height: this.assetData.h\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\n IImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\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 this.layerElement.appendChild(this.innerElem);\r\n };\r\n\r\n IImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n };\r\n\r\n function ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n }\r\n\r\n function IShapeElement() {}\r\n\r\n IShapeElement.prototype = {\r\n addShapeToModifiers: function addShapeToModifiers(data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function isShapeInAnimatedModifiers(data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n },\r\n renderModifiers: function renderModifiers() {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len = this.shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].sh.reset();\r\n }\r\n\r\n len = this.shapeModifiers.length;\r\n var shouldBreakProcess;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame); // workaround to fix cases where a repeater resets the shape so the following processes get called twice\r\n // TODO: find a better solution for this\r\n\r\n if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n searchProcessedElement: function searchProcessedElement(elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return 0;\r\n },\r\n addProcessedElement: function addProcessedElement(elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n\r\n while (i) {\r\n i -= 1;\r\n\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function prepareFrame(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n };\r\n\r\n var lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square'\r\n };\r\n var lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel'\r\n };\r\n\r\n function 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; // 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\r\n this._isAnimated = !!shape.k; // TODO: commenting this for now since all shapes are animated\r\n\r\n var i = 0;\r\n var len = transformers.length;\r\n\r\n while (i < len) {\r\n if (transformers[i].mProps.dynamicProperties.length) {\r\n this._isAnimated = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n\r\n SVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n };\r\n\r\n function SVGStyleData(data, level) {\r\n this.data = data;\r\n this.type = data.ty;\r\n this.d = '';\r\n this.lvl = level;\r\n this._mdf = false;\r\n this.closed = data.hd === true;\r\n this.pElem = createNS('path');\r\n this.msElem = null;\r\n }\r\n\r\n SVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n };\r\n\r\n function DashProperty(elem, data, renderer, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.dataProps = createSizedArray(data.length);\r\n this.renderer = renderer;\r\n this.k = false;\r\n this.dashStr = '';\r\n this.dashArray = createTypedArray('float32', data.length ? data.length - 1 : 0);\r\n this.dashoffset = createTypedArray('float32', 1);\r\n this.initDynamicPropertyContainer(container);\r\n var i;\r\n var len = data.length || 0;\r\n var prop;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n prop = PropertyFactory.getProp(elem, data[i].v, 0, 0, this);\r\n this.k = prop.k || this.k;\r\n this.dataProps[i] = {\r\n n: data[i].n,\r\n p: prop\r\n };\r\n }\r\n\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n\r\n this._isAnimated = this.k;\r\n }\r\n\r\n DashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.dataProps[i].n !== 'o') {\r\n if (this.renderer === 'svg') {\r\n this.dashStr += ' ' + this.dataProps[i].p.v;\r\n } else {\r\n this.dashArray[i] = this.dataProps[i].p.v;\r\n }\r\n } else {\r\n this.dashoffset[0] = this.dataProps[i].p.v;\r\n }\r\n }\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n function SVGStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n function SVGFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.c = PropertyFactory.getProp(elem, data.c, 1, 255, this);\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n function SVGNoStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.style = styleOb;\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGNoStyleData);\r\n\r\n function GradientProperty(elem, data, container) {\r\n this.data = data;\r\n this.c = createTypedArray('uint8c', data.p * 4);\r\n var cLength = data.k.k[0].s ? data.k.k[0].s.length - data.p * 4 : data.k.k.length - data.p * 4;\r\n this.o = createTypedArray('float32', cLength);\r\n this._cmdf = false;\r\n this._omdf = false;\r\n this._collapsable = this.checkCollapsable();\r\n this._hasOpacity = cLength;\r\n this.initDynamicPropertyContainer(container);\r\n this.prop = PropertyFactory.getProp(elem, data.k, 1, null, this);\r\n this.k = this.prop.k;\r\n this.getValue(true);\r\n }\r\n\r\n GradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return true;\r\n };\r\n\r\n GradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n\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\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\r\n return true;\r\n };\r\n\r\n GradientProperty.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\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n mult = i % 4 === 0 ? 100 : 255;\r\n val = Math.round(this.prop.v[i] * mult);\r\n\r\n if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n\r\n if (this.o.length) {\r\n len = this.prop.v.length;\r\n\r\n for (i = this.data.p * 4; i < len; i += 1) {\r\n mult = i % 2 === 0 ? 100 : 1;\r\n val = i % 2 === 0 ? Math.round(this.prop.v[i] * 100) : this.prop.v[i];\r\n\r\n if (this.o[i - this.data.p * 4] !== val) {\r\n this.o[i - this.data.p * 4] = val;\r\n this._omdf = !forceRender;\r\n }\r\n }\r\n }\r\n\r\n this._mdf = !forceRender;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n function 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\n SVGGradientFillStyleData.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 || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || {\r\n k: 0\r\n }, 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 SVGGradientFillStyleData.prototype.setGradientData = function (pathElement, data) {\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;\r\n var j;\r\n var jLen;\r\n jLen = data.g.p * 4;\r\n\r\n for (j = 0; j < jLen; j += 4) {\r\n stop = createNS('stop');\r\n gfill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n };\r\n\r\n SVGGradientFillStyleData.prototype.setGradientOpacity = function (data, styleOb) {\r\n if (this.g._hasOpacity && !this.g._collapsable) {\r\n var stop;\r\n var j;\r\n var jLen;\r\n var mask = createNS('mask');\r\n var maskElement = createNS('path');\r\n mask.appendChild(maskElement);\r\n var opacityId = createElementID();\r\n var maskId = createElementID();\r\n mask.setAttribute('id', maskId);\r\n var opFill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n opFill.setAttribute('id', opacityId);\r\n opFill.setAttribute('spreadMethod', 'pad');\r\n opFill.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n jLen = data.g.k.k[0].s ? data.g.k.k[0].s.length : data.g.k.k.length;\r\n var stops = this.stops;\r\n\r\n for (j = data.g.p * 4; j < jLen; j += 2) {\r\n stop = createNS('stop');\r\n stop.setAttribute('stop-color', 'rgb(255,255,255)');\r\n opFill.appendChild(stop);\r\n stops.push(stop);\r\n }\r\n\r\n maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + getLocationHref() + '#' + opacityId + ')');\r\n\r\n if (data.ty === 'gs') {\r\n maskElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n maskElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n\r\n if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n this.of = opFill;\r\n this.ms = mask;\r\n this.ost = stops;\r\n this.maskId = maskId;\r\n styleOb.msElem = maskElement;\r\n }\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n function SVGGradientStrokeStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.w = PropertyFactory.getProp(elem, data.w, 0, null, this);\r\n this.d = new DashProperty(elem, data.d || {}, 'svg', this);\r\n this.initGradientData(elem, data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n }\r\n\r\n extendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n function ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n }\r\n\r\n function SVGTransformData(mProps, op, container) {\r\n this.transform = {\r\n mProps: mProps,\r\n op: op,\r\n container: container\r\n };\r\n this.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n }\r\n\r\n var buildShapeString = function buildShapeString(pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\r\n }\r\n\r\n var _o = pathNodes.o;\r\n var _i = pathNodes.i;\r\n var _v = pathNodes.v;\r\n var i;\r\n var shapeString = ' M' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n\r\n for (i = 1; i < length; i += 1) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[i][0], _i[i][1]) + ' ' + mat.applyToPointStringified(_v[i][0], _v[i][1]);\r\n }\r\n\r\n if (closed && length) {\r\n shapeString += ' C' + mat.applyToPointStringified(_o[i - 1][0], _o[i - 1][1]) + ' ' + mat.applyToPointStringified(_i[0][0], _i[0][1]) + ' ' + mat.applyToPointStringified(_v[0][0], _v[0][1]);\r\n shapeString += 'z';\r\n }\r\n\r\n return shapeString;\r\n };\r\n\r\n var SVGElementsRenderer = function () {\r\n var _identityMatrix = new Matrix();\r\n\r\n var _matrixHelper = new Matrix();\r\n\r\n var ob = {\r\n createRenderFunction: createRenderFunction\r\n };\r\n\r\n function createRenderFunction(data) {\r\n switch (data.ty) {\r\n case 'fl':\r\n return renderFill;\r\n\r\n case 'gf':\r\n return renderGradient;\r\n\r\n case 'gs':\r\n return renderGradientStroke;\r\n\r\n case 'st':\r\n return renderStroke;\r\n\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n\r\n case 'tr':\r\n return renderContentTransform;\r\n\r\n case 'no':\r\n return renderNoop;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n function renderContentTransform(styleData, itemData, isFirstFrame) {\r\n if (isFirstFrame || itemData.transform.op._mdf) {\r\n itemData.transform.container.setAttribute('opacity', itemData.transform.op.v);\r\n }\r\n\r\n if (isFirstFrame || itemData.transform.mProps._mdf) {\r\n itemData.transform.container.setAttribute('transform', itemData.transform.mProps.v.to2dCSS());\r\n }\r\n }\r\n\r\n function renderNoop() {}\r\n\r\n function renderPath(styleData, itemData, isFirstFrame) {\r\n var j;\r\n var jLen;\r\n var pathStringTransformed;\r\n var redraw;\r\n var pathNodes;\r\n var l;\r\n var lLen = itemData.styles.length;\r\n var lvl = itemData.lvl;\r\n var paths;\r\n var mat;\r\n var props;\r\n var iterations;\r\n var k;\r\n\r\n for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\r\n\r\n if (itemData.styles[l].lvl < lvl) {\r\n mat = _matrixHelper.reset();\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (!redraw && iterations > 0) {\r\n redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n iterations -= 1;\r\n k -= 1;\r\n }\r\n\r\n if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\r\n\r\n while (iterations > 0) {\r\n props = itemData.transformers[k].mProps.v.props;\r\n 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 iterations -= 1;\r\n k -= 1;\r\n }\r\n }\r\n } else {\r\n mat = _identityMatrix;\r\n }\r\n\r\n paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\r\n }\r\n\r\n itemData.styles[l].d += styleData.hd === true ? '' : pathStringTransformed;\r\n itemData.styles[l]._mdf = redraw || itemData.styles[l]._mdf;\r\n }\r\n }\r\n\r\n function renderFill(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('fill-opacity', itemData.o.v);\r\n }\r\n }\r\n\r\n function renderGradientStroke(styleData, itemData, isFirstFrame) {\r\n renderGradient(styleData, itemData, isFirstFrame);\r\n renderStroke(styleData, itemData, isFirstFrame);\r\n }\r\n\r\n function renderGradient(styleData, itemData, isFirstFrame) {\r\n var gfill = itemData.gf;\r\n var hasOpacity = itemData.g._hasOpacity;\r\n var pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n var attr = styleData.ty === 'gf' ? 'fill-opacity' : 'stroke-opacity';\r\n itemData.style.pElem.setAttribute(attr, itemData.o.v);\r\n }\r\n\r\n if (itemData.s._mdf || isFirstFrame) {\r\n var attr1 = styleData.t === 1 ? 'x1' : 'cx';\r\n var attr2 = attr1 === 'x1' ? 'y1' : 'cy';\r\n gfill.setAttribute(attr1, pt1[0]);\r\n gfill.setAttribute(attr2, pt1[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute(attr1, pt1[0]);\r\n itemData.of.setAttribute(attr2, pt1[1]);\r\n }\r\n }\r\n\r\n var stops;\r\n var i;\r\n var len;\r\n var stop;\r\n\r\n if (itemData.g._cmdf || isFirstFrame) {\r\n stops = itemData.cst;\r\n var cValues = itemData.g.c;\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n stop.setAttribute('offset', cValues[i * 4] + '%');\r\n stop.setAttribute('stop-color', 'rgb(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ')');\r\n }\r\n }\r\n\r\n if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n\r\n len = stops.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\r\n }\r\n }\r\n\r\n if (styleData.t === 1) {\r\n if (itemData.e._mdf || isFirstFrame) {\r\n gfill.setAttribute('x2', pt2[0]);\r\n gfill.setAttribute('y2', pt2[1]);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('x2', pt2[0]);\r\n itemData.of.setAttribute('y2', pt2[1]);\r\n }\r\n }\r\n } else {\r\n var rad;\r\n\r\n if (itemData.s._mdf || itemData.e._mdf || isFirstFrame) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n gfill.setAttribute('r', rad);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\r\n }\r\n }\r\n\r\n if (itemData.e._mdf || itemData.h._mdf || itemData.a._mdf || isFirstFrame) {\r\n if (!rad) {\r\n rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n }\r\n\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\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 gfill.setAttribute('fx', x);\r\n gfill.setAttribute('fy', y);\r\n\r\n if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n } // gfill.setAttribute('fy','200');\r\n\r\n }\r\n }\r\n\r\n function renderStroke(styleData, itemData, isFirstFrame) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\r\n if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n }\r\n\r\n if (itemData.c && (itemData.c._mdf || isFirstFrame)) {\r\n styleElem.pElem.setAttribute('stroke', 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')');\r\n }\r\n\r\n if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\r\n if (styleElem.msElem) {\r\n styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n }\r\n }\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n function SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = []; // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\n SVGShapeElement.prototype.initSecondaryElement = function () {};\r\n\r\n SVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\n SVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\n SVGShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n };\r\n /*\r\n This method searches for multiple shapes that affect a single element and one of them is animated\r\n */\r\n\r\n\r\n SVGShapeElement.prototype.filterUniqueShapes = function () {\r\n var i;\r\n var len = this.shapes.length;\r\n var shape;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n var style;\r\n var tempShapes = [];\r\n var areAnimated = false;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\r\n\r\n if (shape.styles.indexOf(style) !== -1) {\r\n tempShapes.push(shape);\r\n areAnimated = shape._isAnimated || areAnimated;\r\n }\r\n }\r\n\r\n if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n };\r\n\r\n SVGShapeElement.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 var pathElement = styleOb.pElem;\r\n\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\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(' + getLocationHref() + '#' + elementData.maskId + ')');\r\n }\r\n } else if (data.ty === 'no') {\r\n elementData = new SVGNoStyleData(this, data, styleOb);\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n\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\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n\r\n return elementData;\r\n };\r\n\r\n SVGShapeElement.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\n SVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n\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\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\n SVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n\r\n i += 1;\r\n }\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\n SVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n\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\n SVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\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\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n };\r\n\r\n SVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var currentTransform;\r\n var modifier;\r\n var processedPos;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs' || arr[i].ty === 'no') {\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\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\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\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, itemsData[i].gr, level + 1, ownTransformers, render);\r\n\r\n if (arr[i]._render) {\r\n if (itemsData[i].gr.parentNode !== container) {\r\n container.appendChild(itemsData[i].gr);\r\n }\r\n }\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createTransformElement(arr[i], container);\r\n }\r\n\r\n currentTransform = itemsData[i].transform;\r\n ownTransformers.push(currentTransform);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i], ownTransformers, level);\r\n }\r\n\r\n this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n render = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n len = ownStyles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\r\n }\r\n\r\n this.renderShape();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.stylesList[i]._mdf || this._isFirstFrame) {\r\n if (this.stylesList[i].msElem) {\r\n this.stylesList[i].msElem.setAttribute('d', this.stylesList[i].d); // Adding M0 0 fixes same mask bug on all browsers\r\n\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\r\n }\r\n\r\n this.stylesList[i].pElem.setAttribute('d', this.stylesList[i].d || 'M0 0');\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\r\n\r\n if ((this._isFirstFrame || animatedContent.element._isAnimated) && animatedContent.data !== true) {\r\n animatedContent.fn(animatedContent.data, animatedContent.element, this._isFirstFrame);\r\n }\r\n }\r\n };\r\n\r\n SVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n };\r\n\r\n function LetterProps(o, sw, sc, fc, m, p) {\r\n this.o = o;\r\n this.sw = sw;\r\n this.sc = sc;\r\n this.fc = fc;\r\n this.m = m;\r\n this.p = p;\r\n this._mdf = {\r\n o: true,\r\n sw: !!sw,\r\n sc: !!sc,\r\n fc: !!fc,\r\n m: true,\r\n p: true\r\n };\r\n }\r\n\r\n LetterProps.prototype.update = function (o, sw, sc, fc, m, p) {\r\n this._mdf.o = false;\r\n this._mdf.sw = false;\r\n this._mdf.sc = false;\r\n this._mdf.fc = false;\r\n this._mdf.m = false;\r\n this._mdf.p = false;\r\n var updated = false;\r\n\r\n if (this.o !== o) {\r\n this.o = o;\r\n this._mdf.o = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\r\n }\r\n\r\n if (this.sc !== sc) {\r\n this.sc = sc;\r\n this._mdf.sc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\r\n }\r\n\r\n if (this.m !== m) {\r\n this.m = m;\r\n this._mdf.m = true;\r\n updated = true;\r\n }\r\n\r\n if (p.length && (this.p[0] !== p[0] || this.p[1] !== p[1] || this.p[4] !== p[4] || this.p[5] !== p[5] || this.p[12] !== p[12] || this.p[13] !== p[13])) {\r\n this.p = p;\r\n this._mdf.p = true;\r\n updated = true;\r\n }\r\n\r\n return updated;\r\n };\r\n\r\n function TextProperty(elem, data) {\r\n this._frameId = initialDefaultFrame;\r\n this.pv = '';\r\n this.v = '';\r\n this.kf = false;\r\n this._isFirstFrame = true;\r\n this._mdf = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = this.elem.comp;\r\n this.keysIndex = 0;\r\n this.canResize = false;\r\n this.minimumFontSize = 1;\r\n this.effectsSequence = [];\r\n this.currentData = {\r\n ascent: 0,\r\n boxWidth: this.defaultBoxWidth,\r\n f: '',\r\n fStyle: '',\r\n fWeight: '',\r\n fc: '',\r\n j: '',\r\n justifyOffset: '',\r\n l: [],\r\n lh: 0,\r\n lineWidths: [],\r\n ls: '',\r\n of: '',\r\n s: '',\r\n sc: '',\r\n sw: 0,\r\n t: 0,\r\n tr: 0,\r\n sz: 0,\r\n ps: null,\r\n fillColorAnim: false,\r\n strokeColorAnim: false,\r\n strokeWidthAnim: false,\r\n yOffset: 0,\r\n finalSize: 0,\r\n finalText: [],\r\n finalLineHeight: 0,\r\n __complete: false\r\n };\r\n this.copyData(this.currentData, this.data.d.k[0].s);\r\n\r\n if (!this.searchProperty()) {\r\n this.completeTextData(this.currentData);\r\n }\r\n }\r\n\r\n TextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\n TextProperty.prototype.copyData = function (obj, data) {\r\n for (var s in data) {\r\n if (Object.prototype.hasOwnProperty.call(data, s)) {\r\n obj[s] = data[s];\r\n }\r\n }\r\n\r\n return obj;\r\n };\r\n\r\n TextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\r\n }\r\n\r\n this.currentData = data;\r\n this.currentData.boxWidth = this.currentData.boxWidth || this.defaultBoxWidth;\r\n this._mdf = true;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n };\r\n\r\n TextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\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\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n\r\n this.lock = true;\r\n this._mdf = false;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n\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\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n\r\n this.v = this.currentData;\r\n this.pv = this.v;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n TextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0;\r\n var len = textKeys.length;\r\n\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n\r\n return this.data.d.k[this.keysIndex].s;\r\n };\r\n\r\n TextProperty.prototype.buildFinalText = function (text) {\r\n var charactersArray = [];\r\n var i = 0;\r\n var len = text.length;\r\n var charCode;\r\n var secondCharCode;\r\n var shouldCombine = false;\r\n\r\n while (i < len) {\r\n charCode = text.charCodeAt(i);\r\n\r\n if (FontManager.isCombinedCharacter(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else if (charCode >= 0xD800 && charCode <= 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (secondCharCode >= 0xDC00 && secondCharCode <= 0xDFFF) {\r\n if (shouldCombine || FontManager.isModifier(charCode, secondCharCode)) {\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n shouldCombine = false;\r\n } else {\r\n charactersArray.push(text.substr(i, 2));\r\n }\r\n\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (charCode > 0xDBFF) {\r\n secondCharCode = text.charCodeAt(i + 1);\r\n\r\n if (FontManager.isZeroWidthJoiner(charCode, secondCharCode)) {\r\n shouldCombine = true;\r\n charactersArray[charactersArray.length - 1] += text.substr(i, 2);\r\n i += 1;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n } else if (FontManager.isZeroWidthJoiner(charCode)) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n shouldCombine = true;\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return charactersArray;\r\n };\r\n\r\n TextProperty.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;\r\n var len;\r\n var newLineFlag;\r\n var index = 0;\r\n var val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0;\r\n var currentPos = 0;\r\n var currentLine = 0;\r\n var lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j;\r\n var jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData;\r\n var cLength = 0;\r\n var fontProps = getFontProperties(fontData);\r\n documentData.fWeight = fontProps.weight;\r\n documentData.fStyle = fontProps.style;\r\n documentData.finalSize = documentData.s;\r\n documentData.finalText = this.buildFinalText(documentData.t);\r\n len = documentData.finalText.length;\r\n documentData.finalLineHeight = documentData.lh;\r\n var trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var charCode;\r\n\r\n if (documentData.sz) {\r\n var flag = true;\r\n var boxWidth = documentData.sz[0];\r\n var boxHeight = documentData.sz[1];\r\n var currentHeight;\r\n var finalText;\r\n\r\n while (flag) {\r\n finalText = this.buildFinalText(documentData.t);\r\n currentHeight = 0;\r\n lineWidth = 0;\r\n len = finalText.length;\r\n trackingOffset = documentData.tr / 1000 * documentData.finalSize;\r\n var lastSpaceIndex = -1;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\r\n\r\n if (finalText[i] === ' ') {\r\n lastSpaceIndex = i;\r\n } else if (charCode === 13 || charCode === 3) {\r\n lineWidth = 0;\r\n newLineFlag = true;\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n }\r\n\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(finalText[i], fontData.fStyle, fontData.fFamily);\r\n cLength = newLineFlag ? 0 : charData.w * documentData.finalSize / 100;\r\n } else {\r\n // tCanvasHelper.font = documentData.s + 'px '+ fontData.fFamily;\r\n cLength = fontManager.measureText(finalText[i], documentData.f, documentData.finalSize);\r\n }\r\n\r\n if (lineWidth + cLength > boxWidth && finalText[i] !== ' ') {\r\n if (lastSpaceIndex === -1) {\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r'); // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n\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\r\n currentHeight += fontData.ascent * documentData.finalSize / 100;\r\n\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\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\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n\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\r\n letters.push({\r\n l: cLength,\r\n an: cLength,\r\n add: currentSize,\r\n n: newLineFlag,\r\n anIndexes: [],\r\n val: val,\r\n line: currentLine,\r\n animatorJustifyOffset: 0\r\n });\r\n\r\n if (anchorGrouping == 2) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\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\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) {\r\n // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\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\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\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n\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\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n\r\n documentData.lineWidths = lineWidths;\r\n var animators = data.a;\r\n var animatorData;\r\n var letterData;\r\n jLen = animators.length;\r\n var based;\r\n var ind;\r\n var indexes = [];\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\r\n }\r\n\r\n if (animatorData.a.fc || animatorData.a.fh || animatorData.a.fs || animatorData.a.fb) {\r\n documentData.fillColorAnim = true;\r\n }\r\n\r\n ind = 0;\r\n based = animatorData.s.b;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\r\n\r\n if (based == 1 && letterData.val !== '' || based == 2 && letterData.val !== '' && letterData.val !== ' ' || based == 3 && (letterData.n || letterData.val == ' ' || i == len - 1) || based == 4 && (letterData.n || i == len - 1)) {\r\n // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n\r\n ind += 1;\r\n }\r\n }\r\n\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1;\r\n var newInd;\r\n\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n\r\n if (currentInd != letterData.anIndexes[j]) {\r\n // eslint-disable-line eqeqeq\r\n currentInd = letterData.anIndexes[j];\r\n newInd = indexes.splice(Math.floor(Math.random() * indexes.length), 1)[0];\r\n }\r\n\r\n letterData.anIndexes[j] = newInd;\r\n }\r\n }\r\n }\r\n\r\n documentData.yOffset = documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n documentData.ls = documentData.ls || 0;\r\n documentData.ascent = fontData.ascent * documentData.finalSize / 100;\r\n };\r\n\r\n TextProperty.prototype.updateDocumentData = function (newData, index) {\r\n index = index === undefined ? this.keysIndex : index;\r\n var dData = this.copyData({}, this.data.d.k[index].s);\r\n dData = this.copyData(dData, newData);\r\n this.data.d.k[index].s = dData;\r\n this.recalculate(index);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.recalculate = function (index) {\r\n var dData = this.data.d.k[index].s;\r\n dData.__complete = false;\r\n this.keysIndex = 0;\r\n this._isFirstFrame = true;\r\n this.getValue(dData);\r\n };\r\n\r\n TextProperty.prototype.canResizeFont = function (_canResize) {\r\n this.canResize = _canResize;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n TextProperty.prototype.setMinimumFontSize = function (_fontValue) {\r\n this.minimumFontSize = Math.floor(_fontValue) || 1;\r\n this.recalculate(this.keysIndex);\r\n this.elem.addDynamicProperty(this);\r\n };\r\n\r\n var TextSelectorProp = function () {\r\n var max = Math.max;\r\n var min = Math.min;\r\n var floor = Math.floor;\r\n\r\n function TextSelectorPropFactory(elem, data) {\r\n this._currentTextLength = -1;\r\n this.k = false;\r\n this.data = data;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.finalS = 0;\r\n this.finalE = 0;\r\n this.initDynamicPropertyContainer(elem);\r\n this.s = PropertyFactory.getProp(elem, data.s || {\r\n k: 0\r\n }, 0, 0, this);\r\n\r\n if ('e' in data) {\r\n this.e = PropertyFactory.getProp(elem, data.e, 0, 0, this);\r\n } else {\r\n this.e = {\r\n v: 100\r\n };\r\n }\r\n\r\n this.o = PropertyFactory.getProp(elem, data.o || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || {\r\n k: 0\r\n }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || {\r\n k: 100\r\n }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function getMult(ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\r\n\r\n if (this.ne.v > 0) {\r\n x1 = this.ne.v / 100.0;\r\n } else {\r\n y1 = -this.ne.v / 100.0;\r\n }\r\n\r\n if (this.xe.v > 0) {\r\n x2 = 1.0 - this.xe.v / 100.0;\r\n } else {\r\n y2 = 1.0 + this.xe.v / 100.0;\r\n }\r\n\r\n var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\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\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\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\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\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; // eslint-disable-line\r\n }\r\n\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n\r\n mult = easer(mult);\r\n } // Smoothness implementation.\r\n // The smoothness represents a reduced range of the original [0; 1] range.\r\n // if smoothness is 25%, the new range will be [0.375; 0.625]\r\n // Steps are:\r\n // - find the lower value of the new range (threshold)\r\n // - if multiplier is smaller than that value, floor it to 0\r\n // - if it is larger,\r\n // - subtract the threshold\r\n // - divide it by the smoothness (this will return the range to [0; 1])\r\n // Note: If it doesn't work on some scenarios, consider applying it before the easer.\r\n\r\n\r\n if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n\r\n var threshold = 0.5 - smoothness * 0.5;\r\n\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n\r\n return mult * this.a.v;\r\n },\r\n getValue: function getValue(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\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\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\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n };\r\n extendPrototype([DynamicPropertyContainer], TextSelectorPropFactory);\r\n\r\n function getTextSelectorProp(elem, data, arr) {\r\n return new TextSelectorPropFactory(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n }();\r\n\r\n function TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = {\r\n propType: false\r\n };\r\n var getProp = PropertyFactory.getProp;\r\n var textAnimatorAnimatables = animatorProps.a;\r\n this.a = {\r\n r: textAnimatorAnimatables.r ? getProp(elem, textAnimatorAnimatables.r, 0, degToRads, container) : defaultData,\r\n rx: textAnimatorAnimatables.rx ? getProp(elem, textAnimatorAnimatables.rx, 0, degToRads, container) : defaultData,\r\n ry: textAnimatorAnimatables.ry ? getProp(elem, textAnimatorAnimatables.ry, 0, degToRads, container) : defaultData,\r\n sk: textAnimatorAnimatables.sk ? getProp(elem, textAnimatorAnimatables.sk, 0, degToRads, container) : defaultData,\r\n sa: textAnimatorAnimatables.sa ? getProp(elem, textAnimatorAnimatables.sa, 0, degToRads, container) : defaultData,\r\n s: textAnimatorAnimatables.s ? getProp(elem, textAnimatorAnimatables.s, 1, 0.01, container) : defaultData,\r\n a: textAnimatorAnimatables.a ? getProp(elem, textAnimatorAnimatables.a, 1, 0, container) : defaultData,\r\n o: textAnimatorAnimatables.o ? getProp(elem, textAnimatorAnimatables.o, 0, 0.01, container) : defaultData,\r\n p: textAnimatorAnimatables.p ? getProp(elem, textAnimatorAnimatables.p, 1, 0, container) : defaultData,\r\n sw: textAnimatorAnimatables.sw ? getProp(elem, textAnimatorAnimatables.sw, 0, 0, container) : defaultData,\r\n sc: textAnimatorAnimatables.sc ? getProp(elem, textAnimatorAnimatables.sc, 1, 0, container) : defaultData,\r\n fc: textAnimatorAnimatables.fc ? getProp(elem, textAnimatorAnimatables.fc, 1, 0, container) : defaultData,\r\n fh: textAnimatorAnimatables.fh ? getProp(elem, textAnimatorAnimatables.fh, 0, 0, container) : defaultData,\r\n fs: textAnimatorAnimatables.fs ? getProp(elem, textAnimatorAnimatables.fs, 0, 0.01, container) : defaultData,\r\n fb: textAnimatorAnimatables.fb ? getProp(elem, textAnimatorAnimatables.fb, 0, 0.01, container) : defaultData,\r\n t: textAnimatorAnimatables.t ? getProp(elem, textAnimatorAnimatables.t, 0, 0, container) : defaultData\r\n };\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n }\r\n\r\n function TextAnimatorProperty(textData, renderType, elem) {\r\n this._isFirstFrame = true;\r\n this._hasMaskedPath = false;\r\n this._frameId = -1;\r\n this._textData = textData;\r\n this._renderType = renderType;\r\n this._elem = elem;\r\n this._animatorsData = createSizedArray(this._textData.a.length);\r\n this._pathData = {};\r\n this._moreOptions = {\r\n alignment: {}\r\n };\r\n this.renderedLetters = [];\r\n this.lettersChangedFlag = false;\r\n this.initDynamicPropertyContainer(elem);\r\n }\r\n\r\n TextAnimatorProperty.prototype.searchProperties = function () {\r\n var i;\r\n var len = this._textData.a.length;\r\n var animatorProps;\r\n var getProp = PropertyFactory.getProp;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n animatorProps = this._textData.a[i];\r\n this._animatorsData[i] = new TextAnimatorDataProperty(this._elem, animatorProps, this);\r\n }\r\n\r\n if (this._textData.p && 'm' in this._textData.p) {\r\n this._pathData = {\r\n a: getProp(this._elem, this._textData.p.a, 0, 0, this),\r\n f: getProp(this._elem, this._textData.p.f, 0, 0, this),\r\n l: getProp(this._elem, this._textData.p.l, 0, 0, this),\r\n r: getProp(this._elem, this._textData.p.r, 0, 0, this),\r\n p: getProp(this._elem, this._textData.p.p, 0, 0, this),\r\n m: this._elem.maskManager.getMaskProperty(this._textData.p.m)\r\n };\r\n this._hasMaskedPath = true;\r\n } else {\r\n this._hasMaskedPath = false;\r\n }\r\n\r\n this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n };\r\n\r\n TextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\r\n }\r\n\r\n this._isFirstFrame = false;\r\n var alignment = this._moreOptions.alignment.v;\r\n var animators = this._animatorsData;\r\n var textData = this._textData;\r\n var matrixHelper = this.mHelper;\r\n var renderType = this._renderType;\r\n var renderedLettersCount = this.renderedLetters.length;\r\n var xPos;\r\n var yPos;\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n var pathInfo;\r\n var currentLength;\r\n var currentPoint;\r\n var segmentLength;\r\n var flag;\r\n var pointInd;\r\n var segmentInd;\r\n var prevPoint;\r\n var points;\r\n var segments;\r\n var partialLength;\r\n var totalLength;\r\n var perc;\r\n var tanAngle;\r\n var mask;\r\n\r\n if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n } // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\r\n\r\n\r\n pathInfo = {\r\n tLength: 0,\r\n segments: []\r\n };\r\n len = paths._length - 1;\r\n var bezierData;\r\n totalLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[i + 1], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[i + 1][0] - paths.v[i + 1][0], paths.i[i + 1][1] - paths.v[i + 1][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n i = len;\r\n\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i], paths.v[0], [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]], [paths.i[0][0] - paths.v[0][0], paths.i[0][1] - paths.v[0][1]]);\r\n pathInfo.tLength += bezierData.segmentLength;\r\n pathInfo.segments.push(bezierData);\r\n totalLength += bezierData.segmentLength;\r\n }\r\n\r\n this._pathData.pi = pathInfo;\r\n }\r\n\r\n pathInfo = this._pathData.pi;\r\n currentLength = this._pathData.f.v;\r\n segmentInd = 0;\r\n pointInd = 1;\r\n segmentLength = 0;\r\n flag = true;\r\n segments = pathInfo.segments;\r\n\r\n if (currentLength < 0 && mask.v.c) {\r\n if (pathInfo.tLength < Math.abs(currentLength)) {\r\n currentLength = -Math.abs(currentLength) % pathInfo.tLength;\r\n }\r\n\r\n segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\r\n\r\n if (pointInd < 0) {\r\n segmentInd -= 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n }\r\n }\r\n }\r\n\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n\r\n len = letters.length;\r\n xPos = 0;\r\n yPos = 0;\r\n var yOff = documentData.finalSize * 1.2 * 0.714;\r\n var firstLine = true;\r\n var animatorProps;\r\n var animatorSelector;\r\n var j;\r\n var jLen;\r\n var letterValue;\r\n jLen = animators.length;\r\n var mult;\r\n var ind = -1;\r\n var offf;\r\n var xPathPos;\r\n var yPathPos;\r\n var initPathPos = currentLength;\r\n var initSegmentInd = segmentInd;\r\n var initPointInd = pointInd;\r\n var currentLine = -1;\r\n var elemOpacity;\r\n var sc;\r\n var sw;\r\n var fc;\r\n var k;\r\n var letterSw;\r\n var letterSc;\r\n var letterFc;\r\n var letterM = '';\r\n var letterP = this.defaultPropsArray;\r\n var letterO; //\r\n\r\n if (documentData.j === 2 || documentData.j === 1) {\r\n var animatorJustifyOffset = 0;\r\n var animatorFirstCharOffset = 0;\r\n var justifyOffsetMult = documentData.j === 2 ? -0.5 : -1;\r\n var lastIndex = 0;\r\n var isNewLine = true;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n\r\n animatorJustifyOffset = 0;\r\n isNewLine = true;\r\n } else {\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorJustifyOffset += animatorProps.t.v * mult[0] * justifyOffsetMult;\r\n } else {\r\n animatorJustifyOffset += animatorProps.t.v * mult * justifyOffsetMult;\r\n }\r\n }\r\n }\r\n\r\n isNewLine = false;\r\n }\r\n }\r\n\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\r\n }\r\n\r\n while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\r\n }\r\n } //\r\n\r\n\r\n for (i = 0; i < len; i += 1) {\r\n matrixHelper.reset();\r\n elemOpacity = 1;\r\n\r\n if (letters[i].n) {\r\n xPos = 0;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n currentLength = initPathPos;\r\n firstLine = false;\r\n\r\n if (this._hasMaskedPath) {\r\n segmentInd = initSegmentInd;\r\n pointInd = initPointInd;\r\n points = segments[segmentInd].points;\r\n prevPoint = points[pointInd - 1];\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n segmentLength = 0;\r\n }\r\n\r\n letterM = '';\r\n letterFc = '';\r\n letterSw = '';\r\n letterO = '';\r\n letterP = this.defaultPropsArray;\r\n } else {\r\n if (this._hasMaskedPath) {\r\n if (currentLine !== letters[i].line) {\r\n switch (documentData.j) {\r\n case 1:\r\n currentLength += totalLength - documentData.lineWidths[letters[i].line];\r\n break;\r\n\r\n case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n currentLine = letters[i].line;\r\n }\r\n\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n\r\n currentLength += alignment[0] * letters[i].an * 0.005;\r\n var animatorOffset = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.p.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.p.v[0] * mult;\r\n }\r\n }\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n animatorOffset += animatorProps.a.v[0] * mult[0];\r\n } else {\r\n animatorOffset += animatorProps.a.v[0] * mult;\r\n }\r\n }\r\n }\r\n\r\n flag = true; // Force alignment only works with a single line for now\r\n\r\n if (this._pathData.a.v) {\r\n currentLength = letters[0].an * 0.5 + (totalLength - this._pathData.f.v - letters[0].an * 0.5 - letters[letters.length - 1].an * 0.5) * ind / (len - 1);\r\n currentLength += this._pathData.f.v;\r\n }\r\n\r\n while (flag) {\r\n if (segmentLength + partialLength >= 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 * 0.005, -(alignment[1] * yOff) * 0.01);\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n\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\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\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); // Grouping alignment\r\n\r\n matrixHelper.translate(-alignment[0] * letters[i].an * 0.005, -alignment[1] * yOff * 0.01, 0);\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars); // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\r\n\r\n if (xPos !== 0 || documentData.j !== 0) {\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n currentLength += animatorProps.t.v * mult[0];\r\n } else {\r\n currentLength += animatorProps.t.v * mult;\r\n }\r\n } else if (mult.length) {\r\n xPos += animatorProps.t.v * mult[0];\r\n } else {\r\n xPos += animatorProps.t.v * mult;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n if (documentData.sc) {\r\n sc = [documentData.sc[0], documentData.sc[1], documentData.sc[2]];\r\n } else {\r\n sc = [0, 0, 0];\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.a.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult[0], -animatorProps.a.v[1] * mult[1], animatorProps.a.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(-animatorProps.a.v[0] * mult, -animatorProps.a.v[1] * mult, animatorProps.a.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.s.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (mult.length) {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult[0], 1 + (animatorProps.s.v[1] - 1) * mult[1], 1);\r\n } else {\r\n matrixHelper.scale(1 + (animatorProps.s.v[0] - 1) * mult, 1 + (animatorProps.s.v[1] - 1) * mult, 1);\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (animatorProps.sk.propType) {\r\n if (mult.length) {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult[0], animatorProps.sa.v * mult[1]);\r\n } else {\r\n matrixHelper.skewFromAxis(-animatorProps.sk.v * mult, animatorProps.sa.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.r.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult[2]);\r\n } else {\r\n matrixHelper.rotateZ(-animatorProps.r.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.ry.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult[1]);\r\n } else {\r\n matrixHelper.rotateY(animatorProps.ry.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.rx.propType) {\r\n if (mult.length) {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult[0]);\r\n } else {\r\n matrixHelper.rotateX(animatorProps.rx.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.o.propType) {\r\n if (mult.length) {\r\n elemOpacity += (animatorProps.o.v * mult[0] - elemOpacity) * mult[0];\r\n } else {\r\n elemOpacity += (animatorProps.o.v * mult - elemOpacity) * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim && animatorProps.sw.propType) {\r\n if (mult.length) {\r\n sw += animatorProps.sw.v * mult[0];\r\n } else {\r\n sw += animatorProps.sw.v * mult;\r\n }\r\n }\r\n\r\n if (documentData.strokeColorAnim && animatorProps.sc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult[0];\r\n } else {\r\n sc[k] += (animatorProps.sc.v[k] - sc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n if (animatorProps.fc.propType) {\r\n for (k = 0; k < 3; k += 1) {\r\n if (mult.length) {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult[0];\r\n } else {\r\n fc[k] += (animatorProps.fc.v[k] - fc[k]) * mult;\r\n }\r\n }\r\n }\r\n\r\n if (animatorProps.fh.propType) {\r\n if (mult.length) {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult[0]);\r\n } else {\r\n fc = addHueToRGB(fc, animatorProps.fh.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fs.propType) {\r\n if (mult.length) {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult[0]);\r\n } else {\r\n fc = addSaturationToRGB(fc, animatorProps.fs.v * mult);\r\n }\r\n }\r\n\r\n if (animatorProps.fb.propType) {\r\n if (mult.length) {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult[0]);\r\n } else {\r\n fc = addBrightnessToRGB(fc, animatorProps.fb.v * mult);\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\r\n\r\n if (animatorProps.p.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n\r\n if (this._hasMaskedPath) {\r\n if (mult.length) {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult[0], -animatorProps.p.v[2] * mult[1]);\r\n } else {\r\n matrixHelper.translate(0, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n } else if (mult.length) {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult[0], animatorProps.p.v[1] * mult[1], -animatorProps.p.v[2] * mult[2]);\r\n } else {\r\n matrixHelper.translate(animatorProps.p.v[0] * mult, animatorProps.p.v[1] * mult, -animatorProps.p.v[2] * mult);\r\n }\r\n }\r\n }\r\n\r\n if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\r\n }\r\n\r\n if (documentData.strokeColorAnim) {\r\n letterSc = 'rgb(' + Math.round(sc[0] * 255) + ',' + Math.round(sc[1] * 255) + ',' + Math.round(sc[2] * 255) + ')';\r\n }\r\n\r\n if (documentData.fillColorAnim && documentData.fc) {\r\n letterFc = 'rgb(' + Math.round(fc[0] * 255) + ',' + Math.round(fc[1] * 255) + ',' + Math.round(fc[2] * 255) + ')';\r\n }\r\n\r\n if (this._hasMaskedPath) {\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(0, alignment[1] * yOff * 0.01 + yPos, 0);\r\n\r\n if (this._pathData.p.v) {\r\n tanAngle = (currentPoint.point[1] - prevPoint.point[1]) / (currentPoint.point[0] - prevPoint.point[0]);\r\n var rot = Math.atan(tanAngle) * 180 / Math.PI;\r\n\r\n if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n\r\n matrixHelper.rotate(-rot * Math.PI / 180);\r\n }\r\n\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= alignment[0] * letters[i].an * 0.005;\r\n\r\n if (letters[i + 1] && ind !== letters[i + 1].ind) {\r\n currentLength += letters[i].an / 2;\r\n currentLength += documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n } else {\r\n matrixHelper.translate(xPos, yPos, 0);\r\n\r\n if (documentData.ps) {\r\n // matrixHelper.translate(documentData.ps[0],documentData.ps[1],0);\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(letters[i].animatorJustifyOffset + documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[letters[i].line]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls);\r\n matrixHelper.translate(offf, 0, 0);\r\n matrixHelper.translate(alignment[0] * letters[i].an * 0.005, alignment[1] * yOff * 0.01, 0);\r\n xPos += letters[i].l + documentData.tr * 0.001 * documentData.finalSize;\r\n }\r\n\r\n if (renderType === 'html') {\r\n letterM = matrixHelper.toCSS();\r\n } else if (renderType === 'svg') {\r\n letterM = matrixHelper.to2dCSS();\r\n } else {\r\n letterP = [matrixHelper.props[0], matrixHelper.props[1], matrixHelper.props[2], matrixHelper.props[3], matrixHelper.props[4], matrixHelper.props[5], matrixHelper.props[6], matrixHelper.props[7], matrixHelper.props[8], matrixHelper.props[9], matrixHelper.props[10], matrixHelper.props[11], matrixHelper.props[12], matrixHelper.props[13], matrixHelper.props[14], matrixHelper.props[15]];\r\n }\r\n\r\n letterO = elemOpacity;\r\n }\r\n\r\n if (renderedLettersCount <= i) {\r\n letterValue = new LetterProps(letterO, letterSw, letterSc, letterFc, letterM, letterP);\r\n this.renderedLetters.push(letterValue);\r\n renderedLettersCount += 1;\r\n this.lettersChangedFlag = true;\r\n } else {\r\n letterValue = this.renderedLetters[i];\r\n this.lettersChangedFlag = letterValue.update(letterO, letterSw, letterSc, letterFc, letterM, letterP) || this.lettersChangedFlag;\r\n }\r\n }\r\n };\r\n\r\n TextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n };\r\n\r\n TextAnimatorProperty.prototype.mHelper = new Matrix();\r\n TextAnimatorProperty.prototype.defaultPropsArray = [];\r\n extendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n function ITextElement() {}\r\n\r\n ITextElement.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\n ITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\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\n ITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n }\r\n\r\n return shapeStr;\r\n };\r\n\r\n ITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n };\r\n\r\n ITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n };\r\n\r\n ITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n };\r\n\r\n ITextElement.prototype.applyTextPropertiesToMatrix = function (documentData, matrixHelper, lineNumber, xPos, yPos) {\r\n if (documentData.ps) {\r\n matrixHelper.translate(documentData.ps[0], documentData.ps[1] + documentData.ascent, 0);\r\n }\r\n\r\n matrixHelper.translate(0, -documentData.ls, 0);\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]), 0, 0);\r\n break;\r\n\r\n case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n matrixHelper.translate(xPos, yPos, 0);\r\n };\r\n\r\n ITextElement.prototype.buildColor = function (colorData) {\r\n return 'rgb(' + Math.round(colorData[0] * 255) + ',' + Math.round(colorData[1] * 255) + ',' + Math.round(colorData[2] * 255) + ')';\r\n };\r\n\r\n ITextElement.prototype.emptyProp = new LetterProps();\r\n\r\n ITextElement.prototype.destroy = function () {};\r\n\r\n var emptyShapeData = {\r\n shapes: []\r\n };\r\n\r\n function SVGTextLottieElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\n SVGTextLottieElement.prototype.createContent = function () {\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildTextContents = function (textArray) {\r\n var i = 0;\r\n var len = textArray.length;\r\n var textContents = [];\r\n var currentTextContent = '';\r\n\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\r\n i += 1;\r\n }\r\n\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildShapeData = function (data, scale) {\r\n // data should probably be cloned to apply scale separately to each instance of a text on different layers\r\n // but since text internal content gets only rendered once and then it's never rerendered,\r\n // it's probably safe not to clone data and reuse always the same instance even if the object is mutated.\r\n // Avoiding cloning is preferred since cloning each character shape data is expensive\r\n if (data.shapes && data.shapes.length) {\r\n var shape = data.shapes[0];\r\n\r\n if (shape.it) {\r\n var shapeItem = shape.it[shape.it.length - 1];\r\n\r\n if (shapeItem.s) {\r\n shapeItem.s.k[0] = scale;\r\n shapeItem.s.k[1] = scale;\r\n }\r\n }\r\n }\r\n\r\n return data;\r\n };\r\n\r\n SVGTextLottieElement.prototype.buildNewText = function () {\r\n this.addDynamicProperty(this);\r\n var i;\r\n var len;\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n\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\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\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\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;\r\n var fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n this.layerElement.setAttribute('aria-label', documentData.t);\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapeStr = '';\r\n var singleShape = this.data.singleShape;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n\r\n if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n\r\n default:\r\n justify = 'start';\r\n break;\r\n }\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\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i].span || 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\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n this.textSpans[i].span = 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 charData;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.textSpans[i]) {\r\n this.textSpans[i] = {\r\n span: null,\r\n childSpan: null,\r\n glyph: null\r\n };\r\n }\r\n\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i].span : createNS(usesGlyphs ? 'g' : 'text');\r\n\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].span = tSpan;\r\n\r\n if (usesGlyphs) {\r\n var childSpan = createNS('g');\r\n tSpan.appendChild(childSpan);\r\n this.textSpans[i].childSpan = childSpan;\r\n }\r\n\r\n this.textSpans[i].span = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n\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\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0; // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n\r\n xPos += trackingOffset;\r\n }\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 var glyphElement; // t === 1 means the character has been replaced with an animated shaped\r\n\r\n if (charData.t === 1) {\r\n glyphElement = new SVGCompElement(charData.data, this.globalData, this);\r\n } else {\r\n var data = emptyShapeData;\r\n\r\n if (charData.data && charData.data.shapes) {\r\n data = this.buildShapeData(charData.data, documentData.finalSize);\r\n }\r\n\r\n glyphElement = new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n if (this.textSpans[i].glyph) {\r\n var glyph = this.textSpans[i].glyph;\r\n this.textSpans[i].childSpan.removeChild(glyph.layerElement);\r\n glyph.destroy();\r\n }\r\n\r\n this.textSpans[i].glyph = glyphElement;\r\n glyphElement._debug = true;\r\n glyphElement.prepareFrame(0);\r\n glyphElement.renderFrame();\r\n this.textSpans[i].childSpan.appendChild(glyphElement.layerElement); // when using animated shapes, the layer will be scaled instead of replacing the internal scale\r\n // this might have issues with strokes and might need a different solution\r\n\r\n if (charData.t === 1) {\r\n this.textSpans[i].childSpan.setAttribute('transform', 'scale(' + documentData.finalSize / 100 + ',' + documentData.finalSize / 100 + ')');\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\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\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].span.style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n };\r\n\r\n SVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n\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\r\n return this.bbox;\r\n };\r\n\r\n SVGTextLottieElement.prototype.getValue = function () {\r\n var i;\r\n var len = this.textSpans.length;\r\n var glyphElement;\r\n this.renderedFrame = this.comp.renderedFrame;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n\r\n if (glyphElement._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape || this._mdf) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var glyphElement;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n textSpan = this.textSpans[i].span;\r\n glyphElement = this.textSpans[i].glyph;\r\n\r\n if (glyphElement) {\r\n glyphElement.renderFrame();\r\n }\r\n\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter._mdf.fc) {\r\n textSpan.setAttribute('fill', renderedLetter.fc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n };\r\n\r\n function ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([IImageElement], ISolidElement);\r\n\r\n ISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect'); /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n\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\n\r\n function NullElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initFrame();\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n }\r\n\r\n NullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n NullElement.prototype.renderFrame = function () {};\r\n\r\n NullElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n NullElement.prototype.destroy = function () {};\r\n\r\n NullElement.prototype.sourceRectAtTime = function () {};\r\n\r\n NullElement.prototype.hide = function () {};\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n function SVGRendererBase() {}\r\n\r\n extendPrototype([BaseRenderer], SVGRendererBase);\r\n\r\n SVGRendererBase.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n };\r\n\r\n SVGRendererBase.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n this.svgElement.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\r\n\r\n if (this.renderConfig.viewBoxSize) {\r\n this.svgElement.setAttribute('viewBox', this.renderConfig.viewBoxSize);\r\n } else {\r\n this.svgElement.setAttribute('viewBox', '0 0 ' + animData.w + ' ' + animData.h);\r\n }\r\n\r\n if (!this.renderConfig.viewBoxOnly) {\r\n this.svgElement.setAttribute('width', animData.w);\r\n this.svgElement.setAttribute('height', animData.h);\r\n this.svgElement.style.width = '100%';\r\n this.svgElement.style.height = '100%';\r\n this.svgElement.style.transform = 'translate3d(0,0,0)';\r\n this.svgElement.style.contentVisibility = this.renderConfig.contentVisibility;\r\n }\r\n\r\n if (this.renderConfig.width) {\r\n this.svgElement.setAttribute('width', this.renderConfig.width);\r\n }\r\n\r\n if (this.renderConfig.height) {\r\n this.svgElement.setAttribute('height', this.renderConfig.height);\r\n }\r\n\r\n if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio); // this.layerElement.style.transform = 'translate3d(0,0,0)';\r\n // this.layerElement.style.transformOrigin = this.layerElement.style.mozTransformOrigin = this.layerElement.style.webkitTransformOrigin = this.layerElement.style['-webkit-transform'] = \"0px 0px 0px\";\r\n\r\n this.animationItem.wrapper.appendChild(this.svgElement); // Mask animation\r\n\r\n var defs = this.globalData.defs;\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n var maskElement = createNS('clipPath');\r\n var rect = createNS('rect');\r\n rect.setAttribute('width', animData.w);\r\n rect.setAttribute('height', animData.h);\r\n rect.setAttribute('x', 0);\r\n rect.setAttribute('y', 0);\r\n var maskId = createElementID();\r\n maskElement.setAttribute('id', maskId);\r\n maskElement.appendChild(rect);\r\n this.layerElement.setAttribute('clip-path', 'url(' + getLocationHref() + '#' + maskId + ')');\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n };\r\n\r\n SVGRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.layerElement = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\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 this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n SVGRendererBase.prototype.updateContainerSize = function () {};\r\n\r\n SVGRendererBase.prototype.findIndexByInd = function (ind) {\r\n var i = 0;\r\n var len = this.layers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ind === ind) {\r\n return i;\r\n }\r\n }\r\n\r\n return -1;\r\n };\r\n\r\n SVGRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n elements[pos] = element;\r\n\r\n if (getExpressionsPlugin()) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n\r\n element.initExpressions();\r\n }\r\n\r\n this.appendElementInPos(element, pos);\r\n\r\n if (this.layers[pos].tt) {\r\n var elementIndex = 'tp' in this.layers[pos] ? this.findIndexByInd(this.layers[pos].tp) : pos - 1;\r\n\r\n if (elementIndex === -1) {\r\n return;\r\n }\r\n\r\n if (!this.elements[elementIndex] || this.elements[elementIndex] === true) {\r\n this.buildItem(elementIndex);\r\n this.addPendingElement(element);\r\n } else {\r\n var matteElement = elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[pos].tt);\r\n element.setMatte(matteMask);\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n var elementIndex = 'tp' in element.data ? this.findIndexByInd(element.data.tp) : i - 1;\r\n var matteElement = this.elements[elementIndex];\r\n var matteMask = matteElement.getMatte(this.layers[i].tt);\r\n element.setMatte(matteMask);\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n }\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n } // console.log('-------');\r\n // console.log('FRAME ',num);\r\n\r\n\r\n this.globalData.frameNum = num;\r\n this.globalData.frameId += 1;\r\n this.globalData.projectInterface.currentFrame = num;\r\n this.globalData._mdf = false;\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\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].prepareFrame(num - this.layers[i].st);\r\n }\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\n SVGRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n\r\n if (!newElement) {\r\n return;\r\n }\r\n\r\n var i = 0;\r\n var nextElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement()) {\r\n nextElement = this.elements[i].getBaseElement();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(newElement, nextElement);\r\n } else {\r\n this.layerElement.appendChild(newElement);\r\n }\r\n };\r\n\r\n SVGRendererBase.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n };\r\n\r\n SVGRendererBase.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n };\r\n\r\n function ICompElement() {}\r\n\r\n extendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\n ICompElement.prototype.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.initRenderable();\r\n this.initHierarchy();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n\r\n if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n\r\n this.hide();\r\n };\r\n /* ICompElement.prototype.hide = function(){\r\n if(!this.hidden){\r\n this.hideElement();\r\n var i,len = this.elements.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].hide();\r\n }\r\n }\r\n }\r\n }; */\r\n\r\n\r\n ICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n\r\n if (!this.isInRange && !this.data.xt) {\r\n return;\r\n }\r\n\r\n if (!this.tm._placeholder) {\r\n var timeRemapped = this.tm.v;\r\n\r\n if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n\r\n var i;\r\n var len = this.elements.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n } // This iteration needs to be backwards because of how expressions connect between each other\r\n\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].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n\r\n if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n };\r\n\r\n ICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\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 ICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n };\r\n\r\n ICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n };\r\n\r\n ICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\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\n ICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n };\r\n\r\n function 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.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([SVGRendererBase, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n SVGCompElement.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function SVGRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.svgElement = createNS('svg');\r\n var ariaLabel = '';\r\n\r\n if (config && config.title) {\r\n var titleElement = createNS('title');\r\n var titleId = createElementID();\r\n titleElement.setAttribute('id', titleId);\r\n titleElement.textContent = config.title;\r\n this.svgElement.appendChild(titleElement);\r\n ariaLabel += titleId;\r\n }\r\n\r\n if (config && config.description) {\r\n var descElement = createNS('desc');\r\n var descId = createElementID();\r\n descElement.setAttribute('id', descId);\r\n descElement.textContent = config.description;\r\n this.svgElement.appendChild(descElement);\r\n ariaLabel += ' ' + descId;\r\n }\r\n\r\n if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\r\n }\r\n\r\n var defs = createNS('defs');\r\n this.svgElement.appendChild(defs);\r\n var maskElement = createNS('g');\r\n this.svgElement.appendChild(maskElement);\r\n this.layerElement = maskElement;\r\n this.renderConfig = {\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\r\n viewBoxOnly: config && config.viewBoxOnly || false,\r\n viewBoxSize: config && config.viewBoxSize || false,\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n focusable: config && config.focusable,\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '100%',\r\n height: config && config.filterSize && config.filterSize.height || '100%',\r\n x: config && config.filterSize && config.filterSize.x || '0%',\r\n y: config && config.filterSize && config.filterSize.y || '0%'\r\n },\r\n width: config && config.width,\r\n height: config && config.height,\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n defs: defs,\r\n renderConfig: this.renderConfig\r\n };\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.destroyed = false;\r\n this.rendererType = 'svg';\r\n }\r\n\r\n extendPrototype([SVGRendererBase], SVGRenderer);\r\n\r\n SVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CVContextData() {\r\n this.saved = [];\r\n this.cArrPos = 0;\r\n this.cTr = new Matrix();\r\n this.cO = 1;\r\n var i;\r\n var len = 15;\r\n this.savedOp = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = len;\r\n }\r\n\r\n CVContextData.prototype.duplicate = function () {\r\n var newLength = this._length * 2;\r\n var currentSavedOp = this.savedOp;\r\n this.savedOp = createTypedArray('float32', newLength);\r\n this.savedOp.set(currentSavedOp);\r\n var i = 0;\r\n\r\n for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n\r\n this._length = newLength;\r\n };\r\n\r\n CVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n };\r\n\r\n CVContextData.prototype.popTransform = function () {\r\n var popped = this.saved[this.cArrPos];\r\n var i;\r\n var arr = this.cTr.props;\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\r\n }\r\n\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.popOpacity = function () {\r\n var popped = this.savedOp[this.cArrPos];\r\n this.cO = popped;\r\n return popped;\r\n };\r\n\r\n CVContextData.prototype.pop = function () {\r\n this.cArrPos -= 1;\r\n var transform = this.popTransform();\r\n var opacity = this.popOpacity();\r\n return {\r\n transform: transform,\r\n opacity: opacity\r\n };\r\n };\r\n\r\n CVContextData.prototype.push = function () {\r\n var props = this.cTr.props;\r\n\r\n if (this._length <= this.cArrPos) {\r\n this.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.saved[this.cArrPos];\r\n\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n\r\n this.savedOp[this.cArrPos] = this.cO;\r\n this.cArrPos += 1;\r\n };\r\n\r\n CVContextData.prototype.getTransform = function () {\r\n return this.cTr;\r\n };\r\n\r\n CVContextData.prototype.getOpacity = function () {\r\n return this.cO;\r\n };\r\n\r\n CVContextData.prototype.setOpacity = function (value) {\r\n this.cO = value;\r\n };\r\n\r\n function ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n }\r\n\r\n ShapeTransformManager.prototype = {\r\n addTransformSequence: function addTransformSequence(transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n\r\n var sequence = this.sequences[key];\r\n\r\n if (!sequence) {\r\n sequence = {\r\n transforms: [].concat(transforms),\r\n finalTransform: new Matrix(),\r\n _mdf: false\r\n };\r\n this.sequences[key] = sequence;\r\n this.sequenceList.push(sequence);\r\n }\r\n\r\n return sequence;\r\n },\r\n processSequence: function processSequence(sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\r\n\r\n while (i < len && !isFirstFrame) {\r\n if (sequence.transforms[i].transform.mProps._mdf) {\r\n _mdf = true;\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n props = sequence.transforms[i].transform.mProps.v.props;\r\n 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 }\r\n }\r\n\r\n sequence._mdf = _mdf;\r\n },\r\n processSequences: function processSequences(isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.processSequence(this.sequenceList[i], isFirstFrame);\r\n }\r\n },\r\n getNewKey: function getNewKey() {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n }\r\n };\r\n\r\n var lumaLoader = function lumaLoader() {\r\n var id = '__lottie_element_luma_buffer';\r\n var lumaBuffer = null;\r\n var lumaBufferCtx = null;\r\n var svg = null; // This alternate solution has a slight delay before the filter is applied, resulting in a flicker on the first frame.\r\n // Keeping this here for reference, and in the future, if offscreen canvas supports url filters, this can be used.\r\n // For now, neither of them work for offscreen canvas, so canvas workers can't support the luma track matte mask.\r\n // Naming it solution 2 to mark the extra comment lines.\r\n\r\n /*\r\n var svgString = [\r\n '',\r\n '',\r\n '',\r\n '',\r\n '',\r\n ].join('');\r\n var blob = new Blob([svgString], { type: 'image/svg+xml' });\r\n var url = URL.createObjectURL(blob);\r\n */\r\n\r\n function createLumaSvgFilter() {\r\n var _svg = createNS('svg');\r\n\r\n var fil = createNS('filter');\r\n var matrix = createNS('feColorMatrix');\r\n fil.setAttribute('id', id);\r\n matrix.setAttribute('type', 'matrix');\r\n matrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n matrix.setAttribute('values', '0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0, 0.3, 0.3, 0.3, 0, 0');\r\n fil.appendChild(matrix);\r\n\r\n _svg.appendChild(fil);\r\n\r\n _svg.setAttribute('id', id + '_svg');\r\n\r\n if (featureSupport.svgLumaHidden) {\r\n _svg.style.display = 'none';\r\n }\r\n\r\n return _svg;\r\n }\r\n\r\n function loadLuma() {\r\n if (!lumaBuffer) {\r\n svg = createLumaSvgFilter();\r\n document.body.appendChild(svg);\r\n lumaBuffer = createTag('canvas');\r\n lumaBufferCtx = lumaBuffer.getContext('2d'); // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n lumaBufferCtx.fillStyle = 'rgba(0,0,0,0)';\r\n lumaBufferCtx.fillRect(0, 0, 1, 1);\r\n }\r\n }\r\n\r\n function getLuma(canvas) {\r\n if (!lumaBuffer) {\r\n loadLuma();\r\n }\r\n\r\n lumaBuffer.width = canvas.width;\r\n lumaBuffer.height = canvas.height; // lumaBufferCtx.filter = `url('${url}#__lottie_element_luma_buffer')`; // part of solution 2\r\n\r\n lumaBufferCtx.filter = 'url(#' + id + ')';\r\n return lumaBuffer;\r\n }\r\n\r\n return {\r\n load: loadLuma,\r\n get: getLuma\r\n };\r\n };\r\n\r\n function createCanvas(width, height) {\r\n if (featureSupport.offscreenCanvas) {\r\n return new OffscreenCanvas(width, height);\r\n }\r\n\r\n var canvas = createTag('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n return canvas;\r\n }\r\n\r\n var assetLoader = function () {\r\n return {\r\n loadLumaCanvas: lumaLoader.load,\r\n getLumaCanvas: lumaLoader.get,\r\n createCanvas: createCanvas\r\n };\r\n }();\r\n\r\n function CVEffects() {}\r\n\r\n CVEffects.prototype.renderFrame = function () {};\r\n\r\n function 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;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.masksProperties[i].mode !== 'n') {\r\n hasMasks = true;\r\n }\r\n\r\n this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n\r\n this.hasMasks = hasMasks;\r\n\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n }\r\n\r\n CVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\r\n var len = this.masksProperties.length;\r\n var pt;\r\n var pts;\r\n var data;\r\n ctx.beginPath();\r\n\r\n for (i = 0; i < len; i += 1) {\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\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;\r\n var jLen = data._length;\r\n\r\n for (j = 1; j < jLen; j += 1) {\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\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\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n };\r\n\r\n CVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\n CVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n };\r\n\r\n function CVBaseElement() {}\r\n\r\n var operationsMap = {\r\n 1: 'source-in',\r\n 2: 'source-out',\r\n 3: 'source-in',\r\n 4: 'source-out'\r\n };\r\n CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n // If the layer is masked we will use two buffers to store each different states of the drawing\r\n // This solution is not ideal for several reason. But unfortunately, because of the recursive\r\n // nature of the render tree, it's the only simple way to make sure one inner mask doesn't override an outer mask.\r\n // TODO: try to reduce the size of these buffers to the size of the composition contaning the layer\r\n // It might be challenging because the layer most likely is transformed in some way\r\n if (this.data.tt >= 1) {\r\n this.buffers = [];\r\n var canvasContext = this.globalData.canvasContext;\r\n var bufferCanvas = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas);\r\n var bufferCanvas2 = assetLoader.createCanvas(canvasContext.canvas.width, canvasContext.canvas.height);\r\n this.buffers.push(bufferCanvas2);\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n assetLoader.loadLumaCanvas();\r\n }\r\n }\r\n\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.transformCanvas = this.globalData.transformCanvas;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function createContent() {},\r\n setBlendMode: function setBlendMode() {\r\n var globalData = this.globalData;\r\n\r\n if (globalData.blendMode !== this.data.bm) {\r\n globalData.blendMode = this.data.bm;\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n globalData.canvasContext.globalCompositeOperation = blendModeValue;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function hideElement() {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function showElement() {\r\n if (this.isInRange && !this.isTransparent) {\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n this.maskManager._isFirstFrame = true;\r\n }\r\n },\r\n clearCanvas: function clearCanvas(canvasContext) {\r\n canvasContext.clearRect(this.transformCanvas.tx, this.transformCanvas.ty, this.transformCanvas.w * this.transformCanvas.sx, this.transformCanvas.h * this.transformCanvas.sy);\r\n },\r\n prepareLayer: function prepareLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[0];\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx); // on the first buffer we store the current state of the global drawing\r\n\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // The next four lines are to clear the canvas\r\n // TODO: Check if there is a way to clear the canvas without resetting the transform\r\n\r\n this.currentTransform = this.canvasContext.getTransform();\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform);\r\n }\r\n },\r\n exitLayer: function exitLayer() {\r\n if (this.data.tt >= 1) {\r\n var buffer = this.buffers[1]; // On the second buffer we store the current state of the global drawing\r\n // that only contains the content of this layer\r\n // (if it is a composition, it also includes the nested layers)\r\n\r\n var bufferCtx = buffer.getContext('2d');\r\n this.clearCanvas(bufferCtx);\r\n bufferCtx.drawImage(this.canvasContext.canvas, 0, 0); // We clear the canvas again\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0);\r\n this.clearCanvas(this.canvasContext);\r\n this.canvasContext.setTransform(this.currentTransform); // We draw the mask\r\n\r\n var mask = this.comp.getElementById('tp' in this.data ? this.data.tp : this.data.ind - 1);\r\n mask.renderFrame(true); // We draw the second buffer (that contains the content of this layer)\r\n\r\n this.canvasContext.setTransform(1, 0, 0, 1, 0, 0); // If the mask is a Luma matte, we need to do two extra painting operations\r\n // the _isProxy check is to avoid drawing a fake canvas in workers that will throw an error\r\n\r\n if (this.data.tt >= 3 && !document._isProxy) {\r\n // We copy the painted mask to a buffer that has a color matrix filter applied to it\r\n // that applies the rgb values to the alpha channel\r\n var lumaBuffer = assetLoader.getLumaCanvas(this.canvasContext.canvas);\r\n var lumaBufferCtx = lumaBuffer.getContext('2d');\r\n lumaBufferCtx.drawImage(this.canvasContext.canvas, 0, 0);\r\n this.clearCanvas(this.canvasContext); // we repaint the context with the mask applied to it\r\n\r\n this.canvasContext.drawImage(lumaBuffer, 0, 0);\r\n }\r\n\r\n this.canvasContext.globalCompositeOperation = operationsMap[this.data.tt];\r\n this.canvasContext.drawImage(buffer, 0, 0); // We finally draw the first buffer (that contains the content of the global drawing)\r\n // We use destination-over to draw the global drawing below the current layer\r\n\r\n this.canvasContext.globalCompositeOperation = 'destination-over';\r\n this.canvasContext.drawImage(this.buffers[0], 0, 0);\r\n this.canvasContext.setTransform(this.currentTransform); // We reset the globalCompositeOperation to source-over, the standard type of operation\r\n\r\n this.canvasContext.globalCompositeOperation = 'source-over';\r\n }\r\n },\r\n renderFrame: function renderFrame(forceRender) {\r\n if (this.hidden || this.data.hd) {\r\n return;\r\n }\r\n\r\n if (this.data.td === 1 && !forceRender) {\r\n return;\r\n }\r\n\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.setBlendMode();\r\n var forceRealStack = this.data.ty === 0;\r\n this.prepareLayer();\r\n this.globalData.renderer.save(forceRealStack);\r\n this.globalData.renderer.ctxTransform(this.finalTransform.mat.props);\r\n this.globalData.renderer.ctxOpacity(this.finalTransform.mProp.o.v);\r\n this.renderInnerContent();\r\n this.globalData.renderer.restore(forceRealStack);\r\n this.exitLayer();\r\n\r\n if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.canvasContext = null;\r\n this.data = null;\r\n this.globalData = null;\r\n this.maskManager.destroy();\r\n },\r\n mHelper: new Matrix()\r\n };\r\n CVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\n CVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n function 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\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\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n\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\n CVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n function 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\n extendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n CVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n CVShapeElement.prototype.transformHelper = {\r\n opacity: 1,\r\n _opMdf: false\r\n };\r\n CVShapeElement.prototype.dashResetter = [];\r\n\r\n CVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n };\r\n\r\n CVShapeElement.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\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + bmFloor(elementData.c.v[0]) + ',' + bmFloor(elementData.c.v[1]) + ',' + bmFloor(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 || {\r\n k: 0\r\n }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || {\r\n k: 0\r\n }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n\r\n if (data.lj == 1) {\r\n // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\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\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\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: []\r\n };\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.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\n CVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n };\r\n\r\n CVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n };\r\n\r\n CVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n\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\n CVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n\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\n CVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\r\n var len = arr.length - 1;\r\n var j;\r\n var jLen;\r\n var ownStyles = [];\r\n var ownModifiers = [];\r\n var processedPos;\r\n var modifier;\r\n var currentTransform;\r\n var ownTransforms = [].concat(transforms);\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\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\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\r\n }\r\n }\r\n\r\n this.searchShapes(arr[i].it, itemsData[i].it, itemsData[i].prevViewData, shouldRender, ownTransforms);\r\n } else if (arr[i].ty === 'tr') {\r\n if (!processedPos) {\r\n currentTransform = this.createTransformElement(arr[i]);\r\n itemsData[i] = currentTransform;\r\n }\r\n\r\n ownTransforms.push(itemsData[i]);\r\n this.addTransformToStyleList(itemsData[i]);\r\n } else if (arr[i].ty === 'sh' || arr[i].ty === 'rc' || arr[i].ty === 'el' || arr[i].ty === 'sr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createShapeElement(arr[i]);\r\n }\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'pb' || arr[i].ty === 'zz' || arr[i].ty === 'op') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n modifier.init(this, arr[i]);\r\n itemsData[i] = modifier;\r\n this.shapeModifiers.push(modifier);\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = false;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n } else if (arr[i].ty === 'rp') {\r\n if (!processedPos) {\r\n modifier = ShapeModifiers.getModifier(arr[i].ty);\r\n itemsData[i] = modifier;\r\n modifier.init(this, arr, i, itemsData);\r\n this.shapeModifiers.push(modifier);\r\n shouldRender = false;\r\n } else {\r\n modifier = itemsData[i];\r\n modifier.closed = true;\r\n }\r\n\r\n ownModifiers.push(modifier);\r\n }\r\n\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderInnerContent = function () {\r\n this.transformHelper.opacity = 1;\r\n this.transformHelper._opMdf = false;\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n this.renderShape(this.transformHelper, this.shapesData, this.itemsData, true);\r\n };\r\n\r\n CVShapeElement.prototype.renderShapeTransform = function (parentTransform, groupTransform) {\r\n if (parentTransform._opMdf || groupTransform.op._mdf || this._isFirstFrame) {\r\n groupTransform.opacity = parentTransform.opacity;\r\n groupTransform.opacity *= groupTransform.op.v;\r\n groupTransform._opMdf = true;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.drawLayer = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var elems;\r\n var nodes;\r\n var renderer = this.globalData.renderer;\r\n var ctx = this.globalData.canvasContext;\r\n var type;\r\n var currentStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type; // Skipping style when\r\n // Stroke width equals 0\r\n // style should not be rendered (extra unused repeaters)\r\n // current opacity equals 0\r\n // global opacity equals 0\r\n\r\n if (!((type === 'st' || type === 'gs') && currentStyle.wi === 0 || !currentStyle.data._shouldRender || currentStyle.coOp === 0 || this.globalData.currentGlobalAlpha === 0)) {\r\n renderer.save();\r\n elems = currentStyle.elements;\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.strokeStyle = type === 'st' ? currentStyle.co : currentStyle.grd;\r\n ctx.lineWidth = currentStyle.wi;\r\n ctx.lineCap = currentStyle.lc;\r\n ctx.lineJoin = currentStyle.lj;\r\n ctx.miterLimit = currentStyle.ml || 0;\r\n } else {\r\n ctx.fillStyle = type === 'fl' ? currentStyle.co : currentStyle.grd;\r\n }\r\n\r\n renderer.ctxOpacity(currentStyle.coOp);\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle[\"do\"];\r\n }\r\n }\r\n\r\n nodes = elems[j].trNodes;\r\n kLen = nodes.length;\r\n\r\n for (k = 0; k < kLen; k += 1) {\r\n if (nodes[k].t === 'm') {\r\n ctx.moveTo(nodes[k].p[0], nodes[k].p[1]);\r\n } else if (nodes[k].t === 'c') {\r\n ctx.bezierCurveTo(nodes[k].pts[0], nodes[k].pts[1], nodes[k].pts[2], nodes[k].pts[3], nodes[k].pts[4], nodes[k].pts[5]);\r\n } else {\r\n ctx.closePath();\r\n }\r\n }\r\n\r\n if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n\r\n renderer.restore();\r\n }\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderShape = function (parentTransform, items, data, isMain) {\r\n var i;\r\n var len = items.length - 1;\r\n var groupTransform;\r\n groupTransform = parentTransform;\r\n\r\n for (i = len; i >= 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 CVShapeElement.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;\r\n var len;\r\n var j;\r\n var jLen = paths._length;\r\n shapeNodes.length = 0;\r\n var groupTransformMat = styledShape.transforms.finalTransform;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n\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\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\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\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\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n };\r\n\r\n CVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n\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\n CVShapeElement.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(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\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\n CVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\r\n\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 pt1 = itemData.s.v;\r\n var pt2 = itemData.e.v;\r\n\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 var percent = itemData.h.v;\r\n\r\n if (percent >= 1) {\r\n percent = 0.99;\r\n } else if (percent <= -1) {\r\n percent = -0.99;\r\n }\r\n\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 grd = ctx.createRadialGradient(x, y, 0, pt1[0], pt1[1], rad);\r\n }\r\n\r\n var i;\r\n var 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\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\r\n styleElem.grd = grd;\r\n }\r\n\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n };\r\n\r\n CVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n\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\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\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 if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n };\r\n\r\n CVShapeElement.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 function 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\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n CVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\n CVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var hasFill = false;\r\n\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\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n\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\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\r\n var 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; // this.tHelper.font = this.values.fValue;\r\n\r\n var charData;\r\n var shapeData;\r\n var k;\r\n var kLen;\r\n var shapes;\r\n var j;\r\n var jLen;\r\n var pathNodes;\r\n var commands;\r\n var pathArr;\r\n var singleShape = this.data.singleShape;\r\n var trackingOffset = documentData.tr * 0.001 * documentData.finalSize;\r\n var xPos = 0;\r\n var yPos = 0;\r\n var firstLine = true;\r\n var cnt = 0;\r\n\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\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\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n\r\n commands = createSizedArray(jLen - 1);\r\n var commandsCounter = 0;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n if (shapes[j].ty === 'sh') {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\r\n\r\n for (k = 1; k < kLen; k += 1) {\r\n if (k === 1) {\r\n pathArr.push(matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToY(pathNodes.i[k][0], pathNodes.i[k][1], 0), matrixHelper.applyToX(pathNodes.v[k][0], pathNodes.v[k][1], 0), matrixHelper.applyToY(pathNodes.v[k][0], pathNodes.v[k][1], 0));\r\n }\r\n\r\n pathArr.push(matrixHelper.applyToX(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToY(pathNodes.o[k - 1][0], pathNodes.o[k - 1][1], 0), matrixHelper.applyToX(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToY(pathNodes.i[0][0], pathNodes.i[0][1], 0), matrixHelper.applyToX(pathNodes.v[0][0], pathNodes.v[0][1], 0), matrixHelper.applyToY(pathNodes.v[0][0], pathNodes.v[0][1], 0));\r\n commands[commandsCounter] = pathArr;\r\n commandsCounter += 1;\r\n }\r\n }\r\n\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = {\r\n elem: commands\r\n };\r\n }\r\n\r\n cnt += 1;\r\n }\r\n };\r\n\r\n CVTextElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.font = this.values.fValue;\r\n ctx.lineCap = 'butt';\r\n ctx.lineJoin = 'miter';\r\n ctx.miterLimit = 4;\r\n\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n }\r\n\r\n var i;\r\n var len;\r\n var j;\r\n var jLen;\r\n var k;\r\n var kLen;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var lastFill = null;\r\n var lastStroke = null;\r\n var lastStrokeW = null;\r\n var commands;\r\n var pathArr;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.save();\r\n this.globalData.renderer.ctxTransform(renderedLetter.p);\r\n this.globalData.renderer.ctxOpacity(renderedLetter.o);\r\n }\r\n\r\n if (this.fill) {\r\n if (renderedLetter && renderedLetter.fc) {\r\n if (lastFill !== renderedLetter.fc) {\r\n lastFill = renderedLetter.fc;\r\n ctx.fillStyle = renderedLetter.fc;\r\n }\r\n } else if (lastFill !== this.values.fill) {\r\n lastFill = this.values.fill;\r\n ctx.fillStyle = this.values.fill;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill(); /// ctx.fillText(this.textSpans[i].val,0,0);\r\n }\r\n\r\n if (this.stroke) {\r\n if (renderedLetter && renderedLetter.sw) {\r\n if (lastStrokeW !== renderedLetter.sw) {\r\n lastStrokeW = renderedLetter.sw;\r\n ctx.lineWidth = renderedLetter.sw;\r\n }\r\n } else if (lastStrokeW !== this.values.sWidth) {\r\n lastStrokeW = this.values.sWidth;\r\n ctx.lineWidth = this.values.sWidth;\r\n }\r\n\r\n if (renderedLetter && renderedLetter.sc) {\r\n if (lastStroke !== renderedLetter.sc) {\r\n lastStroke = renderedLetter.sc;\r\n ctx.strokeStyle = renderedLetter.sc;\r\n }\r\n } else if (lastStroke !== this.values.stroke) {\r\n lastStroke = this.values.stroke;\r\n ctx.strokeStyle = this.values.stroke;\r\n }\r\n\r\n commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathArr = commands[j];\r\n kLen = pathArr.length;\r\n this.globalData.canvasContext.moveTo(pathArr[0], pathArr[1]);\r\n\r\n for (k = 2; k < kLen; k += 6) {\r\n this.globalData.canvasContext.bezierCurveTo(pathArr[k], pathArr[k + 1], pathArr[k + 2], pathArr[k + 3], pathArr[k + 4], pathArr[k + 5]);\r\n }\r\n }\r\n\r\n this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke(); /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n };\r\n\r\n function CVImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.img = globalData.imageLoader.getAsset(this.assetData);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n CVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVImageElement.prototype.createContent = function () {\r\n if (this.img.width && (this.assetData.w !== this.img.width || this.assetData.h !== this.img.height)) {\r\n var canvas = createTag('canvas');\r\n canvas.width = this.assetData.w;\r\n canvas.height = this.assetData.h;\r\n var ctx = canvas.getContext('2d');\r\n var imgW = this.img.width;\r\n var imgH = this.img.height;\r\n var imgRel = imgW / imgH;\r\n var canvasRel = this.assetData.w / this.assetData.h;\r\n var widthCrop;\r\n var heightCrop;\r\n var par = this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio;\r\n\r\n if (imgRel > 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\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 CVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n };\r\n\r\n CVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n };\r\n\r\n function CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n CVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\n CVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\n CVSolidElement.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\n function CanvasRendererBase(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || ''\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([BaseRenderer], CanvasRendererBase);\r\n\r\n CanvasRendererBase.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n };\r\n\r\n CanvasRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n CanvasRendererBase.prototype.ctxTransform = function (props) {\r\n if (props[0] === 1 && props[1] === 0 && props[4] === 0 && props[5] === 1 && props[12] === 0 && props[13] === 0) {\r\n return;\r\n }\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.transform(props[0], props[1], props[4], props[5], props[12], props[13]);\r\n return;\r\n } // Resetting the canvas transform matrix to the new transform\r\n\r\n\r\n this.transformMat.cloneFromProps(props); // Taking the last transform value from the stored stack of transforms\r\n\r\n var currentTransform = this.contextData.getTransform();\r\n var cProps = currentTransform.props; // Applying the last transform value after the new transform to respect the order of transformations\r\n\r\n this.transformMat.transform(cProps[0], cProps[1], cProps[2], cProps[3], cProps[4], cProps[5], cProps[6], cProps[7], cProps[8], cProps[9], cProps[10], cProps[11], cProps[12], cProps[13], cProps[14], cProps[15]); // Storing the new transformed value in the stored transform\r\n\r\n currentTransform.cloneFromProps(this.transformMat.props);\r\n var trProps = currentTransform.props; // Applying the new transform to the canvas\r\n\r\n this.canvasContext.setTransform(trProps[0], trProps[1], trProps[4], trProps[5], trProps[12], trProps[13]);\r\n };\r\n\r\n CanvasRendererBase.prototype.ctxOpacity = function (op) {\r\n /* if(op === 1){\r\n return;\r\n } */\r\n var currentOpacity = this.contextData.getOpacity();\r\n\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n return;\r\n }\r\n\r\n currentOpacity *= op < 0 ? 0 : op;\r\n this.contextData.setOpacity(currentOpacity);\r\n\r\n if (this.globalData.currentGlobalAlpha !== currentOpacity) {\r\n this.canvasContext.globalAlpha = currentOpacity;\r\n this.globalData.currentGlobalAlpha = currentOpacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n this.contextData.reset();\r\n };\r\n\r\n CanvasRendererBase.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n\r\n this.contextData.push();\r\n };\r\n\r\n CanvasRendererBase.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\r\n }\r\n\r\n var popped = this.contextData.pop();\r\n var transform = popped.transform;\r\n var opacity = popped.opacity;\r\n this.canvasContext.setTransform(transform[0], transform[1], transform[4], transform[5], transform[12], transform[13]);\r\n\r\n if (this.globalData.currentGlobalAlpha !== opacity) {\r\n this.canvasContext.globalAlpha = opacity;\r\n this.globalData.currentGlobalAlpha = opacity;\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.configAnimation = function (animData) {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.container = createTag('canvas');\r\n var containerStyle = this.animationItem.container.style;\r\n containerStyle.width = '100%';\r\n containerStyle.height = '100%';\r\n var origin = '0px 0px 0px';\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n containerStyle['-webkit-transform'] = origin;\r\n containerStyle.contentVisibility = this.renderConfig.contentVisibility;\r\n this.animationItem.wrapper.appendChild(this.animationItem.container);\r\n this.canvasContext = this.animationItem.container.getContext('2d');\r\n\r\n if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n if (this.renderConfig.id) {\r\n this.animationItem.container.setAttribute('id', this.renderConfig.id);\r\n }\r\n } else {\r\n this.canvasContext = this.renderConfig.context;\r\n }\r\n\r\n this.data = animData;\r\n this.layers = animData.layers;\r\n this.transformCanvas = {\r\n w: animData.w,\r\n h: animData.h,\r\n sx: 0,\r\n sy: 0,\r\n tx: 0,\r\n ty: 0\r\n };\r\n this.setupGlobalData(animData, document.body);\r\n this.globalData.canvasContext = this.canvasContext;\r\n this.globalData.renderer = this;\r\n this.globalData.isDashed = false;\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.globalData.transformCanvas = this.transformCanvas;\r\n this.elements = createSizedArray(animData.layers.length);\r\n this.updateContainerSize();\r\n };\r\n\r\n CanvasRendererBase.prototype.updateContainerSize = function (width, height) {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\r\n\r\n if (width) {\r\n elementWidth = width;\r\n elementHeight = height;\r\n this.canvasContext.canvas.width = elementWidth;\r\n this.canvasContext.canvas.height = elementHeight;\r\n } else {\r\n if (this.animationItem.wrapper && this.animationItem.container) {\r\n elementWidth = this.animationItem.wrapper.offsetWidth;\r\n elementHeight = this.animationItem.wrapper.offsetHeight;\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width;\r\n elementHeight = this.canvasContext.canvas.height;\r\n }\r\n\r\n this.canvasContext.canvas.width = elementWidth * this.renderConfig.dpr;\r\n this.canvasContext.canvas.height = elementHeight * this.renderConfig.dpr;\r\n }\r\n\r\n var elementRel;\r\n var animationRel;\r\n\r\n if (this.renderConfig.preserveAspectRatio.indexOf('meet') !== -1 || this.renderConfig.preserveAspectRatio.indexOf('slice') !== -1) {\r\n var par = this.renderConfig.preserveAspectRatio.split(' ');\r\n var fillType = par[1] || 'meet';\r\n var pos = par[0] || 'xMidYMid';\r\n var xPos = pos.substr(0, 4);\r\n var yPos = pos.substr(4);\r\n elementRel = elementWidth / elementHeight;\r\n animationRel = this.transformCanvas.w / this.transformCanvas.h;\r\n\r\n if (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n } else {\r\n this.transformCanvas.sx = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n }\r\n\r\n if (xPos === 'xMid' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && 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' && (animationRel < elementRel && fillType === 'meet' || animationRel > elementRel && 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\r\n if (yPos === 'YMid' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) / 2 * this.renderConfig.dpr;\r\n } else if (yPos === 'YMax' && (animationRel > elementRel && fillType === 'meet' || animationRel < elementRel && fillType === 'slice')) {\r\n this.transformCanvas.ty = (elementHeight - this.transformCanvas.h * (elementWidth / this.transformCanvas.w)) * this.renderConfig.dpr;\r\n } else {\r\n this.transformCanvas.ty = 0;\r\n }\r\n } else if (this.renderConfig.preserveAspectRatio === 'none') {\r\n this.transformCanvas.sx = elementWidth / (this.transformCanvas.w / this.renderConfig.dpr);\r\n this.transformCanvas.sy = elementHeight / (this.transformCanvas.h / this.renderConfig.dpr);\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n } else {\r\n this.transformCanvas.sx = this.renderConfig.dpr;\r\n this.transformCanvas.sy = this.renderConfig.dpr;\r\n this.transformCanvas.tx = 0;\r\n this.transformCanvas.ty = 0;\r\n }\r\n\r\n this.transformCanvas.props = [this.transformCanvas.sx, 0, 0, 0, 0, this.transformCanvas.sy, 0, 0, 0, 0, 1, 0, this.transformCanvas.tx, this.transformCanvas.ty, 0, 1];\r\n /* var i, len = this.elements.length;\r\n for(i=0;i= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\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\n CanvasRendererBase.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\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; // console.log('--------');\r\n // console.log('NEW: ',num);\r\n\r\n var i;\r\n var len = this.layers.length;\r\n\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 1) {\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\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\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 if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n };\r\n\r\n CanvasRendererBase.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\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\n CanvasRendererBase.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\n CanvasRendererBase.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n };\r\n\r\n CanvasRendererBase.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n };\r\n\r\n function 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) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([CanvasRendererBase, ICompElement, CVBaseElement], CVCompElement);\r\n\r\n CVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\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 };\r\n\r\n CVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n\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\r\n this.layers = null;\r\n this.elements = null;\r\n };\r\n\r\n CVCompElement.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function CanvasRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.renderConfig = {\r\n clearCanvas: config && config.clearCanvas !== undefined ? config.clearCanvas : true,\r\n context: config && config.context || null,\r\n progressiveLoad: config && config.progressiveLoad || false,\r\n preserveAspectRatio: config && config.preserveAspectRatio || 'xMidYMid meet',\r\n imagePreserveAspectRatio: config && config.imagePreserveAspectRatio || 'xMidYMid slice',\r\n contentVisibility: config && config.contentVisibility || 'visible',\r\n className: config && config.className || '',\r\n id: config && config.id || '',\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\r\n };\r\n this.renderConfig.dpr = config && config.dpr || 1;\r\n\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = config && config.dpr || window.devicePixelRatio || 1;\r\n }\r\n\r\n this.renderedFrame = -1;\r\n this.globalData = {\r\n frameNum: -1,\r\n _mdf: false,\r\n renderConfig: this.renderConfig,\r\n currentGlobalAlpha: -1\r\n };\r\n this.contextData = new CVContextData();\r\n this.elements = [];\r\n this.pendingElements = [];\r\n this.transformMat = new Matrix();\r\n this.completeLayers = false;\r\n this.rendererType = 'canvas';\r\n }\r\n\r\n extendPrototype([CanvasRendererBase], CanvasRenderer);\r\n\r\n CanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n };\r\n\r\n function HBaseElement() {}\r\n\r\n HBaseElement.prototype = {\r\n checkBlendMode: function checkBlendMode() {},\r\n initRendererElement: function initRendererElement() {\r\n this.baseElement = createTag(this.data.tg || 'div');\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement = createNS('svg');\r\n this.layerElement = createNS('g');\r\n this.maskedElement = this.layerElement;\r\n this.svgElement.appendChild(this.layerElement);\r\n this.baseElement.appendChild(this.svgElement);\r\n } else {\r\n this.layerElement = this.baseElement;\r\n }\r\n\r\n styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function createContainerElements() {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function renderElement() {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\r\n\r\n if (this.finalTransform._matMdf) {\r\n var matrixValue = this.finalTransform.mat.toCSS();\r\n transformedElementStyle.transform = matrixValue;\r\n transformedElementStyle.webkitTransform = matrixValue;\r\n }\r\n\r\n if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function renderFrame() {\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\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function destroy() {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n\r\n if (this.matteElement) {\r\n this.matteElement = null;\r\n }\r\n\r\n if (this.maskManager) {\r\n this.maskManager.destroy();\r\n this.maskManager = null;\r\n }\r\n },\r\n createRenderableComponents: function createRenderableComponents() {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function addEffects() {},\r\n setMatte: function setMatte() {}\r\n };\r\n HBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\n HBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\n HBaseElement.prototype.buildElementParenting = BaseRenderer.prototype.buildElementParenting;\r\n\r\n function HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\n HSolidElement.prototype.createContent = function () {\r\n var rect;\r\n\r\n if (this.data.hasMask) {\r\n rect = createNS('rect');\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.svgElement.setAttribute('width', this.data.sw);\r\n this.svgElement.setAttribute('height', this.data.sh);\r\n } else {\r\n rect = createTag('div');\r\n rect.style.width = this.data.sw + 'px';\r\n rect.style.height = this.data.sh + 'px';\r\n rect.style.backgroundColor = this.data.sc;\r\n }\r\n\r\n this.layerElement.appendChild(rect);\r\n };\r\n\r\n function HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = []; // Full shape data\r\n\r\n this.shapesData = data.shapes; // List of styles that will be applied to shapes\r\n\r\n this.stylesList = []; // List of modifiers that will be applied to shapes\r\n\r\n this.shapeModifiers = []; // List of items in shape tree\r\n\r\n this.itemsData = []; // List of items in previous shape tree\r\n\r\n this.processedElements = []; // List of animated components\r\n\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp); // Moving any property that doesn't get too much access after initialization because of v8 way of handling more than 10 properties.\r\n // List of elements that have been created\r\n\r\n this.prevViewData = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\n HShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\n HShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\r\n\r\n if (this.data.hasMask) {\r\n this.layerElement.appendChild(this.shapesContainer);\r\n cont = this.svgElement;\r\n } else {\r\n cont = createNS('svg');\r\n var size = this.comp.data ? this.comp.data : this.globalData.compSize;\r\n cont.setAttribute('width', size.w);\r\n cont.setAttribute('height', size.h);\r\n cont.appendChild(this.shapesContainer);\r\n this.layerElement.appendChild(cont);\r\n }\r\n\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.shapesContainer, 0, [], true);\r\n this.filterUniqueShapes();\r\n this.shapeCont = cont;\r\n };\r\n\r\n HShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n point = transformers[i].mProps.v.applyToPointArray(point[0], point[1], 0);\r\n }\r\n\r\n return point;\r\n };\r\n\r\n HShapeElement.prototype.calculateShapeBoundingBox = function (item, boundingBox) {\r\n var shape = item.sh.v;\r\n var transformers = item.transformers;\r\n var i;\r\n var len = shape._length;\r\n var vPoint;\r\n var oPoint;\r\n var nextIPoint;\r\n var nextVPoint;\r\n\r\n if (len <= 1) {\r\n return;\r\n }\r\n\r\n for (i = 0; i < len - 1; i += 1) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[i + 1]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[i + 1]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n\r\n if (shape.c) {\r\n vPoint = this.getTransformedPoint(transformers, shape.v[i]);\r\n oPoint = this.getTransformedPoint(transformers, shape.o[i]);\r\n nextIPoint = this.getTransformedPoint(transformers, shape.i[0]);\r\n nextVPoint = this.getTransformedPoint(transformers, shape.v[0]);\r\n this.checkBounds(vPoint, oPoint, nextIPoint, nextVPoint, boundingBox);\r\n }\r\n };\r\n\r\n HShapeElement.prototype.checkBounds = function (vPoint, oPoint, nextIPoint, nextVPoint, boundingBox) {\r\n this.getBoundsOfCurve(vPoint, oPoint, nextIPoint, nextVPoint);\r\n var bounds = this.shapeBoundingBox;\r\n boundingBox.x = bmMin(bounds.left, boundingBox.x);\r\n boundingBox.xMax = bmMax(bounds.right, boundingBox.xMax);\r\n boundingBox.y = bmMin(bounds.top, boundingBox.y);\r\n boundingBox.yMax = bmMax(bounds.bottom, boundingBox.yMax);\r\n };\r\n\r\n HShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0\r\n };\r\n HShapeElement.prototype.tempBoundingBox = {\r\n x: 0,\r\n xMax: 0,\r\n y: 0,\r\n yMax: 0,\r\n width: 0,\r\n height: 0\r\n };\r\n\r\n HShapeElement.prototype.getBoundsOfCurve = function (p0, p1, p2, p3) {\r\n var bounds = [[p0[0], p3[0]], [p0[1], p3[1]]];\r\n\r\n for (var a, b, c, t, b2ac, t1, t2, i = 0; i < 2; ++i) {\r\n // eslint-disable-line no-plusplus\r\n b = 6 * p0[i] - 12 * p1[i] + 6 * p2[i];\r\n a = -3 * p0[i] + 9 * p1[i] - 9 * p2[i] + 3 * p3[i];\r\n c = 3 * p1[i] - 3 * p0[i];\r\n b |= 0; // eslint-disable-line no-bitwise\r\n\r\n a |= 0; // eslint-disable-line no-bitwise\r\n\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {//\r\n } else if (a === 0) {\r\n t = -c / b;\r\n\r\n if (t > 0 && t < 1) {\r\n bounds[i].push(this.calculateF(t, p0, p1, p2, p3, i));\r\n }\r\n } else {\r\n b2ac = b * b - 4 * c * a;\r\n\r\n if (b2ac >= 0) {\r\n t1 = (-b + bmSqrt(b2ac)) / (2 * a);\r\n if (t1 > 0 && t1 < 1) bounds[i].push(this.calculateF(t1, p0, p1, p2, p3, i));\r\n t2 = (-b - bmSqrt(b2ac)) / (2 * a);\r\n if (t2 > 0 && t2 < 1) bounds[i].push(this.calculateF(t2, p0, p1, p2, p3, i));\r\n }\r\n }\r\n }\r\n\r\n this.shapeBoundingBox.left = bmMin.apply(null, bounds[0]);\r\n this.shapeBoundingBox.top = bmMin.apply(null, bounds[1]);\r\n this.shapeBoundingBox.right = bmMax.apply(null, bounds[0]);\r\n this.shapeBoundingBox.bottom = bmMax.apply(null, bounds[1]);\r\n };\r\n\r\n HShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i] + 3 * bmPow(1 - t, 2) * t * p1[i] + 3 * (1 - t) * bmPow(t, 2) * p2[i] + bmPow(t, 3) * p3[i];\r\n };\r\n\r\n HShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (itemsData[i] && itemsData[i].sh) {\r\n this.calculateShapeBoundingBox(itemsData[i], boundingBox);\r\n } else if (itemsData[i] && itemsData[i].it) {\r\n this.calculateBoundingBox(itemsData[i].it, boundingBox);\r\n } else if (itemsData[i] && itemsData[i].style && itemsData[i].w) {\r\n this.expandStrokeBoundingBox(itemsData[i].w, boundingBox);\r\n }\r\n }\r\n };\r\n\r\n HShapeElement.prototype.expandStrokeBoundingBox = function (widthProperty, boundingBox) {\r\n var width = 0;\r\n\r\n if (widthProperty.keyframes) {\r\n for (var i = 0; i < widthProperty.keyframes.length; i += 1) {\r\n var kfw = widthProperty.keyframes[i].s;\r\n\r\n if (kfw > width) {\r\n width = kfw;\r\n }\r\n }\r\n\r\n width *= widthProperty.mult;\r\n } else {\r\n width = widthProperty.v * widthProperty.mult;\r\n }\r\n\r\n boundingBox.x -= width;\r\n boundingBox.xMax += width;\r\n boundingBox.y -= width;\r\n boundingBox.yMax += width;\r\n };\r\n\r\n HShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x && this.currentBBox.y <= box.y && this.currentBBox.width + this.currentBBox.x >= box.x + box.width && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n };\r\n\r\n HShapeElement.prototype.renderInnerContent = function () {\r\n this._renderShapeFrame();\r\n\r\n if (!this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var tempBoundingBox = this.tempBoundingBox;\r\n var max = 999999;\r\n tempBoundingBox.x = max;\r\n tempBoundingBox.xMax = -max;\r\n tempBoundingBox.y = max;\r\n tempBoundingBox.yMax = -max;\r\n this.calculateBoundingBox(this.itemsData, tempBoundingBox);\r\n tempBoundingBox.width = tempBoundingBox.xMax < tempBoundingBox.x ? 0 : tempBoundingBox.xMax - tempBoundingBox.x;\r\n tempBoundingBox.height = tempBoundingBox.yMax < tempBoundingBox.y ? 0 : tempBoundingBox.yMax - tempBoundingBox.y; // var tempBoundingBox = this.shapeCont.getBBox();\r\n\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n\r\n var changed = false;\r\n\r\n if (this.currentBBox.w !== tempBoundingBox.width) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.shapeCont.setAttribute('width', tempBoundingBox.width);\r\n changed = true;\r\n }\r\n\r\n if (this.currentBBox.h !== tempBoundingBox.height) {\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.shapeCont.setAttribute('height', tempBoundingBox.height);\r\n changed = true;\r\n }\r\n\r\n if (changed || this.currentBBox.x !== tempBoundingBox.x || this.currentBBox.y !== tempBoundingBox.y) {\r\n this.currentBBox.w = tempBoundingBox.width;\r\n this.currentBBox.h = tempBoundingBox.height;\r\n this.currentBBox.x = tempBoundingBox.x;\r\n this.currentBBox.y = tempBoundingBox.y;\r\n this.shapeCont.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n var shapeStyle = this.shapeCont.style;\r\n var shapeTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n shapeStyle.transform = shapeTransform;\r\n shapeStyle.webkitTransform = shapeTransform;\r\n }\r\n }\r\n };\r\n\r\n function HTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.textPaths = [];\r\n this.currentBBox = {\r\n x: 999999,\r\n y: -999999,\r\n h: 0,\r\n w: 0\r\n };\r\n this.renderType = 'svg';\r\n this.isMasked = false;\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\n HTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\r\n\r\n if (this.isMasked) {\r\n this.renderType = 'svg';\r\n this.compW = this.comp.data.w;\r\n this.compH = this.comp.data.h;\r\n this.svgElement.setAttribute('width', this.compW);\r\n this.svgElement.setAttribute('height', this.compH);\r\n var g = createNS('g');\r\n this.maskedElement.appendChild(g);\r\n this.innerElem = g;\r\n } else {\r\n this.renderType = 'html';\r\n this.innerElem = this.layerElement;\r\n }\r\n\r\n this.checkParenting();\r\n };\r\n\r\n HTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n var innerElemStyle = this.innerElem.style;\r\n var textColor = documentData.fc ? this.buildColor(documentData.fc) : 'rgba(0,0,0,0)';\r\n innerElemStyle.fill = textColor;\r\n innerElemStyle.color = textColor;\r\n\r\n if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\r\n\r\n if (fontData.fClass) {\r\n this.innerElem.className = fontData.fClass;\r\n } else {\r\n innerElemStyle.fontFamily = fontData.fFamily;\r\n var fWeight = documentData.fWeight;\r\n var fStyle = documentData.fStyle;\r\n innerElemStyle.fontStyle = fStyle;\r\n innerElemStyle.fontWeight = fWeight;\r\n }\r\n }\r\n\r\n var i;\r\n var len;\r\n var letters = documentData.l;\r\n len = letters.length;\r\n var tSpan;\r\n var tParent;\r\n var tCont;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\r\n var shapeStr = '';\r\n var cnt = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.globalData.fontManager.chars) {\r\n if (!this.textPaths[cnt]) {\r\n tSpan = createNS('path');\r\n tSpan.setAttribute('stroke-linecap', lineCapEnum[1]);\r\n tSpan.setAttribute('stroke-linejoin', lineJoinEnum[2]);\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n } else {\r\n tSpan = this.textPaths[cnt];\r\n }\r\n\r\n if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tCont = tParent.children[0];\r\n } else {\r\n tParent = createTag('div');\r\n tParent.style.lineHeight = 0;\r\n tCont = createNS('svg');\r\n tCont.appendChild(tSpan);\r\n styleDiv(tParent);\r\n }\r\n }\r\n } else if (!this.isMasked) {\r\n if (this.textSpans[cnt]) {\r\n tParent = this.textSpans[cnt];\r\n tSpan = this.textPaths[cnt];\r\n } else {\r\n tParent = createTag('span');\r\n styleDiv(tParent);\r\n tSpan = createTag('span');\r\n styleDiv(tSpan);\r\n tParent.appendChild(tSpan);\r\n }\r\n } else {\r\n tSpan = this.textPaths[cnt] ? this.textPaths[cnt] : createNS('text');\r\n } // tSpan.setAttribute('visibility', 'hidden');\r\n\r\n\r\n if (this.globalData.fontManager.chars) {\r\n var charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n var shapeData;\r\n\r\n if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n\r\n matrixHelper.reset();\r\n\r\n if (shapeData && shapeData.shapes && shapeData.shapes.length) {\r\n shapes = shapeData.shapes[0].it;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n shapeStr = this.createPathShape(matrixHelper, shapes);\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n\r\n if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\r\n\r\n if (shapeData && shapeData.shapes) {\r\n // document.body.appendChild is needed to get exact measure of shape\r\n document.body.appendChild(tCont);\r\n var boundingBox = tCont.getBBox();\r\n tCont.setAttribute('width', boundingBox.width + 2);\r\n tCont.setAttribute('height', boundingBox.height + 2);\r\n tCont.setAttribute('viewBox', boundingBox.x - 1 + ' ' + (boundingBox.y - 1) + ' ' + (boundingBox.width + 2) + ' ' + (boundingBox.height + 2));\r\n var tContStyle = tCont.style;\r\n var tContTranslation = 'translate(' + (boundingBox.x - 1) + 'px,' + (boundingBox.y - 1) + 'px)';\r\n tContStyle.transform = tContTranslation;\r\n tContStyle.webkitTransform = tContTranslation;\r\n letters[i].yOffset = boundingBox.y - 1;\r\n } else {\r\n tCont.setAttribute('width', 1);\r\n tCont.setAttribute('height', 1);\r\n }\r\n\r\n tParent.appendChild(tCont);\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } else {\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 if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent); //\r\n\r\n var tStyle = tSpan.style;\r\n var tSpanTranslation = 'translate3d(0,' + -documentData.finalSize / 1.2 + 'px,0)';\r\n tStyle.transform = tSpanTranslation;\r\n tStyle.webkitTransform = tSpanTranslation;\r\n } else {\r\n this.innerElem.appendChild(tSpan);\r\n }\r\n } //\r\n\r\n\r\n if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\r\n }\r\n\r\n while (cnt < this.textSpans.length) {\r\n this.textSpans[cnt].style.display = 'none';\r\n cnt += 1;\r\n }\r\n };\r\n\r\n HTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n if (this.isMasked && this.finalTransform._matMdf) {\r\n // Todo Benchmark if using this is better than getBBox\r\n this.svgElement.setAttribute('viewBox', -this.finalTransform.mProp.p.v[0] + ' ' + -this.finalTransform.mProp.p.v[1] + ' ' + this.compW + ' ' + this.compH);\r\n svgStyle = this.svgElement.style;\r\n var translation = 'translate(' + -this.finalTransform.mProp.p.v[0] + 'px,' + -this.finalTransform.mProp.p.v[1] + 'px)';\r\n svgStyle.transform = translation;\r\n svgStyle.webkitTransform = translation;\r\n }\r\n }\r\n\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n\r\n if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n var letters = this.textProperty.currentData.l;\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (letters[i].n) {\r\n count += 1;\r\n } else {\r\n textSpan = this.textSpans[i];\r\n textPath = this.textPaths[i];\r\n renderedLetter = renderedLetters[count];\r\n count += 1;\r\n\r\n if (renderedLetter._mdf.m) {\r\n if (!this.isMasked) {\r\n textSpan.style.webkitTransform = renderedLetter.m;\r\n textSpan.style.transform = renderedLetter.m;\r\n } else {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n } /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n\r\n\r\n textSpan.style.opacity = renderedLetter.o;\r\n\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\r\n }\r\n\r\n if (renderedLetter.fc && renderedLetter._mdf.fc) {\r\n textPath.setAttribute('fill', renderedLetter.fc);\r\n textPath.style.color = renderedLetter.fc;\r\n }\r\n }\r\n }\r\n\r\n if (this.innerElem.getBBox && !this.hidden && (this._isFirstFrame || this._mdf)) {\r\n var boundingBox = this.innerElem.getBBox();\r\n\r\n if (this.currentBBox.w !== boundingBox.width) {\r\n this.currentBBox.w = boundingBox.width;\r\n this.svgElement.setAttribute('width', boundingBox.width);\r\n }\r\n\r\n if (this.currentBBox.h !== boundingBox.height) {\r\n this.currentBBox.h = boundingBox.height;\r\n this.svgElement.setAttribute('height', boundingBox.height);\r\n }\r\n\r\n var margin = 1;\r\n\r\n if (this.currentBBox.w !== boundingBox.width + margin * 2 || this.currentBBox.h !== boundingBox.height + margin * 2 || this.currentBBox.x !== boundingBox.x - margin || this.currentBBox.y !== boundingBox.y - margin) {\r\n this.currentBBox.w = boundingBox.width + margin * 2;\r\n this.currentBBox.h = boundingBox.height + margin * 2;\r\n this.currentBBox.x = boundingBox.x - margin;\r\n this.currentBBox.y = boundingBox.y - margin;\r\n this.svgElement.setAttribute('viewBox', this.currentBBox.x + ' ' + this.currentBBox.y + ' ' + this.currentBBox.w + ' ' + this.currentBBox.h);\r\n svgStyle = this.svgElement.style;\r\n var svgTransform = 'translate(' + this.currentBBox.x + 'px,' + this.currentBBox.y + 'px)';\r\n svgStyle.transform = svgTransform;\r\n svgStyle.webkitTransform = svgTransform;\r\n }\r\n }\r\n };\r\n\r\n function HCameraElement(data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initHierarchy();\r\n var getProp = PropertyFactory.getProp;\r\n this.pe = getProp(this, data.pe, 0, 0, this);\r\n\r\n if (data.ks.p.s) {\r\n this.px = getProp(this, data.ks.p.x, 1, 0, this);\r\n this.py = getProp(this, data.ks.p.y, 1, 0, this);\r\n this.pz = getProp(this, data.ks.p.z, 1, 0, this);\r\n } else {\r\n this.p = getProp(this, data.ks.p, 1, 0, this);\r\n }\r\n\r\n if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\r\n }\r\n\r\n if (data.ks.or.k.length && data.ks.or.k[0].to) {\r\n var i;\r\n var len = data.ks.or.k.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n data.ks.or.k[i].to = null;\r\n data.ks.or.k[i].ti = null;\r\n }\r\n }\r\n\r\n this.or = getProp(this, data.ks.or, 1, degToRads, this);\r\n this.or.sh = true;\r\n this.rx = getProp(this, data.ks.rx, 0, degToRads, this);\r\n this.ry = getProp(this, data.ks.ry, 0, degToRads, this);\r\n this.rz = getProp(this, data.ks.rz, 0, degToRads, this);\r\n this.mat = new Matrix();\r\n this._prevMat = new Matrix();\r\n this._isFirstFrame = true; // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n\r\n this.finalTransform = {\r\n mProp: this\r\n };\r\n }\r\n\r\n extendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\n HCameraElement.prototype.setup = function () {\r\n var i;\r\n var len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n containerStyle = comp.container.style;\r\n var perspective = this.pe.v + 'px';\r\n var origin = '0px 0px 0px';\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n perspectiveStyle.perspective = perspective;\r\n perspectiveStyle.webkitPerspective = perspective;\r\n containerStyle.transformOrigin = origin;\r\n containerStyle.mozTransformOrigin = origin;\r\n containerStyle.webkitTransformOrigin = origin;\r\n perspectiveStyle.transform = matrix;\r\n perspectiveStyle.webkitTransform = matrix;\r\n }\r\n }\r\n };\r\n\r\n HCameraElement.prototype.createElements = function () {};\r\n\r\n HCameraElement.prototype.hide = function () {};\r\n\r\n HCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _mdf = this.hierarchy[i].finalTransform.mProp._mdf || _mdf;\r\n }\r\n }\r\n\r\n if (_mdf || this.pe._mdf || this.p && this.p._mdf || this.px && (this.px._mdf || this.py._mdf || this.pz._mdf) || this.rx._mdf || this.ry._mdf || this.rz._mdf || this.or._mdf || this.a && this.a._mdf) {\r\n this.mat.reset();\r\n\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length - 1;\r\n\r\n for (i = len; i >= 0; i -= 1) {\r\n var mTransf = this.hierarchy[i].finalTransform.mProp;\r\n this.mat.translate(-mTransf.p.v[0], -mTransf.p.v[1], mTransf.p.v[2]);\r\n this.mat.rotateX(-mTransf.or.v[0]).rotateY(-mTransf.or.v[1]).rotateZ(mTransf.or.v[2]);\r\n this.mat.rotateX(-mTransf.rx.v).rotateY(-mTransf.ry.v).rotateZ(mTransf.rz.v);\r\n this.mat.scale(1 / mTransf.s.v[0], 1 / mTransf.s.v[1], 1 / mTransf.s.v[2]);\r\n this.mat.translate(mTransf.a.v[0], mTransf.a.v[1], mTransf.a.v[2]);\r\n }\r\n }\r\n\r\n if (this.p) {\r\n this.mat.translate(-this.p.v[0], -this.p.v[1], this.p.v[2]);\r\n } else {\r\n this.mat.translate(-this.px.v, -this.py.v, this.pz.v);\r\n }\r\n\r\n if (this.a) {\r\n var diffVector;\r\n\r\n if (this.p) {\r\n diffVector = [this.p.v[0] - this.a.v[0], this.p.v[1] - this.a.v[1], this.p.v[2] - this.a.v[2]];\r\n } else {\r\n diffVector = [this.px.v - this.a.v[0], this.py.v - this.a.v[1], this.pz.v - this.a.v[2]];\r\n }\r\n\r\n var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2)); // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\r\n\r\n var lookDir = [diffVector[0] / mag, diffVector[1] / mag, diffVector[2] / mag];\r\n var lookLengthOnXZ = Math.sqrt(lookDir[2] * lookDir[2] + lookDir[0] * lookDir[0]);\r\n var mRotationX = Math.atan2(lookDir[1], lookLengthOnXZ);\r\n var mRotationY = Math.atan2(lookDir[0], -lookDir[2]);\r\n this.mat.rotateY(mRotationY).rotateX(-mRotationX);\r\n }\r\n\r\n this.mat.rotateX(-this.rx.v).rotateY(-this.ry.v).rotateZ(this.rz.v);\r\n this.mat.rotateX(-this.or.v[0]).rotateY(-this.or.v[1]).rotateZ(this.or.v[2]);\r\n this.mat.translate(this.globalData.compSize.w / 2, this.globalData.compSize.h / 2, 0);\r\n this.mat.translate(0, 0, this.pe.v);\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\r\n\r\n if ((hasMatrixChanged || this.pe._mdf) && this.comp.threeDElements) {\r\n len = this.comp.threeDElements.length;\r\n var comp;\r\n var perspectiveStyle;\r\n var containerStyle;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\r\n\r\n if (comp.type === '3d') {\r\n if (hasMatrixChanged) {\r\n var matValue = this.mat.toCSS();\r\n containerStyle = comp.container.style;\r\n containerStyle.transform = matValue;\r\n containerStyle.webkitTransform = matValue;\r\n }\r\n\r\n if (this.pe._mdf) {\r\n perspectiveStyle = comp.perspectiveElem.style;\r\n perspectiveStyle.perspective = this.pe.v + 'px';\r\n perspectiveStyle.webkitPerspective = this.pe.v + 'px';\r\n }\r\n }\r\n }\r\n\r\n this.mat.clone(this._prevMat);\r\n }\r\n }\r\n\r\n this._isFirstFrame = false;\r\n };\r\n\r\n HCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n };\r\n\r\n HCameraElement.prototype.destroy = function () {};\r\n\r\n HCameraElement.prototype.getBaseElement = function () {\r\n return null;\r\n };\r\n\r\n function HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n }\r\n\r\n extendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\n HImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n var img = new Image();\r\n\r\n if (this.data.hasMask) {\r\n this.imageElem = createNS('image');\r\n this.imageElem.setAttribute('width', this.assetData.w + 'px');\r\n this.imageElem.setAttribute('height', this.assetData.h + 'px');\r\n this.imageElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n this.layerElement.appendChild(this.imageElem);\r\n this.baseElement.setAttribute('width', this.assetData.w);\r\n this.baseElement.setAttribute('height', this.assetData.h);\r\n } else {\r\n this.layerElement.appendChild(img);\r\n }\r\n\r\n img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n };\r\n\r\n function HybridRendererBase(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),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n }\r\n };\r\n this.globalData = {\r\n _mdf: false,\r\n frameNum: -1,\r\n renderConfig: this.renderConfig\r\n };\r\n this.pendingElements = [];\r\n this.elements = [];\r\n this.threeDElements = [];\r\n this.destroyed = false;\r\n this.camera = null;\r\n this.supports3d = true;\r\n this.rendererType = 'html';\r\n }\r\n\r\n extendPrototype([BaseRenderer], HybridRendererBase);\r\n HybridRendererBase.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\n HybridRendererBase.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\n HybridRendererBase.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n\r\n var layer = this.layers[pos];\r\n\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;\r\n var nextLayer;\r\n var tmpDOMElement;\r\n\r\n while (i < pos) {\r\n if (this.elements[i] && this.elements[i] !== true && this.elements[i].getBaseElement) {\r\n nextLayer = this.elements[i];\r\n tmpDOMElement = this.layers[i].ddd ? this.getThreeDContainerByPos(i) : nextLayer.getBaseElement();\r\n nextDOMElement = tmpDOMElement || nextDOMElement;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (nextDOMElement) {\r\n if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.insertBefore(newDOMElement, nextDOMElement);\r\n }\r\n } else if (!layer.ddd || !this.supports3d) {\r\n this.layerElement.appendChild(newDOMElement);\r\n }\r\n }\r\n } else {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n\r\n return new HShapeElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n\r\n return new HTextElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n };\r\n\r\n HybridRendererBase.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n\r\n return new HImageElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n\r\n return new HSolidElement(data, this.globalData, this);\r\n };\r\n\r\n HybridRendererBase.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\n HybridRendererBase.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (this.threeDElements[i].startPos <= pos && this.threeDElements[i].endPos >= pos) {\r\n return this.threeDElements[i].perspectiveElem;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n HybridRendererBase.prototype.createThreeDContainer = function (pos, type) {\r\n var perspectiveElem = createTag('div');\r\n var style;\r\n var containerStyle;\r\n styleDiv(perspectiveElem);\r\n var container = createTag('div');\r\n styleDiv(container);\r\n\r\n if (type === '3d') {\r\n style = perspectiveElem.style;\r\n style.width = this.globalData.compSize.w + 'px';\r\n style.height = this.globalData.compSize.h + 'px';\r\n var center = '50% 50%';\r\n style.webkitTransformOrigin = center;\r\n style.mozTransformOrigin = center;\r\n style.transformOrigin = center;\r\n containerStyle = container.style;\r\n var matrix = 'matrix3d(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)';\r\n containerStyle.transform = matrix;\r\n containerStyle.webkitTransform = matrix;\r\n }\r\n\r\n perspectiveElem.appendChild(container); // this.resizerElem.appendChild(perspectiveElem);\r\n\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\n HybridRendererBase.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.layers[i].ddd && this.layers[i].ty !== 3) {\r\n if (currentContainer !== '3d') {\r\n currentContainer = '3d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '3d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n } else {\r\n if (currentContainer !== '2d') {\r\n currentContainer = '2d';\r\n lastThreeDContainerData = this.createThreeDContainer(i, '2d');\r\n }\r\n\r\n lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n\r\n len = this.threeDElements.length;\r\n\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n this.resizerElem.appendChild(this.threeDElements[i].perspectiveElem);\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\r\n\r\n while (i < len) {\r\n if (pos <= this.threeDElements[i].endPos) {\r\n var j = this.threeDElements[i].startPos;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.threeDElements[i].container.insertBefore(elem, nextElement);\r\n } else {\r\n this.threeDElements[i].container.appendChild(elem);\r\n }\r\n\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.configAnimation = function (animData) {\r\n var resizerElem = createTag('div');\r\n var wrapper = this.animationItem.wrapper;\r\n var style = resizerElem.style;\r\n style.width = animData.w + 'px';\r\n style.height = animData.h + 'px';\r\n this.resizerElem = resizerElem;\r\n styleDiv(resizerElem);\r\n style.transformStyle = 'flat';\r\n style.mozTransformStyle = 'flat';\r\n style.webkitTransformStyle = 'flat';\r\n\r\n if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n\r\n wrapper.appendChild(resizerElem);\r\n style.overflow = 'hidden';\r\n var svg = createNS('svg');\r\n svg.setAttribute('width', '1');\r\n svg.setAttribute('height', '1');\r\n styleDiv(svg);\r\n this.resizerElem.appendChild(svg);\r\n var defs = createNS('defs');\r\n svg.appendChild(defs);\r\n this.data = animData; // Mask animation\r\n\r\n this.setupGlobalData(animData, svg);\r\n this.globalData.defs = defs;\r\n this.layers = animData.layers;\r\n this.layerElement = this.resizerElem;\r\n this.build3dContainers();\r\n this.updateContainerSize();\r\n };\r\n\r\n HybridRendererBase.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\r\n }\r\n\r\n this.animationItem.container = null;\r\n this.globalData.defs = null;\r\n var i;\r\n var len = this.layers ? this.layers.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n };\r\n\r\n HybridRendererBase.prototype.updateContainerSize = function () {\r\n var elementWidth = this.animationItem.wrapper.offsetWidth;\r\n var elementHeight = this.animationItem.wrapper.offsetHeight;\r\n var elementRel = elementWidth / elementHeight;\r\n var animationRel = this.globalData.compSize.w / this.globalData.compSize.h;\r\n var sx;\r\n var sy;\r\n var tx;\r\n var ty;\r\n\r\n if (animationRel > elementRel) {\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\r\n var style = this.resizerElem.style;\r\n style.webkitTransform = 'matrix3d(' + sx + ',0,0,0,0,' + sy + ',0,0,0,0,1,0,' + tx + ',' + ty + ',0,1)';\r\n style.transform = style.webkitTransform;\r\n };\r\n\r\n HybridRendererBase.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\n HybridRendererBase.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n };\r\n\r\n HybridRendererBase.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n };\r\n\r\n HybridRendererBase.prototype.initItems = function () {\r\n this.buildAllItems();\r\n\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;\r\n var len = this.threeDElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n var style = this.threeDElements[i].perspectiveElem.style;\r\n style.webkitPerspective = Math.sqrt(Math.pow(cWidth, 2) + Math.pow(cHeight, 2)) + 'px';\r\n style.perspective = style.webkitPerspective;\r\n }\r\n }\r\n };\r\n\r\n HybridRendererBase.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (assets[i].xt) {\r\n var comp = this.createComp(assets[i], floatingContainer, this.globalData.comp, null);\r\n comp.initExpressions();\r\n this.globalData.projectInterface.registerComposition(comp);\r\n }\r\n }\r\n };\r\n\r\n function HCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = !data.hasMask;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? 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) : {\r\n _placeholder: true\r\n };\r\n }\r\n\r\n extendPrototype([HybridRendererBase, ICompElement, HBaseElement], HCompElement);\r\n HCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\n HCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements(); // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\r\n\r\n\r\n if (this.data.hasMask) {\r\n this.svgElement.setAttribute('width', this.data.w);\r\n this.svgElement.setAttribute('height', this.data.h);\r\n this.transformedElement = this.baseElement;\r\n } else {\r\n this.transformedElement = this.layerElement;\r\n }\r\n };\r\n\r\n HCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\r\n\r\n while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n\r\n j += 1;\r\n }\r\n\r\n if (nextElement) {\r\n this.layerElement.insertBefore(elem, nextElement);\r\n } else {\r\n this.layerElement.appendChild(elem);\r\n }\r\n };\r\n\r\n HCompElement.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n function 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),\r\n filterSize: {\r\n width: config && config.filterSize && config.filterSize.width || '400%',\r\n height: config && config.filterSize && config.filterSize.height || '400%',\r\n x: config && config.filterSize && config.filterSize.x || '-100%',\r\n y: config && config.filterSize && config.filterSize.y || '-100%'\r\n },\r\n runExpressions: !config || config.runExpressions === undefined || config.runExpressions\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 extendPrototype([HybridRendererBase], HybridRenderer);\r\n\r\n HybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n\r\n return new HCompElement(data, this.globalData, this);\r\n };\r\n\r\n var CompExpressionInterface = function () {\r\n return function (comp) {\r\n function _thisLayerFunction(name) {\r\n var i = 0;\r\n var len = comp.layers.length;\r\n\r\n while (i < len) {\r\n if (comp.layers[i].nm === name || comp.layers[i].ind === name) {\r\n return comp.elements[i].layerInterface;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null; // return {active:false};\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, '_name', {\r\n value: comp.data.nm\r\n });\r\n _thisLayerFunction.layer = _thisLayerFunction;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.height = comp.data.h || comp.globalData.compSize.h;\r\n _thisLayerFunction.width = comp.data.w || comp.globalData.compSize.w;\r\n _thisLayerFunction.pixelAspect = 1;\r\n _thisLayerFunction.frameDuration = 1 / comp.globalData.frameRate;\r\n _thisLayerFunction.displayStartTime = 0;\r\n _thisLayerFunction.numLayers = comp.layers.length;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var Expressions = function () {\r\n var ob = {};\r\n ob.initExpressions = initExpressions;\r\n\r\n function initExpressions(animation) {\r\n var stackCount = 0;\r\n var registers = [];\r\n\r\n function pushExpression() {\r\n stackCount += 1;\r\n }\r\n\r\n function popExpression() {\r\n stackCount -= 1;\r\n\r\n if (stackCount === 0) {\r\n releaseInstances();\r\n }\r\n }\r\n\r\n function registerExpressionProperty(expression) {\r\n if (registers.indexOf(expression) === -1) {\r\n registers.push(expression);\r\n }\r\n }\r\n\r\n function releaseInstances() {\r\n var i;\r\n var len = registers.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n registers[i].release();\r\n }\r\n\r\n registers.length = 0;\r\n }\r\n\r\n animation.renderer.compInterface = CompExpressionInterface(animation.renderer);\r\n animation.renderer.globalData.projectInterface.registerComposition(animation.renderer);\r\n animation.renderer.globalData.pushExpression = pushExpression;\r\n animation.renderer.globalData.popExpression = popExpression;\r\n animation.renderer.globalData.registerExpressionProperty = registerExpressionProperty;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var MaskManagerInterface = function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function get() {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n\r\n return this._mask.prop;\r\n }\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function get() {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n\r\n return this._mask.op.v * 100;\r\n }\r\n });\r\n\r\n var MaskManager = function MaskManager(maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n\r\n var i;\r\n var len = maskManager.viewData.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n _masksInterfaces[i] = new MaskInterface(maskManager.viewData[i], maskManager.masksProperties[i]);\r\n }\r\n\r\n var maskFunction = function maskFunction(name) {\r\n i = 0;\r\n\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n return maskFunction;\r\n };\r\n\r\n return MaskManager;\r\n }();\r\n\r\n var ExpressionPropertyInterface = function () {\r\n var defaultUnidimensionalValue = {\r\n pv: 0,\r\n v: 0,\r\n mult: 1\r\n };\r\n var defaultMultidimensionalValue = {\r\n pv: [0, 0, 0],\r\n v: [0, 0, 0],\r\n mult: 1\r\n };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function get() {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n }\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n\r\n var value = '';\r\n\r\n if ('s' in property.keyframes[pos - 1]) {\r\n value = property.keyframes[pos - 1].s;\r\n } else if ('e' in property.keyframes[pos - 2]) {\r\n value = property.keyframes[pos - 2].e;\r\n } else {\r\n value = property.keyframes[pos - 2].s;\r\n }\r\n\r\n var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\r\n\r\n valueProp.time = property.keyframes[pos - 1].t / property.elem.comp.globalData.frameRate;\r\n valueProp.value = type === 'unidimensional' ? value[0] : value;\r\n return valueProp;\r\n };\r\n\r\n expressionValue.valueAtTime = property.getValueAtTime;\r\n expressionValue.speedAtTime = property.getSpeedAtTime;\r\n expressionValue.velocityAtTime = property.getVelocityAtTime;\r\n expressionValue.propertyGroup = property.propertyGroup;\r\n }\r\n\r\n function UnidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultUnidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var val = property.pv * mult;\r\n var expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n val = property.v * mult;\r\n\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n }\r\n\r\n return expressionValue;\r\n };\r\n }\r\n\r\n function MultidimensionalPropertyInterface(property) {\r\n if (!property || !('pv' in property)) {\r\n property = defaultMultidimensionalValue;\r\n }\r\n\r\n var mult = 1 / property.mult;\r\n var len = property.data && property.data.l || property.pv.length;\r\n var expressionValue = createTypedArray('float32', len);\r\n var arrValue = createTypedArray('float32', len);\r\n expressionValue.value = arrValue;\r\n completeProperty(expressionValue, property, 'multidimensional');\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n\r\n for (var i = 0; i < len; i += 1) {\r\n arrValue[i] = property.v[i] * mult;\r\n expressionValue[i] = arrValue[i];\r\n }\r\n\r\n return expressionValue;\r\n };\r\n } // TODO: try to avoid using this getter\r\n\r\n\r\n function defaultGetter() {\r\n return defaultUnidimensionalValue;\r\n }\r\n\r\n return function (property) {\r\n if (!property) {\r\n return defaultGetter;\r\n }\r\n\r\n if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n }();\r\n\r\n var TransformExpressionInterface = function () {\r\n return function (transform) {\r\n function _thisFunction(name) {\r\n switch (name) {\r\n case 'scale':\r\n case 'Scale':\r\n case 'ADBE Scale':\r\n case 6:\r\n return _thisFunction.scale;\r\n\r\n case 'rotation':\r\n case 'Rotation':\r\n case 'ADBE Rotation':\r\n case 'ADBE Rotate Z':\r\n case 10:\r\n return _thisFunction.rotation;\r\n\r\n case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\r\n\r\n case 'anchorPoint':\r\n case 'AnchorPoint':\r\n case 'Anchor Point':\r\n case 'ADBE AnchorPoint':\r\n case 1:\r\n return _thisFunction.anchorPoint;\r\n\r\n case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz)\r\n });\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r)\r\n });\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx)\r\n });\r\n Object.defineProperty(_thisFunction, 'yRotation', {\r\n get: ExpressionPropertyInterface(transform.ry)\r\n });\r\n Object.defineProperty(_thisFunction, 'scale', {\r\n get: ExpressionPropertyInterface(transform.s)\r\n });\r\n\r\n var _px;\r\n\r\n var _py;\r\n\r\n var _pz;\r\n\r\n var _transformFactory;\r\n\r\n if (transform.p) {\r\n _transformFactory = ExpressionPropertyInterface(transform.p);\r\n } else {\r\n _px = ExpressionPropertyInterface(transform.px);\r\n _py = ExpressionPropertyInterface(transform.py);\r\n\r\n if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function get() {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n\r\n return [_px(), _py(), _pz ? _pz() : 0];\r\n }\r\n });\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px)\r\n });\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py)\r\n });\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz)\r\n });\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a)\r\n });\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o)\r\n });\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk)\r\n });\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa)\r\n });\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or)\r\n });\r\n return _thisFunction;\r\n };\r\n }();\r\n\r\n var LayerExpressionInterface = function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\r\n\r\n propMatrix.clone(toWorldMat);\r\n } else {\r\n var transformMat = this._elem.finalTransform.mProp;\r\n transformMat.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat;\r\n }\r\n\r\n function toWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function toWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.applyPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorldVec(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n toWorldMat.props[12] = 0;\r\n toWorldMat.props[13] = 0;\r\n toWorldMat.props[14] = 0;\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function fromWorld(arr, time) {\r\n var toWorldMat = this.getMatrix(time);\r\n return this.invertPoint(toWorldMat, arr);\r\n }\r\n\r\n function applyPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.applyToPointArray(arr[0], arr[1], arr[2] || 0);\r\n }\r\n\r\n function invertPoint(matrix, arr) {\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\r\n }\r\n }\r\n\r\n return matrix.inversePoint(arr);\r\n }\r\n\r\n function fromComp(arr) {\r\n var toWorldMat = new Matrix();\r\n toWorldMat.reset();\r\n\r\n this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n return toWorldMat.inversePoint(arr);\r\n }\r\n\r\n function sampleImage() {\r\n return [1, 1, 1, 1];\r\n }\r\n\r\n return function (elem) {\r\n var transformInterface;\r\n\r\n function _registerMaskInterface(maskManager) {\r\n _thisLayerFunction.mask = new MaskManagerInterface(maskManager, elem);\r\n }\r\n\r\n function _registerEffectsInterface(effects) {\r\n _thisLayerFunction.effect = effects;\r\n }\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Root Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return _thisLayerFunction.shapeInterface;\r\n\r\n case 1:\r\n case 6:\r\n case 'Transform':\r\n case 'transform':\r\n case 'ADBE Transform Group':\r\n return transformInterface;\r\n\r\n case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n _thisLayerFunction.getMatrix = getMatrix;\r\n _thisLayerFunction.invertPoint = invertPoint;\r\n _thisLayerFunction.applyPoint = applyPoint;\r\n _thisLayerFunction.toWorld = toWorld;\r\n _thisLayerFunction.toWorldVec = toWorldVec;\r\n _thisLayerFunction.fromWorld = fromWorld;\r\n _thisLayerFunction.fromWorldVec = fromWorldVec;\r\n _thisLayerFunction.toComp = toWorld;\r\n _thisLayerFunction.fromComp = fromComp;\r\n _thisLayerFunction.sampleImage = sampleImage;\r\n _thisLayerFunction.sourceRectAtTime = elem.sourceRectAtTime.bind(elem);\r\n _thisLayerFunction._elem = elem;\r\n transformInterface = TransformExpressionInterface(elem.finalTransform.mProp);\r\n var anchorPointDescriptor = getDescriptor(transformInterface, 'anchorPoint');\r\n Object.defineProperties(_thisLayerFunction, {\r\n hasParent: {\r\n get: function get() {\r\n return elem.hierarchy.length;\r\n }\r\n },\r\n parent: {\r\n get: function get() {\r\n return elem.hierarchy[0].layerInterface;\r\n }\r\n },\r\n rotation: getDescriptor(transformInterface, 'rotation'),\r\n scale: getDescriptor(transformInterface, 'scale'),\r\n position: getDescriptor(transformInterface, 'position'),\r\n opacity: getDescriptor(transformInterface, 'opacity'),\r\n anchorPoint: anchorPointDescriptor,\r\n anchor_point: anchorPointDescriptor,\r\n transform: {\r\n get: function get() {\r\n return transformInterface;\r\n }\r\n },\r\n active: {\r\n get: function get() {\r\n return elem.isInRange;\r\n }\r\n }\r\n });\r\n _thisLayerFunction.startTime = elem.data.st;\r\n _thisLayerFunction.index = elem.data.ind;\r\n _thisLayerFunction.source = elem.data.refId;\r\n _thisLayerFunction.height = elem.data.ty === 0 ? elem.data.h : 100;\r\n _thisLayerFunction.width = elem.data.ty === 0 ? elem.data.w : 100;\r\n _thisLayerFunction.inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n _thisLayerFunction.outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n _thisLayerFunction._name = elem.data.nm;\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n var propertyGroupFactory = function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n }();\r\n\r\n var PropertyInterface = function () {\r\n return function (propertyName, propertyGroup) {\r\n var interfaceFunction = {\r\n _name: propertyName\r\n };\r\n\r\n function _propertyGroup(val) {\r\n val = val === undefined ? 1 : val;\r\n\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n }();\r\n\r\n var EffectsExpressionInterface = function () {\r\n var ob = {\r\n createEffectsInterface: createEffectsInterface\r\n };\r\n\r\n function createEffectsInterface(elem, propertyGroup) {\r\n if (elem.effectsManager) {\r\n var effectElements = [];\r\n var effectsData = elem.data.ef;\r\n var i;\r\n var len = elem.effectsManager.effectElements.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n effectElements.push(createGroupInterface(effectsData[i], elem.effectsManager.effectElements[i], propertyGroup, elem));\r\n }\r\n\r\n var effects = elem.data.ef || [];\r\n\r\n var groupInterface = function groupInterface(name) {\r\n i = 0;\r\n len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n return effectElements[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function get() {\r\n return effects.length;\r\n }\r\n });\r\n return groupInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function createGroupInterface(data, elements, propertyGroup, elem) {\r\n function groupInterface(name) {\r\n var effects = data.ef;\r\n var i = 0;\r\n var len = effects.length;\r\n\r\n while (i < len) {\r\n if (name === effects[i].nm || name === effects[i].mn || name === effects[i].ix) {\r\n if (effects[i].ty === 5) {\r\n return effectElements[i];\r\n }\r\n\r\n return effectElements[i]();\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n throw new Error();\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(groupInterface, propertyGroup);\r\n\r\n var effectElements = [];\r\n var i;\r\n var len = data.ef.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (data.ef[i].ty === 5) {\r\n effectElements.push(createGroupInterface(data.ef[i], elements.effectElements[i], elements.effectElements[i].propertyGroup, elem));\r\n } else {\r\n effectElements.push(createValueInterface(elements.effectElements[i], data.ef[i].ty, elem, _propertyGroup));\r\n }\r\n }\r\n\r\n if (data.mn === 'ADBE Color Control') {\r\n Object.defineProperty(groupInterface, 'color', {\r\n get: function get() {\r\n return effectElements[0]();\r\n }\r\n });\r\n }\r\n\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function get() {\r\n return data.np;\r\n }\r\n },\r\n _name: {\r\n value: data.nm\r\n },\r\n propertyGroup: {\r\n value: _propertyGroup\r\n }\r\n });\r\n groupInterface.enabled = data.en !== 0;\r\n groupInterface.active = groupInterface.enabled;\r\n return groupInterface;\r\n }\r\n\r\n function createValueInterface(element, type, elem, propertyGroup) {\r\n var expressionProperty = ExpressionPropertyInterface(element.p);\r\n\r\n function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\r\n }\r\n\r\n return expressionProperty();\r\n }\r\n\r\n if (element.p.setGroupProperty) {\r\n element.p.setGroupProperty(PropertyInterface('', propertyGroup));\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n return ob;\r\n }();\r\n\r\n var ShapePathInterface = function () {\r\n return function pathInterfaceFactory(shape, view, propertyGroup) {\r\n var prop = view.sh;\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Shape' || val === 'shape' || val === 'Path' || val === 'path' || val === 'ADBE Vector Shape' || val === 2) {\r\n return interfaceFunction.path;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n shape: {\r\n get: function get() {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n\r\n return prop;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n ix: {\r\n value: shape.ix\r\n },\r\n propertyIndex: {\r\n value: shape.ix\r\n },\r\n mn: {\r\n value: shape.mn\r\n },\r\n propertyGroup: {\r\n value: propertyGroup\r\n }\r\n });\r\n return interfaceFunction;\r\n };\r\n }();\r\n\r\n var ShapeExpressionInterface = function () {\r\n function iterateElements(shapes, view, propertyGroup) {\r\n var arr = [];\r\n var i;\r\n var len = shapes ? shapes.length : 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (shapes[i].ty === 'gr') {\r\n arr.push(groupInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'fl') {\r\n arr.push(fillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'st') {\r\n arr.push(strokeInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tm') {\r\n arr.push(trimInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'tr') {// arr.push(transformInterfaceFactory(shapes[i],view[i],propertyGroup));\r\n } else if (shapes[i].ty === 'el') {\r\n arr.push(ellipseInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sr') {\r\n arr.push(starInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'sh') {\r\n arr.push(ShapePathInterface(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rc') {\r\n arr.push(rectInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rd') {\r\n arr.push(roundedInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'rp') {\r\n arr.push(repeaterInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else if (shapes[i].ty === 'gf') {\r\n arr.push(gradientFillInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n } else {\r\n arr.push(defaultInterfaceFactory(shapes[i], view[i], propertyGroup));\r\n }\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value || interfaces[i].mn === value || interfaces[i].propertyIndex === value || interfaces[i].ix === value || interfaces[i].ind === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\r\n }\r\n\r\n return null;\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaces = iterateElements(shape.it, view.it, interfaceFunction.propertyGroup);\r\n interfaceFunction.numProperties = interfaces.length;\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.transform = transformInterface;\r\n interfaceFunction.propertyIndex = shape.cix;\r\n interfaceFunction._name = shape.nm;\r\n return interfaceFunction;\r\n }\r\n\r\n function groupInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n switch (value) {\r\n case 'ADBE Vectors Group':\r\n case 'Contents':\r\n case 2:\r\n return interfaceFunction.content;\r\n // Not necessary for now. Keeping them here in case a new case appears\r\n // case 'ADBE Vector Transform Group':\r\n // case 3:\r\n\r\n default:\r\n return interfaceFunction.transform;\r\n }\r\n };\r\n\r\n interfaceFunction.propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var content = contentsInterfaceFactory(shape, view, interfaceFunction.propertyGroup);\r\n var transformInterface = transformInterfaceFactory(shape.it[shape.it.length - 1], view.it[view.it.length - 1], interfaceFunction.propertyGroup);\r\n interfaceFunction.content = content;\r\n interfaceFunction.transform = transformInterface;\r\n Object.defineProperty(interfaceFunction, '_name', {\r\n get: function get() {\r\n return shape.nm;\r\n }\r\n }); // interfaceFunction.content = interfaceFunction;\r\n\r\n interfaceFunction.numProperties = shape.np;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.nm = shape.nm;\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function fillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function gradientFillInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === 'Start Point' || val === 'start point') {\r\n return interfaceFunction.startPoint;\r\n }\r\n\r\n if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n startPoint: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n endPoint: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n type: {\r\n get: function get() {\r\n return 'a';\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.s.setGroupProperty(PropertyInterface('Start Point', propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End Point', propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\r\n }\r\n\r\n return interfaceFunction;\r\n }\r\n\r\n function strokeInterfaceFactory(shape, view, propertyGroup) {\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\r\n\r\n function addPropertyToDashOb(i) {\r\n Object.defineProperty(dashOb, shape.d[i].nm, {\r\n get: ExpressionPropertyInterface(view.d.dataProps[i].p)\r\n });\r\n }\r\n\r\n var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addPropertyToDashOb(i);\r\n view.d.dataProps[i].p.setGroupProperty(_dashPropertyGroup);\r\n }\r\n\r\n function interfaceFunction(val) {\r\n if (val === 'Color' || val === 'color') {\r\n return interfaceFunction.color;\r\n }\r\n\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n color: {\r\n get: ExpressionPropertyInterface(view.c)\r\n },\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n strokeWidth: {\r\n get: ExpressionPropertyInterface(view.w)\r\n },\r\n dash: {\r\n get: function get() {\r\n return dashOb;\r\n }\r\n },\r\n _name: {\r\n value: shape.nm\r\n },\r\n mn: {\r\n value: shape.mn\r\n }\r\n });\r\n view.c.setGroupProperty(PropertyInterface('Color', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.w.setGroupProperty(PropertyInterface('Stroke Width', _propertyGroup));\r\n return interfaceFunction;\r\n }\r\n\r\n function trimInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(val) {\r\n if (val === shape.e.ix || val === 'End' || val === 'end') {\r\n return interfaceFunction.end;\r\n }\r\n\r\n if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n view.s.setGroupProperty(PropertyInterface('Start', _propertyGroup));\r\n view.e.setGroupProperty(PropertyInterface('End', _propertyGroup));\r\n view.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n interfaceFunction.propertyIndex = shape.ix;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n Object.defineProperties(interfaceFunction, {\r\n start: {\r\n get: ExpressionPropertyInterface(view.s)\r\n },\r\n end: {\r\n get: ExpressionPropertyInterface(view.e)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(view.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function transformInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.a.ix === value || value === 'Anchor Point') {\r\n return interfaceFunction.anchorPoint;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n\r\n if (shape.sk && shape.sk.ix === value || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n\r\n if (shape.sa && shape.sa.ix === value || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n view.transform.mProps.o.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n view.transform.mProps.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n view.transform.mProps.a.setGroupProperty(PropertyInterface('Anchor Point', _propertyGroup));\r\n view.transform.mProps.s.setGroupProperty(PropertyInterface('Scale', _propertyGroup));\r\n view.transform.mProps.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (view.transform.mProps.sk) {\r\n view.transform.mProps.sk.setGroupProperty(PropertyInterface('Skew', _propertyGroup));\r\n view.transform.mProps.sa.setGroupProperty(PropertyInterface('Skew Angle', _propertyGroup));\r\n }\r\n\r\n view.transform.op.setGroupProperty(PropertyInterface('Opacity', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n opacity: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.o)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.p)\r\n },\r\n anchorPoint: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.a)\r\n },\r\n scale: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.s)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.r)\r\n },\r\n skew: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sk)\r\n },\r\n skewAxis: {\r\n get: ExpressionPropertyInterface(view.transform.mProps.sa)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.ty = 'tr';\r\n interfaceFunction.mn = shape.mn;\r\n interfaceFunction.propertyGroup = propertyGroup;\r\n return interfaceFunction;\r\n }\r\n\r\n function ellipseInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n interfaceFunction.propertyIndex = shape.ix;\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function starInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\r\n }\r\n\r\n if (shape.ir && (shape.ir.ix === value || value === 'ADBE Vector Star Inner Radius')) {\r\n return interfaceFunction.innerRadius;\r\n }\r\n\r\n if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.or.setGroupProperty(PropertyInterface('Outer Radius', _propertyGroup));\r\n prop.os.setGroupProperty(PropertyInterface('Outer Roundness', _propertyGroup));\r\n prop.pt.setGroupProperty(PropertyInterface('Points', _propertyGroup));\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n\r\n if (shape.ir) {\r\n prop.ir.setGroupProperty(PropertyInterface('Inner Radius', _propertyGroup));\r\n prop.is.setGroupProperty(PropertyInterface('Inner Roundness', _propertyGroup));\r\n }\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n rotation: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n points: {\r\n get: ExpressionPropertyInterface(prop.pt)\r\n },\r\n outerRadius: {\r\n get: ExpressionPropertyInterface(prop.or)\r\n },\r\n outerRoundness: {\r\n get: ExpressionPropertyInterface(prop.os)\r\n },\r\n innerRadius: {\r\n get: ExpressionPropertyInterface(prop.ir)\r\n },\r\n innerRoundness: {\r\n get: ExpressionPropertyInterface(prop.is)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function rectInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.p.ix === value) {\r\n return interfaceFunction.position;\r\n }\r\n\r\n if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\r\n }\r\n\r\n if (shape.s.ix === value || value === 'Size' || value === 'ADBE Vector Rect Size') {\r\n return interfaceFunction.size;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view.sh.ty === 'tm' ? view.sh.prop : view.sh;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.p.setGroupProperty(PropertyInterface('Position', _propertyGroup));\r\n prop.s.setGroupProperty(PropertyInterface('Size', _propertyGroup));\r\n prop.r.setGroupProperty(PropertyInterface('Rotation', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n position: {\r\n get: ExpressionPropertyInterface(prop.p)\r\n },\r\n roundness: {\r\n get: ExpressionPropertyInterface(prop.r)\r\n },\r\n size: {\r\n get: ExpressionPropertyInterface(prop.s)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function roundedInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.r.ix === value || value === 'Round Corners 1') {\r\n return interfaceFunction.radius;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n function repeaterInterfaceFactory(shape, view, propertyGroup) {\r\n function interfaceFunction(value) {\r\n if (shape.c.ix === value || value === 'Copies') {\r\n return interfaceFunction.copies;\r\n }\r\n\r\n if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.c.setGroupProperty(PropertyInterface('Copies', _propertyGroup));\r\n prop.o.setGroupProperty(PropertyInterface('Offset', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n copies: {\r\n get: ExpressionPropertyInterface(prop.c)\r\n },\r\n offset: {\r\n get: ExpressionPropertyInterface(prop.o)\r\n },\r\n _name: {\r\n value: shape.nm\r\n }\r\n });\r\n interfaceFunction.mn = shape.mn;\r\n return interfaceFunction;\r\n }\r\n\r\n return function (shapes, view, propertyGroup) {\r\n var interfaces;\r\n\r\n function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n\r\n return interfaces[value - 1];\r\n }\r\n\r\n var i = 0;\r\n var len = interfaces.length;\r\n\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n function parentGroupWrapper() {\r\n return propertyGroup;\r\n }\r\n\r\n _interfaceFunction.propertyGroup = propertyGroupFactory(_interfaceFunction, parentGroupWrapper);\r\n interfaces = iterateElements(shapes, view, _interfaceFunction.propertyGroup);\r\n _interfaceFunction.numProperties = interfaces.length;\r\n _interfaceFunction._name = 'Contents';\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var TextExpressionInterface = function () {\r\n return function (elem) {\r\n var _prevValue;\r\n\r\n var _sourceText;\r\n\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function get() {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\r\n\r\n if (stringValue !== _prevValue) {\r\n _prevValue = elem.textProperty.currentData.t;\r\n _sourceText = new String(stringValue); // eslint-disable-line no-new-wrappers\r\n // If stringValue is an empty string, eval returns undefined, so it has to be returned as a String primitive\r\n\r\n _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n\r\n Object.defineProperty(_sourceText, 'style', {\r\n get: function get() {\r\n return {\r\n fillColor: elem.textProperty.currentData.fc\r\n };\r\n }\r\n });\r\n }\r\n\r\n return _sourceText;\r\n }\r\n });\r\n return _thisLayerFunction;\r\n };\r\n }();\r\n\r\n function _typeof$2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$2 = function _typeof(obj) { return typeof obj; }; } else { _typeof$2 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$2(obj); }\r\n\r\n var FootageInterface = function () {\r\n var outlineInterfaceFactory = function outlineInterfaceFactory(elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n\r\n if (_typeof$2(currentProperty) === 'object') {\r\n return searchProperty;\r\n }\r\n\r\n return currentProperty;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n return init;\r\n };\r\n\r\n var dataInterfaceFactory = function dataInterfaceFactory(elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\r\n }\r\n\r\n return null;\r\n }\r\n\r\n interfaceFunction._name = 'Outline';\r\n interfaceFunction.outlineInterface = outlineInterfaceFactory(elem);\r\n return interfaceFunction;\r\n };\r\n\r\n return function (elem) {\r\n function _interfaceFunction(value) {\r\n if (value === 'Data') {\r\n return _interfaceFunction.dataInterface;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n _interfaceFunction._name = 'Data';\r\n _interfaceFunction.dataInterface = dataInterfaceFactory(elem);\r\n return _interfaceFunction;\r\n };\r\n }();\r\n\r\n var interfaces = {\r\n layer: LayerExpressionInterface,\r\n effects: EffectsExpressionInterface,\r\n comp: CompExpressionInterface,\r\n shape: ShapeExpressionInterface,\r\n text: TextExpressionInterface,\r\n footage: FootageInterface\r\n };\r\n\r\n function getInterface(type) {\r\n return interfaces[type] || null;\r\n }\r\n\r\n function _typeof$1(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof$1 = function _typeof(obj) { return typeof obj; }; } else { _typeof$1 = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof$1(obj); }\r\n\r\n /* eslint-disable */\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 function seedRandom(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,\r\n // each RC4 output is 0 <= x < 256\r\n chunks = 6,\r\n // at least six RC4 outputs for each double\r\n digits = 52,\r\n // there are 52 significant digits in a double\r\n rngname = 'random',\r\n // 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 // seedrandom()\r\n // This is the seedrandom function described above.\r\n //\r\n\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = options === true ? {\r\n entropy: true\r\n } : options || {}; // Flatten the seed string or build one from local entropy if needed.\r\n\r\n var shortseed = mixkey(flatten(options.entropy ? [seed, tostring(pool)] : seed === null ? autoseed() : seed, 3), key); // Use the seed to initialize an ARC4 generator.\r\n\r\n var arc4 = new ARC4(key); // 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\r\n var prng = function prng() {\r\n var n = arc4.g(chunks),\r\n // Start with a numerator n < 2 ^ 48\r\n d = startdenom,\r\n // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n\r\n while (n < significance) {\r\n // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n\r\n d *= width; // denominator and generating a\r\n\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n\r\n while (n >= overflow) {\r\n // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n\r\n d /= 2; // right using integer math until\r\n\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function () {\r\n return arc4.g(4) | 0;\r\n };\r\n\r\n prng.quick = function () {\r\n return arc4.g(4) / 0x100000000;\r\n };\r\n\r\n prng[\"double\"] = prng; // Mix the randomness into accumulated entropy.\r\n\r\n mixkey(tostring(arc4.S), pool); // Calling convention: what to return as a function of prng, seed, is_math.\r\n\r\n return (options.pass || callback || 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) {\r\n copy(state, arc4);\r\n } // Only provide the .state method if requested via options.state.\r\n\r\n\r\n prng.state = function () {\r\n return copy(arc4, {});\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\r\n\r\n if (is_math_call) {\r\n math[rngname] = prng;\r\n return seed;\r\n } // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(prng, shortseed, 'global' in options ? options.global : this == math, options.state);\r\n }\r\n\r\n math['seed' + rngname] = seedrandom; //\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\r\n function ARC4(key) {\r\n var t,\r\n keylen = key.length,\r\n me = this,\r\n i = 0,\r\n j = me.i = me.j = 0,\r\n s = me.S = []; // The empty key [] is treated as [0].\r\n\r\n if (!keylen) {\r\n key = [keylen++];\r\n } // Set up S using the standard key scheduling algorithm.\r\n\r\n\r\n while (i < width) {\r\n s[i] = i++;\r\n }\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 } // The \"g\" method returns the next (count) outputs as one number.\r\n\r\n\r\n me.g = function (count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t,\r\n r = 0,\r\n i = me.i,\r\n j = me.j,\r\n s = me.S;\r\n\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\r\n me.i = i;\r\n me.j = j;\r\n return r; // 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 // copy()\r\n // Copies internal state of ARC4 to or from a plain object.\r\n //\r\n\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 // flatten()\r\n // Converts an object tree to nested arrays of strings.\r\n //\r\n\r\n\r\n function flatten(obj, depth) {\r\n var result = [],\r\n typ = _typeof$1(obj),\r\n prop;\r\n\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try {\r\n result.push(flatten(obj[prop], depth - 1));\r\n } catch (e) {}\r\n }\r\n }\r\n\r\n return result.length ? result : typ == 'string' ? obj : obj + '\\0';\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\r\n\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '',\r\n smear,\r\n j = 0;\r\n\r\n while (j < stringseed.length) {\r\n key[mask & j] = mask & (smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++);\r\n }\r\n\r\n return tostring(key);\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\r\n\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) {\r\n return tostring(nodecrypto.randomBytes(width));\r\n }\r\n\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 // tostring()\r\n // Converts an array of charcodes to a string\r\n //\r\n\r\n\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\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\r\n\r\n mixkey(math.random(), pool); //\r\n // Nodejs and AMD support: export the implementation as a module using\r\n // either convention.\r\n //\r\n // End anonymous scope, and pass initial values.\r\n }\r\n\r\n ;\r\n\r\n function initialize$2(BMMath) {\r\n seedRandom([], BMMath);\r\n }\r\n\r\n var propTypes = {\r\n SHAPE: 'shape'\r\n };\r\n\r\n function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\r\n\r\n var ExpressionManager = function () {\r\n 'use strict';\r\n\r\n var ob = {};\r\n var Math = BMMath;\r\n var window = null;\r\n var document = null;\r\n var XMLHttpRequest = null;\r\n var fetch = null;\r\n var frames = null;\r\n initialize$2(BMMath);\r\n\r\n function $bm_isInstanceOfArray(arr) {\r\n return arr.constructor === Array || arr.constructor === Float32Array;\r\n }\r\n\r\n function isNumerable(tOfV, v) {\r\n return tOfV === 'number' || tOfV === 'boolean' || tOfV === 'string' || v instanceof Number;\r\n }\r\n\r\n function $bm_neg(a) {\r\n var tOfA = _typeof(a);\r\n\r\n if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n if (a.propType) {\r\n return a.v;\r\n }\r\n\r\n return -a;\r\n }\r\n\r\n var easeInBez = BezierFactory.getBezierEasing(0.333, 0, 0.833, 0.833, 'easeIn').get;\r\n var easeOutBez = BezierFactory.getBezierEasing(0.167, 0.167, 0.667, 1, 'easeOut').get;\r\n var easeInOutBez = BezierFactory.getBezierEasing(0.33, 0, 0.667, 1, 'easeInOut').get;\r\n\r\n function sum(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] += b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a + b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] + b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a - b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n a = a.slice(0);\r\n a[0] -= b;\r\n return a;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n b = b.slice(0);\r\n b[0] = a - b[0];\r\n return b;\r\n }\r\n\r\n if ($bm_isInstanceOfArray(a) && $bm_isInstanceOfArray(b)) {\r\n var i = 0;\r\n var lenA = a.length;\r\n var lenB = b.length;\r\n var retArr = [];\r\n\r\n while (i < lenA || i < lenB) {\r\n if ((typeof a[i] === 'number' || a[i] instanceof Number) && (typeof b[i] === 'number' || b[i] instanceof Number)) {\r\n retArr[i] = a[i] - b[i];\r\n } else {\r\n retArr[i] = b[i] === undefined ? a[i] : a[i] || b[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return retArr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a * b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = _typeof(a);\r\n\r\n var tOfB = _typeof(b);\r\n\r\n var arr;\r\n\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n\r\n var i;\r\n var len;\r\n\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n\r\n return a % b;\r\n }\r\n\r\n var $bm_sum = sum;\r\n var $bm_sub = sub;\r\n var $bm_mul = mul;\r\n var $bm_div = div;\r\n var $bm_mod = mod;\r\n\r\n function clamp(num, min, max) {\r\n if (min > max) {\r\n var mm = max;\r\n max = min;\r\n min = mm;\r\n }\r\n\r\n return Math.min(Math.max(num, min), max);\r\n }\r\n\r\n function radiansToDegrees(val) {\r\n return val / degToRads;\r\n }\r\n\r\n var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n\r\n var degrees_to_radians = radiansToDegrees;\r\n var helperLengthArray = [0, 0, 0, 0, 0, 0];\r\n\r\n function length(arr1, arr2) {\r\n if (typeof arr1 === 'number' || arr1 instanceof Number) {\r\n arr2 = arr2 || 0;\r\n return Math.abs(arr1 - arr2);\r\n }\r\n\r\n if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\r\n }\r\n\r\n return Math.sqrt(addedLength);\r\n }\r\n\r\n function normalize(vec) {\r\n return div(vec, length(vec));\r\n }\r\n\r\n function rgbToHsl(val) {\r\n var r = val[0];\r\n var g = val[1];\r\n var b = val[2];\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var h;\r\n var s;\r\n var l = (max + min) / 2;\r\n\r\n if (max === min) {\r\n h = 0; // achromatic\r\n\r\n s = 0; // achromatic\r\n } else {\r\n var d = max - min;\r\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\r\n\r\n switch (max) {\r\n case r:\r\n h = (g - b) / d + (g < b ? 6 : 0);\r\n break;\r\n\r\n case g:\r\n h = (b - r) / d + 2;\r\n break;\r\n\r\n case b:\r\n h = (r - g) / d + 4;\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n h /= 6;\r\n }\r\n\r\n return [h, s, l, val[3]];\r\n }\r\n\r\n function hue2rgb(p, q, t) {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n }\r\n\r\n function hslToRgb(val) {\r\n var h = val[0];\r\n var s = val[1];\r\n var l = val[2];\r\n var r;\r\n var g;\r\n var b;\r\n\r\n if (s === 0) {\r\n r = l; // achromatic\r\n\r\n b = l; // achromatic\r\n\r\n g = l; // achromatic\r\n } else {\r\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hue2rgb(p, q, h + 1 / 3);\r\n g = hue2rgb(p, q, h);\r\n b = hue2rgb(p, q, h - 1 / 3);\r\n }\r\n\r\n return [r, g, b, val[3]];\r\n }\r\n\r\n function linear(t, tMin, tMax, value1, value2) {\r\n if (value1 === undefined || value2 === undefined) {\r\n value1 = tMin;\r\n value2 = tMax;\r\n tMin = 0;\r\n tMax = 1;\r\n }\r\n\r\n if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n\r\n if (t <= tMin) {\r\n return value1;\r\n }\r\n\r\n if (t >= tMax) {\r\n return value2;\r\n }\r\n\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n function random(min, max) {\r\n if (max === undefined) {\r\n if (min === undefined) {\r\n min = 0;\r\n max = 1;\r\n } else {\r\n max = min;\r\n min = undefined;\r\n }\r\n }\r\n\r\n if (max.length) {\r\n var i;\r\n var len = max.length;\r\n\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n if (min === undefined) {\r\n min = 0;\r\n }\r\n\r\n var rndm = BMMath.random();\r\n return min + rndm * (max - min);\r\n }\r\n\r\n function createPath(points, inTangents, outTangents, closed) {\r\n var i;\r\n var len = points.length;\r\n var path = shapePool.newElement();\r\n path.setPathData(!!closed, len);\r\n var arrPlaceholder = [0, 0];\r\n var inVertexPoint;\r\n var outVertexPoint;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n inVertexPoint = inTangents && inTangents[i] ? inTangents[i] : arrPlaceholder;\r\n outVertexPoint = outTangents && outTangents[i] ? outTangents[i] : arrPlaceholder;\r\n path.setTripleAt(points[i][0], points[i][1], outVertexPoint[0] + points[i][0], outVertexPoint[1] + points[i][1], inVertexPoint[0] + points[i][0], inVertexPoint[1] + points[i][1], i, true);\r\n }\r\n\r\n return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n // Bail out if we don't want expressions\r\n function noOp(_value) {\r\n return _value;\r\n }\r\n\r\n if (!elem.globalData.renderConfig.runExpressions) {\r\n return noOp;\r\n }\r\n\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n\r\n var _needsRandom = val.indexOf('random') !== -1;\r\n\r\n var elemType = elem.data.ty;\r\n var transform;\r\n var $bm_transform;\r\n var content;\r\n var effect;\r\n var thisProperty = property;\r\n thisProperty.valueAtTime = thisProperty.getValueAtTime;\r\n Object.defineProperty(thisProperty, 'value', {\r\n get: function get() {\r\n return thisProperty.v;\r\n }\r\n });\r\n elem.comp.frameDuration = 1 / elem.comp.globalData.frameRate;\r\n elem.comp.displayStartTime = 0;\r\n var inPoint = elem.data.ip / elem.comp.globalData.frameRate;\r\n var outPoint = elem.data.op / elem.comp.globalData.frameRate;\r\n var width = elem.data.sw ? elem.data.sw : 0;\r\n var height = elem.data.sh ? elem.data.sh : 0;\r\n var name = elem.data.nm;\r\n var loopIn;\r\n var loop_in;\r\n var loopOut;\r\n var loop_out;\r\n var smooth;\r\n var toWorld;\r\n var fromWorld;\r\n var fromComp;\r\n var toComp;\r\n var fromCompToSurface;\r\n var position;\r\n var rotation;\r\n var anchorPoint;\r\n var scale;\r\n var thisLayer;\r\n var thisComp;\r\n var mask;\r\n var valueAtTime;\r\n var velocityAtTime;\r\n var scoped_bm_rt; // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n\r\n var numKeys = property.kf ? data.k.length : 0;\r\n var active = !this.data || this.data.hd !== true;\r\n\r\n var wiggle = function wiggle(freq, amp) {\r\n var iWiggle;\r\n var j;\r\n var lenWiggle = this.pv.length ? this.pv.length : 1;\r\n var addedAmps = createTypedArray('float32', lenWiggle);\r\n freq = 5;\r\n var iterations = Math.floor(time * freq);\r\n iWiggle = 0;\r\n j = 0;\r\n\r\n while (iWiggle < iterations) {\r\n // var rnd = BMMath.random();\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n addedAmps[j] += -amp + amp * 2 * BMMath.random(); // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n\r\n iWiggle += 1;\r\n } // var rnd2 = BMMath.random();\r\n\r\n\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\r\n\r\n if (lenWiggle > 1) {\r\n for (j = 0; j < lenWiggle; j += 1) {\r\n arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp * 2 * BMMath.random()) * perc; // arr[j] = this.pv[j] + addedAmps[j] + (-amp + amp*2*rnd)*perc;\r\n // arr[i] = this.pv[i] + addedAmp + amp1*perc + amp2*(1-perc);\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return this.pv + addedAmps[0] + (-amp + amp * 2 * BMMath.random()) * perc;\r\n }.bind(this);\r\n\r\n if (thisProperty.loopIn) {\r\n loopIn = thisProperty.loopIn.bind(thisProperty);\r\n loop_in = loopIn;\r\n }\r\n\r\n if (thisProperty.loopOut) {\r\n loopOut = thisProperty.loopOut.bind(thisProperty);\r\n loop_out = loopOut;\r\n }\r\n\r\n if (thisProperty.smooth) {\r\n smooth = thisProperty.smooth.bind(thisProperty);\r\n }\r\n\r\n function loopInDuration(type, duration) {\r\n return loopIn(type, duration, true);\r\n }\r\n\r\n function loopOutDuration(type, duration) {\r\n return loopOut(type, duration, true);\r\n }\r\n\r\n if (this.getValueAtTime) {\r\n valueAtTime = this.getValueAtTime.bind(this);\r\n }\r\n\r\n if (this.getVelocityAtTime) {\r\n velocityAtTime = this.getVelocityAtTime.bind(this);\r\n }\r\n\r\n var comp = elem.comp.globalData.projectInterface.bind(elem.comp.globalData.projectInterface);\r\n\r\n function lookAt(elem1, elem2) {\r\n var fVec = [elem2[0] - elem1[0], elem2[1] - elem1[1], elem2[2] - elem1[2]];\r\n var pitch = Math.atan2(fVec[0], Math.sqrt(fVec[1] * fVec[1] + fVec[2] * fVec[2])) / degToRads;\r\n var yaw = -Math.atan2(fVec[1], fVec[2]) / degToRads;\r\n return [yaw, pitch, 0];\r\n }\r\n\r\n function easeOut(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function easeIn(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function ease(t, tMin, tMax, val1, val2) {\r\n return applyEase(easeInOutBez, t, tMin, tMax, val1, val2);\r\n }\r\n\r\n function applyEase(fn, t, tMin, tMax, val1, val2) {\r\n if (val1 === undefined) {\r\n val1 = tMin;\r\n val2 = tMax;\r\n } else {\r\n t = (t - tMin) / (tMax - tMin);\r\n }\r\n\r\n if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n\r\n var mult = fn(t);\r\n\r\n if ($bm_isInstanceOfArray(val1)) {\r\n var iKey;\r\n var lenKey = val1.length;\r\n var arr = createTypedArray('float32', lenKey);\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n\r\n return arr;\r\n }\r\n\r\n return (val2 - val1) * mult + val1;\r\n }\r\n\r\n function nearestKey(time) {\r\n var iKey;\r\n var lenKey = data.k.length;\r\n var index;\r\n var keyTime;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n index = 0;\r\n keyTime = 0;\r\n } else {\r\n index = -1;\r\n time *= elem.comp.globalData.frameRate;\r\n\r\n if (time < data.k[0].t) {\r\n index = 1;\r\n keyTime = data.k[0].t;\r\n } else {\r\n for (iKey = 0; iKey < lenKey - 1; iKey += 1) {\r\n if (time === data.k[iKey].t) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n break;\r\n } else if (time > data.k[iKey].t && time < data.k[iKey + 1].t) {\r\n if (time - data.k[iKey].t > data.k[iKey + 1].t - time) {\r\n index = iKey + 2;\r\n keyTime = data.k[iKey + 1].t;\r\n } else {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (index === -1) {\r\n index = iKey + 1;\r\n keyTime = data.k[iKey].t;\r\n }\r\n }\r\n }\r\n\r\n var obKey = {};\r\n obKey.index = index;\r\n obKey.time = keyTime / elem.comp.globalData.frameRate;\r\n return obKey;\r\n }\r\n\r\n function key(ind) {\r\n var obKey;\r\n var iKey;\r\n var lenKey;\r\n\r\n if (!data.k.length || typeof data.k[0] === 'number') {\r\n throw new Error('The property has no keyframe at index ' + ind);\r\n }\r\n\r\n ind -= 1;\r\n obKey = {\r\n time: data.k[ind].t / elem.comp.globalData.frameRate,\r\n value: []\r\n };\r\n var arr = Object.prototype.hasOwnProperty.call(data.k[ind], 's') ? data.k[ind].s : data.k[ind - 1].e;\r\n lenKey = arr.length;\r\n\r\n for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n obKey[iKey] = arr[iKey];\r\n obKey.value[iKey] = arr[iKey];\r\n }\r\n\r\n return obKey;\r\n }\r\n\r\n function framesToTime(fr, fps) {\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return fr / fps;\r\n }\r\n\r\n function timeToFrames(t, fps) {\r\n if (!t && t !== 0) {\r\n t = time;\r\n }\r\n\r\n if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\r\n }\r\n\r\n return t * fps;\r\n }\r\n\r\n function seedRandom(seed) {\r\n BMMath.seedrandom(randSeed + seed);\r\n }\r\n\r\n function sourceRectAtTime() {\r\n return elem.sourceRectAtTime();\r\n }\r\n\r\n function substring(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substring(init);\r\n }\r\n\r\n return value.substring(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function substr(init, end) {\r\n if (typeof value === 'string') {\r\n if (end === undefined) {\r\n return value.substr(init);\r\n }\r\n\r\n return value.substr(init, end);\r\n }\r\n\r\n return '';\r\n }\r\n\r\n function posterizeTime(framesPerSecond) {\r\n time = framesPerSecond === 0 ? 0 : Math.floor(time * framesPerSecond) / framesPerSecond;\r\n value = valueAtTime(time);\r\n }\r\n\r\n var time;\r\n var velocity;\r\n var value;\r\n var text;\r\n var textIndex;\r\n var textTotal;\r\n var selectorValue;\r\n var index = elem.data.ind;\r\n var hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n var parent;\r\n var randSeed = Math.floor(Math.random() * 1000000);\r\n var globalData = elem.globalData;\r\n\r\n function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\r\n }\r\n\r\n if (this.propType === 'textSelector') {\r\n textIndex = this.textIndex;\r\n textTotal = this.textTotal;\r\n selectorValue = this.selectorValue;\r\n }\r\n\r\n if (!thisLayer) {\r\n text = elem.layerInterface.text;\r\n thisLayer = elem.layerInterface;\r\n thisComp = elem.comp.compInterface;\r\n toWorld = thisLayer.toWorld.bind(thisLayer);\r\n fromWorld = thisLayer.fromWorld.bind(thisLayer);\r\n fromComp = thisLayer.fromComp.bind(thisLayer);\r\n toComp = thisLayer.toComp.bind(thisLayer);\r\n mask = thisLayer.mask ? thisLayer.mask.bind(thisLayer) : null;\r\n fromCompToSurface = fromComp;\r\n }\r\n\r\n if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\r\n\r\n if (transform) {\r\n anchorPoint = transform.anchorPoint;\r\n /* position = transform.position;\r\n rotation = transform.rotation;\r\n scale = transform.scale; */\r\n }\r\n }\r\n\r\n if (elemType === 4 && !content) {\r\n content = thisLayer('ADBE Root Vectors Group');\r\n }\r\n\r\n if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId; // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n // Changed this to a ternary operation because Rollup failed compiling it correctly\r\n\r\n scoped_bm_rt = scoped_bm_rt.propType === propTypes.SHAPE ? scoped_bm_rt.v : scoped_bm_rt;\r\n return scoped_bm_rt;\r\n } // Bundlers will see these as dead code and unless we reference them\r\n\r\n\r\n executeExpression.__preventDeadCodeRemoval = [$bm_transform, anchorPoint, time, velocity, inPoint, outPoint, width, height, name, loop_in, loop_out, smooth, toComp, fromCompToSurface, toWorld, fromWorld, mask, position, rotation, scale, thisComp, numKeys, active, wiggle, loopInDuration, loopOutDuration, comp, lookAt, easeOut, easeIn, ease, nearestKey, key, text, textIndex, textTotal, selectorValue, framesToTime, timeToFrames, sourceRectAtTime, substring, substr, posterizeTime, index, globalData];\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n ob.__preventDeadCodeRemoval = [window, document, XMLHttpRequest, fetch, frames, $bm_neg, add, $bm_sum, $bm_sub, $bm_mul, $bm_div, $bm_mod, clamp, radians_to_degrees, degreesToRadians, degrees_to_radians, normalize, rgbToHsl, hslToRgb, linear, random, createPath];\r\n return ob;\r\n }();\r\n\r\n var expressionHelpers = function () {\r\n function searchExpressions(elem, data, prop) {\r\n if (data.x) {\r\n prop.k = true;\r\n prop.x = true;\r\n prop.initiateExpression = ExpressionManager.initiateExpression;\r\n prop.effectsSequence.push(prop.initiateExpression(elem, data, prop).bind(prop));\r\n }\r\n }\r\n\r\n function getValueAtTime(frameNum) {\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastFrame) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastFrame < frameNum ? this._cachingAtTime.lastIndex : 0;\r\n this._cachingAtTime.value = this.interpolateValue(frameNum, this._cachingAtTime);\r\n this._cachingAtTime.lastFrame = frameNum;\r\n }\r\n\r\n return this._cachingAtTime.value;\r\n }\r\n\r\n function getSpeedAtTime(frameNum) {\r\n var delta = -0.01;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var speed = 0;\r\n\r\n if (v1.length) {\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\r\n }\r\n\r\n return speed;\r\n }\r\n\r\n function getVelocityAtTime(frameNum) {\r\n if (this.vel !== undefined) {\r\n return this.vel;\r\n }\r\n\r\n var delta = -0.001; // frameNum += this.elem.data.st;\r\n\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\r\n\r\n for (i = 0; i < v1.length; i += 1) {\r\n // removing frameRate\r\n // if needed, don't add it here\r\n // velocity[i] = this.elem.globalData.frameRate*((v2[i] - v1[i])/delta);\r\n velocity[i] = (v2[i] - v1[i]) / delta;\r\n }\r\n } else {\r\n velocity = (v2 - v1) / delta;\r\n }\r\n\r\n return velocity;\r\n }\r\n\r\n function getStaticValueAtTime() {\r\n return this.pv;\r\n }\r\n\r\n function setGroupProperty(propertyGroup) {\r\n this.propertyGroup = propertyGroup;\r\n }\r\n\r\n return {\r\n searchExpressions: searchExpressions,\r\n getSpeedAtTime: getSpeedAtTime,\r\n getVelocityAtTime: getVelocityAtTime,\r\n getValueAtTime: getValueAtTime,\r\n getStaticValueAtTime: getStaticValueAtTime,\r\n setGroupProperty: setGroupProperty\r\n };\r\n }();\r\n\r\n function addPropertyDecorator() {\r\n function loopOut(type, duration, durationFlag) {\r\n if (!this.k || !this.keyframes) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var lastKeyFrame = keyframes[keyframes.length - 1].t;\r\n\r\n if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n firstKeyFrame = keyframes[keyframes.length - 1 - duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, lastKeyFrame - this.elem.data.ip);\r\n } else {\r\n cycleDuration = Math.abs(lastKeyFrame - this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (iterations % 2 !== 0) {\r\n return this.getValueAtTime((cycleDuration - (currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n\r\n var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return (endV - initV) * repeats + current;\r\n } else if (type === 'continue') {\r\n var lastValue = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextLastValue = this.getValueAtTime((lastKeyFrame - 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = lastValue[i] + (lastValue[i] - nextLastValue[i]) * ((currentFrame - lastKeyFrame) / this.comp.globalData.frameRate) / 0.0005; // eslint-disable-line\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return lastValue + (lastValue - nextLastValue) * ((currentFrame - lastKeyFrame) / 0.001);\r\n }\r\n\r\n return this.getValueAtTime(((currentFrame - firstKeyFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n type = type ? type.toLowerCase() : '';\r\n var currentFrame = this.comp.renderedFrame;\r\n var keyframes = this.keyframes;\r\n var firstKeyFrame = keyframes[0].t;\r\n\r\n if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\r\n }\r\n\r\n lastKeyFrame = keyframes[duration].t;\r\n cycleDuration = lastKeyFrame - firstKeyFrame;\r\n } else {\r\n if (!duration) {\r\n cycleDuration = Math.max(0, this.elem.data.op - firstKeyFrame);\r\n } else {\r\n cycleDuration = Math.abs(this.elem.comp.globalData.frameRate * duration);\r\n }\r\n\r\n lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n\r\n var i;\r\n var len;\r\n var ret;\r\n\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\r\n\r\n if (iterations % 2 === 0) {\r\n return this.getValueAtTime(((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n } else if (type === 'offset') {\r\n var initV = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var endV = this.getValueAtTime(lastKeyFrame / this.comp.globalData.frameRate, 0);\r\n var current = this.getValueAtTime((cycleDuration - (firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame) / this.comp.globalData.frameRate, 0);\r\n var repeats = Math.floor((firstKeyFrame - currentFrame) / cycleDuration) + 1;\r\n\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return current - (endV - initV) * repeats;\r\n } else if (type === 'continue') {\r\n var firstValue = this.getValueAtTime(firstKeyFrame / this.comp.globalData.frameRate, 0);\r\n var nextFirstValue = this.getValueAtTime((firstKeyFrame + 0.001) / this.comp.globalData.frameRate, 0);\r\n\r\n if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = firstValue[i] + (firstValue[i] - nextFirstValue[i]) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n return firstValue + (firstValue - nextFirstValue) * (firstKeyFrame - currentFrame) / 0.001;\r\n }\r\n\r\n return this.getValueAtTime((cycleDuration - ((firstKeyFrame - currentFrame) % cycleDuration + firstKeyFrame)) / this.comp.globalData.frameRate, 0); // eslint-disable-line\r\n }\r\n\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n\r\n if (samples <= 1) {\r\n return this.pv;\r\n }\r\n\r\n var currentTime = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n var initFrame = currentTime - width;\r\n var endFrame = currentTime + width;\r\n var sampleFrequency = samples > 1 ? (endFrame - initFrame) / (samples - 1) : 1;\r\n var i = 0;\r\n var j = 0;\r\n var value;\r\n\r\n if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n\r\n var sampleValue;\r\n\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] += sampleValue[j];\r\n }\r\n } else {\r\n value += sampleValue;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (this.pv.length) {\r\n for (j = 0; j < this.pv.length; j += 1) {\r\n value[j] /= samples;\r\n }\r\n } else {\r\n value /= samples;\r\n }\r\n\r\n return value;\r\n }\r\n\r\n function getTransformValueAtTime(time) {\r\n if (!this._transformCachingAtTime) {\r\n this._transformCachingAtTime = {\r\n v: new Matrix()\r\n };\r\n } /// /\r\n\r\n\r\n var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(-anchor[0] * this.a.mult, -anchor[1] * this.a.mult, anchor[2] * this.a.mult);\r\n }\r\n\r\n if (this.appliedTransformations < 2) {\r\n var scale = this.s.getValueAtTime(time);\r\n matrix.scale(scale[0] * this.s.mult, scale[1] * this.s.mult, scale[2] * this.s.mult);\r\n }\r\n\r\n if (this.sk && this.appliedTransformations < 3) {\r\n var skew = this.sk.getValueAtTime(time);\r\n var skewAxis = this.sa.getValueAtTime(time);\r\n matrix.skewFromAxis(-skew * this.sk.mult, skewAxis * this.sa.mult);\r\n }\r\n\r\n if (this.r && this.appliedTransformations < 4) {\r\n var rotation = this.r.getValueAtTime(time);\r\n matrix.rotate(-rotation * this.r.mult);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n var rotationZ = this.rz.getValueAtTime(time);\r\n var rotationY = this.ry.getValueAtTime(time);\r\n var rotationX = this.rx.getValueAtTime(time);\r\n var orientation = this.or.getValueAtTime(time);\r\n matrix.rotateZ(-rotationZ * this.rz.mult).rotateY(rotationY * this.ry.mult).rotateX(rotationX * this.rx.mult).rotateZ(-orientation[2] * this.or.mult).rotateY(orientation[1] * this.or.mult).rotateX(orientation[0] * this.or.mult);\r\n }\r\n\r\n if (this.data.p && this.data.p.s) {\r\n var positionX = this.px.getValueAtTime(time);\r\n var positionY = this.py.getValueAtTime(time);\r\n\r\n if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, -positionZ * this.pz.mult);\r\n } else {\r\n matrix.translate(positionX * this.px.mult, positionY * this.py.mult, 0);\r\n }\r\n } else {\r\n var position = this.p.getValueAtTime(time);\r\n matrix.translate(position[0] * this.p.mult, position[1] * this.p.mult, -position[2] * this.p.mult);\r\n }\r\n\r\n return matrix; /// /\r\n }\r\n\r\n function getTransformStaticValueAtTime() {\r\n return this.v.clone(new Matrix());\r\n }\r\n\r\n var getTransformProperty = TransformPropertyFactory.getTransformProperty;\r\n\r\n TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\r\n\r\n if (prop.dynamicProperties.length) {\r\n prop.getValueAtTime = getTransformValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = getTransformStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container); // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\r\n\r\n if (prop.kf) {\r\n prop.getValueAtTime = expressionHelpers.getValueAtTime.bind(prop);\r\n } else {\r\n prop.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(prop);\r\n }\r\n\r\n prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n prop.loopOut = loopOut;\r\n prop.loopIn = loopIn;\r\n prop.smooth = smooth;\r\n prop.getVelocityAtTime = expressionHelpers.getVelocityAtTime.bind(prop);\r\n prop.getSpeedAtTime = expressionHelpers.getSpeedAtTime.bind(prop);\r\n prop.numKeys = data.a === 1 ? data.k.length : 0;\r\n prop.propertyIndex = data.ix;\r\n var value = 0;\r\n\r\n if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\r\n }\r\n\r\n prop._cachingAtTime = {\r\n lastFrame: initialDefaultFrame,\r\n lastIndex: 0,\r\n value: value\r\n };\r\n expressionHelpers.searchExpressions(elem, data, prop);\r\n\r\n if (prop.k) {\r\n container.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n\r\n function getShapeValueAtTime(frameNum) {\r\n // For now this caching object is created only when needed instead of creating it when the shape is initialized.\r\n if (!this._cachingAtTime) {\r\n this._cachingAtTime = {\r\n shapeValue: shapePool.clone(this.pv),\r\n lastIndex: 0,\r\n lastTime: initialDefaultFrame\r\n };\r\n }\r\n\r\n frameNum *= this.elem.globalData.frameRate;\r\n frameNum -= this.offsetTime;\r\n\r\n if (frameNum !== this._cachingAtTime.lastTime) {\r\n this._cachingAtTime.lastIndex = this._cachingAtTime.lastTime < frameNum ? this._caching.lastIndex : 0;\r\n this._cachingAtTime.lastTime = frameNum;\r\n this.interpolateShape(frameNum, this._cachingAtTime.shapeValue, this._cachingAtTime);\r\n }\r\n\r\n return this._cachingAtTime.shapeValue;\r\n }\r\n\r\n var ShapePropertyConstructorFunction = ShapePropertyFactory.getConstructorFunction();\r\n var KeyframedShapePropertyConstructorFunction = ShapePropertyFactory.getKeyframedConstructorFunction();\r\n\r\n function ShapeExpressions() {}\r\n\r\n ShapeExpressions.prototype = {\r\n vertices: function vertices(prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n var i;\r\n var len = shapePath._length;\r\n var vertices = shapePath[prop];\r\n var points = shapePath.v;\r\n var arr = createSizedArray(len);\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (prop === 'i' || prop === 'o') {\r\n arr[i] = [vertices[i][0] - points[i][0], vertices[i][1] - points[i][1]];\r\n } else {\r\n arr[i] = [vertices[i][0], vertices[i][1]];\r\n }\r\n }\r\n\r\n return arr;\r\n },\r\n points: function points(time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function inTangents(time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function outTangents(time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function isClosed() {\r\n return this.v.c;\r\n },\r\n pointOnPath: function pointOnPath(perc, time) {\r\n var shapePath = this.v;\r\n\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\r\n }\r\n\r\n if (!this._segmentsLength) {\r\n this._segmentsLength = bez.getSegmentsLength(shapePath);\r\n }\r\n\r\n var segmentsLength = this._segmentsLength;\r\n var lengths = segmentsLength.lengths;\r\n var lengthPos = segmentsLength.totalLength * perc;\r\n var i = 0;\r\n var len = lengths.length;\r\n var accumulatedLength = 0;\r\n var pt;\r\n\r\n while (i < len) {\r\n if (accumulatedLength + lengths[i].addedLength > lengthPos) {\r\n var initIndex = i;\r\n var endIndex = shapePath.c && i === len - 1 ? 0 : i + 1;\r\n var segmentPerc = (lengthPos - accumulatedLength) / lengths[i].addedLength;\r\n pt = bez.getPointInSegment(shapePath.v[initIndex], shapePath.v[endIndex], shapePath.o[initIndex], shapePath.i[endIndex], segmentPerc, lengths[i]);\r\n break;\r\n } else {\r\n accumulatedLength += lengths[i].addedLength;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n if (!pt) {\r\n pt = shapePath.c ? [shapePath.v[0][0], shapePath.v[0][1]] : [shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1]];\r\n }\r\n\r\n return pt;\r\n },\r\n vectorOnPath: function vectorOnPath(perc, time, vectorType) {\r\n // perc doesn't use triple equality because it can be a Number object as well as a primitive.\r\n if (perc == 1) {\r\n // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) {\r\n // eslint-disable-line eqeqeq\r\n perc = 0.999;\r\n }\r\n\r\n var pt1 = this.pointOnPath(perc, time);\r\n var pt2 = this.pointOnPath(perc + 0.001, time);\r\n var xLength = pt2[0] - pt1[0];\r\n var yLength = pt2[1] - pt1[1];\r\n var magnitude = Math.sqrt(Math.pow(xLength, 2) + Math.pow(yLength, 2));\r\n\r\n if (magnitude === 0) {\r\n return [0, 0];\r\n }\r\n\r\n var unitVector = vectorType === 'tangent' ? [xLength / magnitude, yLength / magnitude] : [-yLength / magnitude, xLength / magnitude];\r\n return unitVector;\r\n },\r\n tangentOnPath: function tangentOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function normalOnPath(perc, time) {\r\n return this.vectorOnPath(perc, time, 'normal');\r\n },\r\n setGroupProperty: expressionHelpers.setGroupProperty,\r\n getValueAtTime: expressionHelpers.getStaticValueAtTime\r\n };\r\n extendPrototype([ShapeExpressions], ShapePropertyConstructorFunction);\r\n extendPrototype([ShapeExpressions], KeyframedShapePropertyConstructorFunction);\r\n KeyframedShapePropertyConstructorFunction.prototype.getValueAtTime = getShapeValueAtTime;\r\n KeyframedShapePropertyConstructorFunction.prototype.initiateExpression = ExpressionManager.initiateExpression;\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\r\n\r\n ShapePropertyFactory.getShapeProp = function (elem, data, type, arr, trims) {\r\n var prop = propertyGetShapeProp(elem, data, type, arr, trims);\r\n prop.propertyIndex = data.ix;\r\n prop.lock = false;\r\n\r\n if (type === 3) {\r\n expressionHelpers.searchExpressions(elem, data.pt, prop);\r\n } else if (type === 4) {\r\n expressionHelpers.searchExpressions(elem, data.ks, prop);\r\n }\r\n\r\n if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n\r\n return prop;\r\n };\r\n }\r\n\r\n function initialize$1() {\r\n addPropertyDecorator();\r\n }\r\n\r\n function addDecorator() {\r\n function searchExpressions() {\r\n if (this.data.d.x) {\r\n this.calculateExpression = ExpressionManager.initiateExpression.bind(this)(this.elem, this.data.d, this);\r\n this.addEffect(this.getExpressionValue.bind(this));\r\n return true;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\r\n\r\n if (currentValue.t !== newValue) {\r\n var newData = {};\r\n this.copyData(newData, currentValue);\r\n newData.t = newValue.toString();\r\n newData.__complete = false;\r\n return newData;\r\n }\r\n\r\n return currentValue;\r\n };\r\n\r\n TextProperty.prototype.searchProperty = function () {\r\n var isKeyframed = this.searchKeyframes();\r\n var hasExpressions = this.searchExpressions();\r\n this.kf = isKeyframed || hasExpressions;\r\n return this.kf;\r\n };\r\n\r\n TextProperty.prototype.searchExpressions = searchExpressions;\r\n }\r\n\r\n function initialize() {\r\n addDecorator();\r\n }\r\n\r\n function SVGComposableEffect() {}\r\n\r\n SVGComposableEffect.prototype = {\r\n createMergeNode: function createMergeNode(resultId, ins) {\r\n var feMerge = createNS('feMerge');\r\n feMerge.setAttribute('result', resultId);\r\n var feMergeNode;\r\n var i;\r\n\r\n for (i = 0; i < ins.length; i += 1) {\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', ins[i]);\r\n feMerge.appendChild(feMergeNode);\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n\r\n return feMerge;\r\n }\r\n };\r\n\r\n var linearFilterValue = '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0';\r\n\r\n function SVGTintFilter(filter, filterManager, elem, id, source) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', linearFilterValue + ' 1 0');\r\n this.linearFilter = feColorMatrix;\r\n feColorMatrix.setAttribute('result', id + '_tint_1');\r\n filter.appendChild(feColorMatrix);\r\n feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id + '_tint_2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n var feMerge = this.createMergeNode(id, [source, id + '_tint_1', id + '_tint_2']);\r\n filter.appendChild(feMerge);\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGTintFilter);\r\n\r\n SVGTintFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var colorBlack = this.filterManager.effectElements[0].p.v;\r\n var colorWhite = this.filterManager.effectElements[1].p.v;\r\n var opacity = this.filterManager.effectElements[2].p.v / 100;\r\n this.linearFilter.setAttribute('values', linearFilterValue + ' ' + opacity + ' 0');\r\n this.matrixFilter.setAttribute('values', colorWhite[0] - colorBlack[0] + ' 0 0 0 ' + colorBlack[0] + ' ' + (colorWhite[1] - colorBlack[1]) + ' 0 0 0 ' + colorBlack[1] + ' ' + (colorWhite[2] - colorBlack[2]) + ' 0 0 0 ' + colorBlack[2] + ' 0 0 0 1 0');\r\n }\r\n };\r\n\r\n function SVGFillFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'sRGB');\r\n feColorMatrix.setAttribute('values', '1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0');\r\n feColorMatrix.setAttribute('result', id);\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n }\r\n\r\n SVGFillFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color = this.filterManager.effectElements[2].p.v;\r\n var opacity = this.filterManager.effectElements[6].p.v;\r\n this.matrixFilter.setAttribute('values', '0 0 0 0 ' + color[0] + ' 0 0 0 0 ' + color[1] + ' 0 0 0 0 ' + color[2] + ' 0 0 0 ' + opacity + ' 0');\r\n }\r\n };\r\n\r\n function SVGStrokeEffect(fil, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n }\r\n\r\n SVGStrokeEffect.prototype.initialize = function () {\r\n var elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n var path;\r\n var groupPath;\r\n var i;\r\n var len;\r\n\r\n if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({\r\n p: path,\r\n m: i\r\n });\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 3) {\r\n var mask = createNS('mask');\r\n var id = createElementID();\r\n mask.setAttribute('id', id);\r\n mask.setAttribute('mask-type', 'alpha');\r\n mask.appendChild(groupPath);\r\n this.elem.globalData.defs.appendChild(mask);\r\n var g = createNS('g');\r\n g.setAttribute('mask', 'url(' + getLocationHref() + '#' + id + ')');\r\n\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\r\n }\r\n\r\n this.elem.layerElement.appendChild(g);\r\n this.masker = mask;\r\n groupPath.setAttribute('stroke', '#fff');\r\n } else if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (this.filterManager.effectElements[10].p.v === 2) {\r\n elemChildren = this.elem.layerElement.children || this.elem.layerElement.childNodes;\r\n\r\n while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\r\n }\r\n }\r\n\r\n this.elem.layerElement.appendChild(groupPath);\r\n this.elem.layerElement.removeAttribute('mask');\r\n groupPath.setAttribute('stroke', '#fff');\r\n }\r\n\r\n this.initialized = true;\r\n this.pathMasker = groupPath;\r\n };\r\n\r\n SVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\r\n\r\n for (i = 0; i < len; i += 1) {\r\n if (this.paths[i].m !== -1) {\r\n mask = this.elem.maskManager.viewData[this.paths[i].m];\r\n path = this.paths[i].p;\r\n\r\n if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[9].p._mdf || this.filterManager.effectElements[4].p._mdf || this.filterManager.effectElements[7].p._mdf || this.filterManager.effectElements[8].p._mdf || mask.prop._mdf) {\r\n var dasharrayValue;\r\n\r\n if (this.filterManager.effectElements[7].p.v !== 0 || this.filterManager.effectElements[8].p.v !== 100) {\r\n var s = Math.min(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var e = Math.max(this.filterManager.effectElements[7].p.v, this.filterManager.effectElements[8].p.v) * 0.01;\r\n var l = path.getTotalLength();\r\n dasharrayValue = '0 0 0 ' + l * s + ' ';\r\n var lineLength = l * (e - s);\r\n var segment = 1 + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n var units = Math.floor(lineLength / segment);\r\n var j;\r\n\r\n for (j = 0; j < units; j += 1) {\r\n dasharrayValue += '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01 + ' ';\r\n }\r\n\r\n dasharrayValue += '0 ' + l * 10 + ' 0 0';\r\n } else {\r\n dasharrayValue = '1 ' + this.filterManager.effectElements[4].p.v * 2 * this.filterManager.effectElements[9].p.v * 0.01;\r\n }\r\n\r\n path.setAttribute('stroke-dasharray', dasharrayValue);\r\n }\r\n }\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.pathMasker.setAttribute('stroke-width', this.filterManager.effectElements[4].p.v * 2);\r\n }\r\n\r\n if (forceRender || this.filterManager.effectElements[6].p._mdf) {\r\n this.pathMasker.setAttribute('opacity', this.filterManager.effectElements[6].p.v);\r\n }\r\n\r\n if (this.filterManager.effectElements[10].p.v === 1 || this.filterManager.effectElements[10].p.v === 2) {\r\n if (forceRender || this.filterManager.effectElements[3].p._mdf) {\r\n var color = this.filterManager.effectElements[3].p.v;\r\n this.pathMasker.setAttribute('stroke', 'rgb(' + bmFloor(color[0] * 255) + ',' + bmFloor(color[1] * 255) + ',' + bmFloor(color[2] * 255) + ')');\r\n }\r\n }\r\n };\r\n\r\n function SVGTritoneFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var feColorMatrix = createNS('feColorMatrix');\r\n feColorMatrix.setAttribute('type', 'matrix');\r\n feColorMatrix.setAttribute('color-interpolation-filters', 'linearRGB');\r\n feColorMatrix.setAttribute('values', '0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n this.matrixFilter = feComponentTransfer;\r\n var feFuncR = createNS('feFuncR');\r\n feFuncR.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncR);\r\n this.feFuncR = feFuncR;\r\n var feFuncG = createNS('feFuncG');\r\n feFuncG.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncG);\r\n this.feFuncG = feFuncG;\r\n var feFuncB = createNS('feFuncB');\r\n feFuncB.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFuncB);\r\n this.feFuncB = feFuncB;\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n SVGTritoneFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var color1 = this.filterManager.effectElements[0].p.v;\r\n var color2 = this.filterManager.effectElements[1].p.v;\r\n var color3 = this.filterManager.effectElements[2].p.v;\r\n var tableR = color3[0] + ' ' + color2[0] + ' ' + color1[0];\r\n var tableG = color3[1] + ' ' + color2[1] + ' ' + color1[1];\r\n var tableB = color3[2] + ' ' + color2[2] + ' ' + color1[2];\r\n this.feFuncR.setAttribute('tableValues', tableR);\r\n this.feFuncG.setAttribute('tableValues', tableG);\r\n this.feFuncB.setAttribute('tableValues', tableB);\r\n }\r\n };\r\n\r\n function SVGProLevelsFilter(filter, filterManager, elem, id) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer'); // Red\r\n\r\n if (effectElements[10].p.k || effectElements[10].p.v !== 0 || effectElements[11].p.k || effectElements[11].p.v !== 1 || effectElements[12].p.k || effectElements[12].p.v !== 1 || effectElements[13].p.k || effectElements[13].p.v !== 0 || effectElements[14].p.k || effectElements[14].p.v !== 1) {\r\n this.feFuncR = this.createFeFunc('feFuncR', feComponentTransfer);\r\n } // Green\r\n\r\n\r\n if (effectElements[17].p.k || effectElements[17].p.v !== 0 || effectElements[18].p.k || effectElements[18].p.v !== 1 || effectElements[19].p.k || effectElements[19].p.v !== 1 || effectElements[20].p.k || effectElements[20].p.v !== 0 || effectElements[21].p.k || effectElements[21].p.v !== 1) {\r\n this.feFuncG = this.createFeFunc('feFuncG', feComponentTransfer);\r\n } // Blue\r\n\r\n\r\n if (effectElements[24].p.k || effectElements[24].p.v !== 0 || effectElements[25].p.k || effectElements[25].p.v !== 1 || effectElements[26].p.k || effectElements[26].p.v !== 1 || effectElements[27].p.k || effectElements[27].p.v !== 0 || effectElements[28].p.k || effectElements[28].p.v !== 1) {\r\n this.feFuncB = this.createFeFunc('feFuncB', feComponentTransfer);\r\n } // Alpha\r\n\r\n\r\n if (effectElements[31].p.k || effectElements[31].p.v !== 0 || effectElements[32].p.k || effectElements[32].p.v !== 1 || effectElements[33].p.k || effectElements[33].p.v !== 1 || effectElements[34].p.k || effectElements[34].p.v !== 0 || effectElements[35].p.k || effectElements[35].p.v !== 1) {\r\n this.feFuncA = this.createFeFunc('feFuncA', feComponentTransfer);\r\n } // RGB\r\n\r\n\r\n if (this.feFuncR || this.feFuncG || this.feFuncB || this.feFuncA) {\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\r\n }\r\n\r\n if (effectElements[3].p.k || effectElements[3].p.v !== 0 || effectElements[4].p.k || effectElements[4].p.v !== 1 || effectElements[5].p.k || effectElements[5].p.v !== 1 || effectElements[6].p.k || effectElements[6].p.v !== 0 || effectElements[7].p.k || effectElements[7].p.v !== 1) {\r\n feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n feComponentTransfer.setAttribute('result', id);\r\n filter.appendChild(feComponentTransfer);\r\n this.feFuncRComposed = this.createFeFunc('feFuncR', feComponentTransfer);\r\n this.feFuncGComposed = this.createFeFunc('feFuncG', feComponentTransfer);\r\n this.feFuncBComposed = this.createFeFunc('feFuncB', feComponentTransfer);\r\n }\r\n }\r\n\r\n SVGProLevelsFilter.prototype.createFeFunc = function (type, feComponentTransfer) {\r\n var feFunc = createNS(type);\r\n feFunc.setAttribute('type', 'table');\r\n feComponentTransfer.appendChild(feFunc);\r\n return feFunc;\r\n };\r\n\r\n SVGProLevelsFilter.prototype.getTableValue = function (inputBlack, inputWhite, gamma, outputBlack, outputWhite) {\r\n var cnt = 0;\r\n var segments = 256;\r\n var perc;\r\n var min = Math.min(inputBlack, inputWhite);\r\n var max = Math.max(inputBlack, inputWhite);\r\n var table = Array.call(null, {\r\n length: segments\r\n });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\r\n\r\n if (perc <= min) {\r\n colorValue = inputDelta < 0 ? outputWhite : outputBlack;\r\n } else if (perc >= 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\r\n table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n\r\n return table.join(' ');\r\n };\r\n\r\n SVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n\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 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\n function SVGDropShadowEffect(filter, filterManager, elem, id, source) {\r\n var globalFilterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n var filterSize = filterManager.data.fs || globalFilterSize;\r\n filter.setAttribute('x', filterSize.x || globalFilterSize.x);\r\n filter.setAttribute('y', filterSize.y || globalFilterSize.y);\r\n filter.setAttribute('width', filterSize.width || globalFilterSize.width);\r\n filter.setAttribute('height', filterSize.height || globalFilterSize.height);\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', id + '_drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', id + '_drop_shadow_1');\r\n feOffset.setAttribute('result', id + '_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', id + '_drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', id + '_drop_shadow_3');\r\n feComposite.setAttribute('in2', id + '_drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', id + '_drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n var feMerge = this.createMergeNode(id, [id + '_drop_shadow_4', source]);\r\n filter.appendChild(feMerge); //\r\n }\r\n\r\n extendPrototype([SVGComposableEffect], SVGDropShadowEffect);\r\n\r\n SVGDropShadowEffect.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\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\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\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 }\r\n };\r\n\r\n var _svgMatteSymbols = [];\r\n\r\n function 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\n SVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n return null;\r\n };\r\n\r\n SVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n\r\n if (!parentNode) {\r\n return;\r\n }\r\n\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n var nextChild;\r\n\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n\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\n SVGMatte3Effect.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\r\n _svgMatteSymbols.push(mask);\r\n\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\r\n elem.setMatte(mask.layerId);\r\n };\r\n\r\n SVGMatte3Effect.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;\r\n var len = elements.length;\r\n\r\n while (i < len) {\r\n if (elements[i] && elements[i].data.ind === ind) {\r\n this.setElementAsMask(this.elem, elements[i]);\r\n }\r\n\r\n i += 1;\r\n }\r\n\r\n this.initialized = true;\r\n };\r\n\r\n SVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n };\r\n\r\n function SVGGaussianBlurEffect(filter, filterManager, elem, id) {\r\n // Outset the filter region by 100% on all sides to accommodate blur expansion.\r\n filter.setAttribute('x', '-100%');\r\n filter.setAttribute('y', '-100%');\r\n filter.setAttribute('width', '300%');\r\n filter.setAttribute('height', '300%');\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('result', id);\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n }\r\n\r\n SVGGaussianBlurEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n // Empirical value, matching AE's blur appearance.\r\n var kBlurrinessToSigma = 0.3;\r\n var sigma = this.filterManager.effectElements[0].p.v * kBlurrinessToSigma; // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = dimensions == 3 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n var sigmaY = dimensions == 2 ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY); // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n\r\n var edgeMode = this.filterManager.effectElements[2].p.v == 1 ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n };\r\n\r\n registerRenderer('canvas', CanvasRenderer);\r\n registerRenderer('html', HybridRenderer);\r\n registerRenderer('svg', SVGRenderer); // Registering shape modifiers\r\n\r\n ShapeModifiers.registerModifier('tm', TrimModifier);\r\n ShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n ShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n ShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n ShapeModifiers.registerModifier('zz', ZigZagModifier);\r\n ShapeModifiers.registerModifier('op', OffsetPathModifier); // Registering expression plugin\r\n\r\n setExpressionsPlugin(Expressions);\r\n setExpressionInterfaces(getInterface);\r\n initialize$1();\r\n initialize(); // Registering svg effects\r\n\r\n registerEffect(20, SVGTintFilter, true);\r\n registerEffect(21, SVGFillFilter, true);\r\n registerEffect(22, SVGStrokeEffect, false);\r\n registerEffect(23, SVGTritoneFilter, true);\r\n registerEffect(24, SVGProLevelsFilter, true);\r\n registerEffect(25, SVGDropShadowEffect, true);\r\n registerEffect(28, SVGMatte3Effect, false);\r\n registerEffect(29, SVGGaussianBlurEffect, true);\r\n\r\n return lottie;\r\n\r\n}));\r\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdO = {};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"c4e7f8f9\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkclient\"] = self[\"webpackChunkclient\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","import './AIFocus.css';\nimport Lottie from 'react-lottie';\nimport AI from './AI.json';\n\n\nfunction AIFocus() {\n \treturn (\n
\n

Our Focus on AI

\n
\n
\n

At Mimir's Lab, we understand the importance of artificial intelligence (AI) in today's technology landscape. That's why we incorporate AI into our development processes whenever possible, helping our clients to stay ahead of the curve and achieve their goals.

\n

Our team of experts is proficient in various AI technologies, such as machine learning, natural language processing, and computer vision. We use these technologies to create innovative solutions, automate processes, and enhance user experiences, allowing businesses to harness the full potential of AI and gain a competitive advantage.

\n

By integrating AI into web and mobile applications, we enable our clients to unlock valuable insights, streamline operations, and deliver personalized experiences to their customers. Our commitment to staying up-to-date with the latest advancements in AI ensures that we provide cutting-edge, future-proof solutions that empower businesses to grow and succeed.

\n
\n
\n \n
\n
\n
\n )\n\t\t\n}\n\nexport default AIFocus;\n","import './Approach.css';\n\nfunction Approach() {\n \treturn (\n
\n

Our Approach

\n

At Mimir's Lab, we emphasize a customized, comprehensive, and transparent approach for each project, starting from the introductory session to the aftercare phase. We collaborate closely with our clients to ensure that the end product is tailored to their specific requirements, fostering success and satisfaction.

\n
\n
\n

1. Introductory Session

\n

We kick off with a complimentary introductory session to discuss the project, its demands, and set goals. We also estimate the duration and expenses required for the project launch. This phase includes conferences, phone discussions, and email communication.

\n
\n
\n

2. Details

\n

In this phase, we sign a contract and a non-disclosure agreement. We engage in gatherings, consultations, and idea sharing, ensuring mutual understanding and agreement. We then finalize the functional and technological requirements, create interactive prototypes, and present a detailed project schedule and pricing.

\n
\n
\n

3. Handover

\n

After signing the development contract, we execute the project and provide progress updates. We conduct preliminary testing, followed by comprehensive testing with additional personnel. Finally, we roll out the project with all its bells and whistles.

\n
\n
\n

4. Aftercare

\n

Based on the project type, we offer optional aftercare services, including supervision, assistance, upkeep, and modifications. We monitor system performance, provide prompt support, and ensure adaptability and scalability for changes as needed.

\n
\n
\n
\n )\n\t\t\n}\n\nexport default Approach;\n","import './Contact.css';\n\nfunction Contact() {\n \treturn (\n
\n

Get in Touch

\n

Ready to start your project with Mimir's Lab? Contact us today to schedule a consultation and learn more about how we can help you achieve your goals. Fill out the form below, and we will get back to you as soon as possible.

\n
\n \n \n \n \n
\n
\n )\n\t\t\n}\n\nexport default Contact;\n","import './Expertise.css';\n\nfunction Expertise() {\n \treturn (\n
\n

Our Expertise

\n

Our diverse team of seasoned developers and consultants boasts an extensive skillset in various technologies, including AI and machine learning. Our commitment to continuous learning and adaptation ensures that we remain at the forefront of industry advancements, empowering us to deliver top-notch solutions for our clients.

\n
\n
\n

Latest Front-end Technologies

\n

Our team stays up-to-date with the latest front-end technologies to deliver cutting-edge, user-centric web applications. We expertly utilize modern frameworks, libraries, and tools to create visually stunning, high-performance, and accessible solutions that cater to the needs of our clients and their users.

\n
\n
\n

Stable & Reliable Back-end Technologies

\n

Our developers are well-versed in stable and reliable back-end technologies that ensure the smooth functioning of web applications. We leverage the power of server-side languages and frameworks to create secure, scalable, and high-performance back-end systems that support seamless user experiences and meet our clients' business objectives.

\n
\n
\n

API Integrations

\n

Our team is proficient in API integrations, enabling seamless communication between different software systems and services. We design and develop custom APIs, as well as integrate third-party APIs such as payment gateways, social media platforms, and other services, to enhance the functionality of web applications, streamline workflows, and improve user experiences. Our expertise ensures secure, efficient, and maintainable API integrations that align with our clients' specific requirements.

\n
\n
\n

Artificial Intelligence

\n

We harness the power of AI and machine learning to develop intelligent, data-driven applications that deliver advanced capabilities and competitive advantages to our clients.

\n
\n
\n

UI/UX Design

\n

Our designers are dedicated to creating intuitive, visually appealing user interfaces that ensure seamless user experiences across all platforms.

\n
\n
\n

Machine Learning

\n

We specialize in integrating machine learning algorithms and models into our solutions, allowing our clients to benefit from data-driven insights and automation.

\n
\n
\n
\n )\n\t\t\n}\n\nexport default Expertise;\n","var _style, _rect, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nfunction SvgLogoc(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Ebene_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 283.46 283.46\",\n style: {\n enableBackground: \"new 0 0 283.46 283.46\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:transparent;}\\n\\t.st1{fill:#82D6E1;}\\n\")), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: 0,\n transform: \"matrix(6.935259e-11 -1 1 6.935259e-11 -9.276334e-09 283)\",\n className: \"st0\",\n width: 283,\n height: 283\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"137.61,164.48 145.85,153.44 145.85,100.52 141.73,98.14 137.61,100.52 \"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"94.01,118.83 137.61,93.84 129.37,89.09 94.01,109.31 94.01,61.99 138.92,87.92 138.92,78.4 94.01,52.47 94.01,52.47 93.23,52.02 92.8,51.77 92.8,51.77 85.76,47.71 85.76,134.07 94.01,145.12 \"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"189.46,145.12 197.7,134.06 197.7,47.9 197.7,47.9 197.7,47.9 145.85,77.65 154.1,82.41 189.46,61.99 189.46,109.5 144.54,83.57 144.54,93.09 189.46,119.02 \"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"83.72,189.24 70.33,168.02 66.34,198.11 72.26,198.11 73.69,183.39 83.68,199.27 93.71,183.24 95.22,198.11 101.11,198.11 97.08,168.06 \"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 106.01,\n y: 168.79,\n className: \"st1\",\n width: 5.5,\n height: 29.31\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"133.78,189.24 120.38,168.02 116.39,198.11 122.32,198.11 123.75,183.39 133.74,199.27 143.77,183.24 145.28,198.11 151.17,198.11 147.14,168.06 \"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 156.07,\n y: 168.79,\n className: \"st1\",\n width: 5.5,\n height: 29.31\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M187.09,177.82c0-7.9-7.55-9.02-13.2-9.02l-6.04,0v29.31h5.5v-10.92h0.58l11,10.92h7.59l-12.47-11.42 C183.88,185.72,187.09,183.35,187.09,177.82z M173.34,182.19v-8.4h2.01c4.18,0,5.92,1.63,5.92,4.07c0,2.9-1.94,4.34-6.08,4.34 H173.34z\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"193.49,160.92 190.23,170.25 194.07,170.25 199.26,160.92 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M204,175.88c0-2.01,1.9-2.86,3.87-2.86c1.97,0,4.1,1.08,5.61,2.59l2.67-4.1c-0.58-0.62-3.79-3.41-8.33-3.41 c-4.88,0-9.56,2.79-9.56,8.01c0,8.95,13.01,7.98,13.01,14.17c0,2.13-1.59,3.53-4.57,3.53c-3.29,0-6.04-1.78-7.55-3.18l-2.87,3.95 c1.59,1.66,5.77,4.18,9.99,4.18c6.85,0,10.84-4.03,10.84-8.56C217.13,179.87,204,181.03,204,175.88z\"\n }), /*#__PURE__*/React.createElement(\"polygon\", {\n className: \"st1\",\n points: \"110.62,206.44 108.76,206.44 108.76,235.72 123.24,235.72 123.24,234.05 110.62,234.05 \"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M124.77,235.76h1.98l3.76-8.67h14.75l3.76,8.67h1.94l-13.05-30.09L124.77,235.76z M144.51,225.38h-13.28 l5.89-13.63l0.77-1.94c0.08,0.31,0.5,1.39,0.77,1.94L144.51,225.38z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M163.81,220.15c2.52-0.81,4.96-3.45,4.96-6.47c0-5.69-3.91-7.24-9.06-7.24h-5.38v29.31h7.16 c6.35,0,9.8-3.1,9.8-8.05C171.28,222.94,166.9,220.46,163.81,220.15z M156.18,208.15h3.79c4.03,0,6.89,1.39,6.89,5.5 c0,3.52-3.25,6.23-8.33,6.23h-2.36V208.15z M161.52,234.05h-5.34v-12.47h5.65c4.26,0,7.51,2.67,7.51,6.16 C169.35,231.5,166.79,234.05,161.52,234.05z\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLogoc);\nexport default __webpack_public_path__ + \"static/media/logoc.39c9758259de54ef752b66e43b219150.svg\";\nexport { ForwardRef as ReactComponent };","import { useEffect } from 'react';\nimport './Header.css';\nimport logoc from './logoc.svg';\n\nfunction Header() {\n useEffect(() => {\n const header = document.getElementById('Header-Logo');\n\n setTimeout(() => {\n header.style.transform = 'translateY(0)';\n header.style.maxHeight = '150px';\n }, 3000);\n\n setTimeout(() => {\n document.getElementById('Animated-Border-Left').style.width = '50%';\n document.getElementById('Animated-Border-Right').style.width = '50%';\n }, 5000);\n\n setTimeout(() => {\n document.getElementById('Animated-Border-Left').style.opacity = 0.15;\n document.getElementById('Animated-Border-Right').style.opacity = 0.15;\n }, 6000);\n\n }, []);\n\n\treturn (\n
\n \"logo\"\n
\n
\n
\n
\n
\n )\n\t\t\n}\n\nexport default Header;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n}","import './Introduction.css';\nimport Lottie from 'react-lottie';\nimport IntroS1 from './MimirS1.json';\nimport IntroS2 from './MimirS2.json';\n// import IntroS3 from './MimirS3.json';\nimport { useEffect } from 'react';\n\nfunction Introduction() {\n const lottieOptions = {\n loop: true,\n autoplay: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice'\n }\n };\n\n useEffect(() => {\n const section1 = document.getElementById('section-1');\n const section2 = document.getElementById('section-2');\n // const section3 = document.getElementById('section-3');\n\n setTimeout(() => {\n section1.childNodes[0].style.transform = 'translateX(0)';\n section1.childNodes[1].style.transform = 'translateX(0)';\n }, 3000);\n\n setTimeout(() => {\n section1.childNodes[0].style.opacity = 1;\n section1.childNodes[1].style.opacity = 1;\n }, 3300);\n\n setTimeout(() => {\n section2.childNodes[0].style.transform = 'translateY(0)';\n section2.childNodes[1].style.transform = 'translateY(0)';\n }, 4000);\n\n setTimeout(() => {\n section2.childNodes[0].style.opacity = 1;\n section2.childNodes[1].style.opacity = 1;\n }, 4500);\n\n // setTimeout(() => {\n // section3.childNodes[0].style.transform = 'translateY(0)';\n // section3.childNodes[1].style.transform = 'translateY(0)';\n // }, 4300);\n\n // setTimeout(() => {\n // section3.childNodes[0].style.opacity = 1;\n // section3.childNodes[1].style.opacity = 1;\n // }, 5000);\n\n }, []);\n\n\treturn (\n
\n
\n
\n

Welcome to Mimir's Lab

\n

\n At Mimir's Lab, we're passionate about creating innovative web and mobile applications that help our clients succeed. With a focus on the latest technologies and a commitment to staying ahead of the curve, we offer complete solutions for all your development needs.\n

\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n

Our team of experienced developers and consultants are dedicated to delivering high-quality results that exceed your expectations. We believe that every project is unique and requires a personalized approach, so we work closely with our clients to ensure that we're delivering solutions that meet their specific requirements.

\n
\n
\n {/*
\n
\n

From concept to launch, we're here to help you every step of the way. Whether you're a small startup or a large enterprise, we have the expertise and resources to help you succeed. So if you're looking for a development partner that can help you bring your ideas to life, look no further than Mimir's Lab.

\n
\n
\n \n
\n
*/}\n
\n )\n\t\t\n}\n\nexport default Introduction;\n","\nimport { useEffect } from 'react';\nimport './Navbar.css';\n\nfunction Navbar() {\n useEffect(() => {\n const navbar = document.getElementById('Navbar');\n\n setTimeout(() => {\n navbar.style.opacity = 1;\n }, 6000);\n \n window.addEventListener('scroll', () => {\n if (window.scrollY > 150) {\n navbar.style.backgroundColor = 'rgba(0, 0, 0, 0.5)';\n } else {\n navbar.style.backgroundColor = 'transparent';\n }\n });\n }, []);\n\n \treturn (\n \n )\n\t\t\n}\n\nexport default Navbar;\n","import './Services.css';\nimport Lottie from 'react-lottie';\nimport AppDev from './AppDev.json';\nimport MimirUIUX from './MimirUIUX.json';\nimport Planning from './Planning.json';\nimport MimirStats from './transformation.json';\nimport Programmer from './maintanance.json';\n\nfunction Services() {\n const lottieOptions = {\n loop: true,\n autoplay: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice',\n\n }\n };\n\n\treturn (\n
\n

Our Services

\n

\n At Mimir's Lab, we are committed to providing end-to-end solutions for all your web and mobile app requirements. From ideation to launch and ongoing support, we are equipped to handle every stage of the development process. Our services include:\n

\n
    \n
  • \n \n

    \n UI/UX Design\n

    \n
  • \n
  • \n \n

    \n Custom Web and Mobile App Development\n

    \n
  • \n
  • \n \n

    \n Product Strategy and Planning\n

    \n
  • \n
  • \n \n

    \n Quality Assurance\n

    \n
  • \n
  • \n \n

    \n Ongoing Maintenance\n

    \n
  • \n
\n
\n )\n\t\t\n}\n\nexport default Services;\n","import { useEffect } from 'react';\nimport AIFocus from './AIFocus/AIFocus';\nimport Approach from './Approach/Approach';\nimport Contact from '../Shared/Contact/Contact';\nimport './Desktop.css';\nimport Expertise from './Expertise/Expertise';\nimport Header from '../Shared/Header/Header';\nimport Introduction from './Introduction/Introduction';\nimport Navbar from './Navbar/Navbar';\nimport Services from './Services/Services';\n\nfunction Desktop() {\n useEffect(() => {\n const content = document.getElementById('content');\n const bg = document.getElementById('bg');\n document.querySelectorAll('a[href^=\"#\"]').forEach(anchor => {\n anchor.addEventListener('click', function (e) {\n e.preventDefault();\n \n document.querySelector(this.getAttribute('href')).scrollIntoView({\n behavior: 'smooth'\n });\n });\n });\n\n setTimeout(() => {\n bg.style.opacity = 0;\n }, 3000);\n\n setTimeout(() => {\n content.style.display = 'initial';\n }, 6300);\n }, []);\n\n\treturn (\n
\n
\n \n
\n \n
\n \n \n \n \n \n
\n
\n )\n\t\t\n}\n\nexport default Desktop;\n","import './MobileIntroduction.css';\nimport Lottie from 'react-lottie';\nimport IntroS1 from './MimirS1.json';\nimport IntroS2 from './MimirS2.json';\n// import IntroS3 from './MimirS3.json';\nimport { useEffect } from 'react';\n\nfunction MobileIntroduction() {\n const lottieOptions = {\n loop: true,\n autoplay: true,\n rendererSettings: {\n preserveAspectRatio: 'xMidYMid slice'\n }\n };\n\n useEffect(() => {\n const section1 = document.getElementById('m-section-1');\n const section2 = document.getElementById('m-section-2');\n // const section3 = document.getElementById('section-3');\n\n setTimeout(() => {\n section1.childNodes[0].style.transform = 'translateX(0)';\n section1.childNodes[1].style.transform = 'translateX(0)';\n }, 3000);\n\n setTimeout(() => {\n section1.childNodes[0].style.opacity = 1;\n section1.childNodes[1].style.opacity = 1;\n }, 3300);\n\n\n setTimeout(() => {\n section2.childNodes[0].style.opacity = 1;\n section2.childNodes[1].style.opacity = 1;\n }, 4500);\n }, []);\n\n\treturn (\n
\n
\n
\n

Welcome to Mimir's Lab

\n

\n At Mimir's Lab, we're passionate about creating innovative web and mobile applications that help our clients succeed. With a focus on the latest technologies and a commitment to staying ahead of the curve, we offer complete solutions for all your development needs.\n

\n
\n
\n \n
\n
\n
\n
\n

Our team of experienced developers and consultants are dedicated to delivering high-quality results that exceed your expectations. We believe that every project is unique and requires a personalized approach, so we work closely with our clients to ensure that we're delivering solutions that meet their specific requirements.

\n
\n
\n \n
\n
\n
\n )\n\t\t\n}\n\nexport default MobileIntroduction;\n","import './Mobile.css';\nimport Header from '../Shared/Header/Header';\nimport Introduction from './Introduction/MobileIntroduction';\n\nfunction Mobile() {\n \treturn (\n
\n
\n \n
\n\n
\n
\n )\n\t\t\n}\n\nexport default Mobile;\n","import './App.css';\nimport Desktop from './Desktop/Desktop.js';\nimport Mobile from './Mobile/Mobile';\n\nfunction App() {\n\tconst isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n\tconst deviceType = isMobile ? 'Mobile' : 'Desktop';\n\n\treturn deviceType === 'Mobile' ?\n\t\t\n\t\t:\n\t\t\n\t\t\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nconst root = ReactDOM.createRoot(document.getElementById('root'));\nroot.render(\n \n \n \n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"names":["module","exports","require","__esModule","instance","Constructor","TypeError","obj","_defineProperty","_defineProperty2","default","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","_assign","_assign2","arguments","source","Object","hasOwnProperty","call","_setPrototypeOf2","_interopRequireDefault","_create2","_typeof3","subClass","superClass","constructor","value","__proto__","_typeof2","self","ReferenceError","_iterator2","_symbol2","_typeof","$Object","P","D","create","it","desc","defineProperty","isObject","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","el","fromIndex","O","index","toString","slice","core","version","__e","aFunction","fn","that","undefined","a","b","c","apply","get","document","is","createElement","split","getKeys","gOPS","pIE","result","getSymbols","f","symbols","isEnum","push","global","ctx","hide","has","PROTOTYPE","$export","type","name","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","B","IS_WRAP","W","expProto","C","this","Function","virtual","R","U","exec","e","window","Math","__g","dP","createDesc","object","documentElement","cof","propertyIsEnumerable","Array","isArray","arg","setToStringTag","IteratorPrototype","NAME","next","LIBRARY","redefine","Iterators","$iterCreate","getPrototypeOf","ITERATOR","BUGGY","keys","KEYS","VALUES","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","getMethod","kind","proto","TAG","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","done","META","setDesc","id","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","KEY","NEED","fastKey","getWeak","onFreeze","DESCRIPTORS","toObject","IObject","$assign","assign","A","Symbol","K","forEach","k","join","T","aLen","concat","j","anObject","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","src","contentWindow","open","write","lt","close","Properties","IE8_DOM_DEFINE","toPrimitive","Attributes","gOPD","getOwnPropertyDescriptor","gOPN","windowNames","getOwnPropertyNames","getWindowNames","$keys","hiddenKeys","getOwnPropertySymbols","ObjectProto","arrayIndexOf","names","fails","exp","bitmap","check","set","setPrototypeOf","test","buggy","def","tag","stat","shared","uid","SHARED","store","mode","copyright","toInteger","defined","TO_STRING","pos","s","String","l","charCodeAt","charAt","max","min","ceil","floor","isNaN","val","valueOf","px","random","wksExt","$Symbol","USE_SYMBOL","addToUnscopables","step","iterated","_t","_i","_k","Arguments","$getPrototypeOf","$at","point","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","iterator","$defineProperty","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","args","TO_STRING_TAG","DOMIterables","Collection","factory","navigator","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","len","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","pause","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","play","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","arr","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","userAgent","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","element","position","top","left","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","direction","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","h","v","r","g","p","q","t","RGBtoHSV","d","addSaturationToRGB","color","offset","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","createElementNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","onmessage","postMessage","path","data","_workerSelf","setupWorker","Worker","Blob","blob","url","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","parse","ks","o","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","chars","charData","ip","op","st","sr","sk","sa","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","indexOf","response","responseText","load","fullPath","callback","errorCallback","XMLHttpRequest","err","onreadystatechange","readyState","status","error","send","completeData","payload","animation","event","process","onComplete","onError","createProcess","loadAnimation","processId","location","origin","pathname","loadData","completeAnimation","anim","ImagePreloader","proxyImage","canvas","width","height","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","u","testImageLoaded","img","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","bind","createFootageData","ob","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","cb","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","destroy","getAsset","createImgData","crossOrigin","addEventListener","createImageData","setAttributeNS","_elementHelper","append","appendChild","setCacheType","elementHelper","BaseEvent","triggerEvent","eventName","_cbs","callbacks","removeEventListener","splice","markerParser","parsePayloadLines","line","lines","keysCount","trim","Error","_markers","markers","_marker","markerData","time","tm","duration","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","isPaused","autoplay","loop","renderer","animationID","timeCompleted","segmentPos","isSubframeEnabled","segments","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","wrapper","container","animType","RendererClass","rendererSettings","globalData","defs","setProjectInterface","parseInt","autoloadSegments","initialSegment","setupAnimation","lastIndexOf","substr","fileName","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","shift","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","setTimeout","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","stop","setCurrentRawFrameValue","getMarkerData","markerName","marker","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","playSegments","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSpeed","setDirection","setSegment","init","end","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","setLoop","isLooping","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","elapsedTime","requestAnimationFrame","first","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","setAttribute","body","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","str","replace","beziers","bezEasing","BezierEasing","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","x","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","pool","newElement","release","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","to","ti","ind","__fnct","getBezierEasing","y","n","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","getValue","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","shape","cloned","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","paths","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","p1","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","m","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","z","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","href","setSubframeRendering","setPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","define","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","_s","totalShapeLength","edges","newShapesData","addShapes","lastShape","pop","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","flex","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","toLowerCase","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","rd","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","root","filter","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","count","ml","lj","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","maxWaitingTime","emptyChar","size","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","parentNode","fontFamily","node","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","helper","engine","fontProps","tHelper","fFamily","textContent","fClass","tCanvasHelper","OffscreenCanvas","measureText","text","getComputedTextLength","Font","typekitLoaded","_warned","Date","now","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","fontPrototype","found","ch","list","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","querySelectorAll","rel","sc","getCharData","_char","console","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","removeChild","RenderableElement","initRenderable","isInRange","hidden","isTransparent","renderableComponents","addRenderableComponent","component","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effects","ef","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","getElementById","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","featureSupport","svgLumaHidden","offscreenCanvas","registeredEffects","idPrefix","SVGEffects","filterManager","createFilter","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","td","matteMasks","gg","tt","ln","hd","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","gf","cst","opacityId","maskId","opFill","lc","of","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","fc","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","textKeys","buildFinalText","charCode","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","add","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fh","fs","fb","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","xe","ne","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","pi","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","ariaLabel","title","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","className","focusable","filterSize","runExpressions","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","fromCharCode","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","insertBefore","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","popTransform","popped","popOpacity","opacity","getTransform","getOpacity","setOpacity","addTransformSequence","sequence","processSequence","processSequences","getNewKey","lumaLoader","lumaBuffer","lumaBufferCtx","svg","loadLuma","_svg","createLumaSvgFilter","createCanvas","loadLumaCanvas","getLumaCanvas","CVEffects","CVMaskElement","hasMasks","CVBaseElement","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","operationsMap","CVShapeData","transformsManager","styledShapes","styledShape","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","context","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","pe","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","createElements","buffers","bufferCanvas","bufferCanvas2","_isProxy","transformCanvas","blendMode","globalCompositeOperation","hideElement","showElement","clearRect","prepareLayer","bufferCtx","drawImage","exitLayer","buffer","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","wi","da","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","cProps","trProps","currentOpacity","globalAlpha","actionFlag","containerStyle","mozTransformOrigin","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","fillType","checkBlendMode","tg","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","strokeWidth","lineHeight","tParent","tCont","children","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","margin","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","overflow","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","hasParent","anchor_point","active","startTime","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","propertyName","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","view","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","start","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_prevValue","_sourceText","sourceText","stringValue","fillColor","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","nodecrypto","chunks","rngname","startdenom","significance","ARC4","keylen","me","copy","flatten","typ","mixkey","seed","smear","stringseed","tostring","options","shortseed","entropy","randomBytes","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","state","initialize$2","propTypes","SHAPE","ExpressionManager","fetch","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","substring","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","speed","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","current","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","createMergeNode","resultId","ins","feMergeNode","feMerge","linearFilterValue","SVGTintFilter","linearFilter","matrixFilter","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","colorBlack","colorWhite","groupPath","elemChildren","childNodes","removeAttribute","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","sigma","dimensions","sigmaX","sigmaY","edgeMode","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","isRequired","ReactPropTypes","array","bigint","bool","func","number","string","any","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","aa","ca","encodeURIComponent","Set","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","sanitizeURL","removeEmptyString","ra","toUpperCase","ta","pa","qa","oa","xlinkHref","ua","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","for","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","stack","match","Na","Oa","prepareStackTrace","Reflect","construct","displayName","includes","Pa","Qa","$$typeof","_context","_payload","_init","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","ab","bb","db","ownerDocument","eb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","MSApp","execUnsafeLocalFunction","lastChild","nodeType","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","qb","rb","sb","setProperty","tb","menuitem","area","base","br","embed","hr","input","keygen","link","param","track","wbr","ub","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","flags","Wb","memoizedState","dehydrated","Xb","Zb","child","sibling","Yb","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","oc","clz32","pc","qc","log","LN2","rc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Map","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","priority","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","transition","fd","gd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","pd","qd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","code","repeat","locale","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","date","datetime","email","month","password","range","search","tel","week","oe","listeners","qe","re","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","nextSibling","Le","contains","compareDocumentPosition","Me","HTMLIFrameElement","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","$e","af","bf","cf","df","ff","hf","lf","mf","nf","Ub","listener","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","char","ke","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Promise","Jf","queueMicrotask","resolve","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","H","Wf","Xf","Yf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","childContextTypes","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","ug","vg","wg","xg","yg","I","zg","Ag","Bg","deletions","Cg","pendingProps","treeContext","retryLane","Dg","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","defaultProps","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","bh","eventTime","lane","dh","eh","gh","hh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","L","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","contextType","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","implementation","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","tagName","Jh","Kh","Lh","M","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","N","Sh","Th","Uh","Vh","Q","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","action","hasEagerState","eagerState","lastRenderedState","dispatch","gi","hi","ii","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","qi","ri","deps","si","ui","vi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","message","digest","Li","Mi","Ni","WeakMap","Oi","Pi","Qi","Ri","getDerivedStateFromError","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","compare","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","tj","dataset","dgst","uj","vj","_reactRetry","sj","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","last","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","autoFocus","createTextNode","Hj","Ij","Jj","Kj","Lj","WeakSet","V","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","_reactRootContainer","Xj","X","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","ok","pk","Y","Z","qk","rk","tk","uk","Infinity","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","expirationTimes","expiredLanes","wc","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","mutableReadLanes","Bc","Pj","onCommitFiberRoot","mc","onRecoverableError","Xk","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","pendingSuspenseBoundaries","fl","gl","hl","il","jl","zj","$k","ll","reportError","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","form","tl","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_ref","_temp","_this","_ret","_len","_key","handleClickToPause","_props","eventListeners","registerEvents","nextProps","deRegisterEvents","isStopped","_this2","eventListener","_this3","_this4","_props2","ariaRole","isClickToPauseDisabled","getSize","initial","lottieStyles","outline","onClickHandler","role","tabIndex","__self","__source","jsx","jsxs","setState","forceUpdate","escape","_status","_result","Children","map","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","cloneElement","createContext","_currentValue2","_threadCount","Provider","Consumer","_defaultValue","_globalName","createFactory","createRef","forwardRef","isValidElement","lazy","memo","startTransition","unstable_act","sortIndex","performance","setImmediate","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","delay","unstable_wrapCallback","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","amdO","definition","chunkId","all","reduce","promises","miniCssF","inProgress","dataWebpackPrefix","script","needAttach","getAttribute","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","head","toStringTag","installedChunks","installedChunkData","promise","reject","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","_jsxs","_jsx","class","AI","placeholder","required","rows","header","maxHeight","logoc","alt","_toPropertyKey","hint","prim","res","ownKeys","enumerableOnly","_objectSpread2","getOwnPropertyDescriptors","lottieOptions","section1","section2","_objectSpread","IntroS1","innerHeight","IntroS2","navbar","scrollY","MimirUIUX","AppDev","MimirStats","Planning","Programmer","querySelector","scrollIntoView","behavior","Navbar","Header","Introduction","Services","Expertise","AIFocus","Approach","Contact","Mobile","Desktop","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","React","App","reportWebVitals"],"sourceRoot":""}