{"version":3,"sources":["webpack:///./node_modules/react/index.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/es6.array.slice.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/@creuna/utils/is-running-on-client.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/react-tiny-collapse/lib/index.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/@creuna/utils/to-query-string.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/pubsub-js/src/pubsub.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/form-serialize/index.js","webpack:///./node_modules/@creuna/utils/get-data.js","webpack:///./node_modules/react-lottie/dist/index.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/react/index.js-exposed","webpack:///./node_modules/react/cjs/react.production.min.js","webpack:///./node_modules/react-dom/index.js-exposed","webpack:///./node_modules/react-dom/cjs/react-dom.production.min.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/prop-types/factoryWithThrowingShims.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/es6.string.big.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/@creuna/utils/any-to-kebab.js","webpack:///./node_modules/@creuna/utils/kebab-to-camel.js","webpack:///./node_modules/@creuna/utils/kebab-to-pascal.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/modules/es6.string.small.js","webpack:///./node_modules/babel-runtime/helpers/extends.js","webpack:///./node_modules/babel-runtime/core-js/object/assign.js","webpack:///./node_modules/core-js/library/fn/object/assign.js","webpack:///./node_modules/core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_object-assign.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/babel-runtime/core-js/object/get-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/get-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/babel-runtime/helpers/createClass.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/babel-runtime/helpers/inherits.js","webpack:///./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/babel-runtime/core-js/object/create.js","webpack:///./node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/lottie-web/build/player/lottie.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/@creuna/utils/strip-undefined.js","webpack:///./node_modules/@creuna/utils/strip-properties-with-value.js","webpack:///./node_modules/@creuna/utils/filter-object.js","webpack:///./node_modules/@vimeo/player/dist/player.es.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/youtube-player/dist/index.js","webpack:///./node_modules/sister/src/sister.js","webpack:///./node_modules/youtube-player/dist/loadYouTubeIframeApi.js","webpack:///./node_modules/load-script/index.js","webpack:///./node_modules/youtube-player/dist/YouTubePlayer.js","webpack:///./node_modules/youtube-player/node_modules/debug/src/browser.js","webpack:///./node_modules/youtube-player/node_modules/debug/src/debug.js","webpack:///./node_modules/youtube-player/node_modules/ms/index.js","webpack:///./node_modules/youtube-player/dist/functionNames.js","webpack:///./node_modules/youtube-player/dist/eventNames.js","webpack:///./node_modules/youtube-player/dist/FunctionStateMap.js","webpack:///./node_modules/youtube-player/dist/constants/PlayerStates.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/whatwg-fetch/fetch.js"],"names":["module","exports","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","default","$export","S","F","assign","$map","P","map","callbackfn","this","dP","f","FProto","Function","nameRE","configurable","get","match","e","global","has","DESCRIPTORS","redefine","META","KEY","$fails","shared","setToStringTag","uid","wks","wksExt","wksDefine","enumKeys","anObject","isObject","toObject","toIObject","toPrimitive","createDesc","_create","gOPNExt","$GOPD","$GOPS","$DP","$keys","gOPD","gOPN","$Symbol","Symbol","$JSON","JSON","_stringify","stringify","HIDDEN","TO_PRIMITIVE","isEnum","propertyIsEnumerable","SymbolRegistry","AllSymbols","OPSymbols","ObjectProto","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","value","a","it","D","protoDesc","wrap","tag","sym","_k","isSymbol","iterator","$defineProperty","enumerable","$defineProperties","keys","l","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","names","result","$getOwnPropertySymbols","IS_OP","TypeError","undefined","$set","set","name","G","W","es6Symbols","split","j","wellKnownSymbols","store","k","keyFor","useSetter","useSimple","create","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","replacer","$replacer","args","valueOf","Math","classof","test","addToUnscopables","step","Iterators","iterated","kind","_t","_i","O","index","Arguments","$at","String","point","done","$iterators","getKeys","hide","ITERATOR","TO_STRING_TAG","ArrayValues","DOMIterables","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","collections","NAME","explicit","Collection","proto","html","cof","toAbsoluteIndex","toLength","arraySlice","slice","begin","end","len","klass","start","upTo","size","cloned","charAt","ctx","isArrayIter","createProperty","getIterFn","iter","from","arrayLike","C","aLen","mapfn","mapping","iterFn","next","USE_SYMBOL","core","type","source","own","out","exp","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","B","target","expProto","U","R","window","self","__g","exec","version","__e","IE8_DOM_DEFINE","Attributes","defined","IObject","_default","document","toInteger","min","object","_react","_interopRequireDefault","_propTypes","obj","__esModule","_typeof","constructor","_objectSpread","ownKeys","concat","filter","forEach","_defineProperty","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","writable","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","ReferenceError","Collapse","_React$Component","_getPrototypeOf2","_this","_len","_key","height","forceInitialAnimation","isOpen","isAnimating","isMounted","child","wrapper","firstElementChild","max","offsetHeight","newHeight","getHeight","clearTimeout","timer","cancelAnimationFrame","raf","setState","previousHeight","shouldAnimate","requestAnimationFrame","setTimeout","duration","protoProps","staticProps","subClass","superClass","_inherits","nextProps","prevState","openDidChange","forceAnimation","_this2","transition","prevProps","prevHeight","state","childrenDidChange","onMeasure","animateChildren","_this3","_this$state","_this$props","shouldMount","unmountChildren","initiallyHidden","createElement","component","componentProps","className","onTransitionEnd","ref","el","style","overflow","visibility","easing","children","Component","bool","node","string","oneOfType","number","func","SRC","$toString","TPL","inspectSource","val","safe","isFunction","g","advanceStringIndex","regExpExec","floor","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","$replace","maybeCallNative","searchValue","replaceValue","fn","regexp","res","rx","functionalReplace","fullUnicode","unicode","lastIndex","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","groups","replacerArgs","replacement","getSubstitution","str","tailPos","m","symbols","ch","capture","n","enumBugKeys","createHTML","url","IS_WRAP","b","c","virtual","aFunction","that","$filter","sameValue","SEARCH","$search","RegExp","previousLastIndex","id","px","random","bitmap","UNSCOPABLES","ArrayProto","getOwnPropertyDescriptors","desc","getDesc","_stripUndefined","_slicedToArray","arr","_arrayWithHoles","_arr","_n","_d","_e","_s","err","_iterableToArrayLimit","_nonIterableRest","defaultOptions","encode","prefix","getOptionsToUse","options","queryObject","optionsToUse","reduce","accumulator","currentKey","currentIndex","currentValue","separator","_ref2","encodeURIComponent","mode","copyright","ceil","isNaN","TAG","ARG","T","tryGet","callee","def","stat","$values","values","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","fails","quot","attribute","p1","replace","toLowerCase","builtinExec","re1","re2","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","NPCG_INCLUDED","reCopy","re","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","arg2","forceStringMethod","strfn","rxfn","is","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","display","appendChild","src","contentWindow","open","write","lt","close","Properties","documentElement","hiddenKeys","pIE","LIBRARY","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","error","root","factory","PubSub","messages","lastUid","callSubscriberWithDelayedExceptions","subscriber","message","data","ex","throwException","callSubscriberWithImmediateExceptions","deliverMessage","originalMessage","matchedMessage","immediateExceptions","s","subscribers","callSubscriber","hasDirectSubscribersFor","topic","Boolean","hasKeys","publish","sync","deliver","lastIndexOf","substr","createDeliveryFunction","found","messageHasSubscribers","publishSync","subscribe","token","subscribeAll","subscribeOnce","unsubscribe","clearAllSubscriptions","clearSubscriptions","indexOf","countSubscriptions","count","getSubscriptions","list","t","isTopic","descendantTopicExists","isToken","propIsEnumerable","test1","test2","fromCharCode","test3","letter","shouldUseNative","to","MATCH","isRegExp","at","TO_STRING","pos","charCodeAt","arrayIndexOf","IS_INCLUDES","fromIndex","$iterCreate","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","ret","getIteratorMethod","SAFE_CLOSING","riter","skipClosing","method","$getPrototypeOf","bind","rConstruct","Reflect","construct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","un","defer","channel","port","invoke","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","event","nextTick","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","removeChild","clear","PromiseCapability","resolve","reject","promise","$$resolve","$$reject","$find","forced","find","_iterator2","_symbol2","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","marker","runClearTimeout","Item","array","noop","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","k_r_submitter","k_r_success_contrls","brackets","hash_serializer","hash_assign","shift","between","_values","parse_keys","existing","str_serialize","form","hash","serializer","elements","radio_store","element","disabled","nodeName","checked","empty","selectOptions","isSelectedOptions","option","allowedEmpty","hasValue","selected","_anyToKebab","_isRunningOnClient","_kebabToCamel","dataAttributeName","kebabedName","querySelector","dataset","_extends3","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_ref","_temp","_ret","handleClickToPause","anim","isPaused","play","pause","_props","eventListeners","loop","autoplay","animationData","rendererSettings","segments","container","renderer","loadAnimation","registerEvents","deRegisterEvents","destroy","isStopped","stop","playSegments","setSpeed","setDirection","speed","direction","eventListener","eventName","callback","removeEventListener","_this4","_props2","width","ariaRole","ariaLabel","isClickToPauseDisabled","getSize","initial","lottieStyles","margin","outline","onClickHandler","onClick","role","tabIndex","propTypes","arrayOf","isRequired","defaultProps","speciesConstructor","callRegExpExec","$min","$push","LENGTH","SUPPORTS_Y","SPLIT","$split","internalSplit","limit","lastLength","output","flags","ignoreCase","multiline","sticky","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","q","A","z","for","r","u","v","w","x","y","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","context","refs","updater","H","isReactComponent","forceUpdate","I","isPureReactComponent","J","current","K","L","__self","__source","M","d","h","$$typeof","_owner","Q","pop","keyPrefix","V","escape","aa","X","N","Y","Z","ba","ReactCurrentDispatcher","ReactCurrentBatchConfig","suspense","ReactCurrentOwner","IsSomeRendererActing","Children","toArray","only","Fragment","Profiler","PureComponent","StrictMode","Suspense","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","cloneElement","createContext","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","render","isValidElement","lazy","_ctor","_status","_result","memo","compare","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","onError","da","ea","fa","ha","ia","ja","la","ma","na","oa","currentTarget","ka","pa","qa","ra","sa","extractEvents","eventTypes","ta","phasedRegistrationNames","ua","registrationName","va","wa","dependencies","xa","ya","za","Aa","Ba","Ca","stateNode","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","Pa","Qa","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","Ua","Va","toUpperCase","xlinkHref","Wa","Xa","Sa","Ta","Ra","removeAttribute","setAttribute","setAttributeNS","Ya","Za","$a","ab","bb","cb","db","eb","fb","gb","hb","ib","jb","kb","lb","mb","nb","pb","displayName","qb","_debugOwner","_debugSource","fileName","lineNumber","return","rb","sb","xb","_valueTracker","getValue","setValue","stopTracking","tb","yb","zb","defaultChecked","defaultValue","_wrapperState","initialChecked","Ab","initialValue","controlled","Bb","Cb","Db","Eb","ownerDocument","activeElement","Gb","Fb","Hb","defaultSelected","Ib","dangerouslySetInnerHTML","Jb","Kb","Lb","textContent","Mb","Nb","Ob","Pb","Qb","MSApp","execUnsafeLocalFunction","namespaceURI","innerHTML","firstChild","Rb","lastChild","nodeType","nodeValue","Sb","Tb","animationend","animationiteration","animationstart","transitionend","Ub","Vb","Wb","animation","Xb","Yb","Zb","$b","ac","bc","WeakMap","Map","cc","dc","alternate","effectTag","ec","memoizedState","dehydrated","fc","hc","sibling","gc","ic","jc","kc","lc","_dispatchListeners","_dispatchInstances","isPropagationStopped","isPersistent","release","mc","nc","srcElement","correspondingUseElement","parentNode","oc","pc","qc","topLevelType","nativeEvent","targetInst","ancestors","rc","eventSystemFlags","sc","containerInfo","tc","uc","vc","wc","xc","yc","zc","Ac","Bc","Cc","Dc","Ec","Fc","Gc","Hc","Ic","Kc","blockedOn","Lc","delete","pointerId","Mc","Nc","Pc","unstable_runWithPriority","priority","hydrate","Qc","Rc","Sc","Tc","Uc","unstable_scheduleCallback","unstable_NormalPriority","Vc","Wc","Yc","Zc","$c","ad","bubbled","captured","eventPriority","bd","cd","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","Oc","jd","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","kd","ld","trim","md","setProperty","substring","nd","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","od","pd","qd","rd","sd","td","body","ud","vd","offset","nextSibling","xd","HTMLIFrameElement","location","href","yd","contentEditable","Dd","Ed","Fd","autoFocus","Gd","__html","Hd","Id","Jd","Kd","previousSibling","Ld","Md","Nd","Od","Pd","Qd","Rd","Sd","Td","dispatchConfig","Ud","_targetInst","Vd","Wd","Xd","Yd","Zd","$d","ae","be","ce","Interface","isDefaultPrevented","defaultPrevented","returnValue","ee","eventPool","fe","destructor","de","getPooled","preventDefault","stopPropagation","cancelBubble","persist","eventPhase","bubbles","cancelable","timeStamp","Date","isTrusted","extend","ge","he","ie","je","ke","documentMode","le","me","ne","oe","beforeInput","compositionEnd","compositionStart","compositionUpdate","pe","qe","keyCode","detail","se","ve","locale","which","te","ctrlKey","altKey","metaKey","char","ue","we","color","date","datetime","email","month","password","range","search","tel","text","time","week","xe","ye","change","ze","Ae","Be","Ce","De","Ee","Fe","Ge","detachEvent","He","Ie","attachEvent","Je","Ke","Le","Me","_isInputEventSupported","Ne","view","Oe","Alt","Control","Meta","Shift","Pe","getModifierState","Qe","Re","Se","Te","Ue","Ve","screenX","screenY","clientX","clientY","pageX","pageY","shiftKey","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","We","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Xe","mouseEnter","mouseLeave","pointerEnter","pointerLeave","Ye","defaultView","parentWindow","$e","af","bf","cf","df","select","ef","ff","gf","hf","jf","selectionStart","selectionEnd","anchorNode","getSelection","anchorOffset","focusNode","focusOffset","kf","onSelect","lf","animationName","elapsedTime","pseudoElement","mf","clipboardData","nf","of","charCode","pf","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","qf","8","9","12","13","16","17","18","19","20","27","32","33","34","35","36","37","38","39","40","45","46","112","113","114","115","116","117","118","119","120","121","122","123","144","145","224","rf","repeat","sf","dataTransfer","tf","touches","targetTouches","changedTouches","uf","vf","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","wf","SimpleEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin","yf","zf","Af","Bf","Cf","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","childContextTypes","Df","Ef","Ff","getChildContext","Gf","__reactInternalMemoizedMergedChildContext","Hf","If","Jf","Kf","unstable_cancelCallback","Lf","unstable_requestPaint","Mf","unstable_now","Nf","unstable_getCurrentPriorityLevel","Of","unstable_ImmediatePriority","Pf","Qf","Rf","unstable_LowPriority","Sf","unstable_IdlePriority","Tf","Uf","unstable_shouldYield","Vf","Wf","Xf","Yf","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","childExpirationTime","qg","firstContext","expirationTime","rg","sg","observedBits","responders","tg","ug","updateQueue","baseState","baseQueue","pending","effects","vg","wg","suspenseConfig","payload","xg","yg","zg","ca","Ag","Bg","Cg","Dg","Eg","Fg","Jg","_reactInternalFiber","Gg","Hg","Ig","Kg","shouldComponentUpdate","Lg","contextType","Mg","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Ng","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Og","Pg","_stringRef","Qg","Rg","lastEffect","nextEffect","firstEffect","Sg","Tg","elementType","Ug","implementation","Vg","Wg","Xg","Yg","Zg","$g","ah","bh","dh","tagName","eh","fh","gh","hh","memoizedProps","revealOrder","ih","responder","jh","kh","lh","mh","nh","oh","ph","qh","rh","sh","th","uh","vh","wh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","xh","yh","zh","Ah","deps","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","Nh","readContext","useResponder","useDeferredValue","useTransition","Oh","Ph","Qh","Rh","Sh","Th","pendingProps","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","ei","fi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","gi","getDerivedStateFromError","hi","pendingContext","ni","pi","qi","ii","retryTime","ji","fallback","unstable_avoidThisFallback","ki","li","isBackwards","rendering","renderingStartTime","last","tail","tailExpiration","tailMode","mi","ri","si","wasMultiple","multiple","onclick","createElementNS","createTextNode","ti","ui","vi","wi","xi","yi","zi","Ai","stack","Bi","WeakSet","Set","Ci","Fi","Ei","Gi","__reactInternalSnapshotBeforeUpdate","Hi","Ii","Ji","focus","Ki","Li","componentWillUnmount","Di","Mi","Ni","Oi","Pi","Qi","insertBefore","_reactRootContainer","Ri","Si","Ti","Ui","Vi","add","then","Wi","Xi","Yi","Zi","$i","componentDidCatch","aj","componentStack","Rj","bj","cj","dj","kj","lj","mj","nj","oj","qj","rj","sj","tj","uj","vj","wj","timeoutMs","xj","yj","zj","lastExpiredTime","Aj","firstPendingTime","lastPingedTime","nextKnownPendingLevel","callbackExpirationTime","callbackPriority","callbackNode","Bj","Cj","Dj","Ej","Fj","Gj","Hj","finishedWork","finishedExpirationTime","lastSuspendedTime","Ij","timeoutHandle","Jj","busyMinDurationMs","busyDelayMs","Kj","Mj","Nj","pingCache","Oj","ub","Pj","Xc","Qj","Sj","firstSuspendedTime","rangeCount","wb","activeElementDetached","focusedElem","selectionRange","Tj","wd","contains","compareDocumentPosition","createRange","setStart","removeAllRanges","addRange","setEnd","left","scrollLeft","top","scrollTop","vb","Uj","Vj","Wj","hidden","ob","Xj","unstable_observedBits","Zj","pendingChildren","ak","bk","ck","dk","ek","fk","Jc","_internalRoot","gk","ik","hasAttribute","hk","jk","kk","unmount","querySelectorAll","Lj","lk","Events","findFiberByHostInstance","bundleType","rendererPackageName","isDisabled","supportsFiber","inject","onCommitFiberRoot","onCommitFiberUnmount","Yj","overrideHookState","overrideProps","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","unstable_forceFrameRate","performance","sortIndex","startTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","gOPS","getSymbols","windowNames","getWindowNames","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","symbol","any","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","includes","searchString","$includes","isEntries","original","$assign","factories","partArgs","bound","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","v8","$Promise","isNode","newPromiseCapability","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","ok","reaction","exited","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","onunhandledrejection","reason","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","Promise","capability","all","iterable","remaining","$index","alreadyCalled","race","forbiddenField","BREAK","RETURN","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","flush","parent","navigator","standalone","toggle","observe","characterData","promiseCapability","lowerCased","upperCased","_kebabToPascal","webpackPolyfill","deprecate","paths","_assign","_assign2","_defineProperty2","$Object","_typeof2","_typeof3","_setPrototypeOf2","_create2","check","buggy","svgNS","locationHref","_useWebWorker","initialDefaultFrame","setWebWorker","flag","getWebWorker","setLocationHref","getLocationHref","createTag","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","prop","createProxyFunction","ProxyFunction","audioControllerFactory","AudioController","audioFactory","audios","_volume","_isMuted","addAudio","audio","resume","setRate","rateValue","createAudio","assetPath","Howl","isPlaying","seek","playing","rate","setVolume","setAudioFactory","_updateVolume","mute","unmute","getVolume","volume","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createSizedArray","_typeof$6","subframeEnabled","expressionsPlugin","expressionsInterfaces","idPrefix$1","isSafari","_shouldRoundValues","bmPow","pow","bmSqrt","sqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface$1","propertyNames","abs","absArr","defaultCurveSegments","degToRads","PI","roundCorner","roundValues","bmRnd","round","styleDiv","transformOrigin","webkitTransformOrigin","backfaceVisibility","webkitBackfaceVisibility","transformStyle","webkitTransformStyle","mozTransformStyle","BMEnterFrameEvent","currentTime","totalTime","frameMultiplier","BMCompleteEvent","BMCompleteLoopEvent","totalLoops","currentLoop","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","BMRenderFrameErrorEvent","nativeError","BMConfigErrorEvent","BMAnimationConfigErrorEvent","createElementID","_count","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","hex","colorMap","setSubframeEnabled","getSubframeEnabled","setExpressionsPlugin","getExpressionsPlugin","setExpressionInterfaces","getExpressionInterfaces","setDefaultCurveSegments","getDefaultCurveSegments","setIdPrefix","getIdPrefix","createNS","_typeof$5","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","path","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","hasMask","maskProps","masksProperties","pt","convertPathsToAbsoluteValues","ty","findCompLayers","refId","completeShapes","shapes","completeText","comp","findComp","__used","parse","ks","checkVersion","minimum","animVersionString","animVersion","minimumVersion","checkText","iterateLayers","textLayer","documentData","assets","checkChars","chars","charData","ip","op","st","sr","sk","checkPathProperties","pathData","checkColors","iterateShapes","checkShapes","completeClosingShapes","closed","cl","moduleOb","__complete","completeChars","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","status","send","completeData","onComplete","createProcess","processId","origin","pathname","loadData","completeAnimation","ImagePreloader","proxyImage","canvas","getContext","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","setInterval","getBBox","_imageLoaded","clearInterval","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","append","setCacheType","elementHelper","BaseEvent","triggerEvent","_cbs","callbacks","splice","markerParser","parsePayloadLines","line","lines","keysCount","_markers","markers","_marker","markerData","tm","dr","cm","_","__","ProjectInterface","registerComposition","compositions","_thisProjectFunction","nm","prepareFrame","xt","currentFrame","compInterface","renderers","registerRenderer","getRenderer","_typeof$4","AnimationItem","isLoaded","currentRawFrame","frameRate","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","projectInterface","imagePreloader","audioController","configAnimation","onSetupError","onSegmentComplete","drawnFrameEvent","setParams","params","animType","RendererClass","globalData","defs","setProjectInterface","parseInt","autoloadSegments","initialSegment","setupAnimation","trigger","setData","wrapperAttributes","attributes","getNamedItem","prerender","includeLayers","newLayers","fonts","fontManager","addChars","addFonts","initExpressions","loadNextSegment","segment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","animData","fr","searchExtraCompositions","updaFrameModifier","waitForFontsLoaded","triggerConfigError","rendererType","initItems","gotoFrame","resize","_width","_height","updateContainerSize","setSubframe","renderFrame","triggerRenderFrameError","togglePause","setCurrentRawFrameValue","getMarkerData","markerName","goToAndStop","isFrame","numValue","Number","frameModifier","goToAndPlay","advanceTime","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","init","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getAssetData","show","getDuration","updateDocumentData","getElementByPath","animationManager","registeredAnimations","initTime","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","elem","addPlayingCount","activate","nowTime","first","searchAnimations","animElements","getElementsByClassName","lenAnims","getElementsByTagName","innerText","div","freeze","unfreeze","getRegisteredAnimations","animations","BezierFactory","beziers","bezEasing","BezierEasing","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_p","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","pooling","poolFactory","initialLength","_release","_length","_maxLength","pool","newElement","bezierLengthPool","addedLength","percents","lengths","segmentsLengthPool","totalLength","bezFunction","math","pointOnLine2D","x1","y1","x2","y2","x3","y3","det1","getBezierLength","pt1","pt2","pt3","pt4","ptCoord","perc","ptDistance","curveSegments","lastPoint","lengthData","BezierData","segmentLength","PointData","partial","partialLength","storedData","buildBezierData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","pathV","pathO","pathI","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bez","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","keyframes","keyframesMetadata","endValue","nextKeyTime","keyTime","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastKeyframeIndex","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","quat","qx","qy","qz","qw","heading","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","ax","ay","az","aw","bx","by","bz","bw","acos","sin","slerp","createQuaternion","c1","cos","c2","c3","s1","s2","s3","getValueAtCurrentTime","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","_mdf","processEffectsSequence","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","addDynamicProperty","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","KeyframedMultidimensionalProperty","arrLen","getProp","DynamicPropertyContainer","dynamicProperties","_isAnimated","iterateDynamicProperties","initDynamicPropertyContainer","pointPool","ShapePath","setPathData","setLength","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","reverse","newPath","vertices","outPoints","inPoints","cnt","shapePool","shapePath","clone","ShapeCollection","addShape","releaseShapes","shapeCollectionPool","newShapeCollection","shapeCollection","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","ShapeProperty","reset","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","p0","s0","_cw","StarShapeProperty","StarShapePropertyFactory","sy","ir","convertToPath","convertStarToPath","convertPolygonToPath","or","os","rad","roundness","perimSegment","numPts","angle","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","v1","Matrix","_cos","_sin","_tan","tan","_rnd","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","skew","skewFromAxis","scale","sz","setTransform","translate","tx","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_identityCalculated","a1","b1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_typeof$3","lottie","setLocation","setSubframeRendering","setPrefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","setIDPrefix","__getFactory","scripts","myScript","bodymovin","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","PuckerAndBloatModifier","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","amount","processPath","centerPoint","pathLength","clonedPath","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","ry","rz","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","RepeaterModifier","RoundCornersModifier","floatEqual","floatZero","lerp","lerpPoint","quadRoots","singleRoot","delta","polynomialCoefficients","p3","singlePoint","PolynomialBezier","linearize","pointEqual","coeffx","coeffy","extrema","intersectData","t2","box","boundingBox","cx","cy","splitData","boxIntersect","intersectsImpl","depth","tolerance","intersections","maxRecursion","d1s","d2s","crossProduct","lineIntersection","start1","end1","start2","end2","v3","v4","polarOffset","pointDistance","hypot","ZigZagModifier","setPoint","outputBezier","amplitude","outAmplitude","inAmplitude","angO","angI","getPerpendicularVector","vector","rot","getProjectingAngle","cur","prevIndex","nextIndex","pVector","zigZagCorner","frequency","pointType","prevPoint","nextPoint","prevDist","nextDist","zigZagSegment","dist","normalAngle","linearOffset","offsetSegment","p1a","p1b","p2b","p2a","joinLines","seg1","seg2","lineJoin","miterLimit","angleOut","tangentAngle","angleIn","center","radius","intersection","getIntersection","intersect","pruneSegmentIntersection","outa","outb","pruneIntersections","offsetSegmentSplit","right","mid","inflectionPoints","OffsetPathModifier","getFontProperties","fontData","styles","fStyle","fWeight","weight","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","currentV","currentI","currentO","closerV","distance","newPosPerc","derivative","denom","tcusp","square","p10","p11","p20","p21","bounds","bottom","other","shapeSegmentInverted","pointsType","ml","inputBezier","multiSegments","lastSeg","multiSegment","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","fontFamily","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","createHelper","helper","engine","fontProps","tHelper","fFamily","fClass","tCanvasHelper","OffscreenCanvas","measureText","getComputedTextLength","Font","typekitLoaded","_warned","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","_char3","cache","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","getCharData","_char","warn","getFontByName","fName","_char2","fontName","doubleSize","singleSize","loadedCount","RenderableElement","initRenderable","isInRange","isTransparent","renderableComponents","addRenderableComponent","removeRenderableComponent","prepareRenderableFrame","num","checkLayerLimits","checkTransparency","finalTransform","mProp","renderConfig","hideOnTransparent","renderRenderable","sourceRectAtTime","getLayerSize","textData","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","10","11","14","15","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","EffectsManager","effectElements","effectItem","GroupEffect","BaseElement","FrameElement","FootageElement","imageLoader","initBaseData","AudioElement","_isPlaying","_canPlay","_currentTime","_volumeMultiplier","_previousVolume","_placeholder","lv","au","BaseRenderer","TransformElement","MaskElement","maskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskType","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","mask","createLayerSolidPath","invRect","drawPath","maskedElement","eff","checkMasks","LayerExpressionInterface","EffectsExpressionInterface","ShapeExpressionInterface","TextExpressionInterface","CompExpressionInterface","layerInterface","maskManager","registerMaskInterface","effectsInterface","createEffectsInterface","registerEffectsInterface","shapeInterface","shapesData","itemsData","content","textInterface","setBlendMode","blendModeValue","bm","baseElement","layerElement","effectsManager","getType","prepareProperties","isVisible","_isParent","getBaseElement","FootageInterface","getFootageData","timeRemapped","totalVolume","volumeValue","checkLayers","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","buildAllItems","pInterface","progressiveLoad","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","pendingElements","pathValue","setupGlobalData","fontsContainer","animationItem","compSize","initTransform","_matMdf","_opMdf","ao","renderTransform","finalMat","globalToLocal","transforms","ptNew","mHelper","getMaskProperty","isFirstFrame","getMaskelement","pathNodes","pathString","pathShapeValue","filtersFactory","createFilter","filId","skipCoordinates","fil","createAlphaToLuminanceFilter","feColorMatrix","featureSupport","registeredEffects","idPrefix","SVGEffects","filterManager","filters","Effect","effect","countsAsEffect","registerEffect","SVGBaseElement","HierarchyElement","RenderableDOMElement","IImageElement","initElement","sourceRect","ProcessedElement","IShapeElement","initRendererElement","createContainerElements","matteElement","transformedElement","_sizeChanged","layerElementParent","matteMasks","symbolElement","tt","ln","cp","clipId","cpGroup","renderElement","destroyBaseElement","createRenderableComponents","renderableEffectsManager","getMatte","matteType","useElement","masker","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","setMatte","initHierarchy","checkParenting","createContent","renderInnerContent","innerElem","pr","imagePreserveAspectRatio","addShapeToModifiers","shapeModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","processedElements","addProcessedElement","lineCapEnum","lineJoinEnum","SVGShapeData","transformers","level","caches","lStr","lvl","SVGStyleData","pElem","msElem","DashProperty","dataProps","dashStr","dashArray","dashoffset","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGNoStyleData","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","SVGTransformData","comparePoints","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","cst","opacityId","maskId","opFill","ms","ost","buildShapeString","_o","shapeString","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderNoop","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","createRenderFunction","SVGShapeElement","stylesList","animatedContents","LetterProps","sw","TextProperty","_frameId","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","textKeys","buildFinalText","charactersArray","shouldCombine","newLineFlag","letters","anchorGrouping","currentSize","currentPos","currentLine","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","an","anIndexes","animatorJustifyOffset","extra","animatorData","letterData","based","animators","indexes","fs","rn","totalChars","newInd","currentInd","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorProp","TextSelectorPropFactory","_currentTextLength","finalS","finalE","sm","getMult","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","getTextSelectorProp","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","TextAnimatorProperty","renderType","_hasMaskedPath","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","ITextElement","searchProperties","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","tanAngle","matrixHelper","renderedLettersCount","tLength","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","letterM","letterP","defaultPropsArray","animatorFirstCharOffset","justifyOffsetMult","isNewLine","animatorOffset","atan","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","buildColor","colorData","emptyProp","emptyShapeData","SVGTextLottieElement","textSpans","ISolidElement","NullElement","SVGRendererBase","ICompElement","SVGCompElement","supports3d","SVGRenderer","config","svgElement","titleElement","titleId","description","descElement","descId","preserveAspectRatio","contentVisibility","viewBoxOnly","viewBoxSize","focusable","filterSize","runExpressions","destroyed","CVContextData","saved","cArrPos","cTr","cO","savedOp","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVEffects","CVMaskElement","hasMasks","CVBaseElement","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","CVShapeElement","CVTextElement","stroke","fill","currentRender","sWidth","fValue","CVImageElement","CVSolidElement","CanvasRendererBase","clearCanvas","dpr","devicePixelRatio","currentGlobalAlpha","contextData","transformMat","CVCompElement","CanvasRenderer","HBaseElement","HSolidElement","HShapeElement","shapesContainer","currentBBox","HTextElement","textPaths","isMasked","HCameraElement","_prevMat","HImageElement","HybridRendererBase","threeDElements","camera","HCompElement","HybridRenderer","singleShape","textContainer","buildTextContents","textArray","textContents","currentTextContent","buildShapeData","shapeItem","tSpan","usesGlyphs","cachedSpansLength","span","childSpan","glyph","glyphElement","_debug","tElement","justify","textBox","bbox","renderedLetter","textSpan","findIndexByInd","appendElementInPos","elementIndex","tp","matteMask","nextElement","setElements","getElements","destroyElements","duplicate","newLength","currentSavedOp","sequence","processSequence","processSequences","getNewKey","canvasContext","beginPath","moveTo","lineTo","bezierCurveTo","save","clip","createElements","blendMode","globalCompositeOperation","hideElement","showElement","forceRealStack","ctxTransform","ctxOpacity","restore","transformHelper","dashResetter","preTransforms","co","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","setLineDash","lineDashOffset","closePath","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","commandsCounter","lastFill","lastStroke","lastStrokeW","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","par","drawImage","cProps","trProps","globalAlpha","actionFlag","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","fillType","clearRect","checkBlendMode","transformedElementStyle","matrixValue","webkitTransform","addEffects","backgroundColor","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","shapeBoundingBox","xMax","yMax","tempBoundingBox","b2ac","calculateF","calculateBoundingBox","expandStrokeBoundingBox","widthProperty","kfw","currentBoxContains","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","setup","perspectiveStyle","perspectiveElem","perspective","webkitPerspective","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","Image","imageElem","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","startPos","endPos","createThreeDContainer","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","cWidth","cHeight","floatingContainer","_createBaseContainerElements","_thisLayerFunction","pixelAspect","frameDuration","displayStartTime","numLayers","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","MaskManagerInterface","MaskInterface","_mask","_data","_masksInterfaces","ExpressionPropertyInterface","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","property","getVelocityAtTime","numKeys","valueProp","valueAtTime","speedAtTime","getSpeedAtTime","velocityAtTime","propertyGroup","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TransformExpressionInterface","_thisFunction","rotation","xRotation","yRotation","xPosition","yPosition","zPosition","anchorPoint","_px","_py","_pz","_transformFactory","getMatrix","toWorldMat","toWorldVec","applyPoint","toWorld","fromWorldVec","invertPoint","fromWorld","fromComp","sampleImage","transformInterface","toComp","anchorPointDescriptor","hasParent","anchor_point","active","inPoint","outPoint","_name","propertyGroupFactory","interfaceFunction","parentPropertyGroup","PropertyInterface","createGroupInterface","groupInterface","mn","_propertyGroup","createValueInterface","numProperties","np","enabled","en","expressionProperty","setGroupProperty","effectsData","ShapePathInterface","propertyIndex","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","defaultInterfaceFactory","interfaces","transformInterfaceFactory","cix","contentsInterfaceFactory","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","skewAxis","outerRadius","outerRoundness","innerRoundness","innerRadius","_interfaceFunction","_sourceText","sourceText","stringValue","_prevValue","_typeof$2","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","footage","getInterface","_typeof$1","seedRandom","startdenom","significance","ARC4","keylen","copy","mixkey","seed","smear","stringseed","tostring","shortseed","flatten","typ","entropy","nodecrypto","Uint8Array","crypto","msCrypto","getRandomValues","plugins","screen","autoseed","arc4","prng","int32","quick","pass","is_math_call","initialize$2","SHAPE","ExpressionManager","fetch","frames","$bm_isInstanceOfArray","isNumerable","tOfV","$bm_neg","tOfA","lenA","retArr","easeInBez","easeOutBez","easeInOutBez","tOfB","lenB","sub","mul","mod","$bm_sum","$bm_sub","$bm_mul","$bm_div","$bm_mod","clamp","mm","radiansToDegrees","radians_to_degrees","degreesToRadians","degrees_to_radians","helperLengthArray","arr1","arr2","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","noOp","_value","needsVelocity","_needsRandom","elemType","$bm_transform","thisProperty","loopIn","loop_in","loopOut","loop_out","smooth","fromCompToSurface","thisLayer","thisComp","scoped_bm_rt","expression_function","eval","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedrandom","randSeed","posterizeTime","framesPerSecond","executeExpression","frameExpressionId","__preventDeadCodeRemoval","expressionHelpers","searchExpressions","_cachingAtTime","getStaticValueAtTime","addPropertyDecorator","durationFlag","cycleDuration","firstKeyFrame","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","lastTime","propertyGetShapeProp","trims","initialize$1","addDecorator","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","initialize","SVGComposableEffect","SVGTintFilter","matrixFilter","feMerge","createMergeNode","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","globalFilterSize","feGaussianBlur","feOffset","feFlood","feComposite","resultId","ins","feMergeNode","colorBlack","colorWhite","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","units","color1","color2","color3","tableR","tableG","tableB","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","_svgMatteSymbols","SVGMatte3Effect","filterElem","SVGGaussianBlurEffect","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","sigma","dimensions","sigmaX","sigmaY","edgeMode","__webpack_amd_options__","_stripPropertiesWithValue","valueToStrip","_filterObject","predicate","getMethodName","isDomElement","isInteger","parseFloat","isFinite","isVimeoUrl","isVimeoEmbed","getVimeoUrl","oEmbedParameters","idOrUrl","arrayIndexOfSupport","postMessageSupport","commonjsGlobal","globalThis","hasDefine","genId","checkInstance","methodName","rand","entry","_id","npo_src","createCommonjsModule","definition","builtInProp","cycle","scheduling_queue","ToString","schedule","drain","_then","o_type","notifyIsolated","success","failure","msg","triggered","def_wrapper","MakeDefWrapper","iteratePromises","resolver","rejecter","idx","MakeDef","__NPO__","PromisePrototype","msgs","callbackMap","storeCallback","player","playerCallbacks","getCallbacks","removeCallback","swapCallbacks","oldElement","parseMessageData","ieVersion","processData","shiftCallbacks","getOEmbedParameters","defaults","getAttribute","createEmbed","getOEmbedData","videoUrl","XDomainRequest","onload","json","domain_status_code","onerror","playerMap","readyMap","screenfull","Player","jQuery","getElementById","_window","readyPromise","_onMessage","isReadyEvent","isPingResponse","_originalElement","catch","isEnabled","exitFullscreen","fullscreenchangeHandler","isFullscreen","ready","callMethod","language","request","_this5","autopause","muted","playbackRate","quality","fnMap","eventNameMap","fullscreenchange","fullscreenerror","onFullScreenEntered","returnPromise","requestFullscreen","onFullScreenExit","fullscreenElement","fullscreenEnabled","initializeScreenfull","handleError","initializeEmbeds","VimeoPlayerResizeEmbeds_","onMessage","iframes","parentElement","paddingBottom","resizeEmbeds","VimeoSeoMetadataAppended","isValidMessageSource","initAppendVideoMetadata","VimeoCheckedUrlTimeParam","getVideoId","videoId","matches","sec","decodeURI","setCurrentTime","checkUrlTimeParam","Timeout","clearFn","_clearFn","scope","unref","enroll","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","_onTimeout","registerImmediate","messagePrefix","onGlobalMessage","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","handle","runIfPresent","postMessageIsAsynchronous","oldOnMessage","canUsePostMessage","script","_sister2","_loadYouTubeIframeApi2","_YouTubePlayer2","youtubeIframeAPI","maybeElementId","strictState","emitter","events","proxyEvents","playerAPIReady","playVideo","YT","playerApi","promisifyPlayer","Sister","sister","_loadScript","_loadScript2","protocol","previous","onYouTubeIframeAPIReady","stdOnEnd","ieOnEnd","opts","charset","async","attrs","setAttributes","_debug2","_functionNames2","_eventNames2","_FunctionStateMap2","debug","YouTubePlayer","_loop","onEventName","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","functions","_loop2","functionName","stateInfo","playerState","getPlayerState","stateChangeRequired","acceptableStates","onPlayerStateChange","playerStateAfterChange","_len2","_key2","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","storage","DEBUG","log","formatArgs","useColors","namespace","humanize","diff","lastC","namespaces","removeItem","WebkitAppearance","firebug","exception","$1","chrome","local","localStorage","localstorage","colors","formatters","enable","prevTime","createDebug","curr","prev","coerce","format","formatter","logFn","selectColor","disable","skips","plural","long","fmtShort","_PlayerStates","_PlayerStates2","pauseVideo","ENDED","PAUSED","PLAYING","seekTo","BUFFERING","UNSTARTED","VIDEO_CUED","findIndex","support","viewClasses","isArrayBufferView","ArrayBuffer","isView","normalizeName","normalizeValue","iteratorFor","Headers","headers","header","consumed","bodyUsed","fileReaderReady","reader","readBlobAsArrayBuffer","FileReader","readAsArrayBuffer","bufferClone","buf","byteLength","buffer","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","DataView","_bodyArrayBuffer","rejected","arrayBuffer","isConsumed","byteOffset","readAsText","readArrayBufferAsText","formData","decode","oldValue","thisArg","Request","upcased","credentials","signal","referrer","reParamSearch","getTime","bytes","Response","bodyInit","statusText","redirectStatuses","redirect","RangeError","DOMException","aborted","abortXhr","abort","rawHeaders","getAllResponseHeaders","parts","responseURL","ontimeout","onabort","fixUrl","withCredentials","setRequestHeader","polyfill"],"mappings":"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","file":"vendor.ee6d296dafecfcaacfa0.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\nvar $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar isRunningOnClient = typeof window !== 'undefined' && window.document ? true : false;\nvar _default = isRunningOnClient;\nexports[\"default\"] = _default;","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _typeof(obj) { 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); }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar Collapse =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(Collapse, _React$Component);\n\n function Collapse() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Collapse);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Collapse)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n height: _this.props.forceInitialAnimation || !_this.props.isOpen ? 0 : null,\n isAnimating: false,\n isMounted: false,\n isOpen: _this.props.isOpen\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"previousHeight\", 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"raf\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"timer\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getHeight\", function () {\n var child = _this.wrapper && _this.wrapper.firstElementChild;\n return child ? Math.max(child.offsetHeight - 1, 0) : 0; // - 1px to avoid jump after transition\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"transition\", function () {\n var newHeight = _this.props.isOpen ? _this.getHeight() : 0;\n clearTimeout(_this.timer);\n cancelAnimationFrame(_this.raf);\n _this.isAnimating = true;\n\n _this.setState({\n height: _this.previousHeight,\n isAnimating: true,\n shouldAnimate: false\n }, function () {\n _this.previousHeight = newHeight;\n _this.raf = requestAnimationFrame(function () {\n _this.raf = requestAnimationFrame(function () {\n _this.setState({\n height: newHeight\n }, function () {\n _this.timer = setTimeout(function () {\n _this.setState({\n height: _this.props.isOpen ? null : 0,\n isAnimating: false\n }, function () {\n _this.isAnimating = false;\n });\n }, _this.props.duration);\n });\n });\n });\n });\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"onTransitionEnd\", function () {\n _this.previousHeight = _this.getHeight();\n });\n\n return _this;\n }\n\n _createClass(Collapse, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n this.setState({\n isMounted: true\n }, function () {\n if (_this2.props.forceInitialAnimation) {\n _this2.transition();\n } else {\n _this2.previousHeight = _this2.props.isOpen ? _this2.getHeight() : 0;\n\n _this2.setState({\n isAnimating: false\n });\n }\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate() {\n return this.props.isOpen ? this.getHeight() : 0;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps, prevState, prevHeight) {\n if (this.isAnimating && !this.state.shouldAnimate) {\n return;\n }\n\n var newHeight = this.getHeight();\n var childrenDidChange = newHeight !== prevHeight;\n this.props.onMeasure(newHeight);\n\n if (this.state.shouldAnimate || childrenDidChange && this.props.animateChildren) {\n this.transition();\n } else if (childrenDidChange) {\n this.previousHeight = this.getHeight();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.timer);\n cancelAnimationFrame(this.raf);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var _this$state = this.state,\n isAnimating = _this$state.isAnimating,\n isMounted = _this$state.isMounted;\n var _this$props = this.props,\n forceInitialAnimation = _this$props.forceInitialAnimation,\n isOpen = _this$props.isOpen,\n unmountChildren = _this$props.unmountChildren;\n var shouldMount = unmountChildren ? isOpen || isAnimating : true;\n var initiallyHidden = !isMounted && forceInitialAnimation && isOpen;\n return _react.default.createElement(this.props.component, Object.assign({}, this.props.componentProps, {\n className: this.props.className,\n onTransitionEnd: this.onTransitionEnd,\n ref: function ref(el) {\n return _this3.wrapper = el;\n },\n style: _objectSpread({}, this.props.componentProps.style, {\n height: this.state.height,\n overflow: isAnimating || !isOpen || initiallyHidden ? \"hidden\" : null,\n visibility: !isAnimating && !isOpen || initiallyHidden ? \"hidden\" : null,\n transition: isAnimating || initiallyHidden ? \"height \".concat(this.props.duration, \"ms \").concat(this.props.easing) : null\n })\n }), shouldMount && this.props.children);\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var openDidChange = nextProps.isOpen !== prevState.isOpen;\n var forceAnimation = !prevState.isMounted && nextProps.forceInitialAnimation && nextProps.isOpen;\n return {\n isOpen: nextProps.isOpen,\n shouldAnimate: openDidChange || forceAnimation\n };\n }\n }]);\n\n return Collapse;\n}(_react.default.Component);\n\n_defineProperty(Collapse, \"propTypes\", {\n animateChildren: _propTypes.default.bool,\n children: _propTypes.default.node,\n className: _propTypes.default.string,\n // NOTE: PropTypes.object because React.forwardRef returns an object instead of a function:\n component: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n componentProps: _propTypes.default.object,\n duration: _propTypes.default.number,\n easing: _propTypes.default.string,\n forceInitialAnimation: _propTypes.default.bool,\n isOpen: _propTypes.default.bool,\n onMeasure: _propTypes.default.func,\n unmountChildren: _propTypes.default.bool\n});\n\n_defineProperty(Collapse, \"defaultProps\", {\n animateChildren: false,\n component: \"div\",\n componentProps: {},\n duration: 500,\n easing: \"cubic-bezier(0.3,0,0,1)\",\n forceInitialAnimation: false,\n isOpen: false,\n onMeasure: function onMeasure() {},\n unmountChildren: false\n});\n\nvar _default = Collapse;\nexports.default = _default;","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return $replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","module.exports = false;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","exports.f = {}.propertyIsEnumerable;\n","module.exports = {};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _stripUndefined = _interopRequireDefault(require(\"./strip-undefined\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nvar defaultOptions = {\n encode: true,\n prefix: '?'\n};\n\nvar getOptionsToUse = function getOptionsToUse(options) {\n // NOTE: For backwards compatibility with previous API\n if (typeof options === 'boolean') {\n return Object.assign({}, defaultOptions, {\n encode: options\n });\n }\n\n return Object.assign({}, defaultOptions, (0, _stripUndefined[\"default\"])(options));\n};\n\nfunction toQueryString(queryObject) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var optionsToUse = getOptionsToUse(options);\n return Object.keys(queryObject).filter(function (key) {\n return queryObject[key] !== undefined;\n }).reduce(function (accumulator, currentKey, currentIndex) {\n var currentValue = queryObject[currentKey];\n\n if (currentValue !== undefined) {\n var separator = currentIndex === 0 ? optionsToUse.prefix : '&';\n\n var _ref = optionsToUse.encode ? [encodeURIComponent(currentKey), encodeURIComponent(currentValue)] : [currentKey, currentValue],\n _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n accumulator = \"\".concat(accumulator).concat(separator).concat(key, \"=\").concat(value);\n }\n\n return accumulator;\n }, '');\n}\n\nvar _default = toQueryString;\nexports[\"default\"] = _default;","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","module.exports = true;\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","exports.f = {}.propertyIsEnumerable;\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","exports.f = Object.getOwnPropertySymbols;\n","module.exports = {};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').f;\nmodule.exports = function (name) {\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });\n};\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","/**\n * Copyright (c) 2010,2011,2012,2013,2014 Morgan Roderick http://roderick.dk\n * License: MIT - http://mrgnrdrck.mit-license.org\n *\n * https://github.com/mroderick/PubSubJS\n */\n\n(function (root, factory){\n 'use strict';\n\n var PubSub = {};\n root.PubSub = PubSub;\n factory(PubSub);\n // CommonJS and Node.js module support\n if (typeof exports === 'object'){\n if (module !== undefined && module.exports) {\n exports = module.exports = PubSub; // Node.js specific `module.exports`\n }\n exports.PubSub = PubSub; // CommonJS module 1.1.1 spec\n module.exports = exports = PubSub; // CommonJS\n }\n // AMD support\n /* eslint-disable no-undef */\n else if (typeof define === 'function' && define.amd){\n define(function() { return PubSub; });\n /* eslint-enable no-undef */\n }\n\n}(( typeof window === 'object' && window ) || this, function (PubSub){\n 'use strict';\n\n var messages = {},\n lastUid = -1,\n ALL_SUBSCRIBING_MSG = '*';\n\n function hasKeys(obj){\n var key;\n\n for (key in obj){\n if ( Object.prototype.hasOwnProperty.call(obj, key) ){\n return true;\n }\n }\n return false;\n }\n\n /**\n * Returns a function that throws the passed exception, for use as argument for setTimeout\n * @alias throwException\n * @function\n * @param { Object } ex An Error object\n */\n function throwException( ex ){\n return function reThrowException(){\n throw ex;\n };\n }\n\n function callSubscriberWithDelayedExceptions( subscriber, message, data ){\n try {\n subscriber( message, data );\n } catch( ex ){\n setTimeout( throwException( ex ), 0);\n }\n }\n\n function callSubscriberWithImmediateExceptions( subscriber, message, data ){\n subscriber( message, data );\n }\n\n function deliverMessage( originalMessage, matchedMessage, data, immediateExceptions ){\n var subscribers = messages[matchedMessage],\n callSubscriber = immediateExceptions ? callSubscriberWithImmediateExceptions : callSubscriberWithDelayedExceptions,\n s;\n\n if ( !Object.prototype.hasOwnProperty.call( messages, matchedMessage ) ) {\n return;\n }\n\n for (s in subscribers){\n if ( Object.prototype.hasOwnProperty.call(subscribers, s)){\n callSubscriber( subscribers[s], originalMessage, data );\n }\n }\n }\n\n function createDeliveryFunction( message, data, immediateExceptions ){\n return function deliverNamespaced(){\n var topic = String( message ),\n position = topic.lastIndexOf( '.' );\n\n // deliver the message as it is now\n deliverMessage(message, message, data, immediateExceptions);\n\n // trim the hierarchy and deliver message to each level\n while( position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf('.');\n deliverMessage( message, topic, data, immediateExceptions );\n }\n\n deliverMessage(message, ALL_SUBSCRIBING_MSG, data, immediateExceptions);\n };\n }\n\n function hasDirectSubscribersFor( message ) {\n var topic = String( message ),\n found = Boolean(Object.prototype.hasOwnProperty.call( messages, topic ) && hasKeys(messages[topic]));\n\n return found;\n }\n\n function messageHasSubscribers( message ){\n var topic = String( message ),\n found = hasDirectSubscribersFor(topic) || hasDirectSubscribersFor(ALL_SUBSCRIBING_MSG),\n position = topic.lastIndexOf( '.' );\n\n while ( !found && position !== -1 ){\n topic = topic.substr( 0, position );\n position = topic.lastIndexOf( '.' );\n found = hasDirectSubscribersFor(topic);\n }\n\n return found;\n }\n\n function publish( message, data, sync, immediateExceptions ){\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n var deliver = createDeliveryFunction( message, data, immediateExceptions ),\n hasSubscribers = messageHasSubscribers( message );\n\n if ( !hasSubscribers ){\n return false;\n }\n\n if ( sync === true ){\n deliver();\n } else {\n setTimeout( deliver, 0 );\n }\n return true;\n }\n\n /**\n * Publishes the message, passing the data to it's subscribers\n * @function\n * @alias publish\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publish = function( message, data ){\n return publish( message, data, false, PubSub.immediateExceptions );\n };\n\n /**\n * Publishes the message synchronously, passing the data to it's subscribers\n * @function\n * @alias publishSync\n * @param { String } message The message to publish\n * @param {} data The data to pass to subscribers\n * @return { Boolean }\n */\n PubSub.publishSync = function( message, data ){\n return publish( message, data, true, PubSub.immediateExceptions );\n };\n\n /**\n * Subscribes the passed function to the passed message. Every returned token is unique and should be stored if you need to unsubscribe\n * @function\n * @alias subscribe\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { String }\n */\n PubSub.subscribe = function( message, func ){\n if ( typeof func !== 'function'){\n return false;\n }\n\n message = (typeof message === 'symbol') ? message.toString() : message;\n\n // message is not registered yet\n if ( !Object.prototype.hasOwnProperty.call( messages, message ) ){\n messages[message] = {};\n }\n\n // forcing token as String, to allow for future expansions without breaking usage\n // and allow for easy use as key names for the 'messages' object\n var token = 'uid_' + String(++lastUid);\n messages[message][token] = func;\n\n // return token for unsubscribing\n return token;\n };\n\n PubSub.subscribeAll = function( func ){\n return PubSub.subscribe(ALL_SUBSCRIBING_MSG, func);\n };\n\n /**\n * Subscribes the passed function to the passed message once\n * @function\n * @alias subscribeOnce\n * @param { String } message The message to subscribe to\n * @param { Function } func The function to call when a new message is published\n * @return { PubSub }\n */\n PubSub.subscribeOnce = function( message, func ){\n var token = PubSub.subscribe( message, function(){\n // before func apply, unsubscribe message\n PubSub.unsubscribe( token );\n func.apply( this, arguments );\n });\n return PubSub;\n };\n\n /**\n * Clears all subscriptions\n * @function\n * @public\n * @alias clearAllSubscriptions\n */\n PubSub.clearAllSubscriptions = function clearAllSubscriptions(){\n messages = {};\n };\n\n /**\n * Clear subscriptions by the topic\n * @function\n * @public\n * @alias clearAllSubscriptions\n * @return { int }\n */\n PubSub.clearSubscriptions = function clearSubscriptions(topic){\n var m;\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n delete messages[m];\n }\n }\n };\n\n /**\n Count subscriptions by the topic\n * @function\n * @public\n * @alias countSubscriptions\n * @return { Array }\n */\n PubSub.countSubscriptions = function countSubscriptions(topic){\n var m;\n // eslint-disable-next-line no-unused-vars\n var token;\n var count = 0;\n for (m in messages) {\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0) {\n for (token in messages[m]) {\n count++;\n }\n break;\n }\n }\n return count;\n };\n\n\n /**\n Gets subscriptions by the topic\n * @function\n * @public\n * @alias getSubscriptions\n */\n PubSub.getSubscriptions = function getSubscriptions(topic){\n var m;\n var list = [];\n for (m in messages){\n if (Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0){\n list.push(m);\n }\n }\n return list;\n };\n\n /**\n * Removes subscriptions\n *\n * - When passed a token, removes a specific subscription.\n *\n\t * - When passed a function, removes all subscriptions for that function\n *\n\t * - When passed a topic, removes all subscriptions for that topic (hierarchy)\n * @function\n * @public\n * @alias subscribeOnce\n * @param { String | Function } value A token, function or topic to unsubscribe from\n * @example // Unsubscribing with a token\n * var token = PubSub.subscribe('mytopic', myFunc);\n * PubSub.unsubscribe(token);\n * @example // Unsubscribing with a function\n * PubSub.unsubscribe(myFunc);\n * @example // Unsubscribing from a topic\n * PubSub.unsubscribe('mytopic');\n */\n PubSub.unsubscribe = function(value){\n var descendantTopicExists = function(topic) {\n var m;\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call(messages, m) && m.indexOf(topic) === 0 ){\n // a descendant of the topic exists:\n return true;\n }\n }\n\n return false;\n },\n isTopic = typeof value === 'string' && ( Object.prototype.hasOwnProperty.call(messages, value) || descendantTopicExists(value) ),\n isToken = !isTopic && typeof value === 'string',\n isFunction = typeof value === 'function',\n result = false,\n m, message, t;\n\n if (isTopic){\n PubSub.clearSubscriptions(value);\n return;\n }\n\n for ( m in messages ){\n if ( Object.prototype.hasOwnProperty.call( messages, m ) ){\n message = messages[m];\n\n if ( isToken && message[value] ){\n delete message[value];\n result = value;\n // tokens are unique, so we can just stop here\n break;\n }\n\n if (isFunction) {\n for ( t in message ){\n if (Object.prototype.hasOwnProperty.call(message, t) && message[t] === value){\n delete message[t];\n result = true;\n }\n }\n }\n }\n }\n\n return result;\n };\n}));\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","module.exports = require('./_hide');\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// get successful control from form and assemble into object\n// http://www.w3.org/TR/html401/interact/forms.html#h-17.13.2\n\n// types which indicate a submit action and are not successful controls\n// these will be ignored\nvar k_r_submitter = /^(?:submit|button|image|reset|file)$/i;\n\n// node names which could be successful controls\nvar k_r_success_contrls = /^(?:input|select|textarea|keygen)/i;\n\n// Matches bracket notation.\nvar brackets = /(\\[[^\\[\\]]*\\])/g;\n\n// serializes form fields\n// @param form MUST be an HTMLForm element\n// @param options is an optional argument to configure the serialization. Default output\n// with no options specified is a url encoded string\n// - hash: [true | false] Configure the output type. If true, the output will\n// be a js object.\n// - serializer: [function] Optional serializer function to override the default one.\n// The function takes 3 arguments (result, key, value) and should return new result\n// hash and url encoded str serializers are provided with this module\n// - disabled: [true | false]. If true serialize disabled fields.\n// - empty: [true | false]. If true serialize empty fields\nfunction serialize(form, options) {\n if (typeof options != 'object') {\n options = { hash: !!options };\n }\n else if (options.hash === undefined) {\n options.hash = true;\n }\n\n var result = (options.hash) ? {} : '';\n var serializer = options.serializer || ((options.hash) ? hash_serializer : str_serialize);\n\n var elements = form && form.elements ? form.elements : [];\n\n //Object store each radio and set if it's empty or not\n var radio_store = Object.create(null);\n\n for (var i=0 ; i /x/y and it causes SyntaxError\nvar SUPPORTS_Y = !fails(function () { RegExp(MAX_UINT32, 'y'); });\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","module.exports = global[\"React\"] = require(\"-!.\\\\index.js\");","/** @license React v16.14.0\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var l=require(\"object-assign\"),n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cQ.length&&Q.push(a)}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;kb}return!1}function v(a,b,c,d,e,f){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f}var C={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){C[a]=new v(a,0,!1,a,null,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];C[b]=new v(b,1,!1,a[1],null,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){C[a]=new v(a,2,!1,a.toLowerCase(),null,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){C[a]=new v(a,2,!1,a,null,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){C[a]=new v(a,3,!1,a.toLowerCase(),null,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){C[a]=new v(a,3,!0,a,null,!1)});[\"capture\",\"download\"].forEach(function(a){C[a]=new v(a,4,!1,a,null,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){C[a]=new v(a,6,!1,a,null,!1)});[\"rowSpan\",\"start\"].forEach(function(a){C[a]=new v(a,5,!1,a.toLowerCase(),null,!1)});var Ua=/[\\-:]([a-z])/g;function Va(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(Ua,\nVa);C[b]=new v(b,1,!1,a,null,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(Ua,Va);C[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!1)});\nC.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){C[a]=new v(a,1,!1,a.toLowerCase(),null,!0)});var Wa=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;Wa.hasOwnProperty(\"ReactCurrentDispatcher\")||(Wa.ReactCurrentDispatcher={current:null});Wa.hasOwnProperty(\"ReactCurrentBatchConfig\")||(Wa.ReactCurrentBatchConfig={suspense:null});\nfunction Xa(a,b,c,d){var e=C.hasOwnProperty(b)?C[b]:null;var f=null!==e?0===e.type:d?!1:!(2=c.length))throw Error(u(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:rb(c)}}\nfunction Kb(a,b){var c=rb(b.value),d=rb(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function Lb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var Mb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction Nb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function Ob(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?Nb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar Pb,Qb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==Mb.svg||\"innerHTML\"in a)a.innerHTML=b;else{Pb=Pb||document.createElement(\"div\");Pb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=Pb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction Rb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}function Sb(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var Tb={animationend:Sb(\"Animation\",\"AnimationEnd\"),animationiteration:Sb(\"Animation\",\"AnimationIteration\"),animationstart:Sb(\"Animation\",\"AnimationStart\"),transitionend:Sb(\"Transition\",\"TransitionEnd\")},Ub={},Vb={};\nya&&(Vb=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete Tb.animationend.animation,delete Tb.animationiteration.animation,delete Tb.animationstart.animation),\"TransitionEvent\"in window||delete Tb.transitionend.transition);function Wb(a){if(Ub[a])return Ub[a];if(!Tb[a])return a;var b=Tb[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Vb)return Ub[a]=b[c];return a}\nvar Xb=Wb(\"animationend\"),Yb=Wb(\"animationiteration\"),Zb=Wb(\"animationstart\"),$b=Wb(\"transitionend\"),ac=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),bc=new (\"function\"===typeof WeakMap?WeakMap:Map);function cc(a){var b=bc.get(a);void 0===b&&(b=new Map,bc.set(a,b));return b}\nfunction dc(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.effectTag&1026)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function ec(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function fc(a){if(dc(a)!==a)throw Error(u(188));}\nfunction gc(a){var b=a.alternate;if(!b){b=dc(a);if(null===b)throw Error(u(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return fc(e),a;if(f===d)return fc(e),b;f=f.sibling}throw Error(u(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(u(189));}}if(c.alternate!==d)throw Error(u(190));}if(3!==c.tag)throw Error(u(188));return c.stateNode.current===c?a:b}function hc(a){a=gc(a);if(!a)return null;for(var b=a;;){if(5===b.tag||6===b.tag)return b;if(b.child)b.child.return=b,b=b.child;else{if(b===a)break;for(;!b.sibling;){if(!b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}}return null}\nfunction ic(a,b){if(null==b)throw Error(u(30));if(null==a)return b;if(Array.isArray(a)){if(Array.isArray(b))return a.push.apply(a,b),a;a.push(b);return a}return Array.isArray(b)?[a].concat(b):[a,b]}function jc(a,b,c){Array.isArray(a)?a.forEach(b,c):a&&b.call(c,a)}var kc=null;\nfunction lc(a){if(a){var b=a._dispatchListeners,c=a._dispatchInstances;if(Array.isArray(b))for(var d=0;dpc.length&&pc.push(a)}\nfunction rc(a,b,c,d){if(pc.length){var e=pc.pop();e.topLevelType=a;e.eventSystemFlags=d;e.nativeEvent=b;e.targetInst=c;return e}return{topLevelType:a,eventSystemFlags:d,nativeEvent:b,targetInst:c,ancestors:[]}}\nfunction sc(a){var b=a.targetInst,c=b;do{if(!c){a.ancestors.push(c);break}var d=c;if(3===d.tag)d=d.stateNode.containerInfo;else{for(;d.return;)d=d.return;d=3!==d.tag?null:d.stateNode.containerInfo}if(!d)break;b=c.tag;5!==b&&6!==b||a.ancestors.push(c);c=tc(d)}while(c);for(c=0;c=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=ud(c)}}\nfunction wd(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?wd(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}function xd(){for(var a=window,b=td();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=td(a.document)}return b}\nfunction yd(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}var zd=\"$\",Ad=\"/$\",Bd=\"$?\",Cd=\"$!\",Dd=null,Ed=null;function Fd(a,b){switch(a){case \"button\":case \"input\":case \"select\":case \"textarea\":return!!b.autoFocus}return!1}\nfunction Gd(a,b){return\"textarea\"===a||\"option\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}var Hd=\"function\"===typeof setTimeout?setTimeout:void 0,Id=\"function\"===typeof clearTimeout?clearTimeout:void 0;function Jd(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break}return a}\nfunction Kd(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(c===zd||c===Cd||c===Bd){if(0===b)return a;b--}else c===Ad&&b++}a=a.previousSibling}return null}var Ld=Math.random().toString(36).slice(2),Md=\"__reactInternalInstance$\"+Ld,Nd=\"__reactEventHandlers$\"+Ld,Od=\"__reactContainere$\"+Ld;\nfunction tc(a){var b=a[Md];if(b)return b;for(var c=a.parentNode;c;){if(b=c[Od]||c[Md]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Kd(a);null!==a;){if(c=a[Md])return c;a=Kd(a)}return b}a=c;c=a.parentNode}return null}function Nc(a){a=a[Md]||a[Od];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function Pd(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(u(33));}function Qd(a){return a[Nd]||null}\nfunction Rd(a){do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction Sd(a,b){var c=a.stateNode;if(!c)return null;var d=la(c);if(!d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==typeof c)throw Error(u(231,\nb,typeof c));return c}function Td(a,b,c){if(b=Sd(a,c.dispatchConfig.phasedRegistrationNames[b]))c._dispatchListeners=ic(c._dispatchListeners,b),c._dispatchInstances=ic(c._dispatchInstances,a)}function Ud(a){if(a&&a.dispatchConfig.phasedRegistrationNames){for(var b=a._targetInst,c=[];b;)c.push(b),b=Rd(b);for(b=c.length;0this.eventPool.length&&this.eventPool.push(a)}function de(a){a.eventPool=[];a.getPooled=ee;a.release=fe}var ge=G.extend({data:null}),he=G.extend({data:null}),ie=[9,13,27,32],je=ya&&\"CompositionEvent\"in window,ke=null;ya&&\"documentMode\"in document&&(ke=document.documentMode);\nvar le=ya&&\"TextEvent\"in window&&!ke,me=ya&&(!je||ke&&8=ke),ne=String.fromCharCode(32),oe={beforeInput:{phasedRegistrationNames:{bubbled:\"onBeforeInput\",captured:\"onBeforeInputCapture\"},dependencies:[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]},compositionEnd:{phasedRegistrationNames:{bubbled:\"onCompositionEnd\",captured:\"onCompositionEndCapture\"},dependencies:\"blur compositionend keydown keypress keyup mousedown\".split(\" \")},compositionStart:{phasedRegistrationNames:{bubbled:\"onCompositionStart\",\ncaptured:\"onCompositionStartCapture\"},dependencies:\"blur compositionstart keydown keypress keyup mousedown\".split(\" \")},compositionUpdate:{phasedRegistrationNames:{bubbled:\"onCompositionUpdate\",captured:\"onCompositionUpdateCapture\"},dependencies:\"blur compositionupdate keydown keypress keyup mousedown\".split(\" \")}},pe=!1;\nfunction qe(a,b){switch(a){case \"keyup\":return-1!==ie.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"blur\":return!0;default:return!1}}function re(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var se=!1;function te(a,b){switch(a){case \"compositionend\":return re(b);case \"keypress\":if(32!==b.which)return null;pe=!0;return ne;case \"textInput\":return a=b.data,a===ne&&pe?null:a;default:return null}}\nfunction ue(a,b){if(se)return\"compositionend\"===a||!je&&qe(a,b)?(a=ae(),$d=Zd=Yd=null,se=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=document.documentMode,df={select:{phasedRegistrationNames:{bubbled:\"onSelect\",captured:\"onSelectCapture\"},dependencies:\"blur contextmenu dragend focus keydown keyup mousedown mouseup selectionchange\".split(\" \")}},ef=null,ff=null,gf=null,hf=!1;\nfunction jf(a,b){var c=b.window===b?b.document:9===b.nodeType?b:b.ownerDocument;if(hf||null==ef||ef!==td(c))return null;c=ef;\"selectionStart\"in c&&yd(c)?c={start:c.selectionStart,end:c.selectionEnd}:(c=(c.ownerDocument&&c.ownerDocument.defaultView||window).getSelection(),c={anchorNode:c.anchorNode,anchorOffset:c.anchorOffset,focusNode:c.focusNode,focusOffset:c.focusOffset});return gf&&bf(gf,c)?null:(gf=c,a=G.getPooled(df.select,ff,a,b),a.type=\"select\",a.target=ef,Xd(a),a)}\nvar kf={eventTypes:df,extractEvents:function(a,b,c,d,e,f){e=f||(d.window===d?d.document:9===d.nodeType?d:d.ownerDocument);if(!(f=!e)){a:{e=cc(e);f=wa.onSelect;for(var g=0;gzf||(a.current=yf[zf],yf[zf]=null,zf--)}\nfunction I(a,b){zf++;yf[zf]=a.current;a.current=b}var Af={},J={current:Af},K={current:!1},Bf=Af;function Cf(a,b){var c=a.type.contextTypes;if(!c)return Af;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function L(a){a=a.childContextTypes;return null!==a&&void 0!==a}\nfunction Df(){H(K);H(J)}function Ef(a,b,c){if(J.current!==Af)throw Error(u(168));I(J,b);I(K,c)}function Ff(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(u(108,pb(b)||\"Unknown\",e));return n({},c,{},d)}function Gf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Af;Bf=J.current;I(J,a);I(K,K.current);return!0}\nfunction Hf(a,b,c){var d=a.stateNode;if(!d)throw Error(u(169));c?(a=Ff(a,b,Bf),d.__reactInternalMemoizedMergedChildContext=a,H(K),H(J),I(J,a)):H(K);I(K,c)}\nvar If=r.unstable_runWithPriority,Jf=r.unstable_scheduleCallback,Kf=r.unstable_cancelCallback,Lf=r.unstable_requestPaint,Mf=r.unstable_now,Nf=r.unstable_getCurrentPriorityLevel,Of=r.unstable_ImmediatePriority,Pf=r.unstable_UserBlockingPriority,Qf=r.unstable_NormalPriority,Rf=r.unstable_LowPriority,Sf=r.unstable_IdlePriority,Tf={},Uf=r.unstable_shouldYield,Vf=void 0!==Lf?Lf:function(){},Wf=null,Xf=null,Yf=!1,Zf=Mf(),$f=1E4>Zf?Mf:function(){return Mf()-Zf};\nfunction ag(){switch(Nf()){case Of:return 99;case Pf:return 98;case Qf:return 97;case Rf:return 96;case Sf:return 95;default:throw Error(u(332));}}function bg(a){switch(a){case 99:return Of;case 98:return Pf;case 97:return Qf;case 96:return Rf;case 95:return Sf;default:throw Error(u(332));}}function cg(a,b){a=bg(a);return If(a,b)}function dg(a,b,c){a=bg(a);return Jf(a,b,c)}function eg(a){null===Wf?(Wf=[a],Xf=Jf(Of,fg)):Wf.push(a);return Tf}function gg(){if(null!==Xf){var a=Xf;Xf=null;Kf(a)}fg()}\nfunction fg(){if(!Yf&&null!==Wf){Yf=!0;var a=0;try{var b=Wf;cg(99,function(){for(;a=b&&(rg=!0),a.firstContext=null)}\nfunction sg(a,b){if(mg!==a&&!1!==b&&0!==b){if(\"number\"!==typeof b||1073741823===b)mg=a,b=1073741823;b={context:a,observedBits:b,next:null};if(null===lg){if(null===kg)throw Error(u(308));lg=b;kg.dependencies={expirationTime:0,firstContext:b,responders:null}}else lg=lg.next=b}return a._currentValue}var tg=!1;function ug(a){a.updateQueue={baseState:a.memoizedState,baseQueue:null,shared:{pending:null},effects:null}}\nfunction vg(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,baseQueue:a.baseQueue,shared:a.shared,effects:a.effects})}function wg(a,b){a={expirationTime:a,suspenseConfig:b,tag:0,payload:null,callback:null,next:null};return a.next=a}function xg(a,b){a=a.updateQueue;if(null!==a){a=a.shared;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}}\nfunction yg(a,b){var c=a.alternate;null!==c&&vg(c,a);a=a.updateQueue;c=a.baseQueue;null===c?(a.baseQueue=b.next=b,b.next=b):(b.next=c.next,c.next=b)}\nfunction zg(a,b,c,d){var e=a.updateQueue;tg=!1;var f=e.baseQueue,g=e.shared.pending;if(null!==g){if(null!==f){var h=f.next;f.next=g.next;g.next=h}f=g;e.shared.pending=null;h=a.alternate;null!==h&&(h=h.updateQueue,null!==h&&(h.baseQueue=g))}if(null!==f){h=f.next;var k=e.baseState,l=0,m=null,p=null,x=null;if(null!==h){var z=h;do{g=z.expirationTime;if(gl&&(l=g)}else{null!==x&&(x=x.next={expirationTime:1073741823,suspenseConfig:z.suspenseConfig,tag:z.tag,payload:z.payload,callback:z.callback,next:null});Ag(g,z.suspenseConfig);a:{var D=a,t=z;g=b;ca=c;switch(t.tag){case 1:D=t.payload;if(\"function\"===typeof D){k=D.call(ca,k,g);break a}k=D;break a;case 3:D.effectTag=D.effectTag&-4097|64;case 0:D=t.payload;g=\"function\"===typeof D?D.call(ca,k,g):D;if(null===g||void 0===g)break a;k=n({},k,g);break a;case 2:tg=!0}}null!==z.callback&&\n(a.effectTag|=32,g=e.effects,null===g?e.effects=[z]:g.push(z))}z=z.next;if(null===z||z===h)if(g=e.shared.pending,null===g)break;else z=f.next=g.next,g.next=h,e.baseQueue=f=g,e.shared.pending=null}while(1)}null===x?m=k:x.next=p;e.baseState=m;e.baseQueue=x;Bg(l);a.expirationTime=l;a.memoizedState=k}}\nfunction Cg(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;by?(A=m,m=null):A=m.sibling;var q=x(e,m,h[y],k);if(null===q){null===m&&(m=A);break}a&&\nm&&null===q.alternate&&b(e,m);g=f(q,g,y);null===t?l=q:t.sibling=q;t=q;m=A}if(y===h.length)return c(e,m),l;if(null===m){for(;yy?(A=t,t=null):A=t.sibling;var D=x(e,t,q.value,l);if(null===D){null===t&&(t=A);break}a&&t&&null===D.alternate&&b(e,t);g=f(D,g,y);null===m?k=D:m.sibling=D;m=D;t=A}if(q.done)return c(e,t),k;if(null===t){for(;!q.done;y++,q=h.next())q=p(e,q.value,l),null!==q&&(g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);return k}for(t=d(e,t);!q.done;y++,q=h.next())q=z(t,e,y,q.value,l),null!==q&&(a&&null!==\nq.alternate&&t.delete(null===q.key?y:q.key),g=f(q,g,y),null===m?k=q:m.sibling=q,m=q);a&&t.forEach(function(a){return b(e,a)});return k}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ab&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case Za:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ab){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,\nk.sibling);d=e(k,f.props);d.ref=Pg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ab?(d=Wg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Ug(f.type,f.key,f.props,null,a.mode,h),h.ref=Pg(a,d,f),h.return=a,a=h)}return g(a);case $a:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=\nd.sibling}d=Vg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Tg(f,a.mode,h),d.return=a,a=d),g(a);if(Og(f))return ca(a,d,f,h);if(nb(f))return D(a,d,f,h);l&&Qg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 0:throw a=a.type,Error(u(152,a.displayName||a.name||\"Component\"));}return c(a,d)}}var Xg=Rg(!0),Yg=Rg(!1),Zg={},$g={current:Zg},ah={current:Zg},bh={current:Zg};\nfunction ch(a){if(a===Zg)throw Error(u(174));return a}function dh(a,b){I(bh,b);I(ah,a);I($g,Zg);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:Ob(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=Ob(b,a)}H($g);I($g,b)}function eh(){H($g);H(ah);H(bh)}function fh(a){ch(bh.current);var b=ch($g.current);var c=Ob(b,a.type);b!==c&&(I(ah,a),I($g,c))}function gh(a){ah.current===a&&(H($g),H(ah))}var M={current:0};\nfunction hh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||c.data===Bd||c.data===Cd))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.effectTag&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}function ih(a,b){return{responder:a,props:b}}\nvar jh=Wa.ReactCurrentDispatcher,kh=Wa.ReactCurrentBatchConfig,lh=0,N=null,O=null,P=null,mh=!1;function Q(){throw Error(u(321));}function nh(a,b){if(null===b)return!1;for(var c=0;cf))throw Error(u(301));f+=1;P=O=null;b.updateQueue=null;jh.current=rh;a=c(d,e)}while(b.expirationTime===lh)}jh.current=sh;b=null!==O&&null!==O.next;lh=0;P=O=N=null;mh=!1;if(b)throw Error(u(300));return a}\nfunction th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===P?N.memoizedState=P=a:P=P.next=a;return P}function uh(){if(null===O){var a=N.alternate;a=null!==a?a.memoizedState:null}else a=O.next;var b=null===P?N.memoizedState:P.next;if(null!==b)P=b,O=a;else{if(null===a)throw Error(u(310));O=a;a={memoizedState:O.memoizedState,baseState:O.baseState,baseQueue:O.baseQueue,queue:O.queue,next:null};null===P?N.memoizedState=P=a:P=P.next=a}return P}\nfunction vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction wh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=O,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.expirationTime;if(lN.expirationTime&&\n(N.expirationTime=l,Bg(l))}else null!==h&&(h=h.next={expirationTime:1073741823,suspenseConfig:k.suspenseConfig,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),Ag(l,k.suspenseConfig),d=k.eagerReducer===a?k.eagerState:a(d,k.action);k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;$e(d,b.memoizedState)||(rg=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction xh(a){var b=uh(),c=b.queue;if(null===c)throw Error(u(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);$e(f,b.memoizedState)||(rg=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction yh(a){var b=th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a=b.queue={pending:null,dispatch:null,lastRenderedReducer:vh,lastRenderedState:a};a=a.dispatch=zh.bind(null,N,a);return[b.memoizedState,a]}function Ah(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=N.updateQueue;null===b?(b={lastEffect:null},N.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}\nfunction Bh(){return uh().memoizedState}function Ch(a,b,c,d){var e=th();N.effectTag|=a;e.memoizedState=Ah(1|b,c,void 0,void 0===d?null:d)}function Dh(a,b,c,d){var e=uh();d=void 0===d?null:d;var f=void 0;if(null!==O){var g=O.memoizedState;f=g.destroy;if(null!==d&&nh(d,g.deps)){Ah(b,c,f,d);return}}N.effectTag|=a;e.memoizedState=Ah(1|b,c,f,d)}function Eh(a,b){return Ch(516,4,a,b)}function Fh(a,b){return Dh(516,4,a,b)}function Gh(a,b){return Dh(4,2,a,b)}\nfunction Hh(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function Ih(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return Dh(4,2,Hh.bind(null,b,a),c)}function Jh(){}function Kh(a,b){th().memoizedState=[a,void 0===b?null:b];return a}function Lh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction Mh(a,b){var c=uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&nh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function Nh(a,b,c){var d=ag();cg(98>d?98:d,function(){a(!0)});cg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(e,{is:d.is}):(a=g.createElement(e),\"select\"===e&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,e);a[Md]=b;a[Nd]=d;ni(a,b,!1,!1);b.stateNode=a;g=pd(e,d);switch(e){case \"iframe\":case \"object\":case \"embed\":F(\"load\",\na);h=d;break;case \"video\":case \"audio\":for(h=0;hd.tailExpiration&&1b)&&tj.set(a,b)))}}\nfunction xj(a,b){a.expirationTimea?c:a;return 2>=a&&b!==a?0:a}\nfunction Z(a){if(0!==a.lastExpiredTime)a.callbackExpirationTime=1073741823,a.callbackPriority=99,a.callbackNode=eg(yj.bind(null,a));else{var b=zj(a),c=a.callbackNode;if(0===b)null!==c&&(a.callbackNode=null,a.callbackExpirationTime=0,a.callbackPriority=90);else{var d=Gg();1073741823===b?d=99:1===b||2===b?d=95:(d=10*(1073741821-b)-10*(1073741821-d),d=0>=d?99:250>=d?98:5250>=d?97:95);if(null!==c){var e=a.callbackPriority;if(a.callbackExpirationTime===b&&e>=d)return;c!==Tf&&Kf(c)}a.callbackExpirationTime=\nb;a.callbackPriority=d;b=1073741823===b?eg(yj.bind(null,a)):dg(d,Bj.bind(null,a),{timeout:10*(1073741821-b)-$f()});a.callbackNode=b}}}\nfunction Bj(a,b){wj=0;if(b)return b=Gg(),Cj(a,b),Z(a),null;var c=zj(a);if(0!==c){b=a.callbackNode;if((W&(fj|gj))!==V)throw Error(u(327));Dj();a===T&&c===U||Ej(a,c);if(null!==X){var d=W;W|=fj;var e=Fj();do try{Gj();break}catch(h){Hj(a,h)}while(1);ng();W=d;cj.current=e;if(S===hj)throw b=kj,Ej(a,c),xi(a,c),Z(a),b;if(null===X)switch(e=a.finishedWork=a.current.alternate,a.finishedExpirationTime=c,d=S,T=null,d){case ti:case hj:throw Error(u(345));case ij:Cj(a,2=c){a.lastPingedTime=c;Ej(a,c);break}}f=zj(a);if(0!==f&&f!==c)break;if(0!==d&&d!==c){a.lastPingedTime=d;break}a.timeoutHandle=Hd(Jj.bind(null,a),e);break}Jj(a);break;case vi:xi(a,c);d=a.lastSuspendedTime;c===d&&(a.nextKnownPendingLevel=Ij(e));if(oj&&(e=a.lastPingedTime,0===e||e>=c)){a.lastPingedTime=c;Ej(a,c);break}e=zj(a);if(0!==e&&e!==c)break;if(0!==d&&d!==c){a.lastPingedTime=\nd;break}1073741823!==mj?d=10*(1073741821-mj)-$f():1073741823===lj?d=0:(d=10*(1073741821-lj)-5E3,e=$f(),c=10*(1073741821-c)-e,d=e-d,0>d&&(d=0),d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*bj(d/1960))-d,c=d?d=0:(e=g.busyDelayMs|0,f=$f()-(10*(1073741821-f)-(g.timeoutMs|0||5E3)),d=f<=e?0:e+d-f);if(10 component higher in the tree to provide a loading indicator or placeholder to display.\"+qb(g))}S!==\njj&&(S=ij);h=Ai(h,g);p=f;do{switch(p.tag){case 3:k=h;p.effectTag|=4096;p.expirationTime=b;var B=Xi(p,k,b);yg(p,B);break a;case 1:k=h;var w=p.type,ub=p.stateNode;if(0===(p.effectTag&64)&&(\"function\"===typeof w.getDerivedStateFromError||null!==ub&&\"function\"===typeof ub.componentDidCatch&&(null===aj||!aj.has(ub)))){p.effectTag|=4096;p.expirationTime=b;var vb=$i(p,k,b);yg(p,vb);break a}}p=p.return}while(null!==p)}X=Pj(X)}catch(Xc){b=Xc;continue}break}while(1)}\nfunction Fj(){var a=cj.current;cj.current=sh;return null===a?sh:a}function Ag(a,b){awi&&(wi=a)}function Kj(){for(;null!==X;)X=Qj(X)}function Gj(){for(;null!==X&&!Uf();)X=Qj(X)}function Qj(a){var b=Rj(a.alternate,a,U);a.memoizedProps=a.pendingProps;null===b&&(b=Pj(a));dj.current=null;return b}\nfunction Pj(a){X=a;do{var b=X.alternate;a=X.return;if(0===(X.effectTag&2048)){b=si(b,X,U);if(1===U||1!==X.childExpirationTime){for(var c=0,d=X.child;null!==d;){var e=d.expirationTime,f=d.childExpirationTime;e>c&&(c=e);f>c&&(c=f);d=d.sibling}X.childExpirationTime=c}if(null!==b)return b;null!==a&&0===(a.effectTag&2048)&&(null===a.firstEffect&&(a.firstEffect=X.firstEffect),null!==X.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=X.firstEffect),a.lastEffect=X.lastEffect),1a?b:a}function Jj(a){var b=ag();cg(99,Sj.bind(null,a,b));return null}\nfunction Sj(a,b){do Dj();while(null!==rj);if((W&(fj|gj))!==V)throw Error(u(327));var c=a.finishedWork,d=a.finishedExpirationTime;if(null===c)return null;a.finishedWork=null;a.finishedExpirationTime=0;if(c===a.current)throw Error(u(177));a.callbackNode=null;a.callbackExpirationTime=0;a.callbackPriority=90;a.nextKnownPendingLevel=0;var e=Ij(c);a.firstPendingTime=e;d<=a.lastSuspendedTime?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:d<=a.firstSuspendedTime&&(a.firstSuspendedTime=\nd-1);d<=a.lastPingedTime&&(a.lastPingedTime=0);d<=a.lastExpiredTime&&(a.lastExpiredTime=0);a===T&&(X=T=null,U=0);1h&&(l=h,h=g,g=l),l=vd(q,g),m=vd(q,h),l&&m&&(1!==w.rangeCount||w.anchorNode!==l.node||w.anchorOffset!==l.offset||w.focusNode!==m.node||w.focusOffset!==m.offset)&&(B=B.createRange(),B.setStart(l.node,l.offset),w.removeAllRanges(),g>h?(w.addRange(B),w.extend(m.node,m.offset)):(B.setEnd(m.node,m.offset),w.addRange(B))))));B=[];for(w=q;w=w.parentNode;)1===w.nodeType&&B.push({element:w,left:w.scrollLeft,\ntop:w.scrollTop});\"function\"===typeof q.focus&&q.focus();for(q=0;q=c)return ji(a,b,c);I(M,M.current&1);b=$h(a,b,c);return null!==b?b.sibling:null}I(M,M.current&1);break;case 19:d=b.childExpirationTime>=c;if(0!==(a.effectTag&64)){if(d)return mi(a,b,c);b.effectTag|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null);I(M,M.current);if(!d)return null}return $h(a,b,c)}rg=!1}}else rg=!1;b.expirationTime=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.effectTag|=2);a=b.pendingProps;e=Cf(b,J.current);qg(b,c);e=oh(null,\nb,d,a,e,c);b.effectTag|=1;if(\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(L(d)){var f=!0;Gf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;ug(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Fg(b,d,g,a);e.updater=Jg;b.stateNode=e;e._reactInternalFiber=b;Ng(b,d,a,c);b=gi(null,b,d,!0,f,c)}else b.tag=0,R(null,b,e,c),b=b.child;return b;case 16:a:{e=b.elementType;null!==a&&(a.alternate=\nnull,b.alternate=null,b.effectTag|=2);a=b.pendingProps;ob(e);if(1!==e._status)throw e._result;e=e._result;b.type=e;f=b.tag=Xj(e);a=ig(e,a);switch(f){case 0:b=di(null,b,e,a,c);break a;case 1:b=fi(null,b,e,a,c);break a;case 11:b=Zh(null,b,e,a,c);break a;case 14:b=ai(null,b,e,ig(e.type,a),d,c);break a}throw Error(u(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),di(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),fi(a,b,d,e,c);\ncase 3:hi(b);d=b.updateQueue;if(null===a||null===d)throw Error(u(282));d=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;vg(a,b);zg(b,d,null,c);d=b.memoizedState.element;if(d===e)Xh(),b=$h(a,b,c);else{if(e=b.stateNode.hydrate)Ph=Jd(b.stateNode.containerInfo.firstChild),Oh=b,e=Qh=!0;if(e)for(c=Yg(b,null,d,c),b.child=c;c;)c.effectTag=c.effectTag&-3|1024,c=c.sibling;else R(a,b,d,c),Xh();b=b.child}return b;case 5:return fh(b),null===a&&Uh(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:\nnull,g=e.children,Gd(d,e)?g=null:null!==f&&Gd(d,f)&&(b.effectTag|=16),ei(a,b),b.mode&4&&1!==c&&e.hidden?(b.expirationTime=b.childExpirationTime=1,b=null):(R(a,b,g,c),b=b.child),b;case 6:return null===a&&Uh(b),null;case 13:return ji(a,b,c);case 4:return dh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Xg(b,null,d,c):R(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:ig(d,e),Zh(a,b,d,e,c);case 7:return R(a,b,b.pendingProps,c),b.child;case 8:return R(a,\nb,b.pendingProps.children,c),b.child;case 12:return R(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;g=b.memoizedProps;f=e.value;var h=b.type._context;I(jg,h._currentValue);h._currentValue=f;if(null!==g)if(h=g.value,f=$e(h,f)?0:(\"function\"===typeof d._calculateChangedBits?d._calculateChangedBits(h,f):1073741823)|0,0===f){if(g.children===e.children&&!K.current){b=$h(a,b,c);break a}}else for(h=b.child,null!==h&&(h.return=b);null!==h;){var k=h.dependencies;if(null!==\nk){g=h.child;for(var l=k.firstContext;null!==l;){if(l.context===d&&0!==(l.observedBits&f)){1===h.tag&&(l=wg(c,null),l.tag=2,xg(h,l));h.expirationTime=b&&a<=b}function xi(a,b){var c=a.firstSuspendedTime,d=a.lastSuspendedTime;cb||0===c)a.lastSuspendedTime=b;b<=a.lastPingedTime&&(a.lastPingedTime=0);b<=a.lastExpiredTime&&(a.lastExpiredTime=0)}\nfunction yi(a,b){b>a.firstPendingTime&&(a.firstPendingTime=b);var c=a.firstSuspendedTime;0!==c&&(b>=c?a.firstSuspendedTime=a.lastSuspendedTime=a.nextKnownPendingLevel=0:b>=a.lastSuspendedTime&&(a.lastSuspendedTime=b+1),b>a.nextKnownPendingLevel&&(a.nextKnownPendingLevel=b))}function Cj(a,b){var c=a.lastExpiredTime;if(0===c||c>b)a.lastExpiredTime=b}\nfunction bk(a,b,c,d){var e=b.current,f=Gg(),g=Dg.suspense;f=Hg(f,e,g);a:if(c){c=c._reactInternalFiber;b:{if(dc(c)!==c||1!==c.tag)throw Error(u(170));var h=c;do{switch(h.tag){case 3:h=h.stateNode.context;break b;case 1:if(L(h.type)){h=h.stateNode.__reactInternalMemoizedMergedChildContext;break b}}h=h.return}while(null!==h);throw Error(u(171));}if(1===c.tag){var k=c.type;if(L(k)){c=Ff(c,k,h);break a}}c=h}else c=Af;null===b.context?b.context=c:b.pendingContext=c;b=wg(f,g);b.payload={element:a};d=void 0===\nd?null:d;null!==d&&(b.callback=d);xg(e,b);Ig(e,f);return f}function ck(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function dk(a,b){a=a.memoizedState;null!==a&&null!==a.dehydrated&&a.retryTime=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","var DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? Array : C;\n};\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction anyToKebab(s) {\n if ('string' !== typeof s) {\n return s;\n }\n\n var result = '',\n i = 0,\n len = s.length;\n\n for (; i < len; i++) {\n var lowerCased = s[i].toLowerCase();\n var upperCased = s[i].toUpperCase();\n\n if (lowerCased !== upperCased && s[i] === upperCased) {\n result += '-' + lowerCased;\n } else {\n result += lowerCased;\n }\n }\n\n return result[0] !== '-' ? result : result.substr(1);\n}\n\nvar _default = anyToKebab;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _kebabToPascal = _interopRequireDefault(require(\"./kebab-to-pascal\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction kebabToCamel(s) {\n if ('string' !== typeof s) {\n return s;\n }\n\n var p = (0, _kebabToPascal[\"default\"])(s);\n return p.substr(0, 1).toLowerCase() + p.substring(1);\n}\n\nvar _default = kebabToCamel;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nfunction kebabToPascal(s) {\n if ('string' !== typeof s || s.length === 0) {\n return s;\n }\n\n var result = s.substr(0, 1).toUpperCase(),\n i = 1,\n len = s.length;\n\n for (; i < len; i++) {\n if (s[i] === '-' && i + 1 !== len) {\n result += s[i + 1].toUpperCase();\n i++;\n } else result += s[i].toLowerCase();\n }\n\n return result[0] !== '-' ? result : result.substr(1);\n}\n\nvar _default = kebabToPascal;\nexports[\"default\"] = _default;","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _assign = require(\"../core-js/object/assign\");\n\nvar _assign2 = _interopRequireDefault(_assign);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _assign2.default || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\n var T = toObject(target);\n var aLen = arguments.length;\n var index = 1;\n var getSymbols = gOPS.f;\n var isEnum = pIE.f;\n while (aLen > index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/get-prototype-of\"), __esModule: true };","require('../../modules/es6.object.get-prototype-of');\nmodule.exports = require('../../modules/_core').Object.getPrototypeOf;\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","require('./es6.array.iterator');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +\n 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +\n 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +\n 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +\n 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function () { /* empty */ };\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D) {\n return $Object.create(P, D);\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","(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.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.0';\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.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 };\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 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 symbolElement = createNS('symbol');\r\n symbolElement.setAttribute('id', this.layerId);\r\n var gg = createNS('g');\r\n gg.appendChild(this.layerElement);\r\n symbolElement.appendChild(gg);\r\n layerElementParent = gg;\r\n this.globalData.defs.appendChild(symbolElement);\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 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 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 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 CVBaseElement.prototype = {\r\n createElements: function createElements() {},\r\n initRendererElement: function initRendererElement() {},\r\n createContainerElements: function createContainerElements() {\r\n this.canvasContext = this.globalData.canvasContext;\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 renderFrame: function renderFrame() {\r\n if (this.hidden || this.data.hd) {\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.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\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 }\r\n\r\n this.transformMat.cloneFromProps(props);\r\n var cProps = this.contextData.cTr.props;\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]); // this.contextData.cTr.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 this.contextData.cTr.cloneFromProps(this.transformMat.props);\r\n var trProps = this.contextData.cTr.props;\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 if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.globalAlpha *= op < 0 ? 0 : op;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\r\n return;\r\n }\r\n\r\n this.contextData.cO *= op < 0 ? 0 : op;\r\n\r\n if (this.globalData.currentGlobalAlpha !== this.contextData.cO) {\r\n this.canvasContext.globalAlpha = this.contextData.cO;\r\n this.globalData.currentGlobalAlpha = this.contextData.cO;\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 var props = this.contextData.cTr.props;\r\n\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.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.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\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 this.contextData.cArrPos -= 1;\r\n var popped = this.contextData.saved[this.contextData.cArrPos];\r\n var i;\r\n var arr = this.contextData.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 this.canvasContext.setTransform(popped[0], popped[1], popped[4], popped[5], popped[12], popped[13]);\r\n popped = this.contextData.savedOp[this.contextData.cArrPos];\r\n this.contextData.cO = popped;\r\n\r\n if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\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 elem.textProperty.currentData.t = _prevValue;\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\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 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', '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 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.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 ' + opacity + ' 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","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _stripPropertiesWithValue = _interopRequireDefault(require(\"./strip-properties-with-value\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction stripUndefined(object) {\n return (0, _stripPropertiesWithValue[\"default\"])(object, undefined);\n}\n\nvar _default = stripUndefined;\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = stripPropertiesWithValue;\n\nvar _filterObject = _interopRequireDefault(require(\"./filter-object\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction stripPropertiesWithValue(object, valueToStrip) {\n return (0, _filterObject[\"default\"])(object, function (_key, value) {\n return value !== valueToStrip;\n });\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = filterObject;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction filterObject() {\n var object = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var predicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {\n return true;\n };\n return Object.entries(object).reduce(function (accumulator, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n\n return predicate(key, value) ? Object.assign(accumulator, _defineProperty({}, key, value)) : accumulator;\n }, {});\n}","/*! @vimeo/player v2.18.0 | (c) 2022 Vimeo | MIT License | https://github.com/vimeo/player.js */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\n/**\n * @module lib/functions\n */\n\n/**\n * Check to see this is a node environment.\n * @type {Boolean}\n */\n\n/* global global */\nvar isNode = typeof global !== 'undefined' && {}.toString.call(global) === '[object global]';\n/**\n * Get the name of the method for a given getter or setter.\n *\n * @param {string} prop The name of the property.\n * @param {string} type Either “get” or “set”.\n * @return {string}\n */\n\nfunction getMethodName(prop, type) {\n if (prop.indexOf(type.toLowerCase()) === 0) {\n return prop;\n }\n\n return \"\".concat(type.toLowerCase()).concat(prop.substr(0, 1).toUpperCase()).concat(prop.substr(1));\n}\n/**\n * Check to see if the object is a DOM Element.\n *\n * @param {*} element The object to check.\n * @return {boolean}\n */\n\nfunction isDomElement(element) {\n return Boolean(element && element.nodeType === 1 && 'nodeName' in element && element.ownerDocument && element.ownerDocument.defaultView);\n}\n/**\n * Check to see whether the value is a number.\n *\n * @see http://dl.dropboxusercontent.com/u/35146/js/tests/isNumber.html\n * @param {*} value The value to check.\n * @param {boolean} integer Check if the value is an integer.\n * @return {boolean}\n */\n\nfunction isInteger(value) {\n // eslint-disable-next-line eqeqeq\n return !isNaN(parseFloat(value)) && isFinite(value) && Math.floor(value) == value;\n}\n/**\n * Check to see if the URL is a Vimeo url.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\n\nfunction isVimeoUrl(url) {\n return /^(https?:)?\\/\\/((player|www)\\.)?vimeo\\.com(?=$|\\/)/.test(url);\n}\n/**\n * Check to see if the URL is for a Vimeo embed.\n *\n * @param {string} url The url string.\n * @return {boolean}\n */\n\nfunction isVimeoEmbed(url) {\n var expr = /^https:\\/\\/player\\.vimeo\\.com\\/video\\/\\d+/;\n return expr.test(url);\n}\n/**\n * Get the Vimeo URL from an element.\n * The element must have either a data-vimeo-id or data-vimeo-url attribute.\n *\n * @param {object} oEmbedParameters The oEmbed parameters.\n * @return {string}\n */\n\nfunction getVimeoUrl() {\n var oEmbedParameters = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var id = oEmbedParameters.id;\n var url = oEmbedParameters.url;\n var idOrUrl = id || url;\n\n if (!idOrUrl) {\n throw new Error('An id or url must be passed, either in an options object or as a data-vimeo-id or data-vimeo-url attribute.');\n }\n\n if (isInteger(idOrUrl)) {\n return \"https://vimeo.com/\".concat(idOrUrl);\n }\n\n if (isVimeoUrl(idOrUrl)) {\n return idOrUrl.replace('http:', 'https:');\n }\n\n if (id) {\n throw new TypeError(\"\\u201C\".concat(id, \"\\u201D is not a valid video id.\"));\n }\n\n throw new TypeError(\"\\u201C\".concat(idOrUrl, \"\\u201D is not a vimeo.com url.\"));\n}\n\nvar arrayIndexOfSupport = typeof Array.prototype.indexOf !== 'undefined';\nvar postMessageSupport = typeof window !== 'undefined' && typeof window.postMessage !== 'undefined';\n\nif (!isNode && (!arrayIndexOfSupport || !postMessageSupport)) {\n throw new Error('Sorry, the Vimeo Player API is not available in this browser.');\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\n/*!\n * weakmap-polyfill v2.0.4 - ECMAScript6 WeakMap polyfill\n * https://github.com/polygonplanet/weakmap-polyfill\n * Copyright (c) 2015-2021 polygonplanet \n * @license MIT\n */\n(function (self) {\n\n if (self.WeakMap) {\n return;\n }\n\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n var hasDefine = Object.defineProperty && function () {\n try {\n // Avoid IE8's broken Object.defineProperty\n return Object.defineProperty({}, 'x', {\n value: 1\n }).x === 1;\n } catch (e) {}\n }();\n\n var defineProperty = function (object, name, value) {\n if (hasDefine) {\n Object.defineProperty(object, name, {\n configurable: true,\n writable: true,\n value: value\n });\n } else {\n object[name] = value;\n }\n };\n\n self.WeakMap = function () {\n // ECMA-262 23.3 WeakMap Objects\n function WeakMap() {\n if (this === void 0) {\n throw new TypeError(\"Constructor WeakMap requires 'new'\");\n }\n\n defineProperty(this, '_id', genId('_WeakMap')); // ECMA-262 23.3.1.1 WeakMap([iterable])\n\n if (arguments.length > 0) {\n // Currently, WeakMap `iterable` argument is not supported\n throw new TypeError('WeakMap iterable is not supported');\n }\n } // ECMA-262 23.3.3.2 WeakMap.prototype.delete(key)\n\n\n defineProperty(WeakMap.prototype, 'delete', function (key) {\n checkInstance(this, 'delete');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n delete key[this._id];\n return true;\n }\n\n return false;\n }); // ECMA-262 23.3.3.3 WeakMap.prototype.get(key)\n\n defineProperty(WeakMap.prototype, 'get', function (key) {\n checkInstance(this, 'get');\n\n if (!isObject(key)) {\n return void 0;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return entry[1];\n }\n\n return void 0;\n }); // ECMA-262 23.3.3.4 WeakMap.prototype.has(key)\n\n defineProperty(WeakMap.prototype, 'has', function (key) {\n checkInstance(this, 'has');\n\n if (!isObject(key)) {\n return false;\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n return true;\n }\n\n return false;\n }); // ECMA-262 23.3.3.5 WeakMap.prototype.set(key, value)\n\n defineProperty(WeakMap.prototype, 'set', function (key, value) {\n checkInstance(this, 'set');\n\n if (!isObject(key)) {\n throw new TypeError('Invalid value used as weak map key');\n }\n\n var entry = key[this._id];\n\n if (entry && entry[0] === key) {\n entry[1] = value;\n return this;\n }\n\n defineProperty(key, this._id, [key, value]);\n return this;\n });\n\n function checkInstance(x, methodName) {\n if (!isObject(x) || !hasOwnProperty.call(x, '_id')) {\n throw new TypeError(methodName + ' method called on incompatible receiver ' + typeof x);\n }\n }\n\n function genId(prefix) {\n return prefix + '_' + rand() + '.' + rand();\n }\n\n function rand() {\n return Math.random().toString().substring(2);\n }\n\n defineProperty(WeakMap, '_polyfill', true);\n return WeakMap;\n }();\n\n function isObject(x) {\n return Object(x) === x;\n }\n})(typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : typeof window !== 'undefined' ? window : typeof commonjsGlobal !== 'undefined' ? commonjsGlobal : commonjsGlobal);\n\nvar npo_src = createCommonjsModule(function (module) {\n/*! Native Promise Only\n v0.8.1 (c) Kyle Simpson\n MIT License: http://getify.mit-license.org\n*/\n(function UMD(name, context, definition) {\n // special form of UMD for polyfilling across evironments\n context[name] = context[name] || definition();\n\n if ( module.exports) {\n module.exports = context[name];\n }\n})(\"Promise\", typeof commonjsGlobal != \"undefined\" ? commonjsGlobal : commonjsGlobal, function DEF() {\n\n var builtInProp,\n cycle,\n scheduling_queue,\n ToString = Object.prototype.toString,\n timer = typeof setImmediate != \"undefined\" ? function timer(fn) {\n return setImmediate(fn);\n } : setTimeout; // dammit, IE8.\n\n try {\n Object.defineProperty({}, \"x\", {});\n\n builtInProp = function builtInProp(obj, name, val, config) {\n return Object.defineProperty(obj, name, {\n value: val,\n writable: true,\n configurable: config !== false\n });\n };\n } catch (err) {\n builtInProp = function builtInProp(obj, name, val) {\n obj[name] = val;\n return obj;\n };\n } // Note: using a queue instead of array for efficiency\n\n\n scheduling_queue = function Queue() {\n var first, last, item;\n\n function Item(fn, self) {\n this.fn = fn;\n this.self = self;\n this.next = void 0;\n }\n\n return {\n add: function add(fn, self) {\n item = new Item(fn, self);\n\n if (last) {\n last.next = item;\n } else {\n first = item;\n }\n\n last = item;\n item = void 0;\n },\n drain: function drain() {\n var f = first;\n first = last = cycle = void 0;\n\n while (f) {\n f.fn.call(f.self);\n f = f.next;\n }\n }\n };\n }();\n\n function schedule(fn, self) {\n scheduling_queue.add(fn, self);\n\n if (!cycle) {\n cycle = timer(scheduling_queue.drain);\n }\n } // promise duck typing\n\n\n function isThenable(o) {\n var _then,\n o_type = typeof o;\n\n if (o != null && (o_type == \"object\" || o_type == \"function\")) {\n _then = o.then;\n }\n\n return typeof _then == \"function\" ? _then : false;\n }\n\n function notify() {\n for (var i = 0; i < this.chain.length; i++) {\n notifyIsolated(this, this.state === 1 ? this.chain[i].success : this.chain[i].failure, this.chain[i]);\n }\n\n this.chain.length = 0;\n } // NOTE: This is a separate function to isolate\n // the `try..catch` so that other code can be\n // optimized better\n\n\n function notifyIsolated(self, cb, chain) {\n var ret, _then;\n\n try {\n if (cb === false) {\n chain.reject(self.msg);\n } else {\n if (cb === true) {\n ret = self.msg;\n } else {\n ret = cb.call(void 0, self.msg);\n }\n\n if (ret === chain.promise) {\n chain.reject(TypeError(\"Promise-chain cycle\"));\n } else if (_then = isThenable(ret)) {\n _then.call(ret, chain.resolve, chain.reject);\n } else {\n chain.resolve(ret);\n }\n }\n } catch (err) {\n chain.reject(err);\n }\n }\n\n function resolve(msg) {\n var _then,\n self = this; // already triggered?\n\n\n if (self.triggered) {\n return;\n }\n\n self.triggered = true; // unwrap\n\n if (self.def) {\n self = self.def;\n }\n\n try {\n if (_then = isThenable(msg)) {\n schedule(function () {\n var def_wrapper = new MakeDefWrapper(self);\n\n try {\n _then.call(msg, function $resolve$() {\n resolve.apply(def_wrapper, arguments);\n }, function $reject$() {\n reject.apply(def_wrapper, arguments);\n });\n } catch (err) {\n reject.call(def_wrapper, err);\n }\n });\n } else {\n self.msg = msg;\n self.state = 1;\n\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n } catch (err) {\n reject.call(new MakeDefWrapper(self), err);\n }\n }\n\n function reject(msg) {\n var self = this; // already triggered?\n\n if (self.triggered) {\n return;\n }\n\n self.triggered = true; // unwrap\n\n if (self.def) {\n self = self.def;\n }\n\n self.msg = msg;\n self.state = 2;\n\n if (self.chain.length > 0) {\n schedule(notify, self);\n }\n }\n\n function iteratePromises(Constructor, arr, resolver, rejecter) {\n for (var idx = 0; idx < arr.length; idx++) {\n (function IIFE(idx) {\n Constructor.resolve(arr[idx]).then(function $resolver$(msg) {\n resolver(idx, msg);\n }, rejecter);\n })(idx);\n }\n }\n\n function MakeDefWrapper(self) {\n this.def = self;\n this.triggered = false;\n }\n\n function MakeDef(self) {\n this.promise = self;\n this.state = 0;\n this.triggered = false;\n this.chain = [];\n this.msg = void 0;\n }\n\n function Promise(executor) {\n if (typeof executor != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n if (this.__NPO__ !== 0) {\n throw TypeError(\"Not a promise\");\n } // instance shadowing the inherited \"brand\"\n // to signal an already \"initialized\" promise\n\n\n this.__NPO__ = 1;\n var def = new MakeDef(this);\n\n this[\"then\"] = function then(success, failure) {\n var o = {\n success: typeof success == \"function\" ? success : true,\n failure: typeof failure == \"function\" ? failure : false\n }; // Note: `then(..)` itself can be borrowed to be used against\n // a different promise constructor for making the chained promise,\n // by substituting a different `this` binding.\n\n o.promise = new this.constructor(function extractChain(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n o.resolve = resolve;\n o.reject = reject;\n });\n def.chain.push(o);\n\n if (def.state !== 0) {\n schedule(notify, def);\n }\n\n return o.promise;\n };\n\n this[\"catch\"] = function $catch$(failure) {\n return this.then(void 0, failure);\n };\n\n try {\n executor.call(void 0, function publicResolve(msg) {\n resolve.call(def, msg);\n }, function publicReject(msg) {\n reject.call(def, msg);\n });\n } catch (err) {\n reject.call(def, err);\n }\n }\n\n var PromisePrototype = builtInProp({}, \"constructor\", Promise,\n /*configurable=*/\n false); // Note: Android 4 cannot use `Object.defineProperty(..)` here\n\n Promise.prototype = PromisePrototype; // built-in \"brand\" to signal an \"uninitialized\" promise\n\n builtInProp(PromisePrototype, \"__NPO__\", 0,\n /*configurable=*/\n false);\n builtInProp(Promise, \"resolve\", function Promise$resolve(msg) {\n var Constructor = this; // spec mandated checks\n // note: best \"isPromise\" check that's practical for now\n\n if (msg && typeof msg == \"object\" && msg.__NPO__ === 1) {\n return msg;\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n resolve(msg);\n });\n });\n builtInProp(Promise, \"reject\", function Promise$reject(msg) {\n return new this(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n reject(msg);\n });\n });\n builtInProp(Promise, \"all\", function Promise$all(arr) {\n var Constructor = this; // spec mandated checks\n\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n\n if (arr.length === 0) {\n return Constructor.resolve([]);\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n var len = arr.length,\n msgs = Array(len),\n count = 0;\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n msgs[idx] = msg;\n\n if (++count === len) {\n resolve(msgs);\n }\n }, reject);\n });\n });\n builtInProp(Promise, \"race\", function Promise$race(arr) {\n var Constructor = this; // spec mandated checks\n\n if (ToString.call(arr) != \"[object Array]\") {\n return Constructor.reject(TypeError(\"Not an array\"));\n }\n\n return new Constructor(function executor(resolve, reject) {\n if (typeof resolve != \"function\" || typeof reject != \"function\") {\n throw TypeError(\"Not a function\");\n }\n\n iteratePromises(Constructor, arr, function resolver(idx, msg) {\n resolve(msg);\n }, reject);\n });\n });\n return Promise;\n});\n});\n\n/**\n * @module lib/callbacks\n */\nvar callbackMap = new WeakMap();\n/**\n * Store a callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @param {(function(this:Player, *): void|{resolve: function, reject: function})} callback\n * The callback to call or an object with resolve and reject functions for a promise.\n * @return {void}\n */\n\nfunction storeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!(name in playerCallbacks)) {\n playerCallbacks[name] = [];\n }\n\n playerCallbacks[name].push(callback);\n callbackMap.set(player.element, playerCallbacks);\n}\n/**\n * Get the callbacks for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @return {function[]}\n */\n\nfunction getCallbacks(player, name) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n return playerCallbacks[name] || [];\n}\n/**\n * Remove a stored callback for a method or event for a player.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name\n * @param {function} [callback] The specific callback to remove.\n * @return {boolean} Was this the last callback?\n */\n\nfunction removeCallback(player, name, callback) {\n var playerCallbacks = callbackMap.get(player.element) || {};\n\n if (!playerCallbacks[name]) {\n return true;\n } // If no callback is passed, remove all callbacks for the event\n\n\n if (!callback) {\n playerCallbacks[name] = [];\n callbackMap.set(player.element, playerCallbacks);\n return true;\n }\n\n var index = playerCallbacks[name].indexOf(callback);\n\n if (index !== -1) {\n playerCallbacks[name].splice(index, 1);\n }\n\n callbackMap.set(player.element, playerCallbacks);\n return playerCallbacks[name] && playerCallbacks[name].length === 0;\n}\n/**\n * Return the first stored callback for a player and event or method.\n *\n * @param {Player} player The player object.\n * @param {string} name The method or event name.\n * @return {function} The callback, or false if there were none\n */\n\nfunction shiftCallbacks(player, name) {\n var playerCallbacks = getCallbacks(player, name);\n\n if (playerCallbacks.length < 1) {\n return false;\n }\n\n var callback = playerCallbacks.shift();\n removeCallback(player, name, callback);\n return callback;\n}\n/**\n * Move callbacks associated with an element to another element.\n *\n * @param {HTMLElement} oldElement The old element.\n * @param {HTMLElement} newElement The new element.\n * @return {void}\n */\n\nfunction swapCallbacks(oldElement, newElement) {\n var playerCallbacks = callbackMap.get(oldElement);\n callbackMap.set(newElement, playerCallbacks);\n callbackMap.delete(oldElement);\n}\n\n/**\n * @module lib/postmessage\n */\n/**\n * Parse a message received from postMessage.\n *\n * @param {*} data The data received from postMessage.\n * @return {object}\n */\n\nfunction parseMessageData(data) {\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (error) {\n // If the message cannot be parsed, throw the error as a warning\n console.warn(error);\n return {};\n }\n }\n\n return data;\n}\n/**\n * Post a message to the specified target.\n *\n * @param {Player} player The player object to use.\n * @param {string} method The API method to call.\n * @param {object} params The parameters to send to the player.\n * @return {void}\n */\n\nfunction postMessage(player, method, params) {\n if (!player.element.contentWindow || !player.element.contentWindow.postMessage) {\n return;\n }\n\n var message = {\n method: method\n };\n\n if (params !== undefined) {\n message.value = params;\n } // IE 8 and 9 do not support passing messages, so stringify them\n\n\n var ieVersion = parseFloat(navigator.userAgent.toLowerCase().replace(/^.*msie (\\d+).*$/, '$1'));\n\n if (ieVersion >= 8 && ieVersion < 10) {\n message = JSON.stringify(message);\n }\n\n player.element.contentWindow.postMessage(message, player.origin);\n}\n/**\n * Parse the data received from a message event.\n *\n * @param {Player} player The player that received the message.\n * @param {(Object|string)} data The message data. Strings will be parsed into JSON.\n * @return {void}\n */\n\nfunction processData(player, data) {\n data = parseMessageData(data);\n var callbacks = [];\n var param;\n\n if (data.event) {\n if (data.event === 'error') {\n var promises = getCallbacks(player, data.data.method);\n promises.forEach(function (promise) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n promise.reject(error);\n removeCallback(player, data.data.method, promise);\n });\n }\n\n callbacks = getCallbacks(player, \"event:\".concat(data.event));\n param = data.data;\n } else if (data.method) {\n var callback = shiftCallbacks(player, data.method);\n\n if (callback) {\n callbacks.push(callback);\n param = data.value;\n }\n }\n\n callbacks.forEach(function (callback) {\n try {\n if (typeof callback === 'function') {\n callback.call(player, param);\n return;\n }\n\n callback.resolve(param);\n } catch (e) {// empty\n }\n });\n}\n\n/**\n * @module lib/embed\n */\nvar oEmbedParameters = ['autopause', 'autoplay', 'background', 'byline', 'color', 'controls', 'dnt', 'height', 'id', 'interactive_params', 'keyboard', 'loop', 'maxheight', 'maxwidth', 'muted', 'playsinline', 'portrait', 'responsive', 'speed', 'texttrack', 'title', 'transparent', 'url', 'width'];\n/**\n * Get the 'data-vimeo'-prefixed attributes from an element as an object.\n *\n * @param {HTMLElement} element The element.\n * @param {Object} [defaults={}] The default values to use.\n * @return {Object}\n */\n\nfunction getOEmbedParameters(element) {\n var defaults = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return oEmbedParameters.reduce(function (params, param) {\n var value = element.getAttribute(\"data-vimeo-\".concat(param));\n\n if (value || value === '') {\n params[param] = value === '' ? 1 : value;\n }\n\n return params;\n }, defaults);\n}\n/**\n * Create an embed from oEmbed data inside an element.\n *\n * @param {object} data The oEmbed data.\n * @param {HTMLElement} element The element to put the iframe in.\n * @return {HTMLIFrameElement} The iframe embed.\n */\n\nfunction createEmbed(_ref, element) {\n var html = _ref.html;\n\n if (!element) {\n throw new TypeError('An element must be provided');\n }\n\n if (element.getAttribute('data-vimeo-initialized') !== null) {\n return element.querySelector('iframe');\n }\n\n var div = document.createElement('div');\n div.innerHTML = html;\n element.appendChild(div.firstChild);\n element.setAttribute('data-vimeo-initialized', 'true');\n return element.querySelector('iframe');\n}\n/**\n * Make an oEmbed call for the specified URL.\n *\n * @param {string} videoUrl The vimeo.com url for the video.\n * @param {Object} [params] Parameters to pass to oEmbed.\n * @param {HTMLElement} element The element.\n * @return {Promise}\n */\n\nfunction getOEmbedData(videoUrl) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var element = arguments.length > 2 ? arguments[2] : undefined;\n return new Promise(function (resolve, reject) {\n if (!isVimeoUrl(videoUrl)) {\n throw new TypeError(\"\\u201C\".concat(videoUrl, \"\\u201D is not a vimeo.com url.\"));\n }\n\n var url = \"https://vimeo.com/api/oembed.json?url=\".concat(encodeURIComponent(videoUrl));\n\n for (var param in params) {\n if (params.hasOwnProperty(param)) {\n url += \"&\".concat(param, \"=\").concat(encodeURIComponent(params[param]));\n }\n }\n\n var xhr = 'XDomainRequest' in window ? new XDomainRequest() : new XMLHttpRequest();\n xhr.open('GET', url, true);\n\n xhr.onload = function () {\n if (xhr.status === 404) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D was not found.\")));\n return;\n }\n\n if (xhr.status === 403) {\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n\n try {\n var json = JSON.parse(xhr.responseText); // Check api response for 403 on oembed\n\n if (json.domain_status_code === 403) {\n // We still want to create the embed to give users visual feedback\n createEmbed(json, element);\n reject(new Error(\"\\u201C\".concat(videoUrl, \"\\u201D is not embeddable.\")));\n return;\n }\n\n resolve(json);\n } catch (error) {\n reject(error);\n }\n };\n\n xhr.onerror = function () {\n var status = xhr.status ? \" (\".concat(xhr.status, \")\") : '';\n reject(new Error(\"There was an error fetching the embed code from Vimeo\".concat(status, \".\")));\n };\n\n xhr.send();\n });\n}\n/**\n * Initialize all embeds within a specific element\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction initializeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n var elements = [].slice.call(parent.querySelectorAll('[data-vimeo-id], [data-vimeo-url]'));\n\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error creating an embed: \".concat(error));\n }\n };\n\n elements.forEach(function (element) {\n try {\n // Skip any that have data-vimeo-defer\n if (element.getAttribute('data-vimeo-defer') !== null) {\n return;\n }\n\n var params = getOEmbedParameters(element);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n return createEmbed(data, element);\n }).catch(handleError);\n } catch (error) {\n handleError(error);\n }\n });\n}\n/**\n * Resize embeds when messaged by the player.\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction resizeEmbeds() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoPlayerResizeEmbeds_) {\n return;\n }\n\n window.VimeoPlayerResizeEmbeds_ = true;\n\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n } // 'spacechange' is fired only on embeds with cards\n\n\n if (!event.data || event.data.event !== 'spacechange') {\n return;\n }\n\n var iframes = parent.querySelectorAll('iframe');\n\n for (var i = 0; i < iframes.length; i++) {\n if (iframes[i].contentWindow !== event.source) {\n continue;\n } // Change padding-bottom of the enclosing div to accommodate\n // card carousel without distorting aspect ratio\n\n\n var space = iframes[i].parentElement;\n space.style.paddingBottom = \"\".concat(event.data.data[0].bottom, \"px\");\n break;\n }\n };\n\n window.addEventListener('message', onMessage);\n}\n/**\n * Add chapters to existing metadata for Google SEO\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction initAppendVideoMetadata() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoSeoMetadataAppended) {\n return;\n }\n\n window.VimeoSeoMetadataAppended = true;\n\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n\n var data = parseMessageData(event.data);\n\n if (!data || data.event !== 'ready') {\n return;\n }\n\n var iframes = parent.querySelectorAll('iframe');\n\n for (var i = 0; i < iframes.length; i++) {\n var iframe = iframes[i]; // Initiate appendVideoMetadata if iframe is a Vimeo embed\n\n var isValidMessageSource = iframe.contentWindow === event.source;\n\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n var player = new Player(iframe);\n player.callMethod('appendVideoMetadata', window.location.href);\n }\n }\n };\n\n window.addEventListener('message', onMessage);\n}\n/**\n * Seek to time indicated by vimeo_t query parameter if present in URL\n *\n * @param {HTMLElement} [parent=document] The parent element.\n * @return {void}\n */\n\nfunction checkUrlTimeParam() {\n var parent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n\n // Prevent execution if users include the player.js script multiple times.\n if (window.VimeoCheckedUrlTimeParam) {\n return;\n }\n\n window.VimeoCheckedUrlTimeParam = true;\n\n var handleError = function handleError(error) {\n if ('console' in window && console.error) {\n console.error(\"There was an error getting video Id: \".concat(error));\n }\n };\n\n var onMessage = function onMessage(event) {\n if (!isVimeoUrl(event.origin)) {\n return;\n }\n\n var data = parseMessageData(event.data);\n\n if (!data || data.event !== 'ready') {\n return;\n }\n\n var iframes = parent.querySelectorAll('iframe');\n\n for (var i = 0; i < iframes.length; i++) {\n var iframe = iframes[i];\n var isValidMessageSource = iframe.contentWindow === event.source;\n\n if (isVimeoEmbed(iframe.src) && isValidMessageSource) {\n (function () {\n var player = new Player(iframe);\n player.getVideoId().then(function (videoId) {\n var matches = new RegExp(\"[?&]vimeo_t_\".concat(videoId, \"=([^&#]*)\")).exec(window.location.href);\n\n if (matches && matches[1]) {\n var sec = decodeURI(matches[1]);\n player.setCurrentTime(sec);\n }\n\n return;\n }).catch(handleError);\n })();\n }\n }\n };\n\n window.addEventListener('message', onMessage);\n}\n\n/* MIT License\n\nCopyright (c) Sindre Sorhus (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nTerms */\nfunction initializeScreenfull() {\n var fn = function () {\n var val;\n var fnMap = [['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'], // New WebKit\n ['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'], // Old WebKit\n ['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'], ['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'], ['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n var i = 0;\n var l = fnMap.length;\n var ret = {};\n\n for (; i < l; i++) {\n val = fnMap[i];\n\n if (val && val[1] in document) {\n for (i = 0; i < val.length; i++) {\n ret[fnMap[0][i]] = val[i];\n }\n\n return ret;\n }\n }\n\n return false;\n }();\n\n var eventNameMap = {\n fullscreenchange: fn.fullscreenchange,\n fullscreenerror: fn.fullscreenerror\n };\n var screenfull = {\n request: function request(element) {\n return new Promise(function (resolve, reject) {\n var onFullScreenEntered = function onFullScreenEntered() {\n screenfull.off('fullscreenchange', onFullScreenEntered);\n resolve();\n };\n\n screenfull.on('fullscreenchange', onFullScreenEntered);\n element = element || document.documentElement;\n var returnPromise = element[fn.requestFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenEntered).catch(reject);\n }\n });\n },\n exit: function exit() {\n return new Promise(function (resolve, reject) {\n if (!screenfull.isFullscreen) {\n resolve();\n return;\n }\n\n var onFullScreenExit = function onFullScreenExit() {\n screenfull.off('fullscreenchange', onFullScreenExit);\n resolve();\n };\n\n screenfull.on('fullscreenchange', onFullScreenExit);\n var returnPromise = document[fn.exitFullscreen]();\n\n if (returnPromise instanceof Promise) {\n returnPromise.then(onFullScreenExit).catch(reject);\n }\n });\n },\n on: function on(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.addEventListener(eventName, callback);\n }\n },\n off: function off(event, callback) {\n var eventName = eventNameMap[event];\n\n if (eventName) {\n document.removeEventListener(eventName, callback);\n }\n }\n };\n Object.defineProperties(screenfull, {\n isFullscreen: {\n get: function get() {\n return Boolean(document[fn.fullscreenElement]);\n }\n },\n element: {\n enumerable: true,\n get: function get() {\n return document[fn.fullscreenElement];\n }\n },\n isEnabled: {\n enumerable: true,\n get: function get() {\n // Coerce to boolean in case of old WebKit\n return Boolean(document[fn.fullscreenEnabled]);\n }\n }\n });\n return screenfull;\n}\n\nvar playerMap = new WeakMap();\nvar readyMap = new WeakMap();\nvar screenfull = {};\n\nvar Player = /*#__PURE__*/function () {\n /**\n * Create a Player.\n *\n * @param {(HTMLIFrameElement|HTMLElement|string|jQuery)} element A reference to the Vimeo\n * player iframe, and id, or a jQuery object.\n * @param {object} [options] oEmbed parameters to use when creating an embed in the element.\n * @return {Player}\n */\n function Player(element) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Player);\n\n /* global jQuery */\n if (window.jQuery && element instanceof jQuery) {\n if (element.length > 1 && window.console && console.warn) {\n console.warn('A jQuery object with multiple elements was passed, using the first element.');\n }\n\n element = element[0];\n } // Find an element by ID\n\n\n if (typeof document !== 'undefined' && typeof element === 'string') {\n element = document.getElementById(element);\n } // Not an element!\n\n\n if (!isDomElement(element)) {\n throw new TypeError('You must pass either a valid element or a valid id.');\n } // Already initialized an embed in this div, so grab the iframe\n\n\n if (element.nodeName !== 'IFRAME') {\n var iframe = element.querySelector('iframe');\n\n if (iframe) {\n element = iframe;\n }\n } // iframe url is not a Vimeo url\n\n\n if (element.nodeName === 'IFRAME' && !isVimeoUrl(element.getAttribute('src') || '')) {\n throw new Error('The player element passed isn’t a Vimeo embed.');\n } // If there is already a player object in the map, return that\n\n\n if (playerMap.has(element)) {\n return playerMap.get(element);\n }\n\n this._window = element.ownerDocument.defaultView;\n this.element = element;\n this.origin = '*';\n var readyPromise = new npo_src(function (resolve, reject) {\n _this._onMessage = function (event) {\n if (!isVimeoUrl(event.origin) || _this.element.contentWindow !== event.source) {\n return;\n }\n\n if (_this.origin === '*') {\n _this.origin = event.origin;\n }\n\n var data = parseMessageData(event.data);\n var isError = data && data.event === 'error';\n var isReadyError = isError && data.data && data.data.method === 'ready';\n\n if (isReadyError) {\n var error = new Error(data.data.message);\n error.name = data.data.name;\n reject(error);\n return;\n }\n\n var isReadyEvent = data && data.event === 'ready';\n var isPingResponse = data && data.method === 'ping';\n\n if (isReadyEvent || isPingResponse) {\n _this.element.setAttribute('data-ready', 'true');\n\n resolve();\n return;\n }\n\n processData(_this, data);\n };\n\n _this._window.addEventListener('message', _this._onMessage);\n\n if (_this.element.nodeName !== 'IFRAME') {\n var params = getOEmbedParameters(element, options);\n var url = getVimeoUrl(params);\n getOEmbedData(url, params, element).then(function (data) {\n var iframe = createEmbed(data, element); // Overwrite element with the new iframe,\n // but store reference to the original element\n\n _this.element = iframe;\n _this._originalElement = element;\n swapCallbacks(element, iframe);\n playerMap.set(_this.element, _this);\n return data;\n }).catch(reject);\n }\n }); // Store a copy of this Player in the map\n\n readyMap.set(this, readyPromise);\n playerMap.set(this.element, this); // Send a ping to the iframe so the ready promise will be resolved if\n // the player is already ready.\n\n if (this.element.nodeName === 'IFRAME') {\n postMessage(this, 'ping');\n }\n\n if (screenfull.isEnabled) {\n var exitFullscreen = function exitFullscreen() {\n return screenfull.exit();\n };\n\n this.fullscreenchangeHandler = function () {\n if (screenfull.isFullscreen) {\n storeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n } else {\n removeCallback(_this, 'event:exitFullscreen', exitFullscreen);\n } // eslint-disable-next-line\n\n\n _this.ready().then(function () {\n postMessage(_this, 'fullscreenchange', screenfull.isFullscreen);\n });\n };\n\n screenfull.on('fullscreenchange', this.fullscreenchangeHandler);\n }\n\n return this;\n }\n /**\n * Get a promise for a method.\n *\n * @param {string} name The API method to call.\n * @param {Object} [args={}] Arguments to send via postMessage.\n * @return {Promise}\n */\n\n\n _createClass(Player, [{\n key: \"callMethod\",\n value: function callMethod(name) {\n var _this2 = this;\n\n var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return new npo_src(function (resolve, reject) {\n // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n return _this2.ready().then(function () {\n storeCallback(_this2, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this2, name, args);\n }).catch(reject);\n });\n }\n /**\n * Get a promise for the value of a player property.\n *\n * @param {string} name The property name\n * @return {Promise}\n */\n\n }, {\n key: \"get\",\n value: function get(name) {\n var _this3 = this;\n\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'get'); // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n\n return _this3.ready().then(function () {\n storeCallback(_this3, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this3, name);\n }).catch(reject);\n });\n }\n /**\n * Get a promise for setting the value of a player property.\n *\n * @param {string} name The API method to call.\n * @param {mixed} value The value to set.\n * @return {Promise}\n */\n\n }, {\n key: \"set\",\n value: function set(name, value) {\n var _this4 = this;\n\n return new npo_src(function (resolve, reject) {\n name = getMethodName(name, 'set');\n\n if (value === undefined || value === null) {\n throw new TypeError('There must be a value to set.');\n } // We are storing the resolve/reject handlers to call later, so we\n // can’t return here.\n // eslint-disable-next-line promise/always-return\n\n\n return _this4.ready().then(function () {\n storeCallback(_this4, name, {\n resolve: resolve,\n reject: reject\n });\n postMessage(_this4, name, value);\n }).catch(reject);\n });\n }\n /**\n * Add an event listener for the specified event. Will call the\n * callback with a single parameter, `data`, that contains the data for\n * that event.\n *\n * @param {string} eventName The name of the event.\n * @param {function(*)} callback The function to call when the event fires.\n * @return {void}\n */\n\n }, {\n key: \"on\",\n value: function on(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (!callback) {\n throw new TypeError('You must pass a callback function.');\n }\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var callbacks = getCallbacks(this, \"event:\".concat(eventName));\n\n if (callbacks.length === 0) {\n this.callMethod('addEventListener', eventName).catch(function () {// Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n\n storeCallback(this, \"event:\".concat(eventName), callback);\n }\n /**\n * Remove an event listener for the specified event. Will remove all\n * listeners for that event if a `callback` isn’t passed, or only that\n * specific callback if it is passed.\n *\n * @param {string} eventName The name of the event.\n * @param {function} [callback] The specific callback to remove.\n * @return {void}\n */\n\n }, {\n key: \"off\",\n value: function off(eventName, callback) {\n if (!eventName) {\n throw new TypeError('You must pass an event name.');\n }\n\n if (callback && typeof callback !== 'function') {\n throw new TypeError('The callback must be a function.');\n }\n\n var lastCallback = removeCallback(this, \"event:\".concat(eventName), callback); // If there are no callbacks left, remove the listener\n\n if (lastCallback) {\n this.callMethod('removeEventListener', eventName).catch(function (e) {// Ignore the error. There will be an error event fired that\n // will trigger the error callback if they are listening.\n });\n }\n }\n /**\n * A promise to load a new video.\n *\n * @promise LoadVideoPromise\n * @fulfill {number} The video with this id or url successfully loaded.\n * @reject {TypeError} The id was not a number.\n */\n\n /**\n * Load a new video into this embed. The promise will be resolved if\n * the video is successfully loaded, or it will be rejected if it could\n * not be loaded.\n *\n * @param {number|string|object} options The id of the video, the url of the video, or an object with embed options.\n * @return {LoadVideoPromise}\n */\n\n }, {\n key: \"loadVideo\",\n value: function loadVideo(options) {\n return this.callMethod('loadVideo', options);\n }\n /**\n * A promise to perform an action when the Player is ready.\n *\n * @todo document errors\n * @promise LoadVideoPromise\n * @fulfill {void}\n */\n\n /**\n * Trigger a function when the player iframe has initialized. You do not\n * need to wait for `ready` to trigger to begin adding event listeners\n * or calling other methods.\n *\n * @return {ReadyPromise}\n */\n\n }, {\n key: \"ready\",\n value: function ready() {\n var readyPromise = readyMap.get(this) || new npo_src(function (resolve, reject) {\n reject(new Error('Unknown player. Probably unloaded.'));\n });\n return npo_src.resolve(readyPromise);\n }\n /**\n * A promise to add a cue point to the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point to use for removeCuePoint.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Add a cue point to the player.\n *\n * @param {number} time The time for the cue point.\n * @param {object} [data] Arbitrary data to be returned with the cue point.\n * @return {AddCuePointPromise}\n */\n\n }, {\n key: \"addCuePoint\",\n value: function addCuePoint(time) {\n var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return this.callMethod('addCuePoint', {\n time: time,\n data: data\n });\n }\n /**\n * A promise to remove a cue point from the player.\n *\n * @promise AddCuePointPromise\n * @fulfill {string} The id of the cue point that was removed.\n * @reject {InvalidCuePoint} The cue point with the specified id was not\n * found.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Remove a cue point from the video.\n *\n * @param {string} id The id of the cue point to remove.\n * @return {RemoveCuePointPromise}\n */\n\n }, {\n key: \"removeCuePoint\",\n value: function removeCuePoint(id) {\n return this.callMethod('removeCuePoint', id);\n }\n /**\n * A representation of a text track on a video.\n *\n * @typedef {Object} VimeoTextTrack\n * @property {string} language The ISO language code.\n * @property {string} kind The kind of track it is (captions or subtitles).\n * @property {string} label The human‐readable label for the track.\n */\n\n /**\n * A promise to enable a text track.\n *\n * @promise EnableTextTrackPromise\n * @fulfill {VimeoTextTrack} The text track that was enabled.\n * @reject {InvalidTrackLanguageError} No track was available with the\n * specified language.\n * @reject {InvalidTrackError} No track was available with the specified\n * language and kind.\n */\n\n /**\n * Enable the text track with the specified language, and optionally the\n * specified kind (captions or subtitles).\n *\n * When set via the API, the track language will not change the viewer’s\n * stored preference.\n *\n * @param {string} language The two‐letter language code.\n * @param {string} [kind] The kind of track to enable (captions or subtitles).\n * @return {EnableTextTrackPromise}\n */\n\n }, {\n key: \"enableTextTrack\",\n value: function enableTextTrack(language, kind) {\n if (!language) {\n throw new TypeError('You must pass a language.');\n }\n\n return this.callMethod('enableTextTrack', {\n language: language,\n kind: kind\n });\n }\n /**\n * A promise to disable the active text track.\n *\n * @promise DisableTextTrackPromise\n * @fulfill {void} The track was disabled.\n */\n\n /**\n * Disable the currently-active text track.\n *\n * @return {DisableTextTrackPromise}\n */\n\n }, {\n key: \"disableTextTrack\",\n value: function disableTextTrack() {\n return this.callMethod('disableTextTrack');\n }\n /**\n * A promise to pause the video.\n *\n * @promise PausePromise\n * @fulfill {void} The video was paused.\n */\n\n /**\n * Pause the video if it’s playing.\n *\n * @return {PausePromise}\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n return this.callMethod('pause');\n }\n /**\n * A promise to play the video.\n *\n * @promise PlayPromise\n * @fulfill {void} The video was played.\n */\n\n /**\n * Play the video if it’s paused. **Note:** on iOS and some other\n * mobile devices, you cannot programmatically trigger play. Once the\n * viewer has tapped on the play button in the player, however, you\n * will be able to use this function.\n *\n * @return {PlayPromise}\n */\n\n }, {\n key: \"play\",\n value: function play() {\n return this.callMethod('play');\n }\n /**\n * Request that the player enters fullscreen.\n * @return {Promise}\n */\n\n }, {\n key: \"requestFullscreen\",\n value: function requestFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.request(this.element);\n }\n\n return this.callMethod('requestFullscreen');\n }\n /**\n * Request that the player exits fullscreen.\n * @return {Promise}\n */\n\n }, {\n key: \"exitFullscreen\",\n value: function exitFullscreen() {\n if (screenfull.isEnabled) {\n return screenfull.exit();\n }\n\n return this.callMethod('exitFullscreen');\n }\n /**\n * Returns true if the player is currently fullscreen.\n * @return {Promise}\n */\n\n }, {\n key: \"getFullscreen\",\n value: function getFullscreen() {\n if (screenfull.isEnabled) {\n return npo_src.resolve(screenfull.isFullscreen);\n }\n\n return this.get('fullscreen');\n }\n /**\n * Request that the player enters picture-in-picture.\n * @return {Promise}\n */\n\n }, {\n key: \"requestPictureInPicture\",\n value: function requestPictureInPicture() {\n return this.callMethod('requestPictureInPicture');\n }\n /**\n * Request that the player exits picture-in-picture.\n * @return {Promise}\n */\n\n }, {\n key: \"exitPictureInPicture\",\n value: function exitPictureInPicture() {\n return this.callMethod('exitPictureInPicture');\n }\n /**\n * Returns true if the player is currently picture-in-picture.\n * @return {Promise}\n */\n\n }, {\n key: \"getPictureInPicture\",\n value: function getPictureInPicture() {\n return this.get('pictureInPicture');\n }\n /**\n * A promise to unload the video.\n *\n * @promise UnloadPromise\n * @fulfill {void} The video was unloaded.\n */\n\n /**\n * Return the player to its initial state.\n *\n * @return {UnloadPromise}\n */\n\n }, {\n key: \"unload\",\n value: function unload() {\n return this.callMethod('unload');\n }\n /**\n * Cleanup the player and remove it from the DOM\n *\n * It won't be usable and a new one should be constructed\n * in order to do any operations.\n *\n * @return {Promise}\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this5 = this;\n\n return new npo_src(function (resolve) {\n readyMap.delete(_this5);\n playerMap.delete(_this5.element);\n\n if (_this5._originalElement) {\n playerMap.delete(_this5._originalElement);\n\n _this5._originalElement.removeAttribute('data-vimeo-initialized');\n }\n\n if (_this5.element && _this5.element.nodeName === 'IFRAME' && _this5.element.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (_this5.element.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== _this5.element.parentNode) {\n _this5.element.parentNode.parentNode.removeChild(_this5.element.parentNode);\n } else {\n _this5.element.parentNode.removeChild(_this5.element);\n }\n } // If the clip is private there is a case where the element stays the\n // div element. Destroy should reset the div and remove the iframe child.\n\n\n if (_this5.element && _this5.element.nodeName === 'DIV' && _this5.element.parentNode) {\n _this5.element.removeAttribute('data-vimeo-initialized');\n\n var iframe = _this5.element.querySelector('iframe');\n\n if (iframe && iframe.parentNode) {\n // If we've added an additional wrapper div, remove that from the DOM.\n // If not, just remove the iframe element.\n if (iframe.parentNode.parentNode && _this5._originalElement && _this5._originalElement !== iframe.parentNode) {\n iframe.parentNode.parentNode.removeChild(iframe.parentNode);\n } else {\n iframe.parentNode.removeChild(iframe);\n }\n }\n }\n\n _this5._window.removeEventListener('message', _this5._onMessage);\n\n if (screenfull.isEnabled) {\n screenfull.off('fullscreenchange', _this5.fullscreenchangeHandler);\n }\n\n resolve();\n });\n }\n /**\n * A promise to get the autopause behavior of the video.\n *\n * @promise GetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n\n /**\n * Get the autopause behavior for this player.\n *\n * @return {GetAutopausePromise}\n */\n\n }, {\n key: \"getAutopause\",\n value: function getAutopause() {\n return this.get('autopause');\n }\n /**\n * A promise to set the autopause behavior of the video.\n *\n * @promise SetAutopausePromise\n * @fulfill {boolean} Whether autopause is turned on or off.\n * @reject {UnsupportedError} Autopause is not supported with the current\n * player or browser.\n */\n\n /**\n * Enable or disable the autopause behavior of this player.\n *\n * By default, when another video is played in the same browser, this\n * player will automatically pause. Unless you have a specific reason\n * for doing so, we recommend that you leave autopause set to the\n * default (`true`).\n *\n * @param {boolean} autopause\n * @return {SetAutopausePromise}\n */\n\n }, {\n key: \"setAutopause\",\n value: function setAutopause(autopause) {\n return this.set('autopause', autopause);\n }\n /**\n * A promise to get the buffered property of the video.\n *\n * @promise GetBufferedPromise\n * @fulfill {Array} Buffered Timeranges converted to an Array.\n */\n\n /**\n * Get the buffered property of the video.\n *\n * @return {GetBufferedPromise}\n */\n\n }, {\n key: \"getBuffered\",\n value: function getBuffered() {\n return this.get('buffered');\n }\n /**\n * @typedef {Object} CameraProperties\n * @prop {number} props.yaw - Number between 0 and 360.\n * @prop {number} props.pitch - Number between -90 and 90.\n * @prop {number} props.roll - Number between -180 and 180.\n * @prop {number} props.fov - The field of view in degrees.\n */\n\n /**\n * A promise to get the camera properties of the player.\n *\n * @promise GetCameraPromise\n * @fulfill {CameraProperties} The camera properties.\n */\n\n /**\n * For 360° videos get the camera properties for this player.\n *\n * @return {GetCameraPromise}\n */\n\n }, {\n key: \"getCameraProps\",\n value: function getCameraProps() {\n return this.get('cameraProps');\n }\n /**\n * A promise to set the camera properties of the player.\n *\n * @promise SetCameraPromise\n * @fulfill {Object} The camera was successfully set.\n * @reject {RangeError} The range was out of bounds.\n */\n\n /**\n * For 360° videos set the camera properties for this player.\n *\n * @param {CameraProperties} camera The camera properties\n * @return {SetCameraPromise}\n */\n\n }, {\n key: \"setCameraProps\",\n value: function setCameraProps(camera) {\n return this.set('cameraProps', camera);\n }\n /**\n * A representation of a chapter.\n *\n * @typedef {Object} VimeoChapter\n * @property {number} startTime The start time of the chapter.\n * @property {object} title The title of the chapter.\n * @property {number} index The place in the order of Chapters. Starts at 1.\n */\n\n /**\n * A promise to get chapters for the video.\n *\n * @promise GetChaptersPromise\n * @fulfill {VimeoChapter[]} The chapters for the video.\n */\n\n /**\n * Get an array of all the chapters for the video.\n *\n * @return {GetChaptersPromise}\n */\n\n }, {\n key: \"getChapters\",\n value: function getChapters() {\n return this.get('chapters');\n }\n /**\n * A promise to get the currently active chapter.\n *\n * @promise GetCurrentChaptersPromise\n * @fulfill {VimeoChapter|undefined} The current chapter for the video.\n */\n\n /**\n * Get the currently active chapter for the video.\n *\n * @return {GetCurrentChaptersPromise}\n */\n\n }, {\n key: \"getCurrentChapter\",\n value: function getCurrentChapter() {\n return this.get('currentChapter');\n }\n /**\n * A promise to get the color of the player.\n *\n * @promise GetColorPromise\n * @fulfill {string} The hex color of the player.\n */\n\n /**\n * Get the color for this player.\n *\n * @return {GetColorPromise}\n */\n\n }, {\n key: \"getColor\",\n value: function getColor() {\n return this.get('color');\n }\n /**\n * A promise to set the color of the player.\n *\n * @promise SetColorPromise\n * @fulfill {string} The color was successfully set.\n * @reject {TypeError} The string was not a valid hex or rgb color.\n * @reject {ContrastError} The color was set, but the contrast is\n * outside of the acceptable range.\n * @reject {EmbedSettingsError} The owner of the player has chosen to\n * use a specific color.\n */\n\n /**\n * Set the color of this player to a hex or rgb string. Setting the\n * color may fail if the owner of the video has set their embed\n * preferences to force a specific color.\n *\n * @param {string} color The hex or rgb color string to set.\n * @return {SetColorPromise}\n */\n\n }, {\n key: \"setColor\",\n value: function setColor(color) {\n return this.set('color', color);\n }\n /**\n * A representation of a cue point.\n *\n * @typedef {Object} VimeoCuePoint\n * @property {number} time The time of the cue point.\n * @property {object} data The data passed when adding the cue point.\n * @property {string} id The unique id for use with removeCuePoint.\n */\n\n /**\n * A promise to get the cue points of a video.\n *\n * @promise GetCuePointsPromise\n * @fulfill {VimeoCuePoint[]} The cue points added to the video.\n * @reject {UnsupportedError} Cue points are not supported with the current\n * player or browser.\n */\n\n /**\n * Get an array of the cue points added to the video.\n *\n * @return {GetCuePointsPromise}\n */\n\n }, {\n key: \"getCuePoints\",\n value: function getCuePoints() {\n return this.get('cuePoints');\n }\n /**\n * A promise to get the current time of the video.\n *\n * @promise GetCurrentTimePromise\n * @fulfill {number} The current time in seconds.\n */\n\n /**\n * Get the current playback position in seconds.\n *\n * @return {GetCurrentTimePromise}\n */\n\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.get('currentTime');\n }\n /**\n * A promise to set the current time of the video.\n *\n * @promise SetCurrentTimePromise\n * @fulfill {number} The actual current time that was set.\n * @reject {RangeError} the time was less than 0 or greater than the\n * video’s duration.\n */\n\n /**\n * Set the current playback position in seconds. If the player was\n * paused, it will remain paused. Likewise, if the player was playing,\n * it will resume playing once the video has buffered.\n *\n * You can provide an accurate time and the player will attempt to seek\n * to as close to that time as possible. The exact time will be the\n * fulfilled value of the promise.\n *\n * @param {number} currentTime\n * @return {SetCurrentTimePromise}\n */\n\n }, {\n key: \"setCurrentTime\",\n value: function setCurrentTime(currentTime) {\n return this.set('currentTime', currentTime);\n }\n /**\n * A promise to get the duration of the video.\n *\n * @promise GetDurationPromise\n * @fulfill {number} The duration in seconds.\n */\n\n /**\n * Get the duration of the video in seconds. It will be rounded to the\n * nearest second before playback begins, and to the nearest thousandth\n * of a second after playback begins.\n *\n * @return {GetDurationPromise}\n */\n\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.get('duration');\n }\n /**\n * A promise to get the ended state of the video.\n *\n * @promise GetEndedPromise\n * @fulfill {boolean} Whether or not the video has ended.\n */\n\n /**\n * Get the ended state of the video. The video has ended if\n * `currentTime === duration`.\n *\n * @return {GetEndedPromise}\n */\n\n }, {\n key: \"getEnded\",\n value: function getEnded() {\n return this.get('ended');\n }\n /**\n * A promise to get the loop state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the player is set to loop.\n */\n\n /**\n * Get the loop state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: \"getLoop\",\n value: function getLoop() {\n return this.get('loop');\n }\n /**\n * A promise to set the loop state of the player.\n *\n * @promise SetLoopPromise\n * @fulfill {boolean} The loop state that was set.\n */\n\n /**\n * Set the loop state of the player. When set to `true`, the player\n * will start over immediately once playback ends.\n *\n * @param {boolean} loop\n * @return {SetLoopPromise}\n */\n\n }, {\n key: \"setLoop\",\n value: function setLoop(loop) {\n return this.set('loop', loop);\n }\n /**\n * A promise to set the muted state of the player.\n *\n * @promise SetMutedPromise\n * @fulfill {boolean} The muted state that was set.\n */\n\n /**\n * Set the muted state of the player. When set to `true`, the player\n * volume will be muted.\n *\n * @param {boolean} muted\n * @return {SetMutedPromise}\n */\n\n }, {\n key: \"setMuted\",\n value: function setMuted(muted) {\n return this.set('muted', muted);\n }\n /**\n * A promise to get the muted state of the player.\n *\n * @promise GetMutedPromise\n * @fulfill {boolean} Whether or not the player is muted.\n */\n\n /**\n * Get the muted state of the player.\n *\n * @return {GetMutedPromise}\n */\n\n }, {\n key: \"getMuted\",\n value: function getMuted() {\n return this.get('muted');\n }\n /**\n * A promise to get the paused state of the player.\n *\n * @promise GetLoopPromise\n * @fulfill {boolean} Whether or not the video is paused.\n */\n\n /**\n * Get the paused state of the player.\n *\n * @return {GetLoopPromise}\n */\n\n }, {\n key: \"getPaused\",\n value: function getPaused() {\n return this.get('paused');\n }\n /**\n * A promise to get the playback rate of the player.\n *\n * @promise GetPlaybackRatePromise\n * @fulfill {number} The playback rate of the player on a scale from 0.5 to 2.\n */\n\n /**\n * Get the playback rate of the player on a scale from `0.5` to `2`.\n *\n * @return {GetPlaybackRatePromise}\n */\n\n }, {\n key: \"getPlaybackRate\",\n value: function getPlaybackRate() {\n return this.get('playbackRate');\n }\n /**\n * A promise to set the playbackrate of the player.\n *\n * @promise SetPlaybackRatePromise\n * @fulfill {number} The playback rate was set.\n * @reject {RangeError} The playback rate was less than 0.5 or greater than 2.\n */\n\n /**\n * Set the playback rate of the player on a scale from `0.5` to `2`. When set\n * via the API, the playback rate will not be synchronized to other\n * players or stored as the viewer's preference.\n *\n * @param {number} playbackRate\n * @return {SetPlaybackRatePromise}\n */\n\n }, {\n key: \"setPlaybackRate\",\n value: function setPlaybackRate(playbackRate) {\n return this.set('playbackRate', playbackRate);\n }\n /**\n * A promise to get the played property of the video.\n *\n * @promise GetPlayedPromise\n * @fulfill {Array} Played Timeranges converted to an Array.\n */\n\n /**\n * Get the played property of the video.\n *\n * @return {GetPlayedPromise}\n */\n\n }, {\n key: \"getPlayed\",\n value: function getPlayed() {\n return this.get('played');\n }\n /**\n * A promise to get the qualities available of the current video.\n *\n * @promise GetQualitiesPromise\n * @fulfill {Array} The qualities of the video.\n */\n\n /**\n * Get the qualities of the current video.\n *\n * @return {GetQualitiesPromise}\n */\n\n }, {\n key: \"getQualities\",\n value: function getQualities() {\n return this.get('qualities');\n }\n /**\n * A promise to get the current set quality of the video.\n *\n * @promise GetQualityPromise\n * @fulfill {string} The current set quality.\n */\n\n /**\n * Get the current set quality of the video.\n *\n * @return {GetQualityPromise}\n */\n\n }, {\n key: \"getQuality\",\n value: function getQuality() {\n return this.get('quality');\n }\n /**\n * A promise to set the video quality.\n *\n * @promise SetQualityPromise\n * @fulfill {number} The quality was set.\n * @reject {RangeError} The quality is not available.\n */\n\n /**\n * Set a video quality.\n *\n * @param {string} quality\n * @return {SetQualityPromise}\n */\n\n }, {\n key: \"setQuality\",\n value: function setQuality(quality) {\n return this.set('quality', quality);\n }\n /**\n * A promise to get the seekable property of the video.\n *\n * @promise GetSeekablePromise\n * @fulfill {Array} Seekable Timeranges converted to an Array.\n */\n\n /**\n * Get the seekable property of the video.\n *\n * @return {GetSeekablePromise}\n */\n\n }, {\n key: \"getSeekable\",\n value: function getSeekable() {\n return this.get('seekable');\n }\n /**\n * A promise to get the seeking property of the player.\n *\n * @promise GetSeekingPromise\n * @fulfill {boolean} Whether or not the player is currently seeking.\n */\n\n /**\n * Get if the player is currently seeking.\n *\n * @return {GetSeekingPromise}\n */\n\n }, {\n key: \"getSeeking\",\n value: function getSeeking() {\n return this.get('seeking');\n }\n /**\n * A promise to get the text tracks of a video.\n *\n * @promise GetTextTracksPromise\n * @fulfill {VimeoTextTrack[]} The text tracks associated with the video.\n */\n\n /**\n * Get an array of the text tracks that exist for the video.\n *\n * @return {GetTextTracksPromise}\n */\n\n }, {\n key: \"getTextTracks\",\n value: function getTextTracks() {\n return this.get('textTracks');\n }\n /**\n * A promise to get the embed code for the video.\n *\n * @promise GetVideoEmbedCodePromise\n * @fulfill {string} The `