{"version":3,"file":"static/js/main.57f47698.js","mappings":"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","sources":["../node_modules/@lottiefiles/react-lottie-player/node_modules/tslib/tslib.es6.js","../node_modules/@lottiefiles/react-lottie-player/node_modules/lottie-web/build/player/lottie.js","../node_modules/@lottiefiles/react-lottie-player/src/versions.ts","../node_modules/@lottiefiles/react-lottie-player/src/Player.tsx","../node_modules/@lottiefiles/react-lottie-player/node_modules/style-inject/dist/style-inject.es.js","../node_modules/@lottiefiles/react-lottie-player/src/ColorPicker.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Popover.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Seeker.tsx","../node_modules/@lottiefiles/react-lottie-player/src/Controls.tsx","../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dom/server.browser.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/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","../../src/MatomoContext.tsx","../../../src/utils/useOutboundClickListener.tsx","../../src/useMatomo.ts","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/react-i18next/dist/es/withTranslation.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","component/ToggleSwitch.js","media/logo_f7a823.svg","media/burgermenu_000000.svg","media/burgermenu_f7a823.svg","component/Header.js","component/BookishContainer.js","component/BorderButton.js","media/email_f7a823.svg","media/phone_f7a823.svg","media/linkedin_f7a824.svg","media/linkedin_ffffff.svg","media/googlemaps_icon.svg","media/googlemaps_privacy_de.svg","component/Footer.js","App.js","component/Slogan.js","home/HomeIntro.js","media/arrow_right_000000.svg","media/arrow_right_f7a823.svg","component/ArrowButton.js","home/HomeServices.js","media/logo_newsrodeo_mobile.svg","media/logo_newsrodeo_desktop.svg","media/logo_iot_mobile.svg","media/logo_iot_desktop.svg","media/logo_infopop_mobile.svg","media/logo_infopop_desktop.svg","media/logo_passengerinfo_mobile.svg","media/logo_passengerinfo_desktop.svg","home/HomeProducts.js","../node_modules/react-indiana-drag-scroll/node_modules/tslib/tslib.es6.js","../node_modules/react-indiana-drag-scroll/node_modules/classnames/index.js","../node_modules/react-indiana-drag-scroll/node_modules/debounce/index.js","../node_modules/react-indiana-drag-scroll/node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-indiana-drag-scroll/src/index.tsx","../node_modules/react-indiana-drag-scroll/node_modules/easy-bem/index.js","home/HomeReferences.js","home/HomeCareer.js","media/arrow_left_000000.svg","media/arrow_left_ffffff.svg","media/arrow_right_ffffff.svg","component/Carousel.js","home/HomeTeam.js","media/he.svg","media/pos.svg","media/iphone3gs.svg","media/wienwappen.svg","home/HomeCompanyHistory.js","home/HomeLocations.js","home/Home.js","component/BubbleContainer.js","media/leistungsdreieck_text.svg","media/leistungsdreieck_000000.svg","media/webapp_ffffff.svg","media/webapp_000000.svg","media/mobileapp_ffffff.svg","media/mobileapp_000000.svg","media/desktopapp_ffffff.svg","media/desktopapp_000000.svg","media/cloudsystem_ffffff.svg","media/professionalservices_ffffff.svg","media/design_ffffff.svg","services/Services.js","component/BoxContainer.js","media/digitalsignage_000000.svg","media/cloudsystem_000000.svg","media/design_000000.svg","references/References.js","media/developer_000000.svg","career/CareerData.js","career/Career.js","component/Datenschutz.js","component/Impressum.js","reportWebVitals.js","../../src/constants.ts","../../src/MatomoTracker.ts","../../src/index.ts","../../src/instance.ts","../../src/MatomoProvider.tsx","../node_modules/i18next-http-backend/esm/utils.js","../node_modules/i18next-http-backend/esm/request.js","../node_modules/i18next-http-backend/esm/index.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","i18nextConf.js","index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\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","export const REACT_LOTTIE_PLAYER_VERSION = \"3.5.3\"; \nexport const LOTTIE_WEB_VERSION = \"^5.10.2\";\n","import lottie, { AnimationItem } from 'lottie-web';\nimport * as React from 'react';\n\nimport { LOTTIE_WEB_VERSION, REACT_LOTTIE_PLAYER_VERSION } from './versions';\n\n/**\n * Parse a resource into a JSON object or a URL string\n */\nexport function parseSrc(src: string | object): string | object {\n if (typeof src === 'object') {\n return src;\n }\n\n try {\n return JSON.parse(src);\n } catch (e) {\n // Do nothing...\n }\n\n // Try construct an absolute URL from the src URL\n try {\n return new URL(src).toString();\n } catch (e) {\n // Do nothing...\n }\n\n return src;\n}\n\n// Necessary so that we can add Lottie to the window afterwards\ndeclare global {\n interface Window {\n lottie: any;\n }\n}\n\n// Define valid player states\nexport enum PlayerState {\n Loading = 'loading',\n Playing = 'playing',\n Paused = 'paused',\n Stopped = 'stopped',\n Frozen = 'frozen',\n Error = 'error',\n}\n\n// Define player events\nexport enum PlayerEvent {\n Load = 'load',\n InstanceSaved = 'instanceSaved',\n Error = 'error',\n Ready = 'ready',\n Play = 'play',\n Pause = 'pause',\n Stop = 'stop',\n Freeze = 'freeze',\n Loop = 'loop',\n Complete = 'complete',\n Frame = 'frame',\n}\n\nexport type Versions = {\n lottieWebVersion: string;\n lottiePlayerVersion: string;\n};\n\nexport type PlayerDirection = -1 | 1;\n\nexport interface IPlayerProps {\n id?: string;\n lottieRef?: (ref: AnimationItem) => void;\n onEvent?: (event: PlayerEvent) => any;\n onStateChange?: (state: PlayerState) => any;\n onBackgroundChange?: (color: string) => void;\n autoplay?: boolean;\n background?: string;\n children?: React.ReactNode | React.ReactNode[];\n controls?: boolean;\n direction?: PlayerDirection;\n hover?: boolean;\n loop?: boolean | number;\n renderer?: any;\n speed?: number;\n src: object | string;\n style?: React.CSSProperties;\n rendererSettings?: object;\n keepLastFrame?: boolean;\n className?: string;\n}\n\ninterface IPlayerState {\n animationData: any;\n background: string;\n containerRef: React.Ref | null;\n debug?: boolean;\n instance: AnimationItem | null;\n seeker: number;\n playerState: PlayerState;\n}\n\n// Build default config for lottie-web player\nconst defaultOptions = {\n clearCanvas: false,\n hideOnTransparent: true,\n progressiveLoad: true,\n};\n\nexport class Player extends React.Component {\n public static async getDerivedStateFromProps(nextProps: any, prevState: any) {\n if (nextProps.background !== prevState.background) {\n return { background: nextProps.background };\n } else {\n return null;\n }\n }\n\n public container: Element | null = null;\n public unmounted = false;\n\n constructor(props: IPlayerProps) {\n super(props);\n\n if (typeof window !== 'undefined') {\n window.lottie = lottie;\n }\n this.state = {\n animationData: null,\n background: 'transparent',\n containerRef: React.createRef(),\n debug: true,\n instance: null,\n playerState: PlayerState.Loading,\n seeker: 0,\n };\n }\n\n /**\n * Returns the lottie-web version and this player's version\n */\n public getVersions(): Versions {\n return {\n lottieWebVersion: LOTTIE_WEB_VERSION,\n lottiePlayerVersion: REACT_LOTTIE_PLAYER_VERSION,\n };\n }\n\n static defaultProps = {\n loop: false,\n };\n\n public async componentDidMount() {\n if (!this.unmounted) {\n await this.createLottie();\n }\n }\n\n public componentWillUnmount() {\n this.unmounted = true;\n if (this.state.instance) {\n this.state.instance.destroy();\n }\n }\n\n public async componentDidUpdate(prevProps: any) {\n if (this.props.src !== prevProps.src) {\n if (this.state.instance) {\n this.state.instance.destroy();\n }\n await this.createLottie();\n }\n }\n handleBgChange = (childData: any) => {\n this.setState({ background: childData });\n };\n triggerDownload = (dataUri: any, filename: any) => {\n const element = document.createElement('a');\n\n element.href = dataUri;\n element.download = filename;\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n };\n snapshot = (download = true) => {\n let data;\n const id = this.props.id ? this.props.id : 'lottie';\n const lottieElement = document.getElementById(id);\n if (this.props.renderer === 'svg') {\n // Get SVG element and serialize markup\n if (lottieElement) {\n const svgElement = lottieElement.querySelector('svg');\n\n if (svgElement) {\n const serializedSvg = new XMLSerializer().serializeToString(svgElement);\n data = 'data:image/svg+xml;charset=utf-8,' + encodeURIComponent(serializedSvg);\n }\n }\n\n // Trigger file download if needed\n if (download) {\n // this.triggerDownload(data, `snapshot_${progress}.svg`);\n this.triggerDownload(data, `snapshot.svg`);\n }\n } else if (this.props.renderer === 'canvas') {\n if (lottieElement) {\n const canvas = lottieElement.querySelector('canvas');\n if (canvas) {\n data = canvas.toDataURL('image/png');\n }\n }\n // Trigger file download if needed\n if (download) {\n // this.triggerDownload(data, `snapshot_${progress}.png`);\n this.triggerDownload(data, `snapshot.png`);\n }\n }\n\n return data;\n };\n\n public render() {\n const { children, loop, style, onBackgroundChange, className } = this.props;\n const { animationData, instance, playerState, seeker, debug, background } = this.state;\n\n return (\n
\n {this.state.playerState === PlayerState.Error ? (\n
\n \n ⚠️\n \n
\n ) : (\n (this.container = el)}\n style={{\n background,\n margin: '0 auto',\n outline: 'none',\n overflow: 'hidden',\n ...style,\n }}\n className={className}\n >
\n )}\n {React.Children.map(children, child => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n animationData,\n background,\n debug,\n instance,\n loop,\n pause: () => this.pause(),\n play: () => this.play(),\n playerState,\n seeker,\n setBackground: (value: string) => {\n this.setState({ background: value });\n\n if (typeof onBackgroundChange === 'function') {\n onBackgroundChange(value);\n }\n },\n setSeeker: (f: number, p: boolean) => this.setSeeker(f, p),\n stop: () => this.stop(),\n toggleDebug: () => this.toggleDebug(),\n setLoop: (loop: boolean) => this.setLoop(loop),\n colorChangedEvent: (hex: string) => {\n this.handleBgChange(hex);\n },\n snapshot: () => {\n this.snapshot();\n },\n });\n }\n return null;\n })}\n \n );\n }\n\n private toggleDebug() {\n this.setState({ debug: !this.state.debug });\n }\n\n private async createLottie() {\n const {\n autoplay,\n direction,\n loop,\n lottieRef,\n renderer,\n speed,\n src,\n background,\n rendererSettings,\n hover,\n } = this.props;\n const { instance } = this.state;\n\n if (!src || !this.container) {\n return;\n }\n\n // Load the resource information\n try {\n // Parse the src to see if it is a URL or Lottie JSON data\n let animationData = parseSrc(src);\n\n if (typeof animationData === 'string') {\n const fetchResult = await fetch(animationData as string).catch(() => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n throw new Error('@LottieFiles/lottie-react: Animation data could not be fetched.');\n });\n\n animationData = await fetchResult.json().catch(() => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n throw new Error('@LottieFiles/lottie-react: Animation data could not be fetched.');\n });\n }\n\n // Clear previous animation, if any\n if (instance) {\n instance.destroy();\n }\n\n // Initialize lottie player and load animation\n const newInstance = lottie.loadAnimation({\n rendererSettings: rendererSettings || defaultOptions,\n animationData,\n autoplay: autoplay || false,\n container: this.container as Element,\n loop: loop || false,\n renderer,\n });\n if (speed) {\n newInstance.setSpeed(speed);\n }\n this.setState({ animationData });\n\n this.setState({ instance: newInstance }, () => {\n this.triggerEvent(PlayerEvent.InstanceSaved);\n\n if (typeof lottieRef === 'function') {\n lottieRef(newInstance);\n }\n if (autoplay) {\n this.play();\n }\n });\n\n // Handle new frame event\n newInstance.addEventListener('enterFrame', () => {\n this.triggerEvent(PlayerEvent.Frame);\n\n this.setState({\n seeker: Math.floor((newInstance as any).currentFrame),\n });\n });\n\n // Handle lottie-web ready event\n newInstance.addEventListener('DOMLoaded', () => {\n this.triggerEvent(PlayerEvent.Load);\n });\n\n // Handle animation data load complete\n newInstance.addEventListener('data_ready', () => {\n this.triggerEvent(PlayerEvent.Ready);\n });\n\n // Set error state when animation load fail event triggers\n newInstance.addEventListener('data_failed', () => {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n });\n\n // Handle new loop event\n newInstance.addEventListener('loopComplete', () => {\n this.triggerEvent(PlayerEvent.Loop);\n });\n\n // Set state to paused if loop is off and anim has completed\n newInstance.addEventListener('complete', () => {\n this.triggerEvent(PlayerEvent.Complete);\n this.setState({ playerState: PlayerState.Paused });\n\n if (!this.props.keepLastFrame || this.props.loop) {\n this.setSeeker(0);\n }\n });\n\n // Set handlers to auto play animation on hover if enabled\n if (this.container) {\n this.container.addEventListener('mouseenter', () => {\n if (hover && this.state.playerState !== PlayerState.Playing) {\n if (this.props.keepLastFrame) {\n this.stop();\n }\n this.play();\n }\n });\n this.container.addEventListener('mouseleave', () => {\n if (hover && this.state.playerState === PlayerState.Playing) {\n this.stop();\n }\n });\n }\n\n // Set initial playback speed and direction\n if (speed) {\n this.setPlayerSpeed(speed);\n }\n\n if (direction) {\n this.setPlayerDirection(direction);\n }\n\n if (background) {\n this.setState({ background });\n }\n } catch (e) {\n this.setState({ playerState: PlayerState.Error });\n this.triggerEvent(PlayerEvent.Error);\n }\n }\n\n public play() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Play);\n\n instance.play();\n\n this.setState({ playerState: PlayerState.Playing });\n }\n }\n\n public pause() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Pause);\n\n instance.pause();\n\n this.setState({ playerState: PlayerState.Paused });\n }\n }\n\n public stop() {\n const { instance } = this.state;\n\n if (instance) {\n this.triggerEvent(PlayerEvent.Stop);\n\n instance.stop();\n\n this.setState({ playerState: PlayerState.Stopped });\n }\n }\n\n public setPlayerSpeed(speed: number) {\n const { instance } = this.state;\n\n if (instance) {\n instance.setSpeed(speed);\n }\n }\n\n public setPlayerDirection(direction: PlayerDirection) {\n const { instance } = this.state;\n\n if (instance) {\n instance.setDirection(direction);\n }\n }\n\n public setSeeker(seek: number, play = false) {\n const { instance, playerState } = this.state;\n\n if (instance) {\n if (!play || playerState !== PlayerState.Playing) {\n instance.goToAndStop(seek, true);\n this.triggerEvent(PlayerEvent.Pause);\n this.setState({ playerState: PlayerState.Paused });\n } else {\n instance.goToAndPlay(seek, true);\n }\n }\n }\n\n public setLoop(loop: boolean) {\n const { instance } = this.state;\n\n if (instance) {\n instance.loop = loop;\n this.setState({ instance: instance });\n }\n }\n private triggerEvent(event: PlayerEvent) {\n const { onEvent } = this.props;\n\n if (onEvent) {\n onEvent(event);\n }\n }\n}\n","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import * as React from 'react';\n\ninterface ColorPickerProps {\n colorChangedEvent?: (hex: string) => void;\n}\nexport class ColorPicker extends React.Component {\n state = {\n red: 0,\n green: 0,\n blue: 0,\n rgba: null,\n hex: '#000000',\n colorComponents: [],\n };\n\n handleChange = (rgb: string, value: any) => {\n if (rgb === 'r') {\n const hex =\n '#' +\n (value | (1 << 8)).toString(16).slice(1) +\n (this.state.green | (1 << 8)).toString(16).slice(1) +\n (this.state.blue | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n } else if (rgb === 'g') {\n const hex =\n '#' +\n (this.state.red | (1 << 8)).toString(16).slice(1) +\n (value | (1 << 8)).toString(16).slice(1) +\n (this.state.blue | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n } else if (rgb === 'b') {\n const hex =\n '#' +\n (this.state.red | (1 << 8)).toString(16).slice(1) +\n (this.state.green | (1 << 8)).toString(16).slice(1) +\n (value | (1 << 8)).toString(16).slice(1);\n this.setState({ hex: hex });\n }\n };\n parseColor = (input: string) => {\n if (typeof input !== 'string') {\n return;\n }\n if (input[0] === '#') {\n const _colorComponents =\n input.length === 4\n ? [input.slice(1, 2), input.slice(2, 3), input.slice(3, 4)].map(n => parseInt(`${n}${n}`, 16))\n : [input.slice(1, 3), input.slice(3, 5), input.slice(5, 7)].map(n => parseInt(n, 16));\n this.setState({ colorComponents: _colorComponents });\n } else if (input.startsWith('rgb')) {\n const _colorComponents = input.match(/\\d+/g)?.map(n => parseInt(n));\n if (_colorComponents !== undefined) {\n this.setState({ colorComponents: _colorComponents });\n }\n }\n\n if (this.state.colorComponents.length) {\n this.setState({ red: this.state.colorComponents[0] });\n this.setState({ green: this.state.colorComponents[1] });\n this.setState({ blue: this.state.colorComponents[2] });\n }\n };\n\n componentDidUpdate(_prevProps: any, prevState: any) {\n if (this.props.colorChangedEvent) {\n if (this.state.hex !== prevState.hex) {\n this.props.colorChangedEvent(this.state.hex);\n }\n }\n return true;\n }\n public render() {\n return (\n
\n
\n
\n Red\n {\n this.setState({ red: event.target.value });\n this.handleChange('r', event.target.value);\n }}\n />\n {\n this.setState({ red: event.target.value });\n this.handleChange('r', event.target.value);\n }}\n />\n
\n
\n Green\n {\n this.setState({ green: event.target.value });\n this.handleChange('g', event.target.value);\n }}\n />\n {\n this.setState({ green: event.target.value });\n this.handleChange('g', event.target.value);\n }}\n />\n
\n
\n Blue\n {\n this.setState({ blue: event.target.value });\n this.handleChange('b', event.target.value);\n }}\n />\n {\n this.setState({ blue: event.target.value });\n this.handleChange('b', event.target.value);\n }}\n />\n
\n
\n
\n \n
\n {\n this.setState({ hex: e.target.value });\n this.parseColor(e.target.value);\n }}\n />\n
\n
\n
\n );\n }\n}\n","/* eslint-disable jsx-a11y/mouse-events-have-key-events */\n/* eslint-disable react/jsx-no-comment-textnodes */\nimport * as React from 'react';\nimport { useEffect, useState } from 'react';\nimport { ReactNode } from 'react';\n\ninterface IPopoverProps {\n children: ReactNode;\n icon: ReactNode;\n}\n\nexport const Popover: React.FC = (props: IPopoverProps) => {\n const { children, icon } = props;\n const [_triggerRef, setTriggerRef] = useState(null);\n const [_contentRef, setContentRef] = useState(null);\n const [_alignment, setAlignment] = useState(null);\n const [_open, setOpen] = useState(false);\n\n useEffect(() => {\n if (_triggerRef && _contentRef) {\n const triggerBounds = _triggerRef.getBoundingClientRect();\n const contentBounds = _contentRef.getBoundingClientRect();\n\n const alignment = triggerBounds.left + contentBounds.width > window.innerWidth ? -1 : 0;\n\n setAlignment(alignment);\n }\n }, [_alignment, _contentRef, _triggerRef]);\n\n // /**\n // * Show content box\n // */\n const show = () => {\n setOpen(true);\n };\n\n /**\n * Hide content box\n */\n const hide = () => {\n setOpen(false);\n };\n\n return (\n {\n show();\n }}\n onMouseLeave={() => {\n hide();\n }}\n ref={triggerRef => {\n setTriggerRef(triggerRef);\n }}\n >\n
{icon}
\n\n {\n setContentRef(contentRef);\n }}\n style={{\n bottom: '22px',\n right: '0px',\n zIndex: 2,\n visibility: _open ? 'visible' : 'hidden',\n }}\n >\n {children}\n \n \n );\n};\nexport default Popover;\n","import './Styles.css';\n\nimport * as React from 'react';\n\n// const active = 'rgba(15, 204, 206, 0.4)';\n// const inactive = '#dbdbdb';\n\ninterface ISeekerProps {\n className?: string;\n disabled?: boolean;\n max: number;\n min: number;\n onChange: (e: any) => void;\n onChangeStart?: (v: number) => void;\n onChangeEnd?: (v: number) => void;\n showLabels?: boolean;\n step: number;\n value: number;\n darkTheme?: boolean;\n}\n\nexport class Seeker extends React.Component {\n inputRef: any = React.createRef();\n\n constructor(props: ISeekerProps) {\n super(props);\n this.state = { value: 0 };\n }\n\n handleChange = () => (event: any) => {\n const value = event.target.value;\n const frame = Math.floor((value / 100) * this.props.max);\n this.props.onChange(frame);\n };\n\n render() {\n const progress = (this.props.value / this.props.max) * 100;\n const seekerStyle = {\n backgroundImage: `-webkit-gradient(linear, left top, right top, color-stop(${progress}%, rgba(15, 204, 206, 0.4)), color-stop(${progress}%, #DAE1E7))`,\n };\n const seekerContainerStyle = {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n width: '100%',\n marginRight: '5px',\n marginLeft: '5px',\n position: 'relative',\n } as React.CSSProperties;\n\n const minLabelStyle = {\n position: 'absolute',\n left: 0,\n marginTop: '8px',\n width: '20px',\n display: 'block',\n border: '0px',\n backgroundColor: this.props.darkTheme ? '#505050' : 'rgb(218, 225, 231)',\n color: this.props.darkTheme ? '#B9B9B9' : '#555',\n padding: '2px',\n textAlign: 'center',\n borderRadius: '3px',\n fontSize: '8px',\n fontWeight: 'bold',\n } as React.CSSProperties;\n const maxLabelStyle = {\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '20px',\n display: 'block',\n border: '0px',\n backgroundColor: this.props.darkTheme ? '#505050' : 'rgb(218, 225, 231)',\n color: this.props.darkTheme ? '#B9B9B9' : '#555',\n padding: '2px',\n textAlign: 'center',\n borderRadius: '3px',\n fontSize: '8px',\n fontWeight: 'bold',\n } as React.CSSProperties;\n return (\n
\n \n {this.props.showLabels && (\n
\n
{this.props.min}
\n
{this.props.max}
\n
\n )}\n
\n );\n }\n}\n","/* eslint-disable jsx-a11y/no-static-element-interactions */\n/* eslint-disable jsx-a11y/click-events-have-key-events */\nimport './Styles.css';\n\nimport * as React from 'react';\n\nimport { ColorPicker } from './ColorPicker';\nimport { PlayerEvent, PlayerState } from './Player';\nimport { Popover } from './Popover';\nimport { Seeker } from './Seeker';\n\nconst ControlButtonStyle = {\n display: 'inline-flex',\n cursor: 'pointer',\n};\n\ninterface IControlProps {\n instance?: any;\n loop?: boolean;\n pause?: () => void;\n play?: () => void;\n playerState?: PlayerState;\n seeker?: number;\n setLoop?: (value: boolean) => void;\n setSeeker?: (seek: number, play: boolean) => void;\n stop?: () => void;\n visible?: boolean;\n buttons?: string[];\n debug?: boolean;\n toggleDebug?: () => void;\n showLabels?: boolean;\n darkTheme?: boolean;\n transparentTheme?: boolean;\n colorChangedEvent?: () => void;\n snapshot?: () => void;\n}\n\nexport class Controls extends React.Component {\n public constructor(props: IControlProps) {\n super(props);\n\n this.state = {\n activeFrame: 0,\n mouseDown: false,\n };\n }\n\n public render() {\n const { instance, playerState, seeker, setLoop, setSeeker, play, pause, stop, visible, buttons } = this.props;\n\n // Render nothing if lottie instance is not available\n if (!instance) {\n return null;\n }\n\n // Hide controls if not set to visible\n if (!visible) {\n return null;\n }\n\n const showPlayButton = !buttons || buttons.includes('play');\n const showStopButton = !buttons || buttons.includes('stop');\n const showRepeatButton = !buttons || buttons.includes('repeat');\n const showFrameInput = !buttons || buttons.includes('frame');\n const showBackgroundChange = !buttons || buttons.includes('background');\n const showSnapshot = !buttons || buttons.includes('snapshot');\n const ICON_SIZE = { width: 14, height: 14, viewBox: '0 0 24 24' };\n const currentFrame = Math.round(instance.currentFrame);\n\n return (\n \n {showPlayButton && (\n {\n if (playerState === PlayerState.Playing) {\n if (typeof pause === 'function') {\n pause();\n }\n } else {\n if (typeof play === 'function') {\n play();\n }\n }\n }}\n onKeyDown={() => {\n if (playerState === PlayerState.Playing) {\n if (typeof pause === 'function') {\n pause();\n }\n } else {\n if (typeof play === 'function') {\n play();\n }\n }\n }}\n className=\"lf-player-btn\"\n style={ControlButtonStyle}\n >\n {playerState === PlayerState.Playing ? (\n \n \n \n \n ) : (\n \n \n \n )}\n \n )}\n {showStopButton && (\n stop && stop()}\n onKeyDown={() => stop && stop()}\n className={playerState === PlayerState.Stopped ? 'lf-player-btn active' : 'lf-player-btn'}\n style={ControlButtonStyle}\n >\n \n \n \n \n )}\n {\n if (setSeeker) {\n this.setState({ activeFrame: newFrame }, () => {\n setSeeker(newFrame, false);\n });\n }\n }}\n onChangeEnd={(newFrame: any) => {\n if (setSeeker) {\n this.setState({ activeFrame: newFrame }, () => {\n setSeeker(newFrame, false);\n });\n }\n }}\n showLabels={this.props.showLabels}\n darkTheme={this.props.darkTheme}\n />\n {showFrameInput && (\n
\n \n
\n )}\n {showRepeatButton && (\n {\n if (instance && setLoop) {\n setLoop(!instance.loop);\n }\n }}\n onKeyDown={() => {\n if (instance && setLoop) {\n setLoop(!instance.loop);\n }\n }}\n className={instance.loop ? 'lf-player-btn active' : 'lf-player-btn'}\n style={ControlButtonStyle}\n >\n \n \n \n \n \n )}\n {showBackgroundChange && (\n \n \n \n }\n >\n
\n \n
\n \n )}\n {showSnapshot && (\n \n \n \n \n \n \n }\n >\n {\n if (setSeeker) setSeeker(currentFrame + (e.deltaY > 0 ? -1 : 1), false);\n }}\n >\n
Frame {currentFrame}
\n
\n Download SVG\n
\n
\n Download PNG\n
\n Scroll with mousewheel to find exact frame\n \n \n )}\n \n );\n }\n}\n","/**\n * @license React\n * react-dom-server-legacy.browser.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'use strict';var aa=require(\"react\");function l(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c