{"version":3,"sources":["../node_modules/react/jsx-runtime.js","../node_modules/react/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../../src/index.ts","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react-dnd/dist/esm/hooks/useDragDropManager.js","../node_modules/react-dnd/dist/esm/hooks/useIsomorphicLayoutEffect.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_global.js","../node_modules/core-js/library/modules/_descriptors.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_wks.js","../node_modules/prop-types/index.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/react-dnd/dist/esm/internals/isRef.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_object-pie.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/react-dom/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/react-dnd/dist/esm/hooks/useCollector.js","../node_modules/react-dnd/dist/esm/hooks/useOptionalFactory.js","../node_modules/react-dnd/dist/esm/internals/wrapConnectorHooks.js","../node_modules/react-dnd/dist/esm/hooks/useMonitorOutput.js","../node_modules/react-dnd/dist/esm/hooks/useCollectedProps.js","../node_modules/object-assign/index.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_object-gops.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/_wks-ext.js","../node_modules/core-js/library/modules/_wks-define.js","../node_modules/react-dnd/dist/esm/core/DndContext.js","../node_modules/@react-dnd/asap/dist/esm/browser/raw.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/babel-runtime/helpers/typeof.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_object-gopn.js","../node_modules/core-js/library/modules/_object-gopd.js","../node_modules/webpack/buildin/global.js","../node_modules/react-lottie/dist/index.js","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd-touch-backend/dist/esm/interfaces.js","../node_modules/react-dnd-touch-backend/dist/esm/utils/predicates.js","../node_modules/react-dnd-touch-backend/dist/esm/utils/offsets.js","../node_modules/react-dnd-touch-backend/dist/esm/utils/supportsPassive.js","../node_modules/react-dnd-touch-backend/dist/esm/OptionsReader.js","../node_modules/react-dnd-touch-backend/dist/esm/TouchBackendImpl.js","../node_modules/react-dnd-touch-backend/dist/esm/utils/math.js","../node_modules/react-dnd-touch-backend/dist/esm/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/babel-runtime/helpers/extends.js","../node_modules/babel-runtime/core-js/object/assign.js","../node_modules/core-js/library/fn/object/assign.js","../node_modules/core-js/library/modules/es6.object.assign.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_object-assign.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/babel-runtime/core-js/object/get-prototype-of.js","../node_modules/core-js/library/fn/object/get-prototype-of.js","../node_modules/core-js/library/modules/es6.object.get-prototype-of.js","../node_modules/core-js/library/modules/_object-sap.js","../node_modules/babel-runtime/helpers/classCallCheck.js","../node_modules/babel-runtime/helpers/createClass.js","../node_modules/babel-runtime/core-js/object/define-property.js","../node_modules/core-js/library/fn/object/define-property.js","../node_modules/core-js/library/modules/es6.object.define-property.js","../node_modules/babel-runtime/helpers/possibleConstructorReturn.js","../node_modules/babel-runtime/core-js/symbol/iterator.js","../node_modules/core-js/library/fn/symbol/iterator.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/babel-runtime/core-js/symbol.js","../node_modules/core-js/library/fn/symbol/index.js","../node_modules/core-js/library/modules/es6.symbol.js","../node_modules/core-js/library/modules/_meta.js","../node_modules/core-js/library/modules/_enum-keys.js","../node_modules/core-js/library/modules/_is-array.js","../node_modules/core-js/library/modules/_object-gopn-ext.js","../node_modules/core-js/library/modules/es7.symbol.async-iterator.js","../node_modules/core-js/library/modules/es7.symbol.observable.js","../node_modules/babel-runtime/helpers/inherits.js","../node_modules/babel-runtime/core-js/object/set-prototype-of.js","../node_modules/core-js/library/fn/object/set-prototype-of.js","../node_modules/core-js/library/modules/es6.object.set-prototype-of.js","../node_modules/core-js/library/modules/_set-proto.js","../node_modules/babel-runtime/core-js/object/create.js","../node_modules/core-js/library/fn/object/create.js","../node_modules/core-js/library/modules/es6.object.create.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/lottie-web/build/player/lottie.js","../node_modules/react-dnd/dist/esm/hooks/useDragLayer.js","../node_modules/react-dnd-preview/dist/esm/usePreview.js","../node_modules/react-dnd-preview/dist/esm/Context.js","../node_modules/react-dnd-preview/dist/esm/Preview.js","../node_modules/react-dnd-preview/dist/esm/index.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/types.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/local/setClientOffset.js","../node_modules/dnd-core/dist/esm/utils/js_utils.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/beginDrag.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/publishDragSource.js","../node_modules/dnd-core/dist/esm/utils/matchesType.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/hover.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/drop.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/endDrag.js","../node_modules/dnd-core/dist/esm/classes/DragDropManagerImpl.js","../node_modules/dnd-core/dist/esm/actions/dragDrop/index.js","../node_modules/redux/es/redux.js","../node_modules/dnd-core/dist/esm/utils/equality.js","../node_modules/dnd-core/dist/esm/reducers/dragOffset.js","../node_modules/dnd-core/dist/esm/actions/registry.js","../node_modules/dnd-core/dist/esm/reducers/dragOperation.js","../node_modules/dnd-core/dist/esm/reducers/refCount.js","../node_modules/dnd-core/dist/esm/utils/dirtiness.js","../node_modules/dnd-core/dist/esm/reducers/dirtyHandlerIds.js","../node_modules/dnd-core/dist/esm/reducers/stateId.js","../node_modules/dnd-core/dist/esm/reducers/index.js","../node_modules/dnd-core/dist/esm/utils/coords.js","../node_modules/dnd-core/dist/esm/classes/DragDropMonitorImpl.js","../node_modules/dnd-core/dist/esm/interfaces.js","../node_modules/dnd-core/dist/esm/utils/getNextUniqueId.js","../node_modules/dnd-core/dist/esm/contracts.js","../node_modules/@react-dnd/asap/dist/esm/browser/asap.js","../node_modules/dnd-core/dist/esm/classes/HandlerRegistryImpl.js","../node_modules/dnd-core/dist/esm/createDragDropManager.js","../node_modules/react-dnd/dist/esm/internals/registration.js","../node_modules/react-dnd/dist/esm/core/DndProvider.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/DragSourceImpl.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useRegisteredDragSource.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSource.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragType.js","../node_modules/react-dnd/dist/esm/internals/DragSourceMonitorImpl.js","../node_modules/react-dnd/dist/esm/internals/SourceConnector.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/connectors.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDrag.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSourceMonitor.js","../node_modules/react-dnd/dist/esm/hooks/useDrag/useDragSourceConnector.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/DropTargetImpl.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useRegisteredDropTarget.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTarget.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useAccept.js","../node_modules/react-dnd/dist/esm/internals/DropTargetMonitorImpl.js","../node_modules/react-dnd/dist/esm/internals/TargetConnector.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/connectors.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDrop.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetMonitor.js","../node_modules/react-dnd/dist/esm/hooks/useDrop/useDropTargetConnector.js"],"names":["module","exports","require","_slicedToArray","arr","i","Array","isArray","Symbol","iterator","Object","_arr","_n","_d","_e","undefined","_s","_i","next","done","push","value","length","err","unsupportedIterableToArray","TypeError","invariant","condition","format","args","error","argIndex","_defineProperty","obj","key","defineProperty","enumerable","configurable","writable","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","target","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","useDragDropManager","dragDropManager","useContext","DndContext","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","core","version","__e","global","Math","self","Function","__g","get","a","ctx","hide","has","$export","type","name","own","out","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","IS_WRAP","W","expProto","C","b","c","this","call","virtual","R","U","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","e","hasOwnProperty","it","createDesc","exec","IObject","defined","store","uid","USE_SYMBOL","isObject","_arrayLikeToArray","len","arr2","shallowEqual","objA","objB","compare","compareContext","compareResult","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","_typeof","constructor","prototype","isRef","bitmap","$keys","enumBugKeys","id","px","random","concat","toString","propertyIsEnumerable","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","_unsupportedIterableToArray","o","minLen","n","slice","from","test","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","useCollector","monitor","collect","onUpdate","_useState2","useState","collected","setCollected","updateCollected","useCallback","nextValue","equal","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","useOptionalFactory","arg","deps","memoDeps","useMemo","throwIfCompositeComponentElement","element","displayName","Error","wrapConnectorHooks","hooks","wrappedHooks","hook","endsWith","wrappedHook","elementOrNode","options","isValidElement","node","cloneWithRef","wrapHookToRecognizeElement","setRef","ref","current","newRef","previousRef","cloneElement","useCollectedProps","collector","connector","onCollect","_useCollector2","handlerId","getHandlerId","subscribeToStateChange","handlerIds","useMonitorOutput","reconnect","propIsEnumerable","toObject","val","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","map","join","test3","split","letter","shouldUseNative","to","s","fn","valueOf","ceil","floor","isNaN","shared","SHARED","mode","copyright","dPs","IE_PROTO","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","document","open","write","lt","close","create","Properties","result","def","TAG","tag","stat","LIBRARY","wksExt","$Symbol","charAt","createContext","rawAsap","task","queue","requestFlush","index","flush","currentIndex","scan","newLength","scope","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","toggle","observer","createTextNode","observe","characterData","data","makeRequestCallFromMutationObserver","arrayLikeToArray","aFunction","that","is","createElement","toIObject","arrayIndexOf","names","cof","ObjectProto","getPrototypeOf","__esModule","_iterator2","_interopRequireDefault","_symbol2","default","redefine","Iterators","$iterCreate","setToStringTag","ITERATOR","BUGGY","KEYS","VALUES","returnThis","Base","NAME","Constructor","DEFAULT","IS_SET","FORCED","methods","IteratorPrototype","getMethod","kind","proto","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","values","hiddenKeys","pIE","gOPD","g","_extends3","_getPrototypeOf2","_classCallCheck3","_createClass3","_possibleConstructorReturn3","_inherits3","_react2","_propTypes2","_lottieWeb2","Lottie","_React$Component","_ref","_temp","_this","_ret","_len","_key","__proto__","handleClickToPause","anim","isPaused","play","pause","_props","props","eventListeners","loop","autoplay","animationData","rendererSettings","segments","container","el","renderer","loadAnimation","registerEvents","nextProps","deRegisterEvents","destroy","isStopped","stop","playSegments","setSpeed","setDirection","speed","direction","_this2","eventListener","addEventListener","eventName","_this3","removeEventListener","_this4","_props2","width","height","ariaRole","ariaLabel","isClickToPauseDisabled","title","getSize","initial","lottieStyles","overflow","margin","outline","onClickHandler","onClick","role","tabIndex","Component","propTypes","arrayOf","isRequired","oneOfType","string","number","bool","defaultProps","RegExp","flags","ListenerType","MouseButtons","MouseButton","eventShouldStartDrag","button","isTouchEvent","targetTouches","getEventClientOffset","lastTargetTouchFallback","touches","getEventClientTouchOffset","x","clientX","y","clientY","supportsPassive","supported","_defineProperties","descriptor","_eventNames","OptionsReader","context","instance","_classCallCheck","protoProps","staticProps","_this$args$delay","delay","scrollAngleRanges","getDropTargetElementsAtPoint","_this$args$ignoreCont","ignoreContextMenu","_this$args$enableHove","enableHoverOutsideTarget","_this$args$enableKeyb","enableKeyboardEvents","_this$args$enableMous","enableMouseEvents","_this$args$enableTouc","enableTouchEvents","touchSlop","_this$args$delayTouch","_this$args","_this$args2","delayTouchStart","_ref2","_this$args$delayMouse","_this$args3","_this$args4","delayMouseStart","_this$context","_this$args5","rootElement","eventNames","mouse","start","move","end","contextmenu","touch","keyboard","keydown","TouchBackendImpl","manager","sourceId","sourceNodes","nodeType","parentElement","_el$getBoundingClient","getBoundingClientRect","top","left","getNodeClientOffset","moveStartSourceIds","unshift","clientOffset","_mouseClientOffset","waitingForDelay","timeout","handleTopMoveStart","bind","dragOverTargetIds","_evt","targetId","x1","y1","x2","y2","_isScrolling","isDragging","angleRanges","angle","atan2","PI","inAngleRanges","sqrt","pow","abs","actions","beginDrag","getSourceClientOffset","publishSource","sourceNode","getSourceId","installSourceNodeRemovalObserver","publishDragSource","cancelable","preventDefault","dragOverTargetNodes","targetNodes","elementsAtPoint","elementsFromPoint","elementsAtPointExtended","nodeId","currentNode","indexOf","orderedDragOverTargetIds","_getDropTargetId","ids","targetNode","contains","reverse","hover","buttons","eventShouldEndDrag","didDrop","uninstallSourceNodeRemovalObserver","drop","endDrag","getActions","getMonitor","Map","sourcePreviewNodes","sourcePreviewNodeOptions","listenerTypes","_this$dragOverTargetI","size","root","isSetUp","getTopMoveStartHandler","handleTopMoveStartCapture","handleTopMove","handleTopMoveCapture","handleTopMoveEndCapture","handleCancelOnEscape","subject","event","handler","capture","passive","listenerType","evt","handleMoveStart","set","delete","handleMove","coords","droppedOn","elementFromPoint","childMatch","body","handleTopMoveStartDelay","_this5","draggedSourceNode","draggedSourceNodeRemovalObserver","resurrectSourceNode","childList","removeAttribute","disconnect","TouchBackend","l","p","Fragment","StrictMode","Profiler","q","r","t","Suspense","u","v","for","w","z","encodeURIComponent","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","D","E","isReactComponent","setState","forceUpdate","isPureReactComponent","H","I","__self","__source","J","d","k","h","children","m","$$typeof","_owner","L","M","N","replace","escape","K","Q","_status","_result","then","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","transition","ReactCurrentOwner","IsSomeRendererActing","Children","count","toArray","only","PureComponent","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","_context","createFactory","createRef","forwardRef","render","lazy","_payload","_init","memo","useDebugValue","useImperativeHandle","useReducer","useRef","aa","ba","Set","ca","da","ea","add","fa","ha","ia","ja","ka","acceptsBooleans","attributeName","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","toLowerCase","oa","pa","toUpperCase","qa","ma","na","la","setAttribute","setAttributeNS","xlinkHref","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","stack","trim","match","Oa","Pa","prepareStackTrace","Reflect","construct","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","getValue","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","defaultValue","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","ownerDocument","eb","db","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","textContent","kb","lb","mb","nb","ob","namespaceURI","innerHTML","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","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","rb","sb","tb","setProperty","substring","ub","menuitem","area","base","br","col","embed","hr","img","input","keygen","link","meta","param","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","parentNode","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","child","sibling","bc","dc","ec","fc","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","shift","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","log","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","stopPropagation","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","timeStamp","Date","now","isTrusted","td","ud","view","detail","vd","Ad","screenX","screenY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Jd","clipboardData","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","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","Od","Alt","Control","Meta","Shift","Pd","Rd","code","location","repeat","locale","which","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","changedTouches","Xd","Zd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","date","datetime","email","month","password","range","search","tel","text","time","url","week","me","ne","oe","listeners","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","offset","nextSibling","Me","compareDocumentPosition","Ne","HTMLIFrameElement","href","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","listener","$e","af","bf","cf","df","Nb","ef","ff","parentWindow","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","__html","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","contextTypes","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","childContextTypes","Gf","Hf","If","getChildContext","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","pending","effects","yg","zg","eventTime","lane","payload","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","state","Ng","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","Og","getDerivedStateFromProps","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","documentElement","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","subscribe","setSnapshot","Oh","Ph","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","hi","ii","ji","ki","li","mi","baseLanes","ni","oi","pi","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","si","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","xi","yi","zi","isBackwards","rendering","renderingStartTime","last","tail","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","V","Hi","Ii","Ji","Ki","Li","Mi","message","Ni","Oi","WeakMap","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","componentWillUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","X","Y","qj","rj","sj","tj","uj","vj","Infinity","wj","ck","Z","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","min","extend","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","fk","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","sk","uk","hk","unstable_observedBits","unmount","querySelectorAll","JSON","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","findDOMNode","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","cancelAnimationFrame","requestAnimationFrame","port2","port1","onmessage","postMessage","pop","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_wrapCallback","jsx","jsxs","_assign","_assign2","DESCRIPTORS","getKeys","gOPS","$assign","aLen","getSymbols","isEnum","j","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","toInteger","max","$getPrototypeOf","fails","KEY","exp","_defineProperty2","$Object","desc","_typeof2","_typeof3","ReferenceError","$at","iterated","_t","point","TO_STRING","pos","charCodeAt","TO_STRING_TAG","DOMIterables","Collection","addToUnscopables","step","_k","Arguments","META","$fails","wks","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","setter","findChild","setSymbolDesc","protoDesc","wrap","isSymbol","$defineProperty","$defineProperties","$propertyIsEnumerable","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","$set","es6Symbols","wellKnownSymbols","keyFor","useSetter","useSimple","FAILS_ON_PRIMITIVES","replacer","$replacer","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","NEED","fastKey","getWeak","onFreeze","windowNames","getWindowNames","_setPrototypeOf2","_create2","subClass","superClass","setPrototypeOf","check","buggy","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","secret","getShim","ReactPropTypes","array","func","symbol","any","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","factory","navigator","svgNS","locationHref","initialDefaultFrame","_useWebWorker","subframeEnabled","idPrefix","expressionsPlugin","isSafari","userAgent","cachedColors","bmRnd","bmPow","bmSqrt","bmFloor","bmMax","bmMin","BMMath","ProjectInterface","propertyNames","absArr","createSizedArray","defaultCurveSegments","degToRads","roundCorner","roundValues","flag","round","styleDiv","position","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","BaseEvent","triggerEvent","_cbs","callbacks","splice","createTypedArray","createRegularArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createTag","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","_isAnimated","iterateDynamicProperties","_mdf","initDynamicPropertyContainer","getBlendMode","blendModeEnums","0","1","2","3","4","5","6","7","10","11","14","15","lineCapEnum","lineJoinEnum","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","rotate","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","scale","sz","setTransform","translate","tx","ty","tz","transform","a2","b2","c2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","p1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","getInverseMatrix","determinant","inverseMatrix","inversePoint","pt","applyToPointArray","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","pool","math","startdenom","significance","mask","ARC4","keylen","copy","flatten","depth","typ","mixkey","seed","smear","stringseed","tostring","shortseed","entropy","Uint8Array","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","prng","int32","quick","double","pass","is_math_call","BezierFactory","nm","str","beziers","bezEasing","BezierEasing","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","extendPrototype","sources","destination","sourcePrototype","attr","getDescriptor","createProxyFunction","ProxyFunction","bezFunction","pointOnLine2D","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","lastPoint","lengthData","bezierLengthPool","newElement","percents","lengths","BezierData","segmentLength","PointData","partial","partialLength","buildBezierData","storedData","bezierName","bezierData","getDistancePerc","initPos","lengthPos","lPerc","dir","bezierSegmentPoints","getSegmentsLength","shapeData","segmentsLength","segmentsLengthPool","closed","pathV","pathO","pathI","_length","totalLength","getNewSegment","startPerc","endPerc","t0","t1","u0","u1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","lastTime","vendors","currTime","getTime","timeToCall","bez","dataManager","workerFn","workerInstance","_counterId","processes","workerProxy","path","_workerSelf","setupWorker","Worker","Blob","blob","URL","createObjectURL","createWorker","completeLayers","layers","comps","layerData","jLen","kLen","completed","tt","hasMask","maskProps","masksProperties","convertPathsToAbsoluteValues","findCompLayers","refId","completeShapes","shapes","completeText","__used","parse","ks","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","assets","checkChars","chars","pathData","paths","__converted","checkPathProperties","checkColors","iterateShapes","checkShapes","completeClosingShapes","cl","singleShape","moduleOb","__complete","dataFunctionManager","assetLoader","formatResponse","xhr","contentTypeHeader","getResponseHeader","responseType","response","responseText","load","fullPath","errorCallback","XMLHttpRequest","onreadystatechange","readyState","status","send","completeData","process","onComplete","createProcess","processId","origin","pathname","loadData","completeAnimation","getFontProperties","fontData","styles","fStyle","fWeight","weight","FontManager","emptyChar","combinedCharacters","surrogateModifiers","zeroWidthJoiner","setUpNode","font","family","fontFamily","innerText","fontSize","fontVariant","fontStyle","letterSpacing","offsetWidth","familyArray","enabledFamilies","trimFontOptions","parent","createHelper","tHelper","fontProps","fFamily","fClass","getContext","Font","fonts","typekitLoaded","isLoaded","_warned","initTime","setIsLoadedBinded","setIsLoaded","checkLoadedFontsBinded","checkLoadedFonts","isModifier","firstCharCode","secondCharCode","sum","isZeroWidthJoiner","isCombinedCharacter","addChars","found","addFonts","defs","list","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","loaded","monoCase","sansCase","fPath","fOrigin","rel","helper","cache","getCharData","warn","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","PropertyFactory","initFrame","mathAbs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","pv","keyData","nextKeyData","keyframeMetadata","fnc","iterationIndex","lastIndex","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","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","createQuaternion","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","defaultVector","TransformProperty","pre","appliedTransformations","py","pz","rx","ry","rz","or","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","frameRate","autoOriented","v1","v2","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","pointPool","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","init","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","interpolateShapeCurrentTime","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shapePool","releaseShapes","addShape","ShapeProperty","shapeCollectionPool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","cPoint","EllShapePropertyFactory","convertEllToPath","s0","_cw","_v","StarShapeProperty","StarShapePropertyFactory","ir","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","RectShapePropertyFactory","convertRectToPath","v0","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","PuckerAndBloatModifier","RepeaterModifier","ShapeCollection","DashProperty","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","processPath","clonedPath","currentV","currentI","currentO","closerV","distance","newPosPerc","amount","centerPoint","pathLength","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","resetElements","elements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","items","itemsTransform","cont","hasReloaded","copies","group","ix","reloadShapes","elems","transformData","op","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","comparePoints","buildShapeString","pathNodes","_o","shapeString","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","ImagePreloader","proxyImage","canvas","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","loadedFootagesCount","totalFootages","imagesLoadedCb","footageLoaded","getAssetsPath","assetData","assetsPath","originalPath","imagePath","testImageLoaded","intervalId","getBBox","_imageLoaded","createFootageData","footageData","_footageLoaded","ImagePreloaderFactory","images","loadAssets","_createImageData","setAssetsPath","setPath","loadedImages","loadedFootages","getAsset","createImgData","crossOrigin","createImageData","_elementHelper","append","setCacheType","elementHelper","featureSupport","maskType","filtersFactory","filId","skipCoordinates","fil","feColorMatrix","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimatorAnimatables","sw","fs","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","line","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","textKeys","buildFinalText","charactersArray","shouldCombine","substr","newLineFlag","charData","fontManager","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","TextSelectorPropFactory","_currentTextLength","finalS","finalE","sm","textProperty","easer","tot","smoothness","threshold","newCharsFlag","divisor","poolFactory","initialLength","_release","pooling","cloned","shapeCollection","markerParser","parsePayloadLines","lines","keysCount","_markers","markers","_marker","markerData","tm","duration","dr","cm","_","__","BaseRenderer","SVGRenderer","animationItem","config","svgElement","titleElement","titleId","description","descElement","descId","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","contentVisibility","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","className","focusable","filterSize","pendingElements","destroyed","rendererType","CanvasRenderer","clearCanvas","dpr","wrapper","devicePixelRatio","currentGlobalAlpha","contextData","CVContextData","transformMat","HybridRenderer","threeDElements","camera","supports3d","MaskElement","viewData","solidPath","rect","expansor","feMorph","properties","currentMasks","layerId","maskRef","getShapeProp","lastPath","filterID","expan","lastOperator","filterId","lastRadius","createLayerSolidPath","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","ProcessedElement","SVGStyleData","level","lvl","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGTransformData","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","ShapeGroupData","prevViewData","gr","checkLayers","num","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","createFootage","AudioElement","FootageElement","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","audioController","fr","compSize","NullElement","SVGShapeElement","SVGTextLottieElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","show","CVShapeElement","CVTextElement","CVImageElement","CVCompElement","CVSolidElement","ctxTransform","cProps","cTr","trProps","canvasContext","ctxOpacity","globalAlpha","cO","restore","save","actionFlag","cArrPos","duplicate","saved","savedOp","blendMode","popped","containerStyle","mozTransformOrigin","transformCanvas","isDashed","elementWidth","elementHeight","elementRel","animationRel","offsetHeight","par","fillType","beginPath","closePath","clip","clearRect","newDOMElement","ddd","addTo3dContainer","nextDOMElement","nextLayer","getThreeDContainerByPos","HShapeElement","HTextElement","HCameraElement","HImageElement","HCompElement","HSolidElement","startPos","endPos","perspectiveElem","createThreeDContainer","center","webkitTransform","threeDContainerData","build3dContainers","lastThreeDContainerData","currentContainer","resizerElem","svg","setup","cWidth","cHeight","webkitPerspective","perspective","floatingContainer","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","component","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","cst","opacityId","opFill","ml","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","renderContentTransform","styleData","itemData","renderPath","pathStringTransformed","redraw","iterations","lLen","renderFill","styleElem","renderGradientStroke","renderGradient","renderStroke","hasOpacity","attr1","attr2","cValues","oValues","ang","dist","createRenderFunction","ShapeTransformManager","sequences","sequenceList","transform_key_count","CVShapeData","transformsManager","styledShapes","styledShape","addTransformSequence","trNodes","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","sourceRect","_isPlaying","_canPlay","_currentTime","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGGaussianBlurEffect","feGaussianBlur","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feOffset","feFlood","feComposite","originalNodeAdded","sequence","processSequence","processSequences","getNewKey","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","content","textInterface","TextExpressionInterface","setBlendMode","blendModeValue","bm","sr","effectsManager","EffectsManager","getType","matteElement","transformedElement","_sizeChanged","layerElementParent","masker","createFilter","createAlphaToLuminanceFilter","maskGroup","maskGrouper","feCTr","feFunc","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","getElements","destroyElements","pr","volumeValue","FootageInterface","getFootageData","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","addToAnimatedContents","createGroupElement","createTransformElement","transformProperty","createShapeElement","ownTransformers","setElementStyles","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","sigma","dimensions","sigmaX","sigmaY","edgeMode","initialize","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","filters","CVBaseElement","CVMaskElement","hasMasks","stroke","fill","currentRender","sWidth","fValue","CVEffects","HBaseElement","shapesContainer","currentBBox","textPaths","isMasked","_prevMat","HEffects","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","currentSavedOp","createElements","globalCompositeOperation","hideElement","showElement","forceRealStack","widthCrop","heightCrop","imgW","imgH","imgRel","canvasRel","drawImage","moveTo","lineTo","bezierCurveTo","transformHelper","dashResetter","preTransforms","co","do","addTransformToStyleList","removeTransformFromStyleList","closeStyles","shouldRender","ownTransforms","_shouldRender","renderShapeTransform","parentTransform","groupTransform","drawLayer","nodes","currentStyle","coOp","strokeStyle","grd","lineCap","lineJoin","miterLimit","setLineDash","lineDashOffset","isMain","renderGradientFill","renderStyledShape","shapeNodes","groupTransformMat","createLinearGradient","createRadialGradient","addColorStop","hasFill","hasStroke","commands","pathArr","lastFill","lastStroke","lastStrokeW","checkBlendMode","transformedElementStyle","matrixValue","addEffects","backgroundColor","_createBaseContainerElements","_renderShapeFrame","shapeCont","getTransformedPoint","calculateShapeBoundingBox","item","boundingBox","vPoint","oPoint","nextIPoint","nextVPoint","checkBounds","getBoundsOfCurve","bounds","shapeBoundingBox","xMax","right","yMax","bottom","tempBoundingBox","p3","b2ac","t2","calculateF","calculateBoundingBox","currentBoxContains","box","changed","shapeStyle","shapeTransform","compW","compH","innerElemStyle","textColor","tParent","tCont","tContStyle","tContTranslation","tStyle","tSpanTranslation","svgStyle","translation","textPath","svgTransform","Image","imageElem","perspectiveStyle","mTransf","diffVector","mag","lookDir","lookLengthOnXZ","mRotationX","mRotationY","hasMatrixChanged","matValue","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","addPlayingCount","activate","nowTime","advanceTime","first","params","setParams","togglePause","searchAnimations","standalone","animElements","getElementsByClassName","lenAnims","getElementsByTagName","div","resize","goToAndStop","isFrame","freeze","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","animationID","timeCompleted","segmentPos","isSubframeEnabled","_idle","_completedLoop","onSetupError","onSegmentComplete","animType","parseInt","autoloadSegments","initialSegment","lastIndexOf","fileName","trigger","wrapperAttributes","attributes","getNamedItem","prerender","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","triggerConfigError","gotoFrame","setSubframe","triggerRenderFrameError","setCurrentRawFrameValue","getMarkerData","markerName","marker","numValue","Number","frameModifier","goToAndPlay","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onSegmentStart","onDestroy","getPath","getDuration","Expressions","stackCount","registers","pushExpression","popExpression","releaseInstances","registerExpressionProperty","expression","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","normalize","vec","rgbToHsl","hue2rgb","hslToRgb","linear","tMin","tMax","value1","value2","_tMin","rnd","createPath","inTangents","outTangents","inVertexPoint","outVertexPoint","arrPlaceholder","initiateExpression","property","needsVelocity","_needsRandom","elemType","$bm_transform","effect","thisProperty","valueAtTime","frameDuration","displayStartTime","inPoint","outPoint","loopIn","loop_in","loopOut","loop_out","smooth","toWorld","fromWorld","fromComp","toComp","fromCompToSurface","rotation","anchorPoint","thisLayer","thisComp","velocityAtTime","scoped_bm_rt","expression_function","eval","numKeys","active","wiggle","freq","amp","iWiggle","lenWiggle","addedAmps","periods","loopInDuration","loopOutDuration","getVelocityAtTime","velocity","textIndex","textTotal","selectorValue","lookAt","elem1","elem2","fVec","pitch","easeOut","val1","val2","applyEase","easeIn","ease","iKey","lenKey","nearestKey","obKey","framesToTime","fps","timeToFrames","seedRandom","seedrandom","randSeed","posterizeTime","framesPerSecond","hasParent","executeExpression","_value","frameExpressionId","expressionHelpers","searchExpressions","getSpeedAtTime","delta","_cachingAtTime","getStaticValueAtTime","setGroupProperty","propertyGroup","durationFlag","cycleDuration","firstKeyFrame","ret","lastKeyFrame","initV","endV","repeats","lastValue","nextLastValue","firstValue","nextFirstValue","samples","sampleValue","sampleFrequency","getTransformValueAtTime","_transformCachingAtTime","anchor","skewAxis","rotationZ","rotationY","rotationX","orientation","positionX","positionY","positionZ","getTransformStaticValueAtTime","propertyGetProp","propertyIndex","ShapePropertyConstructorFunction","getConstructorFunction","KeyframedShapePropertyConstructorFunction","getKeyframedConstructorFunction","ShapeExpressions","isClosed","pointOnPath","_segmentsLength","accumulatedLength","initIndex","endIndex","vectorOnPath","vectorType","xLength","yLength","magnitude","tangentOnPath","normalOnPath","shapeValue","propertyGetShapeProp","trims","getExpressionValue","calculateExpression","isKeyframed","hasExpressions","ShapePathInterface","interfaceFunction","_propertyGroup","propertyGroupFactory","PropertyInterface","_name","mn","parentPropertyGroup","iterateElements","groupInterfaceFactory","fillInterfaceFactory","strokeInterfaceFactory","trimInterfaceFactory","ellipseInterfaceFactory","starInterfaceFactory","rectInterfaceFactory","roundedInterfaceFactory","repeaterInterfaceFactory","gradientFillInterfaceFactory","interfaces","numProperties","transformInterface","transformInterfaceFactory","cix","contentsInterfaceFactory","np","ExpressionPropertyInterface","startPoint","endPoint","_dashPropertyGroup","dashOb","addPropertyToDashOb","dash","outerRadius","outerRoundness","innerRoundness","innerRadius","radius","_interfaceFunction","_prevValue","_sourceText","_thisLayerFunction","sourceText","stringValue","getMatrix","toWorldMat","toWorldVec","applyPoint","fromWorldVec","invertPoint","sampleImage","anchorPointDescriptor","TransformExpressionInterface","anchor_point","MaskManagerInterface","dataInterfaceFactory","outlineInterface","currentPropertyName","currentProperty","propertyNameIndex","outlineInterfaceFactory","dataInterface","pixelAspect","numLayers","_thisFunction","xRotation","yRotation","xPosition","yPosition","zPosition","_px","_py","_pz","_transformFactory","compositions","_thisProjectFunction","createGroupInterface","groupInterface","createValueInterface","enabled","en","expressionProperty","effectsData","MaskInterface","_mask","_data","_masksInterfaces","defaultUnidimensionalValue","defaultMultidimensionalValue","completeProperty","expressionValue","valueProp","speedAtTime","defaultGetter","UnidimensionalPropertyInterface","arrValue","MultidimensionalPropertyInterface","TextExpressionSelectorPropFactory","getValueProxy","total","propertyGetTextProp","SliderEffect","AngleEffect","ColorEffect","PointEffect","LayerIndexEffect","MaskIndexEffect","CheckboxEffect","NoValueEffect","effectItem","GroupEffect","eff","lottie","setLocationHref","setSubframeRendering","setIDPrefix","prefix","setQuality","inBrowser","installPlugin","plugin","getFactory","checkReady","readyStateCheckInterval","getQueryVariable","variable","vars","queryString","pair","decodeURIComponent","useWebWorker","__getFactory","scripts","myScript","define","getStyle","currentOffset","pointerEvents","WebkitTransform","usePreview","collectedProps","subscribeToOffsetChange","useDragLayer","itemType","getItemType","getItem","Context","React","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Preview","_usePreview","generator","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","sourceClientOffset","reduce","without","xor","itemsA","itemsB","insertItem","ResetCoordinatesAction","createBeginDrag","sourceIds","_options$publishSourc","registry","getRegistry","verifyInvariants","getDraggableSource","verifyGetSourceClientOffsetIsFunction","getSource","verifyItemIsObject","pinSource","getSourceType","isSourcePublic","canDragSource","createPublishDragSource","matchesType","targetType","draggedItemType","some","createHover","targetIdsArg","verifyTargetIdsIsArray","targetIds","checkInvariants","removeNonMatchingTargetIds","hoverAllTargets","getTarget","getTargetType","_objectSpread","createDrop","getDroppableTargets","dropResult","determineDropResult","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","createEndDrag","verifyIsDragging","unpinSource","DragDropManagerImpl","shouldSetUp","getState","refCount","backend","teardown","handleRefCountChange","createDragDropActions","boundActions","actionCreator","formatProdErrorMessage","$$observable","observable","randomString","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","isPlainObject","createStore","reducer","preloadedState","enhancer","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","isSubscribed","replaceReducer","nextReducer","outerSubscribe","observeState","unsubscribe","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","isEqual","initialState","initialSourceClientOffset","initialClientOffset","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","NONE","ALL","areDirty","dirtyIds","_action$payload","_action$payload$targe","_action$payload$prevT","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","dirtyHandlerIds","dragOffset","dragOperation","stateId","subtract","__IS_NONE__","__IS_ALL__","HandlerRole","DragDropMonitorImpl","prevStateId","handleChange","currentStateId","previousState","nextState","canDrag","canDrop","Boolean","shallow","_getSourceClientOffset","_getDifferenceFromInitialOffset","nextUniqueId","validateType","allowArray","freeTasks","pendingErrors","requestErrorThrow","asap","rawTask","RawTask","onerror","getNextHandlerId","SOURCE","TARGET","parseRoleFromHandlerId","mapContainsValue","searchValue","isDone","_entries$next","HandlerRegistryImpl","validateSourceContract","addHandler","_addSource","validateTargetContract","_addTarget","dragSources","dropTargets","includePinned","isSourceId","isPinned","pinnedSourceId","pinnedSource","isTargetId","types","_removeSource","_removeTarget","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","receiveBackend","reduxDevTools","__REDUX_DEVTOOLS_EXTENSION__","instanceId","registerTarget","addTarget","removeTarget","registerSource","addSource","removeSource","_excluded","INSTANCE_SYM","DndProvider","_getDndContextValue2","getGlobalContext","createSingletonDndContext","isGlobalInstance","getDndContextValue","_jsx","DragSourceImpl","spec","globalMonitor","useRegisteredDragSource","useDragSource","useDragType","_registerSource2","unregister","receiveHandlerId","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","isOverTarget","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","getDifferenceFromInitialOffset","SourceConnector","dragSource","clearDragSource","dragSourceOptions","dragSourceRef","dragSourceNode","reconnectDragSource","dragPreview","clearDragPreview","dragPreviewOptions","dragPreviewRef","dragPreviewNode","reconnectDragPreview","newHandlerId","dragSourceOptionsInternal","dragPreviewOptionsInternal","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedHandlerId","lastConnectedDragSource","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","useConnectDragSource","useConnectDragPreview","useDrag","specArg","begin","useDragSourceMonitor","getBackend","useDragSourceConnector","previewOptions","DropTargetImpl","useRegisteredDropTarget","dropTarget","useDropTarget","accept","useAccept","_registerTarget2","isCallingCanDrop","DropTargetMonitorImpl","TargetConnector","clearDropTarget","dropTargetOptions","dropTargetRef","dropTargetNode","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","useConnectDropTarget","useDrop","useDropTargetMonitor","useDropTargetConnector"],"mappings":"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","file":"static/js/2.e3cd09d4.chunk.js","sourcesContent":["'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","'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","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export function shallowEqual(\n objA: T,\n objB: T,\n compare?: (a: T, b: T, key?: string) => boolean | void,\n compareContext?: any\n) {\n var compareResult = compare\n ? compare.call(compareContext, objA, objB)\n : void 0;\n if (compareResult !== void 0) {\n return !!compareResult;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = (objA as any)[key];\n var valueB = (objB as any)[key];\n\n compareResult = compare\n ? compare.call(compareContext, valueA, valueB, key)\n : void 0;\n\n if (\n compareResult === false ||\n (compareResult === void 0 && valueA !== valueB)\n ) {\n return false;\n }\n }\n\n return true;\n}\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","import { useContext } from 'react';\nimport { invariant } from '@react-dnd/invariant';\nimport { DndContext } from '../core';\n/**\n * A hook to retrieve the DragDropManager from Context\n */\n\nexport function useDragDropManager() {\n var _useContext = useContext(DndContext),\n dragDropManager = _useContext.dragDropManager;\n\n invariant(dragDropManager != null, 'Expected drag drop context');\n return dragDropManager;\n}","import { useLayoutEffect, useEffect } from 'react'; // suppress the useLayoutEffect warning on server side.\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect;","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\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","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","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","/**\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","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","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\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); }\n\nexport function isRef(obj) {\n return (// eslint-disable-next-line no-prototype-builtins\n obj !== null && _typeof(obj) === 'object' && Object.prototype.hasOwnProperty.call(obj, 'current')\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\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","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport equal from 'fast-deep-equal';\nimport { useState, useCallback } from 'react';\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\n\nexport function useCollector(monitor, collect, onUpdate) {\n var _useState = useState(function () {\n return collect(monitor);\n }),\n _useState2 = _slicedToArray(_useState, 2),\n collected = _useState2[0],\n setCollected = _useState2[1];\n\n var updateCollected = useCallback(function () {\n var nextValue = collect(monitor); // This needs to be a deep-equality check because some monitor-collected values\n // include XYCoord objects that may be equivalent, but do not have instance equality.\n\n if (!equal(collected, nextValue)) {\n setCollected(nextValue);\n\n if (onUpdate) {\n onUpdate();\n }\n }\n }, [collected, monitor, onUpdate]); // update the collected properties after react renders.\n // Note that the \"Dustbin Stress Test\" fails if this is not\n // done when the component updates\n\n useIsomorphicLayoutEffect(updateCollected);\n return [collected, updateCollected];\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport { useMemo } from 'react';\nexport function useOptionalFactory(arg, deps) {\n var memoDeps = _toConsumableArray(deps || []);\n\n if (deps == null && typeof arg !== 'function') {\n memoDeps.push(arg);\n }\n\n return useMemo(function () {\n return typeof arg === 'function' ? arg() : arg;\n }, memoDeps);\n}","import { invariant } from '@react-dnd/invariant';\nimport { cloneElement, isValidElement } from 'react';\n\nfunction throwIfCompositeComponentElement(element) {\n // Custom components can no longer be wrapped directly in React DnD 2.0\n // so that we don't need to depend on findDOMNode() from react-dom.\n if (typeof element.type === 'string') {\n return;\n }\n\n var displayName = element.type.displayName || element.type.name || 'the component';\n throw new Error('Only native element nodes can now be passed to React DnD connectors.' + \"You can either wrap \".concat(displayName, \" into a
, or turn it into a \") + 'drag source or a drop target itself.');\n}\n\nfunction wrapHookToRecognizeElement(hook) {\n return function () {\n var elementOrNode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n // When passed a node, call the hook straight away.\n if (!isValidElement(elementOrNode)) {\n var node = elementOrNode;\n hook(node, options); // return the node so it can be chained (e.g. when within callback refs\n //
connectDragSource(connectDropTarget(node))}/>\n\n return node;\n } // If passed a ReactElement, clone it and attach this function as a ref.\n // This helps us achieve a neat API where user doesn't even know that refs\n // are being used under the hood.\n\n\n var element = elementOrNode;\n throwIfCompositeComponentElement(element); // When no options are passed, use the hook directly\n\n var ref = options ? function (node) {\n return hook(node, options);\n } : hook;\n return cloneWithRef(element, ref);\n };\n}\n\nexport function wrapConnectorHooks(hooks) {\n var wrappedHooks = {};\n Object.keys(hooks).forEach(function (key) {\n var hook = hooks[key]; // ref objects should be passed straight through without wrapping\n\n if (key.endsWith('Ref')) {\n wrappedHooks[key] = hooks[key];\n } else {\n var wrappedHook = wrapHookToRecognizeElement(hook);\n\n wrappedHooks[key] = function () {\n return wrappedHook;\n };\n }\n });\n return wrappedHooks;\n}\n\nfunction setRef(ref, node) {\n if (typeof ref === 'function') {\n ref(node);\n } else {\n ref.current = node;\n }\n}\n\nfunction cloneWithRef(element, newRef) {\n var previousRef = element.ref;\n invariant(typeof previousRef !== 'string', 'Cannot connect React DnD to an element with an existing string ref. ' + 'Please convert it to use a callback ref instead, or wrap it into a or
. ' + 'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs');\n\n if (!previousRef) {\n // When there is no ref on the element, use the new ref directly\n return cloneElement(element, {\n ref: newRef\n });\n } else {\n return cloneElement(element, {\n ref: function ref(node) {\n setRef(previousRef, node);\n setRef(newRef, node);\n }\n });\n }\n}","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect';\nimport { useCollector } from './useCollector';\nexport function useMonitorOutput(monitor, collect, onCollect) {\n var _useCollector = useCollector(monitor, collect, onCollect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useIsomorphicLayoutEffect(function subscribeToMonitorStateChange() {\n var handlerId = monitor.getHandlerId();\n\n if (handlerId == null) {\n return;\n }\n\n return monitor.subscribeToStateChange(updateCollected, {\n handlerIds: [handlerId]\n });\n }, [monitor, updateCollected]);\n return collected;\n}","import { useMonitorOutput } from './useMonitorOutput';\nexport function useCollectedProps(collector, monitor, connector) {\n return useMonitorOutput(monitor, collector || function () {\n return {};\n }, function () {\n return connector.reconnect();\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.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","import { createContext } from 'react';\n/**\n * Create the React Context\n */\n\nexport var DndContext = createContext({\n dragDropManager: undefined\n});","// Use the fastest means possible to execute a task in its own turn, with\n// priority over other events including IO, animation, reflow, and redraw\n// events in browsers.\n//\n// An exception thrown by a task will permanently interrupt the processing of\n// subsequent tasks. The higher level `asap` function ensures that if an\n// exception is thrown by a task, that the task queue will continue flushing as\n// soon as possible, but if you use `rawAsap` directly, you are responsible to\n// either ensure that no exceptions are thrown from your task, or to manually\n// call `rawAsap.requestFlush` if an exception is thrown.\nexport function rawAsap(task) {\n if (!queue.length) {\n requestFlush();\n flushing = true;\n } // Equivalent to push, but avoids a function call.\n\n\n queue[queue.length] = task;\n}\nvar queue = []; // Once a flush has been requested, no further calls to `requestFlush` are\n// necessary until the next `flush` completes.\n// @ts-ignore\n\nvar flushing = false; // `requestFlush` is an implementation-specific method that attempts to kick\n// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n// the event queue before yielding to the browser's own event loop.\n\nvar requestFlush; // The position of the next task to execute in the task queue. This is\n// preserved between calls to `flush` so that it can be resumed if\n// a task throws an exception.\n\nvar index = 0; // If a task schedules additional tasks recursively, the task queue can grow\n// unbounded. To prevent memory exhaustion, the task queue will periodically\n// truncate already-completed tasks.\n\nvar capacity = 1024; // The flush function processes all tasks that have been scheduled with\n// `rawAsap` unless and until one of those tasks throws an exception.\n// If a task throws an exception, `flush` ensures that its state will remain\n// consistent and will resume where it left off when called again.\n// However, `flush` does not make any arrangements to be called again if an\n// exception is thrown.\n\nfunction flush() {\n while (index < queue.length) {\n var currentIndex = index; // Advance the index before calling the task. This ensures that we will\n // begin flushing on the next task the task throws an error.\n\n index = index + 1;\n queue[currentIndex].call(); // Prevent leaking memory for long chains of recursive calls to `asap`.\n // If we call `asap` within tasks scheduled by `asap`, the queue will\n // grow, but to avoid an O(n) walk for every task we execute, we don't\n // shift tasks off the queue after they have been executed.\n // Instead, we periodically shift 1024 tasks off the queue.\n\n if (index > capacity) {\n // Manually shift all values starting at the index back to the\n // beginning of the queue.\n for (var scan = 0, newLength = queue.length - index; scan < newLength; scan++) {\n queue[scan] = queue[scan + index];\n }\n\n queue.length -= index;\n index = 0;\n }\n }\n\n queue.length = 0;\n index = 0;\n flushing = false;\n} // `requestFlush` is implemented using a strategy based on data collected from\n// every available SauceLabs Selenium web driver worker at time of writing.\n// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\n\n\nvar scope = typeof global !== 'undefined' ? global : self;\nvar BrowserMutationObserver = scope.MutationObserver || scope.WebKitMutationObserver; // MutationObservers are desirable because they have high priority and work\n// reliably everywhere they are implemented.\n// They are implemented in all modern browsers.\n//\n// - Android 4-4.3\n// - Chrome 26-34\n// - Firefox 14-29\n// - Internet Explorer 11\n// - iPad Safari 6-7.1\n// - iPhone Safari 7-7.1\n// - Safari 6-7\n\nif (typeof BrowserMutationObserver === 'function') {\n requestFlush = makeRequestCallFromMutationObserver(flush); // MessageChannels are desirable because they give direct access to the HTML\n // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n // 11-12, and in web workers in many engines.\n // Although message channels yield to any queued rendering and IO tasks, they\n // would be better than imposing the 4ms delay of timers.\n // However, they do not work reliably in Internet Explorer or Safari.\n // Internet Explorer 10 is the only browser that has setImmediate but does\n // not have MutationObservers.\n // Although setImmediate yields to the browser's renderer, it would be\n // preferrable to falling back to setTimeout since it does not have\n // the minimum 4ms penalty.\n // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n // Desktop to a lesser extent) that renders both setImmediate and\n // MessageChannel useless for the purposes of ASAP.\n // https://github.com/kriskowal/q/issues/396\n // Timers are implemented universally.\n // We fall back to timers in workers in most engines, and in foreground\n // contexts in the following browsers.\n // However, note that even this simple case requires nuances to operate in a\n // broad spectrum of browsers.\n //\n // - Firefox 3-13\n // - Internet Explorer 6-9\n // - iPad Safari 4.3\n // - Lynx 2.8.7\n} else {\n requestFlush = makeRequestCallFromTimer(flush);\n} // `requestFlush` requests that the high priority event queue be flushed as\n// soon as possible.\n// This is useful to prevent an error thrown in a task from stalling the event\n// queue if the exception handled by Node.js’s\n// `process.on(\"uncaughtException\")` or by a domain.\n\n\nrawAsap.requestFlush = requestFlush; // To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\n\nfunction makeRequestCallFromMutationObserver(callback) {\n var toggle = 1;\n var observer = new BrowserMutationObserver(callback);\n var node = document.createTextNode('');\n observer.observe(node, {\n characterData: true\n });\n return function requestCall() {\n toggle = -toggle;\n node.data = toggle;\n };\n} // The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n\nfunction makeRequestCallFromTimer(callback) {\n return function requestCall() {\n // We dispatch a timeout with a specified delay of 0 for engines that\n // can reliably accommodate that request. This will usually be snapped\n // to a 4 milisecond delay, but once we're flushing, there's no delay\n // between events.\n var timeoutHandle = setTimeout(handleTimer, 0); // However, since this timer gets frequently dropped in Firefox\n // workers, we enlist an interval handle that will try to fire\n // an event 20 times per second until it succeeds.\n\n var intervalHandle = setInterval(handleTimer, 50);\n\n function handleTimer() {\n // Whichever timer succeeds will cancel both timers and\n // execute the callback.\n clearTimeout(timeoutHandle);\n clearInterval(intervalHandle);\n callback();\n }\n };\n} // This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// its existence.\n\n\nrawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer; // ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js","import arrayWithoutHoles from \"@babel/runtime/helpers/esm/arrayWithoutHoles\";\nimport iterableToArray from \"@babel/runtime/helpers/esm/iterableToArray\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableSpread from \"@babel/runtime/helpers/esm/nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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","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\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends2 = require('babel-runtime/helpers/extends');\n\nvar _extends3 = _interopRequireDefault(_extends2);\n\nvar _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');\n\nvar _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);\n\nvar _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');\n\nvar _classCallCheck3 = _interopRequireDefault(_classCallCheck2);\n\nvar _createClass2 = require('babel-runtime/helpers/createClass');\n\nvar _createClass3 = _interopRequireDefault(_createClass2);\n\nvar _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');\n\nvar _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);\n\nvar _inherits2 = require('babel-runtime/helpers/inherits');\n\nvar _inherits3 = _interopRequireDefault(_inherits2);\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _lottieWeb = require('lottie-web');\n\nvar _lottieWeb2 = _interopRequireDefault(_lottieWeb);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Lottie = function (_React$Component) {\n (0, _inherits3.default)(Lottie, _React$Component);\n\n function Lottie() {\n var _ref;\n\n var _temp, _this, _ret;\n\n (0, _classCallCheck3.default)(this, Lottie);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, (_ref = Lottie.__proto__ || (0, _getPrototypeOf2.default)(Lottie)).call.apply(_ref, [this].concat(args))), _this), _this.handleClickToPause = function () {\n // The pause() method is for handling pausing by passing a prop isPaused\n // This method is for handling the ability to pause by clicking on the animation\n if (_this.anim.isPaused) {\n _this.anim.play();\n } else {\n _this.anim.pause();\n }\n }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);\n }\n\n (0, _createClass3.default)(Lottie, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n options = _props.options,\n eventListeners = _props.eventListeners;\n var loop = options.loop,\n autoplay = options.autoplay,\n animationData = options.animationData,\n rendererSettings = options.rendererSettings,\n segments = options.segments;\n\n\n this.options = {\n container: this.el,\n renderer: 'svg',\n loop: loop !== false,\n autoplay: autoplay !== false,\n segments: segments !== false,\n animationData: animationData,\n rendererSettings: rendererSettings\n };\n\n this.options = (0, _extends3.default)({}, this.options, options);\n\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(eventListeners);\n }\n }, {\n key: 'componentWillUpdate',\n value: function componentWillUpdate(nextProps /* , nextState */) {\n /* Recreate the animation handle if the data is changed */\n if (this.options.animationData !== nextProps.options.animationData) {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options = (0, _extends3.default)({}, this.options, nextProps.options);\n this.anim = _lottieWeb2.default.loadAnimation(this.options);\n this.registerEvents(nextProps.eventListeners);\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isStopped) {\n this.stop();\n } else if (this.props.segments) {\n this.playSegments();\n } else {\n this.play();\n }\n\n this.pause();\n this.setSpeed();\n this.setDirection();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.deRegisterEvents(this.props.eventListeners);\n this.destroy();\n this.options.animationData = null;\n this.anim = null;\n }\n }, {\n key: 'setSpeed',\n value: function setSpeed() {\n this.anim.setSpeed(this.props.speed);\n }\n }, {\n key: 'setDirection',\n value: function setDirection() {\n this.anim.setDirection(this.props.direction);\n }\n }, {\n key: 'play',\n value: function play() {\n this.anim.play();\n }\n }, {\n key: 'playSegments',\n value: function playSegments() {\n this.anim.playSegments(this.props.segments);\n }\n }, {\n key: 'stop',\n value: function stop() {\n this.anim.stop();\n }\n }, {\n key: 'pause',\n value: function pause() {\n if (this.props.isPaused && !this.anim.isPaused) {\n this.anim.pause();\n } else if (!this.props.isPaused && this.anim.isPaused) {\n this.anim.pause();\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n this.anim.destroy();\n }\n }, {\n key: 'registerEvents',\n value: function registerEvents(eventListeners) {\n var _this2 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this2.anim.addEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'deRegisterEvents',\n value: function deRegisterEvents(eventListeners) {\n var _this3 = this;\n\n eventListeners.forEach(function (eventListener) {\n _this3.anim.removeEventListener(eventListener.eventName, eventListener.callback);\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n width = _props2.width,\n height = _props2.height,\n ariaRole = _props2.ariaRole,\n ariaLabel = _props2.ariaLabel,\n isClickToPauseDisabled = _props2.isClickToPauseDisabled,\n title = _props2.title;\n\n\n var getSize = function getSize(initial) {\n var size = void 0;\n\n if (typeof initial === 'number') {\n size = initial + 'px';\n } else {\n size = initial || '100%';\n }\n\n return size;\n };\n\n var lottieStyles = (0, _extends3.default)({\n width: getSize(width),\n height: getSize(height),\n overflow: 'hidden',\n margin: '0 auto',\n outline: 'none'\n }, this.props.style);\n\n var onClickHandler = isClickToPauseDisabled ? function () {\n return null;\n } : this.handleClickToPause;\n\n return (\n // Bug with eslint rules https://github.com/airbnb/javascript/issues/1374\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n _react2.default.createElement('div', {\n ref: function ref(c) {\n _this4.el = c;\n },\n style: lottieStyles,\n onClick: onClickHandler,\n title: title,\n role: ariaRole,\n 'aria-label': ariaLabel,\n tabIndex: '0'\n })\n );\n }\n }]);\n return Lottie;\n}(_react2.default.Component);\n\nexports.default = Lottie;\n\n\nLottie.propTypes = {\n eventListeners: _propTypes2.default.arrayOf(_propTypes2.default.object),\n options: _propTypes2.default.object.isRequired,\n height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),\n isStopped: _propTypes2.default.bool,\n isPaused: _propTypes2.default.bool,\n speed: _propTypes2.default.number,\n segments: _propTypes2.default.arrayOf(_propTypes2.default.number),\n direction: _propTypes2.default.number,\n ariaRole: _propTypes2.default.string,\n ariaLabel: _propTypes2.default.string,\n isClickToPauseDisabled: _propTypes2.default.bool,\n title: _propTypes2.default.string\n};\n\nLottie.defaultProps = {\n eventListeners: [],\n isStopped: false,\n isPaused: false,\n speed: 1,\n ariaRole: 'button',\n ariaLabel: 'animation',\n isClickToPauseDisabled: false,\n title: ''\n};","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","export var ListenerType;\n\n(function (ListenerType) {\n ListenerType[\"mouse\"] = \"mouse\";\n ListenerType[\"touch\"] = \"touch\";\n ListenerType[\"keyboard\"] = \"keyboard\";\n})(ListenerType || (ListenerType = {}));","// Used for MouseEvent.buttons (note the s on the end).\nvar MouseButtons = {\n Left: 1,\n Right: 2,\n Center: 4\n}; // Used for e.button (note the lack of an s on the end).\n\nvar MouseButton = {\n Left: 0,\n Center: 1,\n Right: 2\n};\n/**\n * Only touch events and mouse events where the left button is pressed should initiate a drag.\n * @param {MouseEvent | TouchEvent} e The event\n */\n\nexport function eventShouldStartDrag(e) {\n // For touch events, button will be undefined. If e.button is defined,\n // then it should be MouseButton.Left.\n return e.button === undefined || e.button === MouseButton.Left;\n}\n/**\n * Only touch events and mouse events where the left mouse button is no longer held should end a drag.\n * It's possible the user mouse downs with the left mouse button, then mouse down and ups with the right mouse button.\n * We don't want releasing the right mouse button to end the drag.\n * @param {MouseEvent | TouchEvent} e The event\n */\n\nexport function eventShouldEndDrag(e) {\n // Touch events will have buttons be undefined, while mouse events will have e.buttons's left button\n // bit field unset if the left mouse button has been released\n return e.buttons === undefined || (e.buttons & MouseButtons.Left) === 0;\n}\nexport function isTouchEvent(e) {\n return !!e.targetTouches;\n}","import { isTouchEvent } from './predicates';\nvar ELEMENT_NODE = 1;\nexport function getNodeClientOffset(node) {\n var el = node.nodeType === ELEMENT_NODE ? node : node.parentElement;\n\n if (!el) {\n return undefined;\n }\n\n var _el$getBoundingClient = el.getBoundingClientRect(),\n top = _el$getBoundingClient.top,\n left = _el$getBoundingClient.left;\n\n return {\n x: left,\n y: top\n };\n}\nexport function getEventClientTouchOffset(e, lastTargetTouchFallback) {\n if (e.targetTouches.length === 1) {\n return getEventClientOffset(e.targetTouches[0]);\n } else if (lastTargetTouchFallback && e.touches.length === 1) {\n if (e.touches[0].target === lastTargetTouchFallback.target) {\n return getEventClientOffset(e.touches[0]);\n }\n }\n}\nexport function getEventClientOffset(e, lastTargetTouchFallback) {\n if (isTouchEvent(e)) {\n return getEventClientTouchOffset(e, lastTargetTouchFallback);\n } else {\n return {\n x: e.clientX,\n y: e.clientY\n };\n }\n}","export var supportsPassive = function () {\n // simular to jQuery's test\n var supported = false;\n\n try {\n addEventListener('test', function () {// do nothing\n }, Object.defineProperty({}, 'passive', {\n get: function get() {\n supported = true;\n return true;\n }\n }));\n } catch (e) {// do nothing\n }\n\n return supported;\n}();","function _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 _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\nexport var OptionsReader = /*#__PURE__*/function () {\n function OptionsReader(args, context) {\n _classCallCheck(this, OptionsReader);\n\n _defineProperty(this, \"args\", void 0);\n\n _defineProperty(this, \"context\", void 0);\n\n this.args = args;\n this.context = context;\n }\n\n _createClass(OptionsReader, [{\n key: \"delay\",\n get: function get() {\n var _this$args$delay;\n\n return (_this$args$delay = this.args.delay) !== null && _this$args$delay !== void 0 ? _this$args$delay : 0;\n }\n }, {\n key: \"scrollAngleRanges\",\n get: function get() {\n return this.args.scrollAngleRanges;\n }\n }, {\n key: \"getDropTargetElementsAtPoint\",\n get: function get() {\n return this.args.getDropTargetElementsAtPoint;\n }\n }, {\n key: \"ignoreContextMenu\",\n get: function get() {\n var _this$args$ignoreCont;\n\n return (_this$args$ignoreCont = this.args.ignoreContextMenu) !== null && _this$args$ignoreCont !== void 0 ? _this$args$ignoreCont : false;\n }\n }, {\n key: \"enableHoverOutsideTarget\",\n get: function get() {\n var _this$args$enableHove;\n\n return (_this$args$enableHove = this.args.enableHoverOutsideTarget) !== null && _this$args$enableHove !== void 0 ? _this$args$enableHove : false;\n }\n }, {\n key: \"enableKeyboardEvents\",\n get: function get() {\n var _this$args$enableKeyb;\n\n return (_this$args$enableKeyb = this.args.enableKeyboardEvents) !== null && _this$args$enableKeyb !== void 0 ? _this$args$enableKeyb : false;\n }\n }, {\n key: \"enableMouseEvents\",\n get: function get() {\n var _this$args$enableMous;\n\n return (_this$args$enableMous = this.args.enableMouseEvents) !== null && _this$args$enableMous !== void 0 ? _this$args$enableMous : false;\n }\n }, {\n key: \"enableTouchEvents\",\n get: function get() {\n var _this$args$enableTouc;\n\n return (_this$args$enableTouc = this.args.enableTouchEvents) !== null && _this$args$enableTouc !== void 0 ? _this$args$enableTouc : true;\n }\n }, {\n key: \"touchSlop\",\n get: function get() {\n return this.args.touchSlop || 0;\n }\n }, {\n key: \"delayTouchStart\",\n get: function get() {\n var _ref, _this$args$delayTouch, _this$args, _this$args2;\n\n return (_ref = (_this$args$delayTouch = (_this$args = this.args) === null || _this$args === void 0 ? void 0 : _this$args.delayTouchStart) !== null && _this$args$delayTouch !== void 0 ? _this$args$delayTouch : (_this$args2 = this.args) === null || _this$args2 === void 0 ? void 0 : _this$args2.delay) !== null && _ref !== void 0 ? _ref : 0;\n }\n }, {\n key: \"delayMouseStart\",\n get: function get() {\n var _ref2, _this$args$delayMouse, _this$args3, _this$args4;\n\n return (_ref2 = (_this$args$delayMouse = (_this$args3 = this.args) === null || _this$args3 === void 0 ? void 0 : _this$args3.delayMouseStart) !== null && _this$args$delayMouse !== void 0 ? _this$args$delayMouse : (_this$args4 = this.args) === null || _this$args4 === void 0 ? void 0 : _this$args4.delay) !== null && _ref2 !== void 0 ? _ref2 : 0;\n }\n }, {\n key: \"window\",\n get: function get() {\n if (this.context && this.context.window) {\n return this.context.window;\n } else if (typeof window !== 'undefined') {\n return window;\n }\n\n return undefined;\n }\n }, {\n key: \"document\",\n get: function get() {\n var _this$context;\n\n if ((_this$context = this.context) !== null && _this$context !== void 0 && _this$context.document) {\n return this.context.document;\n }\n\n if (this.window) {\n return this.window.document;\n }\n\n return undefined;\n }\n }, {\n key: \"rootElement\",\n get: function get() {\n var _this$args5;\n\n return ((_this$args5 = this.args) === null || _this$args5 === void 0 ? void 0 : _this$args5.rootElement) || this.document;\n }\n }]);\n\n return OptionsReader;\n}();","var _eventNames;\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 _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\nimport { invariant } from '@react-dnd/invariant';\nimport { ListenerType } from './interfaces';\nimport { eventShouldStartDrag, eventShouldEndDrag, isTouchEvent } from './utils/predicates';\nimport { getEventClientOffset, getNodeClientOffset } from './utils/offsets';\nimport { distance, inAngleRanges } from './utils/math';\nimport { supportsPassive } from './utils/supportsPassive';\nimport { OptionsReader } from './OptionsReader';\nvar eventNames = (_eventNames = {}, _defineProperty(_eventNames, ListenerType.mouse, {\n start: 'mousedown',\n move: 'mousemove',\n end: 'mouseup',\n contextmenu: 'contextmenu'\n}), _defineProperty(_eventNames, ListenerType.touch, {\n start: 'touchstart',\n move: 'touchmove',\n end: 'touchend'\n}), _defineProperty(_eventNames, ListenerType.keyboard, {\n keydown: 'keydown'\n}), _eventNames);\nexport var TouchBackendImpl = /*#__PURE__*/function () {\n // React-DnD Dependencies\n // Internal State\n // Patch for iOS 13, discussion over #1585\n function TouchBackendImpl(manager, context, options) {\n var _this = this;\n\n _classCallCheck(this, TouchBackendImpl);\n\n _defineProperty(this, \"options\", void 0);\n\n _defineProperty(this, \"actions\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"sourceNodes\", void 0);\n\n _defineProperty(this, \"sourcePreviewNodes\", void 0);\n\n _defineProperty(this, \"sourcePreviewNodeOptions\", void 0);\n\n _defineProperty(this, \"targetNodes\", void 0);\n\n _defineProperty(this, \"_mouseClientOffset\", void 0);\n\n _defineProperty(this, \"_isScrolling\", void 0);\n\n _defineProperty(this, \"listenerTypes\", void 0);\n\n _defineProperty(this, \"moveStartSourceIds\", void 0);\n\n _defineProperty(this, \"waitingForDelay\", void 0);\n\n _defineProperty(this, \"timeout\", void 0);\n\n _defineProperty(this, \"dragOverTargetIds\", void 0);\n\n _defineProperty(this, \"draggedSourceNode\", void 0);\n\n _defineProperty(this, \"draggedSourceNodeRemovalObserver\", void 0);\n\n _defineProperty(this, \"lastTargetTouchFallback\", void 0);\n\n _defineProperty(this, \"getSourceClientOffset\", function (sourceId) {\n var element = _this.sourceNodes.get(sourceId);\n\n return element && getNodeClientOffset(element);\n });\n\n _defineProperty(this, \"handleTopMoveStartCapture\", function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n }\n\n _this.moveStartSourceIds = [];\n });\n\n _defineProperty(this, \"handleMoveStart\", function (sourceId) {\n // Just because we received an event doesn't necessarily mean we need to collect drag sources.\n // We only collect start collecting drag sources on touch and left mouse events.\n if (Array.isArray(_this.moveStartSourceIds)) {\n _this.moveStartSourceIds.unshift(sourceId);\n }\n });\n\n _defineProperty(this, \"handleTopMoveStart\", function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n } // Don't prematurely preventDefault() here since it might:\n // 1. Mess up scrolling\n // 2. Mess up long tap (which brings up context menu)\n // 3. If there's an anchor link as a child, tap won't be triggered on link\n\n\n var clientOffset = getEventClientOffset(e);\n\n if (clientOffset) {\n if (isTouchEvent(e)) {\n _this.lastTargetTouchFallback = e.targetTouches[0];\n }\n\n _this._mouseClientOffset = clientOffset;\n }\n\n _this.waitingForDelay = false;\n });\n\n _defineProperty(this, \"handleTopMoveStartDelay\", function (e) {\n if (!eventShouldStartDrag(e)) {\n return;\n }\n\n var delay = e.type === eventNames.touch.start ? _this.options.delayTouchStart : _this.options.delayMouseStart;\n _this.timeout = setTimeout(_this.handleTopMoveStart.bind(_this, e), delay);\n _this.waitingForDelay = true;\n });\n\n _defineProperty(this, \"handleTopMoveCapture\", function () {\n _this.dragOverTargetIds = [];\n });\n\n _defineProperty(this, \"handleMove\", function (_evt, targetId) {\n if (_this.dragOverTargetIds) {\n _this.dragOverTargetIds.unshift(targetId);\n }\n });\n\n _defineProperty(this, \"handleTopMove\", function (e) {\n if (_this.timeout) {\n clearTimeout(_this.timeout);\n }\n\n if (!_this.document || _this.waitingForDelay) {\n return;\n }\n\n var moveStartSourceIds = _this.moveStartSourceIds,\n dragOverTargetIds = _this.dragOverTargetIds;\n var enableHoverOutsideTarget = _this.options.enableHoverOutsideTarget;\n var clientOffset = getEventClientOffset(e, _this.lastTargetTouchFallback);\n\n if (!clientOffset) {\n return;\n } // If the touch move started as a scroll, or is is between the scroll angles\n\n\n if (_this._isScrolling || !_this.monitor.isDragging() && inAngleRanges(_this._mouseClientOffset.x || 0, _this._mouseClientOffset.y || 0, clientOffset.x, clientOffset.y, _this.options.scrollAngleRanges)) {\n _this._isScrolling = true;\n return;\n } // If we're not dragging and we've moved a little, that counts as a drag start\n\n\n if (!_this.monitor.isDragging() && // eslint-disable-next-line no-prototype-builtins\n _this._mouseClientOffset.hasOwnProperty('x') && moveStartSourceIds && distance(_this._mouseClientOffset.x || 0, _this._mouseClientOffset.y || 0, clientOffset.x, clientOffset.y) > (_this.options.touchSlop ? _this.options.touchSlop : 0)) {\n _this.moveStartSourceIds = undefined;\n\n _this.actions.beginDrag(moveStartSourceIds, {\n clientOffset: _this._mouseClientOffset,\n getSourceClientOffset: _this.getSourceClientOffset,\n publishSource: false\n });\n }\n\n if (!_this.monitor.isDragging()) {\n return;\n }\n\n var sourceNode = _this.sourceNodes.get(_this.monitor.getSourceId());\n\n _this.installSourceNodeRemovalObserver(sourceNode);\n\n _this.actions.publishDragSource();\n\n if (e.cancelable) e.preventDefault(); // Get the node elements of the hovered DropTargets\n\n var dragOverTargetNodes = (dragOverTargetIds || []).map(function (key) {\n return _this.targetNodes.get(key);\n }).filter(function (e) {\n return !!e;\n }); // Get the a ordered list of nodes that are touched by\n\n var elementsAtPoint = _this.options.getDropTargetElementsAtPoint ? _this.options.getDropTargetElementsAtPoint(clientOffset.x, clientOffset.y, dragOverTargetNodes) : _this.document.elementsFromPoint(clientOffset.x, clientOffset.y); // Extend list with parents that are not receiving elementsFromPoint events (size 0 elements and svg groups)\n\n var elementsAtPointExtended = [];\n\n for (var nodeId in elementsAtPoint) {\n // eslint-disable-next-line no-prototype-builtins\n if (!elementsAtPoint.hasOwnProperty(nodeId)) {\n continue;\n }\n\n var currentNode = elementsAtPoint[nodeId];\n elementsAtPointExtended.push(currentNode);\n\n while (currentNode) {\n currentNode = currentNode.parentElement;\n\n if (currentNode && elementsAtPointExtended.indexOf(currentNode) === -1) {\n elementsAtPointExtended.push(currentNode);\n }\n }\n }\n\n var orderedDragOverTargetIds = elementsAtPointExtended // Filter off nodes that arent a hovered DropTargets nodes\n .filter(function (node) {\n return dragOverTargetNodes.indexOf(node) > -1;\n }) // Map back the nodes elements to targetIds\n .map(function (node) {\n return _this._getDropTargetId(node);\n }) // Filter off possible null rows\n .filter(function (node) {\n return !!node;\n }).filter(function (id, index, ids) {\n return ids.indexOf(id) === index;\n }); // Invoke hover for drop targets when source node is still over and pointer is outside\n\n if (enableHoverOutsideTarget) {\n for (var targetId in _this.targetNodes) {\n var targetNode = _this.targetNodes.get(targetId);\n\n if (sourceNode && targetNode && targetNode.contains(sourceNode) && orderedDragOverTargetIds.indexOf(targetId) === -1) {\n orderedDragOverTargetIds.unshift(targetId);\n break;\n }\n }\n } // Reverse order because dnd-core reverse it before calling the DropTarget drop methods\n\n\n orderedDragOverTargetIds.reverse();\n\n _this.actions.hover(orderedDragOverTargetIds, {\n clientOffset: clientOffset\n });\n });\n\n _defineProperty(this, \"_getDropTargetId\", function (node) {\n var keys = _this.targetNodes.keys();\n\n var next = keys.next();\n\n while (next.done === false) {\n var targetId = next.value;\n\n if (node === _this.targetNodes.get(targetId)) {\n return targetId;\n } else {\n next = keys.next();\n }\n }\n\n return undefined;\n });\n\n _defineProperty(this, \"handleTopMoveEndCapture\", function (e) {\n _this._isScrolling = false;\n _this.lastTargetTouchFallback = undefined;\n\n if (!eventShouldEndDrag(e)) {\n return;\n }\n\n if (!_this.monitor.isDragging() || _this.monitor.didDrop()) {\n _this.moveStartSourceIds = undefined;\n return;\n }\n\n if (e.cancelable) e.preventDefault();\n _this._mouseClientOffset = {};\n\n _this.uninstallSourceNodeRemovalObserver();\n\n _this.actions.drop();\n\n _this.actions.endDrag();\n });\n\n _defineProperty(this, \"handleCancelOnEscape\", function (e) {\n if (e.key === 'Escape' && _this.monitor.isDragging()) {\n _this._mouseClientOffset = {};\n\n _this.uninstallSourceNodeRemovalObserver();\n\n _this.actions.endDrag();\n }\n });\n\n this.options = new OptionsReader(options, context);\n this.actions = manager.getActions();\n this.monitor = manager.getMonitor();\n this.sourceNodes = new Map();\n this.sourcePreviewNodes = new Map();\n this.sourcePreviewNodeOptions = new Map();\n this.targetNodes = new Map();\n this.listenerTypes = [];\n this._mouseClientOffset = {};\n this._isScrolling = false;\n\n if (this.options.enableMouseEvents) {\n this.listenerTypes.push(ListenerType.mouse);\n }\n\n if (this.options.enableTouchEvents) {\n this.listenerTypes.push(ListenerType.touch);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.listenerTypes.push(ListenerType.keyboard);\n }\n }\n /**\n * Generate profiling statistics for the HTML5Backend.\n */\n\n\n _createClass(TouchBackendImpl, [{\n key: \"profile\",\n value: function profile() {\n var _this$dragOverTargetI;\n\n return {\n sourceNodes: this.sourceNodes.size,\n sourcePreviewNodes: this.sourcePreviewNodes.size,\n sourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n targetNodes: this.targetNodes.size,\n dragOverTargetIds: ((_this$dragOverTargetI = this.dragOverTargetIds) === null || _this$dragOverTargetI === void 0 ? void 0 : _this$dragOverTargetI.length) || 0\n };\n } // public for test\n\n }, {\n key: \"document\",\n get: function get() {\n return this.options.document;\n }\n }, {\n key: \"setup\",\n value: function setup() {\n var root = this.options.rootElement;\n\n if (!root) {\n return;\n }\n\n invariant(!TouchBackendImpl.isSetUp, 'Cannot have two Touch backends at the same time.');\n TouchBackendImpl.isSetUp = true;\n this.addEventListener(root, 'start', this.getTopMoveStartHandler());\n this.addEventListener(root, 'start', this.handleTopMoveStartCapture, true);\n this.addEventListener(root, 'move', this.handleTopMove);\n this.addEventListener(root, 'move', this.handleTopMoveCapture, true);\n this.addEventListener(root, 'end', this.handleTopMoveEndCapture, true);\n\n if (this.options.enableMouseEvents && !this.options.ignoreContextMenu) {\n this.addEventListener(root, 'contextmenu', this.handleTopMoveEndCapture);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.addEventListener(root, 'keydown', this.handleCancelOnEscape, true);\n }\n }\n }, {\n key: \"teardown\",\n value: function teardown() {\n var root = this.options.rootElement;\n\n if (!root) {\n return;\n }\n\n TouchBackendImpl.isSetUp = false;\n this._mouseClientOffset = {};\n this.removeEventListener(root, 'start', this.handleTopMoveStartCapture, true);\n this.removeEventListener(root, 'start', this.handleTopMoveStart);\n this.removeEventListener(root, 'move', this.handleTopMoveCapture, true);\n this.removeEventListener(root, 'move', this.handleTopMove);\n this.removeEventListener(root, 'end', this.handleTopMoveEndCapture, true);\n\n if (this.options.enableMouseEvents && !this.options.ignoreContextMenu) {\n this.removeEventListener(root, 'contextmenu', this.handleTopMoveEndCapture);\n }\n\n if (this.options.enableKeyboardEvents) {\n this.removeEventListener(root, 'keydown', this.handleCancelOnEscape, true);\n }\n\n this.uninstallSourceNodeRemovalObserver();\n }\n }, {\n key: \"addEventListener\",\n value: function addEventListener(subject, event, handler, capture) {\n var options = supportsPassive ? {\n capture: capture,\n passive: false\n } : capture;\n this.listenerTypes.forEach(function (listenerType) {\n var evt = eventNames[listenerType][event];\n\n if (evt) {\n subject.addEventListener(evt, handler, options);\n }\n });\n }\n }, {\n key: \"removeEventListener\",\n value: function removeEventListener(subject, event, handler, capture) {\n var options = supportsPassive ? {\n capture: capture,\n passive: false\n } : capture;\n this.listenerTypes.forEach(function (listenerType) {\n var evt = eventNames[listenerType][event];\n\n if (evt) {\n subject.removeEventListener(evt, handler, options);\n }\n });\n }\n }, {\n key: \"connectDragSource\",\n value: function connectDragSource(sourceId, node) {\n var _this2 = this;\n\n var handleMoveStart = this.handleMoveStart.bind(this, sourceId);\n this.sourceNodes.set(sourceId, node);\n this.addEventListener(node, 'start', handleMoveStart);\n return function () {\n _this2.sourceNodes.delete(sourceId);\n\n _this2.removeEventListener(node, 'start', handleMoveStart);\n };\n }\n }, {\n key: \"connectDragPreview\",\n value: function connectDragPreview(sourceId, node, options) {\n var _this3 = this;\n\n this.sourcePreviewNodeOptions.set(sourceId, options);\n this.sourcePreviewNodes.set(sourceId, node);\n return function () {\n _this3.sourcePreviewNodes.delete(sourceId);\n\n _this3.sourcePreviewNodeOptions.delete(sourceId);\n };\n }\n }, {\n key: \"connectDropTarget\",\n value: function connectDropTarget(targetId, node) {\n var _this4 = this;\n\n var root = this.options.rootElement;\n\n if (!this.document || !root) {\n return function () {\n /* noop */\n };\n }\n\n var handleMove = function handleMove(e) {\n if (!_this4.document || !root || !_this4.monitor.isDragging()) {\n return;\n }\n\n var coords;\n /**\n * Grab the coordinates for the current mouse/touch position\n */\n\n switch (e.type) {\n case eventNames.mouse.move:\n coords = {\n x: e.clientX,\n y: e.clientY\n };\n break;\n\n case eventNames.touch.move:\n coords = {\n x: e.touches[0].clientX,\n y: e.touches[0].clientY\n };\n break;\n }\n /**\n * Use the coordinates to grab the element the drag ended on.\n * If the element is the same as the target node (or any of it's children) then we have hit a drop target and can handle the move.\n */\n\n\n var droppedOn = coords != null ? _this4.document.elementFromPoint(coords.x, coords.y) : undefined;\n var childMatch = droppedOn && node.contains(droppedOn);\n\n if (droppedOn === node || childMatch) {\n return _this4.handleMove(e, targetId);\n }\n };\n /**\n * Attaching the event listener to the body so that touchmove will work while dragging over multiple target elements.\n */\n\n\n this.addEventListener(this.document.body, 'move', handleMove);\n this.targetNodes.set(targetId, node);\n return function () {\n if (_this4.document) {\n _this4.targetNodes.delete(targetId);\n\n _this4.removeEventListener(_this4.document.body, 'move', handleMove);\n }\n };\n }\n }, {\n key: \"getTopMoveStartHandler\",\n value: function getTopMoveStartHandler() {\n if (!this.options.delayTouchStart && !this.options.delayMouseStart) {\n return this.handleTopMoveStart;\n }\n\n return this.handleTopMoveStartDelay;\n }\n }, {\n key: \"installSourceNodeRemovalObserver\",\n value: function installSourceNodeRemovalObserver(node) {\n var _this5 = this;\n\n this.uninstallSourceNodeRemovalObserver();\n this.draggedSourceNode = node;\n this.draggedSourceNodeRemovalObserver = new MutationObserver(function () {\n if (node && !node.parentElement) {\n _this5.resurrectSourceNode();\n\n _this5.uninstallSourceNodeRemovalObserver();\n }\n });\n\n if (!node || !node.parentElement) {\n return;\n }\n\n this.draggedSourceNodeRemovalObserver.observe(node.parentElement, {\n childList: true\n });\n }\n }, {\n key: \"resurrectSourceNode\",\n value: function resurrectSourceNode() {\n if (this.document && this.draggedSourceNode) {\n this.draggedSourceNode.style.display = 'none';\n this.draggedSourceNode.removeAttribute('data-reactid');\n this.document.body.appendChild(this.draggedSourceNode);\n }\n }\n }, {\n key: \"uninstallSourceNodeRemovalObserver\",\n value: function uninstallSourceNodeRemovalObserver() {\n if (this.draggedSourceNodeRemovalObserver) {\n this.draggedSourceNodeRemovalObserver.disconnect();\n }\n\n this.draggedSourceNodeRemovalObserver = undefined;\n this.draggedSourceNode = undefined;\n }\n }]);\n\n return TouchBackendImpl;\n}();\n\n_defineProperty(TouchBackendImpl, \"isSetUp\", void 0);","export function distance(x1, y1, x2, y2) {\n return Math.sqrt(Math.pow(Math.abs(x2 - x1), 2) + Math.pow(Math.abs(y2 - y1), 2));\n}\nexport function inAngleRanges(x1, y1, x2, y2, angleRanges) {\n if (!angleRanges) {\n return false;\n }\n\n var angle = Math.atan2(y2 - y1, x2 - x1) * 180 / Math.PI + 180;\n\n for (var i = 0; i < angleRanges.length; ++i) {\n if ((angleRanges[i].start == null || angle >= angleRanges[i].start) && (angleRanges[i].end == null || angle <= angleRanges[i].end)) {\n return true;\n }\n }\n\n return false;\n}","import { TouchBackendImpl } from './TouchBackendImpl';\nexport * from './interfaces';\nexport * from './TouchBackendImpl';\nexport var TouchBackend = function createBackend(manager) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return new TouchBackendImpl(manager, context, options);\n};","/** @license React v17.0.2\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'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(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(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(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 jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(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 mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=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!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(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)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;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 Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(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(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){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,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta: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=d.sibling}d=\nWg(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=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&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}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,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.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(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);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.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(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\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","/**\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","(typeof navigator !== \"undefined\") && (function(root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(function() {\n return factory(root);\n });\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory(root);\n } else {\n root.lottie = factory(root);\n root.bodymovin = root.lottie;\n }\n}((window || {}), function(window) {\n\t/* global locationHref:writable, animationManager, subframeEnabled:writable, defaultCurveSegments:writable, roundValues,\r\nexpressionsPlugin:writable, PropertyFactory, ShapePropertyFactory, Matrix, idPrefix:writable, _useWebWorker:writable */\r\n/* exported locationHref, subframeEnabled, expressionsPlugin, idPrefix, _useWebWorker */\r\n\r\n'use strict';\r\n\r\n/* exported svgNS, locationHref, initialDefaultFrame, _useWebWorker */\r\n\r\nvar svgNS = 'http://www.w3.org/2000/svg';\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\r\nvar _useWebWorker = false;\r\n\r\n/* global createSizedArray */\r\n/* exported subframeEnabled, expressionsPlugin, isSafari, cachedColors, bmPow, bmSqrt, bmFloor, bmMax, bmMin, ProjectInterface,\r\ndefaultCurveSegments, degToRads, roundCorner, bmRnd, styleDiv, BMEnterFrameEvent, BMCompleteEvent, BMCompleteLoopEvent,\r\nBMSegmentStartEvent, BMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, BMAnimationConfigErrorEvent, createElementID,\r\naddSaturationToRGB, addBrightnessToRGB, addHueToRGB, rgbToHex */\r\n\r\nvar subframeEnabled = true;\r\nvar idPrefix = '';\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bmRnd;\r\nvar bmPow = Math.pow;\r\nvar bmSqrt = Math.sqrt;\r\nvar bmFloor = Math.floor;\r\nvar bmMax = Math.max;\r\nvar bmMin = Math.min;\r\n\r\nvar BMMath = {};\r\n(function () {\r\n var propertyNames = ['abs', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atanh', 'atan2', 'ceil', 'cbrt', 'expm1', 'clz32', 'cos', 'cosh', 'exp', 'floor', 'fround', 'hypot', 'imul', 'log', 'log1p', 'log2', 'log10', 'max', 'min', 'pow', 'random', 'round', 'sign', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', 'E', 'LN10', 'LN2', 'LOG10E', 'LOG2E', 'PI', 'SQRT1_2', 'SQRT2'];\r\n var i;\r\n var len = propertyNames.length;\r\n for (i = 0; i < len; i += 1) {\r\n BMMath[propertyNames[i]] = Math[propertyNames[i]];\r\n }\r\n}());\r\n\r\nfunction ProjectInterface() { return {}; }\r\n\r\nBMMath.random = Math.random;\r\nBMMath.abs = function (val) {\r\n var tOfVal = typeof val;\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 for (i = 0; i < len; i += 1) {\r\n absArr[i] = Math.abs(val[i]);\r\n }\r\n return absArr;\r\n }\r\n return Math.abs(val);\r\n};\r\nvar defaultCurveSegments = 150;\r\nvar degToRads = Math.PI / 180;\r\nvar roundCorner = 0.5519;\r\n\r\nfunction roundValues(flag) {\r\n if (flag) {\r\n bmRnd = Math.round;\r\n } else {\r\n bmRnd = function (val) {\r\n return val;\r\n };\r\n }\r\n}\r\nroundValues(false);\r\n\r\nfunction 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\nfunction 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\nfunction BMCompleteEvent(type, frameMultiplier) {\r\n this.type = type;\r\n this.direction = frameMultiplier < 0 ? -1 : 1;\r\n}\r\n\r\nfunction 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\nfunction BMSegmentStartEvent(type, firstFrame, totalFrames) {\r\n this.type = type;\r\n this.firstFrame = firstFrame;\r\n this.totalFrames = totalFrames;\r\n}\r\n\r\nfunction BMDestroyEvent(type, target) {\r\n this.type = type;\r\n this.target = target;\r\n}\r\n\r\nfunction BMRenderFrameErrorEvent(nativeError, currentTime) {\r\n this.type = 'renderFrameError';\r\n this.nativeError = nativeError;\r\n this.currentTime = currentTime;\r\n}\r\n\r\nfunction BMConfigErrorEvent(nativeError) {\r\n this.type = 'configError';\r\n this.nativeError = nativeError;\r\n}\r\n\r\nfunction BMAnimationConfigErrorEvent(type, nativeError) {\r\n this.type = type;\r\n this.nativeError = nativeError;\r\n}\r\n\r\nvar createElementID = (function () {\r\n var _count = 0;\r\n return function createID() {\r\n _count += 1;\r\n return idPrefix + '__lottie_element_' + _count;\r\n };\r\n}());\r\n\r\nfunction 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 switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n default: break;\r\n }\r\n return [r,\r\n g,\r\n b];\r\n}\r\n\r\nfunction 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: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6 : 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n default: break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v,\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[1] += offset;\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 return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n } else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color, offset) {\r\n var hsv = RGBtoHSV(color[0] * 255, color[1] * 255, color[2] * 255);\r\n hsv[0] += offset / 360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n } else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0], hsv[1], hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function () {\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for (i = 0; i < 256; i += 1) {\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length === 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function (r, g, b) {\r\n if (r < 0) {\r\n r = 0;\r\n }\r\n if (g < 0) {\r\n g = 0;\r\n }\r\n if (b < 0) {\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\r\n\r\nfunction BaseEvent() {}\r\nBaseEvent.prototype = {\r\n triggerEvent: function (eventName, args) {\r\n if (this._cbs[eventName]) {\r\n var callbacks = this._cbs[eventName];\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 (eventName, callback) {\r\n if (!this._cbs[eventName]) {\r\n this._cbs[eventName] = [];\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 (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 while (i < len) {\r\n if (this._cbs[eventName][i] === callback) {\r\n this._cbs[eventName].splice(i, 1);\r\n i -= 1;\r\n len -= 1;\r\n }\r\n i += 1;\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/* exported createTypedArray, createSizedArray */\r\n\r\nvar createTypedArray = (function () {\r\n function createRegularArray(type, len) {\r\n var i = 0;\r\n var arr = [];\r\n var value;\r\n switch (type) {\r\n case 'int16':\r\n case 'uint8c':\r\n value = 1;\r\n break;\r\n default:\r\n value = 1.1;\r\n break;\r\n }\r\n for (i = 0; i < len; i += 1) {\r\n arr.push(value);\r\n }\r\n return arr;\r\n }\r\n function createTypedArrayFactory(type, len) {\r\n if (type === 'float32') {\r\n return new Float32Array(len);\r\n } if (type === 'int16') {\r\n return new Int16Array(len);\r\n } if (type === 'uint8c') {\r\n return new Uint8ClampedArray(len);\r\n }\r\n return createRegularArray(type, len);\r\n }\r\n if (typeof Uint8ClampedArray === 'function' && typeof Float32Array === 'function') {\r\n return createTypedArrayFactory;\r\n }\r\n return createRegularArray;\r\n}());\r\n\r\nfunction createSizedArray(len) {\r\n return Array.apply(null, { length: len });\r\n}\r\n\r\n/* global svgNS */\r\n/* exported createNS */\r\n\r\nfunction createNS(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElementNS(svgNS, type);\r\n}\r\n\r\n/* exported createTag */\r\n\r\nfunction createTag(type) {\r\n // return {appendChild:function(){},setAttribute:function(){},style:{}}\r\n return document.createElement(type);\r\n}\r\n\r\nfunction DynamicPropertyContainer() {}\r\nDynamicPropertyContainer.prototype = {\r\n addDynamicProperty: function (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 () {\r\n this._mdf = false;\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n },\r\n initDynamicPropertyContainer: function (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/* exported getBlendMode */\r\n\r\nvar 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\r\n return function (mode) {\r\n return blendModeEnums[mode] || '';\r\n };\r\n}());\r\n\r\n/* exported lineCapEnum, lineJoinEnum */\r\n\r\nvar lineCapEnum = {\r\n 1: 'butt',\r\n 2: 'round',\r\n 3: 'square',\r\n};\r\n\r\nvar lineJoinEnum = {\r\n 1: 'miter',\r\n 2: 'round',\r\n 3: 'bevel',\r\n};\r\n\r\n/* global createTypedArray */\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\nvar 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 var mCos = _cos(angle);\r\n var mSin = _sin(angle);\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 var mCos = _cos(angle);\r\n var mSin = _sin(angle);\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 var mCos = _cos(angle);\r\n var mSin = _sin(angle);\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 var mCos = _cos(angle);\r\n var mSin = _sin(angle);\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 var mSin = _sin(angle);\r\n return this._t(mCos, mSin, 0, 0, -mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(1, 0, 0, 0, _tan(ax), 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)\r\n ._t(mCos, -mSin, 0, 0, mSin, mCos, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);\r\n // 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 if (sx === 1 && sy === 1 && sz === 1) {\r\n return this;\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 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 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\r\n /* matrix order (canvas compatible):\r\n * ace\r\n * bdf\r\n * 001\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\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\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\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\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 return this._identity;\r\n }\r\n\r\n function equals(matr) {\r\n var i = 0;\r\n while (i < 16) {\r\n if (matr.props[i] !== this.props[i]) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n }\r\n\r\n function clone(matr) {\r\n var i;\r\n for (i = 0; i < 16; i += 1) {\r\n matr.props[i] = this.props[i];\r\n }\r\n return matr;\r\n }\r\n\r\n function cloneFromProps(props) {\r\n var i;\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 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 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 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 for (i = 0; i < len; i += 1) {\r\n retPts[i] = inversePoint(pts[i]);\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 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 return arr;\r\n }\r\n\r\n function applyToPointArray(x, y, z) {\r\n var arr;\r\n if (this.isIdentity()) {\r\n arr = [x, y, z];\r\n } else {\r\n arr = [\r\n x * this.props[0] + y * this.props[4] + z * this.props[8] + this.props[12],\r\n x * this.props[1] + y * this.props[5] + z * this.props[9] + this.props[13],\r\n 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 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 /* 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 while (i < 16) {\r\n cssValue += _rnd(props[i] * v) / v;\r\n cssValue += i === 15 ? ')' : ',';\r\n i += 1;\r\n }\r\n return cssValue;\r\n }\r\n\r\n function roundMatrixProperty(val) {\r\n var v = 10000;\r\n if ((val < 0.000001 && val > 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n // Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /* if(this.isIdentity()) {\r\n return '';\r\n } */\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return 'matrix(' + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + ')';\r\n }\r\n\r\n return function () {\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this.getInverseMatrix = getInverseMatrix;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\r\n/* eslint-disable */\r\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\r\n/* eslint-disable */\r\nvar BezierFactory = (function () {\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a, b, c, d, nm) {\r\n var str = nm || ('bez_' + a + '_' + b + '_' + c + '_' + d).replace(/\\./g, 'p');\r\n if (beziers[str]) {\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a, b, c, d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n // These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === 'function';\r\n\r\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C(aA1) { return 3.0 * aA1; }\r\n\r\n // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier(aT, aA1, aA2) {\r\n return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT;\r\n }\r\n\r\n // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope(aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\r\n var currentX,\r\n currentT,\r\n i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing(points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2) { this._calcSampleValues(); }\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample + 1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } if (initialSlope === 0.0) {\r\n return guessForT;\r\n }\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n },\r\n };\r\n\r\n return ob;\r\n}());\r\n\r\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) { // eslint-disable-line no-plusplus\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if (!window.requestAnimationFrame) {\r\n window.requestAnimationFrame = function (callback) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n }\r\n if (!window.cancelAnimationFrame) {\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n }\r\n}());\r\n\r\n/* exported extendPrototype, getDescriptor, createProxyFunction */\r\n\r\nfunction extendPrototype(sources, destination) {\r\n var i;\r\n var len = sources.length;\r\n var sourcePrototype;\r\n for (i = 0; i < len; i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (Object.prototype.hasOwnProperty.call(sourcePrototype, attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n function ProxyFunction() {}\r\n ProxyFunction.prototype = prototype;\r\n return ProxyFunction;\r\n}\r\n\r\n/* global segmentsLengthPool, defaultCurveSegments, createSizedArray, bmPow, bmSqrt, bmFloor, createTypedArray, bezierLengthPool */\r\n/* exported bez */\r\n\r\nfunction 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 var dist1 = math.sqrt(math.pow(x2 - x1, 2) + math.pow(y2 - y1, 2) + math.pow(z2 - z1, 2));\r\n var dist2 = math.sqrt(math.pow(x3 - x1, 2) + math.pow(y3 - y1, 2) + math.pow(z3 - z1, 2));\r\n var dist3 = math.sqrt(math.pow(x3 - x2, 2) + math.pow(y3 - y2, 2) + math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if (dist1 > dist2) {\r\n if (dist1 > dist3) {\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if (dist3 > dist2) {\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function () {\r\n return function (pt1, pt2, pt3, pt4) {\r\n var curveSegments = defaultCurveSegments;\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 for (k = 0; k < curveSegments; k += 1) {\r\n perc = k / (curveSegments - 1);\r\n ptDistance = 0;\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 if (lastPoint[i] !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\r\n }\r\n lastPoint[i] = point[i];\r\n }\r\n if (ptDistance) {\r\n ptDistance = bmSqrt(ptDistance);\r\n addedLength += ptDistance;\r\n }\r\n lengthData.percents[k] = perc;\r\n lengthData.lengths[k] = addedLength;\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 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 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 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\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 if (!storedData[bezierName]) {\r\n var curveSegments = defaultCurveSegments;\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 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 var bezierData = new BezierData(curveSegments);\r\n len = pt3.length;\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 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 if (lastPoint !== null) {\r\n ptDistance += bmPow(point[i] - lastPoint[i], 2);\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 bezierData.segmentLength = addedLength;\r\n storedData[bezierName] = bezierData;\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 if (initPos === len - 1 || initPos === 0 || lengthPos === lengths[initPos]) {\r\n return percents[initPos];\r\n }\r\n var dir = lengths[initPos] > lengthPos ? -1 : 1;\r\n var flag = true;\r\n while (flag) {\r\n if (lengths[initPos] <= lengthPos && lengths[initPos + 1] > lengthPos) {\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos + 1] - lengths[initPos]);\r\n flag = false;\r\n } else {\r\n initPos += dir;\r\n }\r\n if (initPos < 0 || initPos >= len - 1) {\r\n // FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if (initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos + 1] - percents[initPos]) * lPerc;\r\n }\r\n\r\n 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 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 var t0t0u0_3 = t0 * t0 * u0 * 3; // eslint-disable-line camelcase\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 var t0t0u1_3 = t0 * t0 * u1 + u0 * t0 * t1 + t0 * u0 * t1; // eslint-disable-line camelcase\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 var t0t1u1_3 = t0 * t1 * u1 + u0 * t1 * t1 + t0 * u1 * t1; // eslint-disable-line camelcase\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 var t1t1u1_3 = t1 * t1 * u1 + u1 * t1 * t1 + t1 * u1 * t1; // eslint-disable-line camelcase\r\n var t1t1t1 = t1 * t1 * t1;\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 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 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 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\nvar bez = bezFunction();\r\n\r\n/* global _useWebWorker */\r\n\r\nvar 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 () {\r\n\r\n },\r\n postMessage: function (path) {\r\n workerFn({\r\n data: path,\r\n });\r\n },\r\n };\r\n var _workerSelf = {\r\n postMessage: function (data) {\r\n workerProxy.onmessage({\r\n data: data,\r\n });\r\n },\r\n };\r\n function createWorker(fn) {\r\n if (window.Worker && window.Blob && _useWebWorker) {\r\n var blob = new Blob(['var _workerSelf = self; self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n // var blob = new Blob(['self.onmessage = ', fn.toString()], { type: 'text/javascript' });\r\n var url = URL.createObjectURL(blob);\r\n return new Worker(url);\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 /* exported dataManager */\r\n\r\n function dataFunctionManager() {\r\n // var tCanvasHelper = createTag('canvas').getContext('2d');\r\n\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 for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (('ks' in layerData) && !layerData.completed) {\r\n layerData.completed = true;\r\n if (layerData.tt) {\r\n layers[i - 1].td = layerData.tt;\r\n }\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\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 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 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 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 findCompLayers(id, comps) {\r\n var i = 0;\r\n var len = comps.length;\r\n while (i < len) {\r\n if (comps[i].id === id) {\r\n if (!comps[i].layers.__used) {\r\n comps[i].layers.__used = true;\r\n return comps[i].layers;\r\n }\r\n return JSON.parse(JSON.stringify(comps[i].layers));\r\n }\r\n i += 1;\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 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 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 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 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 if (minimum[0] > animVersion[0]) {\r\n return true;\r\n } if (animVersion[0] > minimum[0]) {\r\n return false;\r\n }\r\n if (minimum[1] > animVersion[1]) {\r\n return true;\r\n } if (animVersion[1] > minimum[1]) {\r\n return false;\r\n }\r\n if (minimum[2] > animVersion[2]) {\r\n return true;\r\n } if (animVersion[2] > minimum[2]) {\r\n return false;\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 {\r\n s: documentData,\r\n t: 0,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n function iterateLayers(layers) {\r\n var i;\r\n var len = layers.length;\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 if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\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 var j;\r\n var jLen;\r\n var pathData;\r\n var paths;\r\n for (i = 0; i < len; i += 1) {\r\n if (animationData.chars[i].data && animationData.chars[i].data.shapes) {\r\n paths = animationData.chars[i].data.shapes[0].it;\r\n jLen = paths.length;\r\n\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = paths[j].ks.k;\r\n if (!pathData.__converted) {\r\n convertPathsToAbsoluteValues(paths[j].ks.k);\r\n pathData.__converted = true;\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 if (typeof pathData.a === 'number') {\r\n pathData.a = {\r\n a: 0,\r\n k: pathData.a,\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 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 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 if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\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 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 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 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 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 if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\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 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 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 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 for (i = 0; i < len; i += 1) {\r\n layerData = layers[i];\r\n if (layerData.hasMask) {\r\n var maskProps = layerData.masksProperties;\r\n jLen = maskProps.length;\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 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 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 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 if (animationData.assets) {\r\n var i;\r\n var len = animationData.assets.length;\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 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 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)) {\r\n 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\r\n return moduleOb;\r\n }\r\n if (!_workerSelf.dataManager) {\r\n _workerSelf.dataManager = dataFunctionManager();\r\n }\r\n\r\n /* exported assetLoader */\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 if (contentTypeHeader && xhr.responseType === 'json' && contentTypeHeader.indexOf('json') !== -1) {\r\n return xhr.response;\r\n }\r\n if (xhr.response && typeof xhr.response === 'object') {\r\n return xhr.response;\r\n } if (xhr.response && typeof xhr.response === 'string') {\r\n return JSON.parse(xhr.response);\r\n } if (xhr.responseText) {\r\n return JSON.parse(xhr.responseText);\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();\r\n // set responseType after calling open or IE will break.\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 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 try {\r\n xhr.open('GET', path, true);\r\n } catch (error) {\r\n xhr.open('GET', fullPath + '/' + path, true);\r\n }\r\n xhr.send();\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(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.dataManager.completeData(data);\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\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 } else if (e.data.type === 'complete') {\r\n var animation = e.data.animation;\r\n _workerSelf.dataManager.completeData(animation);\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(\r\n e.data.path,\r\n e.data.fullPath,\r\n function (data) {\r\n _workerSelf.postMessage({\r\n id: e.data.id,\r\n payload: data,\r\n status: 'success',\r\n });\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\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 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/* exported getFontProperties */\r\n\r\nfunction getFontProperties(fontData) {\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal'; var\r\n fStyle = 'normal';\r\n var len = styles.length;\r\n var styleName;\r\n for (var i = 0; i < len; i += 1) {\r\n styleName = styles[i].toLowerCase();\r\n switch (styleName) {\r\n case 'italic':\r\n fStyle = 'italic';\r\n break;\r\n case 'bold':\r\n fWeight = '700';\r\n break;\r\n case 'black':\r\n fWeight = '900';\r\n break;\r\n case 'medium':\r\n fWeight = '500';\r\n break;\r\n case 'regular':\r\n case 'normal':\r\n fWeight = '400';\r\n break;\r\n case 'light':\r\n case 'thin':\r\n fWeight = '200';\r\n break;\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/* global createNS, createTag, getFontProperties */\r\n/* exported FontManager */\r\n\r\nvar FontManager = (function () {\r\n var maxWaitingTime = 5000;\r\n var emptyChar = {\r\n w: 0,\r\n size: 0,\r\n shapes: [],\r\n };\r\n var combinedCharacters = [];\r\n // Hindi characters\r\n combinedCharacters = combinedCharacters.concat([2304, 2305, 2306, 2307, 2362, 2363, 2364, 2364, 2366,\r\n 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379,\r\n 2380, 2381, 2382, 2383, 2387, 2388, 2389, 2390, 2391, 2402, 2403]);\r\n\r\n var surrogateModifiers = [\r\n 'd83cdffb',\r\n 'd83cdffc',\r\n 'd83cdffd',\r\n 'd83cdffe',\r\n 'd83cdfff',\r\n ];\r\n\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 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 return enabledFamilies.join(',');\r\n }\r\n\r\n function setUpNode(font, family) {\r\n var parentNode = createTag('span');\r\n // Node is invisible to screen readers.\r\n parentNode.setAttribute('aria-hidden', true);\r\n parentNode.style.fontFamily = family;\r\n var node = createTag('span');\r\n // Characters that vary significantly among different fonts\r\n node.innerText = 'giItT1WQy@!-/#';\r\n // Visible - so we can measure it - but not on the screen\r\n parentNode.style.position = 'absolute';\r\n parentNode.style.left = '-10000px';\r\n parentNode.style.top = '-10000px';\r\n // Large font size makes even subtle changes obvious\r\n parentNode.style.fontSize = '300px';\r\n // Reset any font properties\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);\r\n\r\n // Remember width with no applied web font\r\n var width = node.offsetWidth;\r\n node.style.fontFamily = trimFontOptions(font) + ', ' + family;\r\n return { node: node, w: width, parent: parentNode };\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 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 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 if (node.offsetWidth !== w) {\r\n loadedCount -= 1;\r\n this.fonts[i].loaded = true;\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(def, fontData) {\r\n var tHelper = createNS('text');\r\n tHelper.style.fontSize = '100px';\r\n // tHelper.style.fontFamily = fontData.fFamily;\r\n\r\n var fontProps = getFontProperties(fontData);\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 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 def.appendChild(tHelper);\r\n var tCanvasHelper = createTag('canvas').getContext('2d');\r\n tCanvasHelper.font = fontData.fWeight + ' ' + fontData.fStyle + ' 100px ' + fontData.fFamily;\r\n // tCanvasHelper.font = ' 100px '+ fontData.fFamily;\r\n return tHelper;\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 if (this.chars) {\r\n this.isLoaded = true;\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 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 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 fontArr[i].helper = createHelper(defs, fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n // On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n // Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars) {\r\n if (!chars) {\r\n return;\r\n }\r\n if (!this.chars) {\r\n this.chars = [];\r\n }\r\n var i;\r\n var len = chars.length;\r\n var j;\r\n var jLen = this.chars.length;\r\n var found;\r\n for (i = 0; i < len; i += 1) {\r\n j = 0;\r\n found = false;\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 j += 1;\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 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 i += 1;\r\n }\r\n if (((typeof char === 'string' && char.charCodeAt(0) !== 13) || !char)\r\n && console\r\n && console.warn // eslint-disable-line no-console\r\n && !this._warned\r\n ) {\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 return emptyChar;\r\n }\r\n\r\n function measureText(char, fontName, size) {\r\n var fontData = this.getFontByName(fontName);\r\n var index = char.charCodeAt(0);\r\n if (!fontData.cache[index + 1]) {\r\n var tHelper = fontData.helper;\r\n // Canvas version\r\n // fontData.cache[index] = tHelper.measureText(char).width / 100;\r\n // SVG version\r\n // console.log(tHelper.getBBox().width)\r\n if (char === ' ') {\r\n tHelper.textContent = '|' + char + '|';\r\n var doubleSize = tHelper.getComputedTextLength();\r\n tHelper.textContent = '||';\r\n var singleSize = tHelper.getComputedTextLength();\r\n fontData.cache[index + 1] = (doubleSize - singleSize) / 100;\r\n } else {\r\n tHelper.textContent = char;\r\n fontData.cache[index + 1] = (tHelper.getComputedTextLength()) / 100;\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 while (i < len) {\r\n if (this.fonts[i].fName === name) {\r\n return this.fonts[i];\r\n }\r\n i += 1;\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 return firstCharCode === zeroWidthJoiner[0] && secondCharCode === zeroWidthJoiner[1];\r\n }\r\n\r\n function isCombinedCharacter(char) {\r\n return combinedCharacters.indexOf(char) !== -1;\r\n }\r\n\r\n function setIsLoaded() {\r\n this.isLoaded = true;\r\n }\r\n\r\n var Font = function () {\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 Font.isModifier = isModifier;\r\n Font.isZeroWidthJoiner = isZeroWidthJoiner;\r\n Font.isCombinedCharacter = isCombinedCharacter;\r\n\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\r\n Font.prototype = fontPrototype;\r\n\r\n return Font;\r\n}());\r\n\r\n/* global initialDefaultFrame, BezierFactory, degToRads, bez, createTypedArray */\r\n/* exported PropertyFactory */\r\n\r\nvar 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 if (this.propType === 'multidimensional') {\r\n newValue = createTypedArray('float32', this.pv.length);\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 if (i === len - 1 && frameNum >= nextKeyData.t - offsetTime) {\r\n if (keyData.h) {\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum) {\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n\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 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 var bezierData = keyframeMetadata.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastKeyframeIndex = -1;\r\n } else {\r\n if (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 perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength * perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastKeyframeIndex === i) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1) {\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastKeyframeIndex = i;\r\n }\r\n } else {\r\n var outX;\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 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 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 perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n }\r\n }\r\n\r\n endValue = nextKeyData.s || keyData.e;\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (endValue[i] - keyData.s[i]) * perc;\r\n\r\n if (this.propType === 'multidimensional') {\r\n newValue[i] = keyValue;\r\n } else {\r\n newValue = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n // based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0];\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\r\n var omega;\r\n var cosom;\r\n var sinom;\r\n var scale0;\r\n var scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2 * qy * qw - 2 * qx * qz, 1 - 2 * qy * qy - 2 * qz * qz);\r\n var attitude = Math.asin(2 * qx * qy + 2 * qz * qw);\r\n var bank = Math.atan2(2 * qx * qw - 2 * qy * qz, 1 - 2 * qx * qx - 2 * qz * qz);\r\n out[0] = heading / degToRads;\r\n out[1] = attitude / degToRads;\r\n out[2] = bank / degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x, y, z, w];\r\n }\r\n\r\n function getValueAtCurrentTime() {\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length - 1].t - this.offsetTime;\r\n if (!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))) {\r\n if (this._caching.lastFrame >= frameNum) {\r\n this._caching._lastKeyframeIndex = -1;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if (this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if (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 while (i < len) {\r\n multipliedValue = val[i] * this.mult;\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 i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if (this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var i;\r\n var len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i;\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 for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.keyframesMetadata = [];\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {\r\n lastFrame: initFrame, lastIndex: 0, value: 0, _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 for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i + 1] && data.k[i + 1].s) {\r\n s = data.k[i].s;\r\n e = data.k[i + 1].s;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if ((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], s[0] + to[0], s[1] + to[1]) && bez.pointOnLine2D(s[0], s[1], e[0], e[1], e[0] + ti[0], e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], s[0] + to[0], s[1] + to[1], s[2] + to[2]) && bez.pointOnLine3D(s[0], s[1], s[2], e[0], e[1], e[2], e[0] + ti[0], e[1] + ti[1], e[2] + ti[2]))) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if (s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if (s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.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 for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching = { lastFrame: initFrame, lastIndex: 0, value: createTypedArray('float32', arrLen) };\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem, data, type, mult, container) {\r\n var p;\r\n if (!data.k.length) {\r\n p = new ValueProperty(elem, data, mult, container);\r\n } else if (typeof (data.k[0]) === 'number') {\r\n p = new MultiDimensionalProperty(elem, data, mult, container);\r\n } else {\r\n switch (type) {\r\n case 0:\r\n p = new KeyframedValueProperty(elem, data, mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem, data, mult, container);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n if (p.effectsSequence.length) {\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp,\r\n };\r\n return ob;\r\n}());\r\n\r\n/* global Matrix, degToRads, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n/* exported TransformPropertyFactory */\r\n\r\nvar 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 if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if (this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n var frameRate;\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4) {\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1;\r\n var v2;\r\n frameRate = this.elem.globalData.frameRate;\r\n if (this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame + this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate, 0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if (this.p._caching.lastFrame + this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.05) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame + this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if (this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px;\r\n var py = this.py;\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 this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if (this.data.p && this.data.p.s) {\r\n if (this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n this.v.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if (!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if (!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if (this.sk) {\r\n if (!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if (!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n }\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])\r\n .rotateY(this.or.v[1])\r\n .rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient() {\r\n //\r\n // var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem, data, container) {\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n // Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if (data.p && data.p.s) {\r\n this.px = PropertyFactory.getProp(elem, data.p.x, 0, 0, this);\r\n this.py = PropertyFactory.getProp(elem, data.p.y, 0, 0, this);\r\n if (data.p.z) {\r\n this.pz = PropertyFactory.getProp(elem, data.p.z, 0, 0, this);\r\n }\r\n } else {\r\n this.p = PropertyFactory.getProp(elem, data.p || { k: [0, 0, 0] }, 1, 0, this);\r\n }\r\n if (data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if (data.or.k[0].ti) {\r\n var i;\r\n var len = data.or.k.length;\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 this.or = PropertyFactory.getProp(elem, data.or, 1, degToRads, this);\r\n // sh Indicates it needs to be capped between -180 and 180\r\n this.or.sh = true;\r\n } else {\r\n this.r = PropertyFactory.getProp(elem, data.r || { k: 0 }, 0, degToRads, this);\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 this.a = PropertyFactory.getProp(elem, data.a || { k: [0, 0, 0] }, 1, 0, this);\r\n this.s = PropertyFactory.getProp(elem, data.s || { k: [100, 100, 100] }, 1, 0.01, this);\r\n // 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 if (data.o) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, elem);\r\n } else {\r\n this.o = { _mdf: false, v: 1 };\r\n }\r\n this._isDirty = true;\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\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/* global createSizedArray, createSizedArray, pointPool */\r\n\r\nfunction 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\nShapePath.prototype.setPathData = function (closed, len) {\r\n this.c = closed;\r\n this.setLength(len);\r\n var i = 0;\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\nShapePath.prototype.setLength = function (len) {\r\n while (this._maxLength < len) {\r\n this.doubleArrayLength();\r\n }\r\n this._length = len;\r\n};\r\n\r\nShapePath.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\nShapePath.prototype.setXYAt = function (x, y, type, pos, replace) {\r\n var arr;\r\n this._length = Math.max(this._length, pos + 1);\r\n if (this._length >= this._maxLength) {\r\n this.doubleArrayLength();\r\n }\r\n switch (type) {\r\n case 'v':\r\n arr = this.v;\r\n break;\r\n case 'i':\r\n arr = this.i;\r\n break;\r\n case 'o':\r\n arr = this.o;\r\n break;\r\n default:\r\n arr = [];\r\n break;\r\n }\r\n if (!arr[pos] || (arr[pos] && !replace)) {\r\n arr[pos] = pointPool.newElement();\r\n }\r\n arr[pos][0] = x;\r\n arr[pos][1] = y;\r\n};\r\n\r\nShapePath.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\nShapePath.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 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 var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n 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 return newPath;\r\n};\r\n\r\n/* global extendPrototype, roundCorner, BezierFactory, shapePool, degToRads,\r\n shapeCollectionPool, PropertyFactory, bmMin, DynamicPropertyContainer */\r\n/* exported ShapePropertyFactory */\r\n\r\nvar 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 if (frameNum < kf[0].t - this.offsetTime) {\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n } else if (frameNum >= kf[kf.length - 1].t - this.offsetTime) {\r\n keyPropS = kf[kf.length - 1].s ? kf[kf.length - 1].s[0] : kf[kf.length - 2].e[0];\r\n /* if(kf[kf.length - 1].s){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n } */\r\n isHold = true;\r\n } else {\r\n var i = iterationIndex;\r\n var len = kf.length - 1;\r\n var flag = true;\r\n var keyData;\r\n var nextKeyData;\r\n var keyframeMetadata;\r\n while (flag) {\r\n keyData = kf[i];\r\n nextKeyData = kf[i + 1];\r\n if ((nextKeyData.t - this.offsetTime) > frameNum) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n i += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n keyframeMetadata = this.keyframesMetadata[i] || {};\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if (!isHold) {\r\n if (frameNum >= nextKeyData.t - this.offsetTime) {\r\n perc = 1;\r\n } else if (frameNum < keyData.t - this.offsetTime) {\r\n perc = 0;\r\n } else {\r\n var fnc;\r\n if (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 perc = fnc((frameNum - (keyData.t - this.offsetTime)) / ((nextKeyData.t - this.offsetTime) - (keyData.t - this.offsetTime)));\r\n }\r\n keyPropE = nextKeyData.s ? nextKeyData.s[0] : keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for (j = 0; j < 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 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 var i;\r\n var len = shape1._length;\r\n for (i = 0; i < len; i += 1) {\r\n if (shape1.v[i][0] !== shape2.v[i][0]\r\n || shape1.v[i][1] !== shape2.v[i][1]\r\n || shape1.o[i][0] !== shape2.o[i][0]\r\n || shape1.o[i][1] !== shape2.o[i][1]\r\n || shape1.i[i][0] !== shape2.i[i][0]\r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if (!shapesEqual(this.v, newPath)) {\r\n this.v = 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 } if (!this.effectsSequence.length) {\r\n this._mdf = false;\r\n return;\r\n }\r\n if (this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue;\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 var i;\r\n var len = this.effectsSequence.length;\r\n for (i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function ShapeProperty(elem, data, type) {\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = 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 = { lastFrame: initFrame, lastIndex: 0 };\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function () {\r\n var cPoint = roundCorner;\r\n\r\n function EllShapePropertyFactory(elem, data) {\r\n /* this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n }; */\r\n this.v = 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 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 () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf) {\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function () {\r\n var p0 = this.p.v[0];\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 var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n },\r\n };\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapePropertyFactory);\r\n\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 if (data.sy === 1) {\r\n this.ir = PropertyFactory.getProp(elem, data.ir, 0, 0, this);\r\n this.is = PropertyFactory.getProp(elem, data.is, 0, 0.01, this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem, data.pt, 0, 0, this);\r\n this.p = PropertyFactory.getProp(elem, data.p, 1, 0, this);\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n this.or = PropertyFactory.getProp(elem, data.or, 0, 0, this);\r\n this.os = PropertyFactory.getProp(elem, data.os, 0, 0.01, this);\r\n this.localShapeCollection = shapeCollectionPool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n }\r\n\r\n StarShapePropertyFactory.prototype = {\r\n reset: resetShape,\r\n getValue: function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function () {\r\n var numPts = Math.floor(this.pt.v) * 2;\r\n var angle = (Math.PI * 2) / numPts;\r\n /* this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts; */\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = (2 * Math.PI * longRad) / (numPts * 2);\r\n var shortPerimSegment = (2 * Math.PI * shortRad) / (numPts * 2);\r\n var i;\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 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\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 longFlag = !longFlag;\r\n currentAng += angle * dir;\r\n }\r\n },\r\n convertPolygonToPath: function () {\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 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 this.paths.length = 0;\r\n this.paths[0] = this.v;\r\n },\r\n\r\n };\r\n extendPrototype([DynamicPropertyContainer], StarShapePropertyFactory);\r\n\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 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 () {\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 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 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 () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if (this._mdf) {\r\n this.convertRectToPath();\r\n }\r\n },\r\n reset: resetShape,\r\n };\r\n extendPrototype([DynamicPropertyContainer], RectShapePropertyFactory);\r\n\r\n return RectShapePropertyFactory;\r\n }());\r\n\r\n function getShapeProp(elem, data, type) {\r\n var prop;\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 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 if (prop.k) {\r\n elem.addDynamicProperty(prop);\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/* global shapeCollectionPool, initialDefaultFrame, extendPrototype, DynamicPropertyContainer */\r\n/* exported ShapeModifiers */\r\n\r\nvar 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\nfunction ShapeModifier() {}\r\nShapeModifier.prototype.initModifierProperties = function () {};\r\nShapeModifier.prototype.addShapeToModifier = function () {};\r\nShapeModifier.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 = { shape: data.sh, data: data, localShapeCollection: shapeCollectionPool.newShapeCollection() };\r\n this.shapes.push(shapeData);\r\n this.addShapeToModifier(shapeData);\r\n if (this._isAnimated) {\r\n data.setAsAnimated();\r\n }\r\n }\r\n};\r\nShapeModifier.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 if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\nShapeModifier.prototype.processKeys = function () {\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], ShapeModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, segmentsLengthPool, bez, shapePool, ShapeModifiers */\r\n\r\nfunction TrimModifier() {\r\n}\r\nextendPrototype([ShapeModifier], TrimModifier);\r\nTrimModifier.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\nTrimModifier.prototype.addShapeToModifier = function (shapeData) {\r\n shapeData.pathsData = [];\r\n};\r\n\r\nTrimModifier.prototype.calculateShapeEdges = function (s, e, shapeLength, addedLength, totalModifierLength) {\r\n var segments = [];\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 var shapeSegments = [];\r\n var i;\r\n var len = segments.length;\r\n var segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (!(segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength)) {\r\n var shapeS;\r\n var shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if (segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function (pathsData) {\r\n var i;\r\n var len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segmentsLengthPool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var s;\r\n var e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n 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 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 s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i;\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 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 for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s;\r\n var shapeE = e;\r\n var addedLength = 0;\r\n var edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n // if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength * shapeE,\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s: shapeData.totalShapeLength * (shapeS - 1),\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n } else {\r\n segments.push({\r\n s: shapeData.totalShapeLength * shapeS,\r\n e: shapeData.totalShapeLength,\r\n });\r\n segments.push({\r\n s: 0,\r\n e: shapeData.totalShapeLength * (shapeE - 1),\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData, segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n }\r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n // Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n // Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function (newPaths, localShapeCollection) {\r\n var i;\r\n var len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function (pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function (points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if (newShape) {\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function (shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i;\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 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 shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j += 1) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if (addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength) / currentLengthData.addedLength, (shapeSegment.e - addedLength) / currentLengthData.addedLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1], 'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shapePool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, roundCorner, ShapeModifiers */\r\n\r\nfunction RoundCornersModifier() {}\r\nextendPrototype([ShapeModifier], RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function (elem, data) {\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem, data.r, 0, null, this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function (path, round) {\r\n var 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 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 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 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 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 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 return clonedPath;\r\n};\r\n\r\nRoundCornersModifier.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 for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\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 for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], rd));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\n\r\nShapeModifiers.registerModifier('rd', RoundCornersModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, PropertyFactory, shapePool, ShapeModifiers */\r\n\r\nfunction PuckerAndBloatModifier() {}\r\nextendPrototype([ShapeModifier], PuckerAndBloatModifier);\r\nPuckerAndBloatModifier.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\nPuckerAndBloatModifier.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 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 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 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 return clonedPath;\r\n};\r\n\r\nPuckerAndBloatModifier.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 for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n localShapeCollection = shapeData.localShapeCollection;\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 for (j = 0; j < jLen; j += 1) {\r\n localShapeCollection.addShape(this.processPath(shapePaths[j], amount));\r\n }\r\n }\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n }\r\n }\r\n if (!this.dynamicProperties.length) {\r\n this._mdf = false;\r\n }\r\n};\r\nShapeModifiers.registerModifier('pb', PuckerAndBloatModifier);\r\n\r\n/* global extendPrototype, ShapeModifier, TransformPropertyFactory, PropertyFactory, Matrix, ShapeModifiers */\r\n\r\nfunction RepeaterModifier() {}\r\nextendPrototype([ShapeModifier], RepeaterModifier);\r\n\r\nRepeaterModifier.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 if (!this.dynamicProperties.length) {\r\n this.getValue(true);\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\nRepeaterModifier.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\nRepeaterModifier.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 while (pos > 0) {\r\n pos -= 1;\r\n // this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n }\r\n if (this.dynamicProperties.length) {\r\n this.k = true;\r\n } else {\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function (elements) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if (elements[i].ty === 'gr') {\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function (elements) {\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function (elements, renderFlag) {\r\n var i;\r\n var len = elements.length;\r\n for (i = 0; i < len; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if (elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function (_isFirstFrame) {\r\n var items;\r\n var itemsTransform;\r\n var i;\r\n var dir;\r\n var cont;\r\n var hasReloaded = false;\r\n if (this._mdf || _isFirstFrame) {\r\n var copies = Math.ceil(this.c.v);\r\n if (this._groups.length < copies) {\r\n while (this._groups.length < copies) {\r\n var group = {\r\n it: this.cloneElements(this._elements),\r\n ty: 'gr',\r\n };\r\n group.it.push({\r\n a: { a: 0, ix: 1, k: [0, 0] }, nm: 'Transform', o: { a: 0, ix: 7, k: 100 }, p: { a: 0, ix: 2, k: [0, 0] }, r: { a: 1, ix: 6, k: [{ s: 0, e: 0, t: 0 }, { s: 0, e: 0, t: 1 }] }, s: { a: 0, ix: 3, k: [100, 100] }, sa: { a: 0, ix: 5, k: 0 }, sk: { a: 0, ix: 4, k: 0 }, ty: 'tr',\r\n });\r\n\r\n this.arr.splice(0, 0, group);\r\n this._groups.splice(0, 0, group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n hasReloaded = true;\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for (i = 0; i <= this._groups.length - 1; i += 1) {\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n if (!renderFlag) {\r\n var elems = this.elemsData[i].it;\r\n var transformData = elems[elems.length - 1];\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 cont += 1;\r\n }\r\n\r\n this._currentCopies = copies;\r\n /// /\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset % 1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var 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 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 if (offsetModulo) {\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, -offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j;\r\n var jLen;\r\n while (cont) {\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this._currentCopies === 1\r\n ? this.so.v\r\n : 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 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 this.matrix.reset();\r\n } else {\r\n this.matrix.reset();\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsTransform[j] = this.matrix.props[j];\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 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 return hasReloaded;\r\n};\r\n\r\nRepeaterModifier.prototype.addShape = function () {};\r\n\r\nShapeModifiers.registerModifier('rp', RepeaterModifier);\r\n\r\n/* global createSizedArray, shapePool */\r\n\r\nfunction ShapeCollection() {\r\n this._length = 0;\r\n this._maxLength = 4;\r\n this.shapes = createSizedArray(this._maxLength);\r\n}\r\n\r\nShapeCollection.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 this.shapes[this._length] = shapeData;\r\n this._length += 1;\r\n};\r\n\r\nShapeCollection.prototype.releaseShapes = function () {\r\n var i;\r\n for (i = 0; i < this._length; i += 1) {\r\n shapePool.release(this.shapes[i]);\r\n }\r\n this._length = 0;\r\n};\r\n\r\n/* global createSizedArray, createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction 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 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] = { n: data[i].n, p: prop };\r\n }\r\n if (!this.k) {\r\n this.getValue(true);\r\n }\r\n this._isAnimated = this.k;\r\n}\r\n\r\nDashProperty.prototype.getValue = function (forceRender) {\r\n if (this.elem.globalData.frameId === this.frameId && !forceRender) {\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || forceRender;\r\n if (this._mdf) {\r\n var i = 0;\r\n var len = this.dataProps.length;\r\n if (this.renderer === 'svg') {\r\n this.dashStr = '';\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\nextendPrototype([DynamicPropertyContainer], DashProperty);\r\n\r\n/* global createTypedArray, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\nfunction 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\nGradientProperty.prototype.comparePoints = function (values, points) {\r\n var i = 0;\r\n var len = this.o.length / 2;\r\n var diff;\r\n while (i < len) {\r\n diff = Math.abs(values[i * 4] - values[points * 4 + i * 2]);\r\n if (diff > 0.01) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function () {\r\n if (this.o.length / 2 !== this.c.length / 4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0;\r\n var len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if (!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function (forceRender) {\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if (this.prop._mdf || forceRender) {\r\n var i;\r\n var len = this.data.p * 4;\r\n var mult;\r\n var val;\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 if (this.c[i] !== val) {\r\n this.c[i] = val;\r\n this._cmdf = !forceRender;\r\n }\r\n }\r\n if (this.o.length) {\r\n len = this.prop.v.length;\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 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 this._mdf = !forceRender;\r\n }\r\n};\r\n\r\nextendPrototype([DynamicPropertyContainer], GradientProperty);\r\n\r\n/* exported buildShapeString */\r\n\r\nvar buildShapeString = function (pathNodes, length, closed, mat) {\r\n if (length === 0) {\r\n return '';\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 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 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 return shapeString;\r\n};\r\n\r\n/* global Howl */\r\n/* exported audioControllerFactory */\r\n\r\nvar 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 (audio) {\r\n this.audios.push(audio);\r\n },\r\n pause: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].pause();\r\n }\r\n },\r\n resume: function () {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].resume();\r\n }\r\n },\r\n setRate: function (rateValue) {\r\n var i;\r\n var len = this.audios.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.audios[i].setRate(rateValue);\r\n }\r\n },\r\n createAudio: function (assetPath) {\r\n if (this.audioFactory) {\r\n return this.audioFactory(assetPath);\r\n } if (Howl) {\r\n return new Howl({\r\n src: [assetPath],\r\n });\r\n }\r\n return {\r\n isPlaying: false,\r\n play: function () { this.isPlaying = true; },\r\n seek: function () { this.isPlaying = false; },\r\n playing: function () {},\r\n rate: function () {},\r\n setVolume: function () {},\r\n };\r\n },\r\n setAudioFactory: function (audioFactory) {\r\n this.audioFactory = audioFactory;\r\n },\r\n setVolume: function (value) {\r\n this._volume = value;\r\n this._updateVolume();\r\n },\r\n mute: function () {\r\n this._isMuted = true;\r\n this._updateVolume();\r\n },\r\n unmute: function () {\r\n this._isMuted = false;\r\n this._updateVolume();\r\n },\r\n getVolume: function () {\r\n return this._volume;\r\n },\r\n _updateVolume: function () {\r\n var i;\r\n var len = this.audios.length;\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\r\n return function () {\r\n return new AudioController();\r\n };\r\n}());\r\n\r\n/* global createTag, createNS, isSafari, dataManager */\r\n/* exported ImagePreloader */\r\n\r\nvar 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 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 function footageLoaded() {\r\n this.loadedFootagesCount += 1;\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 if (assetData.e) {\r\n path = assetData.p;\r\n } else if (assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\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 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 if (box.width || _count > 500) {\r\n this._imageLoaded();\r\n clearInterval(intervalId);\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 if (isSafari) {\r\n this.testImageLoaded(img);\r\n } else {\r\n img.addEventListener('load', this._imageLoaded, false);\r\n }\r\n img.addEventListener('error', function () {\r\n ob.img = proxyImage;\r\n this._imageLoaded();\r\n }.bind(this), false);\r\n img.setAttributeNS('http://www.w3.org/1999/xlink', 'href', path);\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 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 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 this._footageLoaded();\r\n }.bind(this), function () {\r\n ob.img = {};\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 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 while (i < len) {\r\n if (this.images[i].assetData === assetData) {\r\n return this.images[i].img;\r\n }\r\n i += 1;\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\r\n return ImagePreloaderFactory;\r\n}());\r\n\r\n/* exported featureSupport */\r\n\r\nvar featureSupport = (function () {\r\n var ob = {\r\n maskType: true,\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 return ob;\r\n}());\r\n\r\n/* global createNS */\r\n/* exported filtersFactory */\r\n\r\nvar 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 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 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/* global createSizedArray, PropertyFactory, TextAnimatorDataProperty, bez, addHueToRGB,\r\n addSaturationToRGB, addBrightnessToRGB, LetterProps, Matrix, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction 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\nTextAnimatorProperty.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 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 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 this._moreOptions.alignment = getProp(this._elem, this._textData.m.a, 1, 0, this);\r\n};\r\n\r\nTextAnimatorProperty.prototype.getMeasures = function (documentData, lettersChangedFlag) {\r\n this.lettersChangedFlag = lettersChangedFlag;\r\n if (!this._mdf && !this._isFirstFrame && !lettersChangedFlag && (!this._hasMaskedPath || !this._pathData.m._mdf)) {\r\n return;\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 if (this._hasMaskedPath) {\r\n mask = this._pathData.m;\r\n if (!this._pathData.n || this._pathData._mdf) {\r\n var paths = mask.v;\r\n if (this._pathData.r.v) {\r\n paths = paths.reverse();\r\n }\r\n // TODO: release bezier data cached from previous pathInfo: this._pathData.pi\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 for (i = 0; i < len; i += 1) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[i + 1],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [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 i = len;\r\n if (mask.v.c) {\r\n bezierData = bez.buildBezierData(paths.v[i],\r\n paths.v[0],\r\n [paths.o[i][0] - paths.v[i][0], paths.o[i][1] - paths.v[i][1]],\r\n [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 this._pathData.pi = pathInfo;\r\n }\r\n pathInfo = this._pathData.pi;\r\n\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 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 segmentInd = segments.length - 1;\r\n points = segments[segmentInd].points;\r\n pointInd = points.length - 1;\r\n while (currentLength < 0) {\r\n currentLength += points[pointInd].partialLength;\r\n pointInd -= 1;\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 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\r\n jLen = animators.length;\r\n\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 //\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 while (lastIndex < i) {\r\n letters[lastIndex].animatorJustifyOffset = animatorJustifyOffset;\r\n lastIndex += 1;\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 if (animatorProps.t.propType) {\r\n if (isNewLine && documentData.j === 2) {\r\n animatorFirstCharOffset += animatorProps.t.v * justifyOffsetMult;\r\n }\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\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 isNewLine = false;\r\n }\r\n }\r\n if (animatorJustifyOffset) {\r\n animatorJustifyOffset += animatorFirstCharOffset;\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 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 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 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 case 2:\r\n currentLength += (totalLength - documentData.lineWidths[letters[i].line]) / 2;\r\n break;\r\n default:\r\n break;\r\n }\r\n currentLine = letters[i].line;\r\n }\r\n if (ind !== letters[i].ind) {\r\n if (letters[ind]) {\r\n currentLength += letters[ind].extra;\r\n }\r\n currentLength += letters[i].an / 2;\r\n ind = letters[i].ind;\r\n }\r\n currentLength += (alignment[0] * letters[i].an) * 0.005;\r\n var animatorOffset = 0;\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\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 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 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 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 flag = true;\r\n // Force alignment only works with a single line for now\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 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 if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate((-alignment[0] * letters[i].an) * 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 if (animatorProps.t.propType) {\r\n animatorSelector = animators[j].s;\r\n mult = animatorSelector.getMult(letters[i].anIndexes[j], textData.a[j].s.totalChars);\r\n // This condition is to prevent applying tracking to first character in each line. Might be better to use a boolean \"isNewLine\"\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 if (documentData.strokeWidthAnim) {\r\n sw = documentData.sw || 0;\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 if (documentData.fillColorAnim && documentData.fc) {\r\n fc = [documentData.fc[0], documentData.fc[1], documentData.fc[2]];\r\n }\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\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 for (j = 0; j < jLen; j += 1) {\r\n animatorProps = animators[j].a;\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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 if (documentData.strokeWidthAnim) {\r\n letterSw = sw < 0 ? 0 : sw;\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 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\r\n matrixHelper.translate(0, (alignment[1] * yOff) * 0.01 + yPos, 0);\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 if (currentPoint.point[0] < prevPoint.point[0]) {\r\n rot += 180;\r\n }\r\n matrixHelper.rotate((-rot * Math.PI) / 180);\r\n }\r\n matrixHelper.translate(xPathPos, yPathPos, 0);\r\n currentLength -= (alignment[0] * letters[i].an) * 0.005;\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 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 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 default:\r\n break;\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 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 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\nTextAnimatorProperty.prototype.getValue = function () {\r\n if (this._elem.globalData.frameId === this._frameId) {\r\n return;\r\n }\r\n this._frameId = this._elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n};\r\n\r\nTextAnimatorProperty.prototype.mHelper = new Matrix();\r\nTextAnimatorProperty.prototype.defaultPropsArray = [];\r\nextendPrototype([DynamicPropertyContainer], TextAnimatorProperty);\r\n\r\n/* global PropertyFactory, degToRads, TextSelectorProp */\r\n/* exported TextAnimatorDataProperty */\r\n\r\nfunction TextAnimatorDataProperty(elem, animatorProps, container) {\r\n var defaultData = { propType: false };\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\r\n this.s = TextSelectorProp.getTextSelectorProp(elem, animatorProps.s, container);\r\n this.s.t = animatorProps.s.t;\r\n}\r\n\r\nfunction 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\nLetterProps.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 if (this.sw !== sw) {\r\n this.sw = sw;\r\n this._mdf.sw = true;\r\n updated = true;\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 if (this.fc !== fc) {\r\n this.fc = fc;\r\n this._mdf.fc = true;\r\n updated = true;\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 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 return updated;\r\n};\r\n\r\n/* global FontManager, initialDefaultFrame, getFontProperties */\r\n/* exported TextProperty */\r\n\r\nfunction 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 };\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\nTextProperty.prototype.defaultBoxWidth = [0, 0];\r\n\r\nTextProperty.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 return obj;\r\n};\r\n\r\nTextProperty.prototype.setCurrentData = function (data) {\r\n if (!data.__complete) {\r\n this.completeTextData(data);\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\nTextProperty.prototype.searchProperty = function () {\r\n return this.searchKeyframes();\r\n};\r\n\r\nTextProperty.prototype.searchKeyframes = function () {\r\n this.kf = this.data.d.k.length > 1;\r\n if (this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n};\r\n\r\nTextProperty.prototype.addEffect = function (effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function (_finalValue) {\r\n if ((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n this.currentData.t = this.data.d.k[this.keysIndex].s.t;\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if (this.lock) {\r\n this.setCurrentData(this.currentData);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var i; var\r\n len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for (i = 0; i < len; i += 1) {\r\n // Checking if index changed to prevent creating a new object every time the expression updates.\r\n if (currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if (currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.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\nTextProperty.prototype.getKeyframeValue = function () {\r\n var textKeys = this.data.d.k;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0; var\r\n len = textKeys.length;\r\n while (i <= len - 1) {\r\n if (i === len - 1 || textKeys[i + 1].t > frameNum) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if (this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function (text) {\r\n var 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 while (i < len) {\r\n charCode = text.charCodeAt(i);\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 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 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 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 i += 1;\r\n }\r\n return charactersArray;\r\n};\r\n\r\nTextProperty.prototype.completeTextData = function (documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i; var\r\n len;\r\n var newLineFlag; var index = 0; var\r\n val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0; var currentPos = 0; var currentLine = 0; var\r\n lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j; var\r\n jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData; var\r\n cLength = 0;\r\n\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 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; var\r\n finalText;\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 for (i = 0; i < len; i += 1) {\r\n charCode = finalText[i].charCodeAt(0);\r\n newLineFlag = false;\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 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 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 currentHeight += documentData.finalLineHeight || documentData.finalSize * 1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0, '\\r');\r\n // finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n } else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += (fontData.ascent * documentData.finalSize) / 100;\r\n if (this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = (documentData.finalSize * documentData.lh) / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n }\r\n lineWidth = -trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0; i < len; i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = -2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n } else {\r\n val = currentChar;\r\n }\r\n if (fontManager.chars) {\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : (charData.w * documentData.finalSize) / 100;\r\n } else {\r\n // var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n // tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if (currentChar === ' ') {\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({\r\n l: cLength, an: cLength, add: currentSize, n: newLineFlag, anIndexes: [], val: val, line: currentLine, animatorJustifyOffset: 0,\r\n });\r\n if (anchorGrouping == 2) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || val === ' ' || i === len - 1) {\r\n if (val === '' || val === ' ') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n } else if (anchorGrouping == 3) { // eslint-disable-line eqeqeq\r\n currentSize += cLength;\r\n if (val === '' || i === len - 1) {\r\n if (val === '') {\r\n currentSize -= cLength;\r\n }\r\n while (currentPos <= i) {\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n } else {\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if (documentData.sz) {\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n } else {\r\n documentData.boxWidth = maxLineWidth;\r\n switch (documentData.j) {\r\n case 1:\r\n documentData.justifyOffset = -documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = -documentData.boxWidth / 2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a; var animatorData; var\r\n letterData;\r\n jLen = animators.length;\r\n var based; var ind; var\r\n indexes = [];\r\n for (j = 0; j < jLen; j += 1) {\r\n animatorData = animators[j];\r\n if (animatorData.a.sc) {\r\n documentData.strokeColorAnim = true;\r\n }\r\n if (animatorData.a.sw) {\r\n documentData.strokeWidthAnim = true;\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 ind = 0;\r\n based = animatorData.s.b;\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n letterData.anIndexes[j] = ind;\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))) { // eslint-disable-line eqeqeq\r\n if (animatorData.s.rn === 1) {\r\n indexes.push(ind);\r\n }\r\n ind += 1;\r\n }\r\n }\r\n data.a[j].s.totalChars = ind;\r\n var currentInd = -1; var\r\n newInd;\r\n if (animatorData.s.rn === 1) {\r\n for (i = 0; i < len; i += 1) {\r\n letterData = letters[i];\r\n if (currentInd != letterData.anIndexes[j]) { // 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 letterData.anIndexes[j] = newInd;\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\nTextProperty.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\nTextProperty.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\nTextProperty.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\nTextProperty.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/* global extendPrototype, BezierFactory, PropertyFactory, DynamicPropertyContainer */\r\n/* exported TextSelectorProp */\r\n\r\nvar 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 || { k: 0 }, 0, 0, this);\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 = { v: 100 };\r\n }\r\n this.o = PropertyFactory.getProp(elem, data.o || { k: 0 }, 0, 0, this);\r\n this.xe = PropertyFactory.getProp(elem, data.xe || { k: 0 }, 0, 0, this);\r\n this.ne = PropertyFactory.getProp(elem, data.ne || { k: 0 }, 0, 0, this);\r\n this.sm = PropertyFactory.getProp(elem, data.sm || { k: 100 }, 0, 0, this);\r\n this.a = PropertyFactory.getProp(elem, data.a, 0, 0.01, this);\r\n if (!this.dynamicProperties.length) {\r\n this.getValue();\r\n }\r\n }\r\n\r\n TextSelectorPropFactory.prototype = {\r\n getMult: function (ind) {\r\n if (this._currentTextLength !== this.elem.textProperty.currentData.l.length) {\r\n this.getValue();\r\n }\r\n // var easer = bez.getEasingCurve(this.ne.v/100,0,1-this.xe.v/100,1);\r\n var x1 = 0;\r\n var y1 = 0;\r\n var x2 = 1;\r\n var y2 = 1;\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 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 var easer = BezierFactory.getBezierEasing(x1, y1, x2, y2).get;\r\n\r\n var mult = 0;\r\n var s = this.finalS;\r\n var e = this.finalE;\r\n var type = this.data.sh;\r\n if (type === 2) {\r\n if (e === s) {\r\n mult = ind >= e ? 1 : 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 3) {\r\n if (e === s) {\r\n mult = ind >= e ? 0 : 1;\r\n } else {\r\n mult = 1 - max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n }\r\n\r\n mult = easer(mult);\r\n } else if (type === 4) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n mult = max(0, min(0.5 / (e - s) + (ind - s) / (e - s), 1));\r\n if (mult < 0.5) {\r\n mult *= 2;\r\n } else {\r\n mult = 1 - 2 * (mult - 0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n } else if (type === 5) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n var tot = e - s;\r\n /* ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind; */\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n var x = -tot / 2 + ind;\r\n var a = tot / 2;\r\n mult = Math.sqrt(1 - (x * x) / (a * a));\r\n }\r\n mult = easer(mult);\r\n } else if (type === 6) {\r\n if (e === s) {\r\n mult = 0;\r\n } else {\r\n ind = min(max(0, ind + 0.5 - s), e - s);\r\n mult = (1 + (Math.cos((Math.PI + Math.PI * 2 * (ind) / (e - s))))) / 2; // eslint-disable-line\r\n }\r\n mult = easer(mult);\r\n } else {\r\n if (ind >= floor(s)) {\r\n if (ind - s < 0) {\r\n mult = max(0, min(min(e, 1) - (s - ind), 1));\r\n } else {\r\n mult = max(0, min(e - ind, 1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n // 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 if (this.sm.v !== 100) {\r\n var smoothness = this.sm.v * 0.01;\r\n if (smoothness === 0) {\r\n smoothness = 0.00000001;\r\n }\r\n var threshold = 0.5 - smoothness * 0.5;\r\n if (mult < threshold) {\r\n mult = 0;\r\n } else {\r\n mult = (mult - threshold) / smoothness;\r\n if (mult > 1) {\r\n mult = 1;\r\n }\r\n }\r\n }\r\n return mult * this.a.v;\r\n },\r\n getValue: function (newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if (newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v / divisor;\r\n var s = this.s.v / divisor + o;\r\n var e = (this.e.v / divisor) + o;\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n },\r\n };\r\n extendPrototype([DynamicPropertyContainer], 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/* global createSizedArray, pooling */\r\n/* exported poolFactory */\r\n\r\nvar 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\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 if (_length) {\r\n _length -= 1;\r\n element = pool[_length];\r\n } else {\r\n element = _create();\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 if (_release) {\r\n _release(element);\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/* global createSizedArray */\r\n/* exported pooling */\r\n\r\nvar 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/* global createTypedArray, poolFactory */\r\n/* exported pointPool */\r\n\r\nvar pointPool = (function () {\r\n function create() {\r\n return createTypedArray('float32', 2);\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* global ShapePath, pointPool, poolFactory */\r\n/* exported shapePool */\r\n\r\nvar 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 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 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 return cloned;\r\n }\r\n\r\n var factory = poolFactory(4, create, release);\r\n factory.clone = clone;\r\n\r\n return factory;\r\n}());\r\n\r\n/* global createSizedArray, ShapeCollection, shapePool, pooling */\r\n/* exported shapeCollectionPool */\r\n\r\nvar shapeCollectionPool = (function () {\r\n var ob = {\r\n newShapeCollection: newShapeCollection,\r\n release: release,\r\n };\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 if (_length) {\r\n _length -= 1;\r\n shapeCollection = pool[_length];\r\n } else {\r\n shapeCollection = new ShapeCollection();\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 for (i = 0; i < len; i += 1) {\r\n shapePool.release(shapeCollection.shapes[i]);\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 pool[_length] = shapeCollection;\r\n _length += 1;\r\n }\r\n\r\n return ob;\r\n}());\r\n\r\n/* global poolFactory, bezierLengthPool */\r\n/* exported segmentsLengthPool */\r\n\r\nvar 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 for (i = 0; i < len; i += 1) {\r\n bezierLengthPool.release(element.lengths[i]);\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/* global createTypedArray, defaultCurveSegments, poolFactory */\r\n/* exported bezierLengthPool */\r\n\r\nvar bezierLengthPool = (function () {\r\n function create() {\r\n return {\r\n addedLength: 0,\r\n percents: createTypedArray('float32', defaultCurveSegments),\r\n lengths: createTypedArray('float32', defaultCurveSegments),\r\n };\r\n }\r\n return poolFactory(8, create);\r\n}());\r\n\r\n/* exported markerParser */\r\n\r\nvar markerParser = (\r\n\r\n 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 for (var i = 0; i < lines.length; i += 1) {\r\n line = lines[i].split(':');\r\n if (line.length === 2) {\r\n keys[line[0]] = line[1].trim();\r\n keysCount += 1;\r\n }\r\n }\r\n if (keysCount === 0) {\r\n throw new Error();\r\n }\r\n return keys;\r\n }\r\n\r\n return function (_markers) {\r\n var markers = [];\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 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],\r\n };\r\n }\r\n }\r\n markers.push(markerData);\r\n }\r\n return markers;\r\n };\r\n }());\r\n\r\n/* global AudioElement, FootageElement, FontManager */\r\n\r\nfunction BaseRenderer() {}\r\nBaseRenderer.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 for (i = len - 1; i >= 0; i -= 1) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if (data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st)) {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers : false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function (layer) {\r\n switch (layer.ty) {\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 6:\r\n return this.createAudio(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n case 15:\r\n return this.createFootage(layer);\r\n default:\r\n return this.createNull(layer);\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function () {\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.createAudio = function (data) {\r\n return new AudioElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.createFootage = function (data) {\r\n return new FootageElement(data, this.globalData, this);\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.buildItem(i);\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.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 for (i = 0; i < len; i += 1) {\r\n j = 0;\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 j += 1;\r\n }\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.setProjectInterface = function (pInterface) {\r\n this.globalData.projectInterface = pInterface;\r\n};\r\n\r\nBaseRenderer.prototype.initItems = function () {\r\n if (!this.globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n};\r\nBaseRenderer.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 while (i < len) {\r\n if (layers[i].ind == parentName) { // 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 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 i += 1;\r\n }\r\n};\r\n\r\nBaseRenderer.prototype.addPendingElement = function (element) {\r\n this.pendingElements.push(element);\r\n};\r\n\r\nBaseRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\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\nBaseRenderer.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/* global createElementID, extendPrototype, BaseRenderer, NullElement, SVGShapeElement, SVGTextLottieElement,\r\nIImageElement, SVGCompElement, ISolidElement, createNS, locationHref, createSizedArray, expressionsPlugin */\r\n\r\nfunction 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 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 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 if (ariaLabel) {\r\n this.svgElement.setAttribute('aria-labelledby', ariaLabel);\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 };\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\nextendPrototype([BaseRenderer], SVGRenderer);\r\n\r\nSVGRenderer.prototype.createNull = function (data) {\r\n return new NullElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createShape = function (data) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createText = function (data) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createImage = function (data) {\r\n return new IImageElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createComp = function (data) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.createSolid = function (data) {\r\n return new ISolidElement(data, this.globalData, this);\r\n};\r\n\r\nSVGRenderer.prototype.configAnimation = function (animData) {\r\n this.svgElement.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\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 if (this.renderConfig.className) {\r\n this.svgElement.setAttribute('class', this.renderConfig.className);\r\n }\r\n if (this.renderConfig.id) {\r\n this.svgElement.setAttribute('id', this.renderConfig.id);\r\n }\r\n if (this.renderConfig.focusable !== undefined) {\r\n this.svgElement.setAttribute('focusable', this.renderConfig.focusable);\r\n }\r\n this.svgElement.setAttribute('preserveAspectRatio', this.renderConfig.preserveAspectRatio);\r\n // 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 this.animationItem.wrapper.appendChild(this.svgElement);\r\n // Mask animation\r\n var defs = this.globalData.defs;\r\n\r\n this.setupGlobalData(animData, defs);\r\n this.globalData.progressiveLoad = this.renderConfig.progressiveLoad;\r\n this.data = animData;\r\n\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(' + locationHref + '#' + maskId + ')');\r\n\r\n defs.appendChild(maskElement);\r\n this.layers = animData.layers;\r\n this.elements = createSizedArray(animData.layers.length);\r\n};\r\n\r\nSVGRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\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 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 this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nSVGRenderer.prototype.updateContainerSize = function () {\r\n};\r\n\r\nSVGRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n elements[pos] = true;\r\n var element = this.createItem(this.layers[pos]);\r\n\r\n elements[pos] = element;\r\n if (expressionsPlugin) {\r\n if (this.layers[pos].ty === 0) {\r\n this.globalData.projectInterface.registerComposition(element);\r\n }\r\n element.initExpressions();\r\n }\r\n this.appendElementInPos(element, pos);\r\n if (this.layers[pos].tt) {\r\n if (!this.elements[pos - 1] || this.elements[pos - 1] === true) {\r\n this.buildItem(pos - 1);\r\n this.addPendingElement(element);\r\n } else {\r\n element.setMatte(elements[pos - 1].layerId);\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n if (element.data.tt) {\r\n var i = 0;\r\n var len = this.elements.length;\r\n while (i < len) {\r\n if (this.elements[i] === element) {\r\n element.setMatte(this.elements[i - 1].layerId);\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.renderFrame = function (num) {\r\n if (this.renderedFrame === num || this.destroyed) {\r\n return;\r\n }\r\n if (num === null) {\r\n num = this.renderedFrame;\r\n } else {\r\n this.renderedFrame = num;\r\n }\r\n // console.log('-------');\r\n // console.log('FRAME ',num);\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 if (!this.completeLayers) {\r\n this.checkLayers(num);\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 if (this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newElement = element.getBaseElement();\r\n if (!newElement) {\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while (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 i += 1;\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\nSVGRenderer.prototype.hide = function () {\r\n this.layerElement.style.display = 'none';\r\n};\r\n\r\nSVGRenderer.prototype.show = function () {\r\n this.layerElement.style.display = 'block';\r\n};\r\n\r\n/* global CVContextData, Matrix, extendPrototype, BaseRenderer, CVShapeElement, CVTextElement,\r\nCVImageElement, CVCompElement, CVSolidElement, SVGRenderer, createTag, createSizedArray */\r\n\r\nfunction 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 };\r\n this.renderConfig.dpr = (config && config.dpr) || 1;\r\n if (this.animationItem.wrapper) {\r\n this.renderConfig.dpr = (config && config.dpr) || window.devicePixelRatio || 1;\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\nextendPrototype([BaseRenderer], CanvasRenderer);\r\n\r\nCanvasRenderer.prototype.createShape = function (data) {\r\n return new CVShapeElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createText = function (data) {\r\n return new CVTextElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createImage = function (data) {\r\n return new CVImageElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createComp = function (data) {\r\n return new CVCompElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createSolid = function (data) {\r\n return new CVSolidElement(data, this.globalData, this);\r\n};\r\n\r\nCanvasRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nCanvasRenderer.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 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 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]);\r\n // 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 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\nCanvasRenderer.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 this.contextData.cO *= op < 0 ? 0 : op;\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\nCanvasRenderer.prototype.reset = function () {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n this.contextData.reset();\r\n};\r\n\r\nCanvasRenderer.prototype.save = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.save();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.save();\r\n }\r\n var props = this.contextData.cTr.props;\r\n if (this.contextData._length <= this.contextData.cArrPos) {\r\n this.contextData.duplicate();\r\n }\r\n var i;\r\n var arr = this.contextData.saved[this.contextData.cArrPos];\r\n for (i = 0; i < 16; i += 1) {\r\n arr[i] = props[i];\r\n }\r\n this.contextData.savedOp[this.contextData.cArrPos] = this.contextData.cO;\r\n this.contextData.cArrPos += 1;\r\n};\r\n\r\nCanvasRenderer.prototype.restore = function (actionFlag) {\r\n if (!this.renderConfig.clearCanvas) {\r\n this.canvasContext.restore();\r\n return;\r\n }\r\n if (actionFlag) {\r\n this.canvasContext.restore();\r\n this.globalData.blendMode = 'source-over';\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 for (i = 0; i < 16; i += 1) {\r\n arr[i] = popped[i];\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 if (this.globalData.currentGlobalAlpha !== popped) {\r\n this.canvasContext.globalAlpha = popped;\r\n this.globalData.currentGlobalAlpha = popped;\r\n }\r\n};\r\n\r\nCanvasRenderer.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 if (this.renderConfig.className) {\r\n this.animationItem.container.setAttribute('class', this.renderConfig.className);\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 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\r\n this.updateContainerSize();\r\n};\r\n\r\nCanvasRenderer.prototype.updateContainerSize = function () {\r\n this.reset();\r\n var elementWidth;\r\n var elementHeight;\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 this.animationItem.container.setAttribute('width', elementWidth * this.renderConfig.dpr);\r\n this.animationItem.container.setAttribute('height', elementHeight * this.renderConfig.dpr);\r\n } else {\r\n elementWidth = this.canvasContext.canvas.width * this.renderConfig.dpr;\r\n elementHeight = this.canvasContext.canvas.height * this.renderConfig.dpr;\r\n }\r\n var elementRel;\r\n var animationRel;\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 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 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 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 this.elements.length = 0;\r\n this.globalData.canvasContext = null;\r\n this.animationItem.container = null;\r\n this.destroyed = true;\r\n};\r\n\r\nCanvasRenderer.prototype.renderFrame = function (num, forceRender) {\r\n if ((this.renderedFrame === num && this.renderConfig.clearCanvas === true && !forceRender) || this.destroyed || num === -1) {\r\n return;\r\n }\r\n this.renderedFrame = num;\r\n this.globalData.frameNum = num - this.animationItem._isFirstFrame;\r\n this.globalData.frameId += 1;\r\n this.globalData._mdf = !this.renderConfig.clearCanvas || forceRender;\r\n this.globalData.projectInterface.currentFrame = num;\r\n\r\n // console.log('--------');\r\n // console.log('NEW: ',num);\r\n var i;\r\n var len = this.layers.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(num);\r\n }\r\n\r\n for (i = 0; i < len; i += 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 if (this.globalData._mdf) {\r\n if (this.renderConfig.clearCanvas === true) {\r\n this.canvasContext.clearRect(0, 0, this.transformCanvas.w, this.transformCanvas.h);\r\n } else {\r\n this.save();\r\n }\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n if (this.renderConfig.clearCanvas !== true) {\r\n this.restore();\r\n }\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.buildItem = function (pos) {\r\n var elements = this.elements;\r\n if (elements[pos] || this.layers[pos].ty === 99) {\r\n return;\r\n }\r\n var element = this.createItem(this.layers[pos], this, this.globalData);\r\n elements[pos] = element;\r\n element.initExpressions();\r\n /* if(this.layers[pos].ty === 0){\r\n element.resize(this.globalData.transformCanvas);\r\n } */\r\n};\r\n\r\nCanvasRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nCanvasRenderer.prototype.hide = function () {\r\n this.animationItem.container.style.display = 'none';\r\n};\r\n\r\nCanvasRenderer.prototype.show = function () {\r\n this.animationItem.container.style.display = 'block';\r\n};\r\n\r\n/* global extendPrototype, BaseRenderer, SVGRenderer, SVGShapeElement, HShapeElement, SVGTextLottieElement,\r\nHTextElement, HCameraElement, IImageElement, HImageElement, SVGCompElement, HCompElement, ISolidElement,\r\nHSolidElement, styleDiv, createTag, createNS */\r\n\r\nfunction HybridRenderer(animationItem, config) {\r\n this.animationItem = animationItem;\r\n this.layers = null;\r\n this.renderedFrame = -1;\r\n this.renderConfig = {\r\n className: (config && config.className) || '',\r\n imagePreserveAspectRatio: (config && config.imagePreserveAspectRatio) || 'xMidYMid slice',\r\n hideOnTransparent: !(config && config.hideOnTransparent === false),\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\nextendPrototype([BaseRenderer], HybridRenderer);\r\n\r\nHybridRenderer.prototype.buildItem = SVGRenderer.prototype.buildItem;\r\n\r\nHybridRenderer.prototype.checkPendingElements = function () {\r\n while (this.pendingElements.length) {\r\n var element = this.pendingElements.pop();\r\n element.checkParenting();\r\n }\r\n};\r\n\r\nHybridRenderer.prototype.appendElementInPos = function (element, pos) {\r\n var newDOMElement = element.getBaseElement();\r\n if (!newDOMElement) {\r\n return;\r\n }\r\n var layer = this.layers[pos];\r\n if (!layer.ddd || !this.supports3d) {\r\n if (this.threeDElements) {\r\n this.addTo3dContainer(newDOMElement, pos);\r\n } else {\r\n var i = 0;\r\n var nextDOMElement;\r\n var nextLayer;\r\n var tmpDOMElement;\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 i += 1;\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\nHybridRenderer.prototype.createShape = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGShapeElement(data, this.globalData, this);\r\n }\r\n return new HShapeElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createText = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGTextLottieElement(data, this.globalData, this);\r\n }\r\n return new HTextElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createCamera = function (data) {\r\n this.camera = new HCameraElement(data, this.globalData, this);\r\n return this.camera;\r\n};\r\n\r\nHybridRenderer.prototype.createImage = function (data) {\r\n if (!this.supports3d) {\r\n return new IImageElement(data, this.globalData, this);\r\n }\r\n return new HImageElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createComp = function (data) {\r\n if (!this.supports3d) {\r\n return new SVGCompElement(data, this.globalData, this);\r\n }\r\n return new HCompElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createSolid = function (data) {\r\n if (!this.supports3d) {\r\n return new ISolidElement(data, this.globalData, this);\r\n }\r\n return new HSolidElement(data, this.globalData, this);\r\n};\r\n\r\nHybridRenderer.prototype.createNull = SVGRenderer.prototype.createNull;\r\n\r\nHybridRenderer.prototype.getThreeDContainerByPos = function (pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\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 i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nHybridRenderer.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 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);\r\n // this.resizerElem.appendChild(perspectiveElem);\r\n var threeDContainerData = {\r\n container: container,\r\n perspectiveElem: perspectiveElem,\r\n startPos: pos,\r\n endPos: pos,\r\n type: type,\r\n };\r\n this.threeDElements.push(threeDContainerData);\r\n return threeDContainerData;\r\n};\r\n\r\nHybridRenderer.prototype.build3dContainers = function () {\r\n var i;\r\n var len = this.layers.length;\r\n var lastThreeDContainerData;\r\n var currentContainer = '';\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 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 lastThreeDContainerData.endPos = Math.max(lastThreeDContainerData.endPos, i);\r\n }\r\n }\r\n len = this.threeDElements.length;\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\nHybridRenderer.prototype.addTo3dContainer = function (elem, pos) {\r\n var i = 0;\r\n var len = this.threeDElements.length;\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 while (j < pos) {\r\n if (this.elements[j] && this.elements[j].getBaseElement) {\r\n nextElement = this.elements[j].getBaseElement();\r\n }\r\n j += 1;\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 break;\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nHybridRenderer.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 if (this.renderConfig.className) {\r\n resizerElem.setAttribute('class', this.renderConfig.className);\r\n }\r\n wrapper.appendChild(resizerElem);\r\n\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;\r\n // Mask animation\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\nHybridRenderer.prototype.destroy = function () {\r\n if (this.animationItem.wrapper) {\r\n this.animationItem.wrapper.innerText = '';\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 for (i = 0; i < len; i += 1) {\r\n this.elements[i].destroy();\r\n }\r\n this.elements.length = 0;\r\n this.destroyed = true;\r\n this.animationItem = null;\r\n};\r\n\r\nHybridRenderer.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 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 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\nHybridRenderer.prototype.renderFrame = SVGRenderer.prototype.renderFrame;\r\n\r\nHybridRenderer.prototype.hide = function () {\r\n this.resizerElem.style.display = 'none';\r\n};\r\n\r\nHybridRenderer.prototype.show = function () {\r\n this.resizerElem.style.display = 'block';\r\n};\r\n\r\nHybridRenderer.prototype.initItems = function () {\r\n this.buildAllItems();\r\n if (this.camera) {\r\n this.camera.setup();\r\n } else {\r\n var cWidth = this.globalData.compSize.w;\r\n var cHeight = this.globalData.compSize.h;\r\n var i;\r\n var len = this.threeDElements.length;\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\nHybridRenderer.prototype.searchExtraCompositions = function (assets) {\r\n var i;\r\n var len = assets.length;\r\n var floatingContainer = createTag('div');\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/* global createSizedArray, createElementID, PropertyFactory, ShapePropertyFactory, createNS, locationHref */\r\n\r\nfunction 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\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 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 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\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 }\r\n\r\n // TODO move this to a factory or to a constructor\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 if (properties[i].mode === 'i') {\r\n jLen = currentMasks.length;\r\n var g = createNS('g');\r\n for (j = 0; j < jLen; j += 1) {\r\n g.appendChild(currentMasks[j]);\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(' + locationHref + '#' + layerId + '_' + count + ')');\r\n\r\n currentMasks.length = 0;\r\n currentMasks.push(g);\r\n } else {\r\n currentMasks.push(path);\r\n }\r\n if (properties[i].inv && !this.solidPath) {\r\n this.solidPath = this.createLayerSolidPath();\r\n }\r\n // TODO move this to a factory or to a constructor\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 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\r\n len = currentMasks.length;\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(' + locationHref + '#' + layerId + ')');\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function (pos) {\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i;\r\n var len = this.masksProperties.length;\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 if (this.viewData[i].op._mdf || isFirstFrame) {\r\n this.viewData[i].elem.setAttribute('fill-opacity', this.viewData[i].op.v);\r\n }\r\n if (this.masksProperties[i].mode !== 'n') {\r\n if (this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)) {\r\n this.viewData[i].invRect.setAttribute('transform', finalMat.getInverseMatrix().to2dCSS());\r\n }\r\n if (this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)) {\r\n var feMorph = this.storedData[i].expan;\r\n if (this.storedData[i].x.v < 0) {\r\n if (this.storedData[i].lastOperator !== 'erode') {\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter', 'url(' + locationHref + '#' + this.storedData[i].filterId + ')');\r\n }\r\n feMorph.setAttribute('radius', -this.storedData[i].x.v);\r\n } else {\r\n if (this.storedData[i].lastOperator !== 'dilate') {\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter', null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v * 2);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function () {\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w;\r\n path += ' v' + this.globalData.compSize.h;\r\n path += ' h-' + this.globalData.compSize.w;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function (pathData, pathNodes, viewData) {\r\n var pathString = ' M' + pathNodes.v[0][0] + ',' + pathNodes.v[0][1];\r\n var i;\r\n var len;\r\n len = pathNodes._length;\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 }\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 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 }\r\n // pathNodes.__renderedString = pathString;\r\n\r\n if (viewData.lastPath !== pathString) {\r\n var pathShapeValue = '';\r\n if (viewData.elem) {\r\n if (pathNodes.c) {\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d', pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\r\n/**\r\n * @file\r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement() {}\r\n\r\nHierarchyElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes hierarchy properties\r\n *\r\n */\r\n initHierarchy: function () {\r\n // element's parent list\r\n this.hierarchy = [];\r\n // if element is parent of another layer _isParent will be true\r\n this._isParent = false;\r\n this.checkParenting();\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 (hierarchy) {\r\n this.hierarchy = hierarchy;\r\n },\r\n /**\r\n * @function\r\n * Sets layer as parent.\r\n *\r\n */\r\n setAsParent: function () {\r\n this._isParent = true;\r\n },\r\n /**\r\n * @function\r\n * Searches layer's parenting chain\r\n *\r\n */\r\n checkParenting: function () {\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/**\r\n * @file\r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement() {}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function () {\r\n // set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n // list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function\r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n *\r\n */\r\n prepareProperties: function (num, isVisible) {\r\n var i;\r\n var len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function (prop) {\r\n if (this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n },\r\n};\r\n\r\n/* global TransformPropertyFactory, Matrix */\r\n\r\nfunction TransformElement() {}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function () {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : { o: 0 },\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix(),\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n // TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n // this.createElements();\r\n }\r\n },\r\n renderTransform: function () {\r\n 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;\r\n // Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n\r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function (pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i;\r\n var len = transforms.length;\r\n var ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n // ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix(),\r\n};\r\n\r\nfunction RenderableElement() {\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function () {\r\n // layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n // layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n // list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function (component) {\r\n if (this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function (num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function () {\r\n if (this.finalTransform.mProp.o.v <= 0) {\r\n if (!this.isTransparent && this.globalData.renderConfig.hideOnTransparent) {\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if (this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function\r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n *\r\n */\r\n checkLayerLimits: function (num) {\r\n if (this.data.ip - this.data.st <= num && this.data.op - this.data.st > num) {\r\n 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 () {\r\n var i;\r\n var len = this.renderableComponents.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /* this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame); */\r\n },\r\n sourceRectAtTime: function () {\r\n return {\r\n top: 0,\r\n left: 0,\r\n width: 100,\r\n height: 100,\r\n };\r\n },\r\n getLayerSize: function () {\r\n if (this.data.ty === 5) {\r\n return { w: this.data.textData.width, h: this.data.textData.height };\r\n }\r\n return { w: this.data.width, h: this.data.height };\r\n },\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, createProxyFunction */\r\n\r\nfunction RenderableDOMElement() {}\r\n\r\n(function () {\r\n var _prototype = {\r\n initElement: function (data, globalData, comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function () {\r\n if (this.isInRange && !this.isTransparent) {\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function () {},\r\n prepareFrame: function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function () {\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n },\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\r\n\r\n/* exported ProcessedElement */\r\n\r\nfunction ProcessedElement(element, position) {\r\n this.elem = element;\r\n this.pos = position;\r\n}\r\n\r\n/* global createNS */\r\n\r\nfunction 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\nSVGStyleData.prototype.reset = function () {\r\n this.d = '';\r\n this._mdf = false;\r\n};\r\n\r\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n // TODO find if there are some cases where _isAnimated can be false.\r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0;\r\n var len = transformers.length;\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 i += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function () {\r\n this._isAnimated = true;\r\n};\r\n\r\n/* exported SVGTransformData */\r\n\r\nfunction 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/* global DashProperty, PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction 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\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\r\n\r\n/* global PropertyFactory, extendPrototype, DynamicPropertyContainer */\r\n\r\nfunction 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\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\r\n\r\n/* global PropertyFactory, degToRads, GradientProperty, createElementID, createNS, locationHref,\r\nextendPrototype, DynamicPropertyContainer, lineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGGradientFillStyleData(elem, data, styleOb) {\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function (elem, data, styleOb) {\r\n this.o = PropertyFactory.getProp(elem, data.o, 0, 0.01, this);\r\n this.s = PropertyFactory.getProp(elem, data.s, 1, null, this);\r\n this.e = PropertyFactory.getProp(elem, data.e, 1, null, this);\r\n this.h = PropertyFactory.getProp(elem, data.h || { k: 0 }, 0, 0.01, this);\r\n this.a = PropertyFactory.getProp(elem, data.a || { k: 0 }, 0, degToRads, this);\r\n this.g = new GradientProperty(elem, data.g, this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n};\r\n\r\nSVGGradientFillStyleData.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 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 pathElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + gradientId + ')');\r\n this.gf = gfill;\r\n this.cst = stops;\r\n};\r\n\r\nSVGGradientFillStyleData.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 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 maskElement.setAttribute(data.ty === 'gf' ? 'fill' : 'stroke', 'url(' + locationHref + '#' + opacityId + ')');\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 if (data.lj === 1) {\r\n maskElement.setAttribute('stroke-miterlimit', data.ml);\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\nextendPrototype([DynamicPropertyContainer], SVGGradientFillStyleData);\r\n\r\n/* global PropertyFactory, DashProperty, extendPrototype, SVGGradientFillStyleData, DynamicPropertyContainer */\r\n\r\nfunction 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\nextendPrototype([SVGGradientFillStyleData, DynamicPropertyContainer], SVGGradientStrokeStyleData);\r\n\r\n/* global createNS */\r\n/* exported ShapeGroupData */\r\n\r\nfunction ShapeGroupData() {\r\n this.it = [];\r\n this.prevViewData = [];\r\n this.gr = createNS('g');\r\n}\r\n\r\n/* global Matrix, buildShapeString, bmFloor */\r\n/* exported SVGElementsRenderer */\r\n\r\nvar SVGElementsRenderer = (function () {\r\n var _identityMatrix = new Matrix();\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 case 'gf':\r\n return renderGradient;\r\n case 'gs':\r\n return renderGradientStroke;\r\n case 'st':\r\n return renderStroke;\r\n case 'sh':\r\n case 'el':\r\n case 'rc':\r\n case 'sr':\r\n return renderPath;\r\n case 'tr':\r\n return renderContentTransform;\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 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 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 for (l = 0; l < lLen; l += 1) {\r\n redraw = itemData.sh._mdf || isFirstFrame;\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 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 if (redraw) {\r\n iterations = lvl - itemData.styles[l].lvl;\r\n k = itemData.transformers.length - 1;\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 paths = itemData.sh.paths;\r\n jLen = paths._length;\r\n if (redraw) {\r\n pathStringTransformed = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes._length) {\r\n pathStringTransformed += buildShapeString(pathNodes, pathNodes._length, pathNodes.c, mat);\r\n }\r\n }\r\n itemData.caches[l] = pathStringTransformed;\r\n } else {\r\n pathStringTransformed = itemData.caches[l];\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 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 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 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 var stops;\r\n var i;\r\n var len;\r\n var stop;\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 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 if (hasOpacity && (itemData.g._omdf || isFirstFrame)) {\r\n var oValues = itemData.g.o;\r\n if (itemData.g._collapsable) {\r\n stops = itemData.cst;\r\n } else {\r\n stops = itemData.ost;\r\n }\r\n len = stops.length;\r\n for (i = 0; i < len; i += 1) {\r\n stop = stops[i];\r\n if (!itemData.g._collapsable) {\r\n stop.setAttribute('offset', oValues[i * 2] + '%');\r\n }\r\n stop.setAttribute('stop-opacity', oValues[i * 2 + 1]);\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 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 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 if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('r', rad);\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 var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\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 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 if (hasOpacity && !itemData.g._collapsable) {\r\n itemData.of.setAttribute('fx', x);\r\n itemData.of.setAttribute('fy', y);\r\n }\r\n }\r\n // gfill.setAttribute('fy','200');\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 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 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 if (itemData.o._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n }\r\n if (itemData.w._mdf || isFirstFrame) {\r\n styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\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/* global Matrix */\r\n\r\nfunction ShapeTransformManager() {\r\n this.sequences = {};\r\n this.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n addTransformSequence: function (transforms) {\r\n var i;\r\n var len = transforms.length;\r\n var key = '_';\r\n for (i = 0; i < len; i += 1) {\r\n key += transforms[i].transform.key + '_';\r\n }\r\n var sequence = this.sequences[key];\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 return sequence;\r\n },\r\n processSequence: function (sequence, isFirstFrame) {\r\n var i = 0;\r\n var len = sequence.transforms.length;\r\n var _mdf = isFirstFrame;\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 i += 1;\r\n }\r\n if (_mdf) {\r\n var props;\r\n sequence.finalTransform.reset();\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 sequence._mdf = _mdf;\r\n },\r\n processSequences: function (isFirstFrame) {\r\n var i;\r\n var len = this.sequenceList.length;\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 () {\r\n this.transform_key_count += 1;\r\n return '_' + this.transform_key_count;\r\n },\r\n};\r\n\r\n/* global ShapePropertyFactory, SVGShapeData */\r\n\r\nfunction CVShapeData(element, data, styles, transformsManager) {\r\n this.styledShapes = [];\r\n this.tr = [0, 0, 0, 0, 0, 0];\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n this.sh = ShapePropertyFactory.getShapeProp(element, data, ty, element);\r\n var i;\r\n var len = styles.length;\r\n var styledShape;\r\n for (i = 0; i < len; i += 1) {\r\n if (!styles[i].closed) {\r\n styledShape = {\r\n transforms: transformsManager.addTransformSequence(styles[i].transforms),\r\n trNodes: [],\r\n };\r\n this.styledShapes.push(styledShape);\r\n styles[i].elements.push(styledShape);\r\n }\r\n }\r\n}\r\n\r\nCVShapeData.prototype.setAsAnimated = SVGShapeData.prototype.setAsAnimated;\r\n\r\n/* global LayerExpressionInterface, EffectsExpressionInterface, CompExpressionInterface, ShapeExpressionInterface,\r\nTextExpressionInterface, getBlendMode,createElementID, EffectsManager */\r\n\r\nfunction BaseElement() {\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function () {\r\n if (!this.data.hasMask) {\r\n return false;\r\n }\r\n var i = 0;\r\n var len = this.data.masksProperties.length;\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 i += 1;\r\n }\r\n return false;\r\n },\r\n initExpressions: function () {\r\n this.layerInterface = LayerExpressionInterface(this);\r\n if (this.data.hasMask && this.maskManager) {\r\n this.layerInterface.registerMaskInterface(this.maskManager);\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 () {\r\n var blendModeValue = getBlendMode(this.data.bm);\r\n var elem = this.baseElement || this.layerElement;\r\n\r\n elem.style['mix-blend-mode'] = blendModeValue;\r\n },\r\n initBaseData: function (data, globalData, comp) {\r\n this.globalData = globalData;\r\n this.comp = comp;\r\n this.data = data;\r\n this.layerId = createElementID();\r\n\r\n // Stretch factor for old animations missing this property.\r\n if (!this.data.sr) {\r\n this.data.sr = 1;\r\n }\r\n // effects manager\r\n this.effectsManager = new EffectsManager(this.data, this, this.dynamicProperties);\r\n },\r\n getType: function () {\r\n return this.type;\r\n },\r\n sourceRectAtTime: function () {},\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement */\r\n\r\nfunction 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\nNullElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nNullElement.prototype.renderFrame = function () {\r\n};\r\n\r\nNullElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nNullElement.prototype.destroy = function () {\r\n};\r\n\r\nNullElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nNullElement.prototype.hide = function () {\r\n};\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement], NullElement);\r\n\r\n/* global filtersFactory, featureSupport, filtersFactory, createElementID, createNS, MaskElement, SVGEffects, locationHref */\r\n\r\nfunction SVGBaseElement() {\r\n}\r\n\r\nSVGBaseElement.prototype = {\r\n initRendererElement: function () {\r\n this.layerElement = createNS('g');\r\n },\r\n createContainerElements: function () {\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;\r\n // If this layer acts as a mask for the following layer\r\n var filId;\r\n var fil;\r\n var gg;\r\n if (this.data.td) {\r\n if (this.data.td == 3 || this.data.td == 1) { // eslint-disable-line eqeqeq\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', this.layerId);\r\n masker.setAttribute('mask-type', this.data.td == 3 ? 'luminance' : 'alpha'); // eslint-disable-line eqeqeq\r\n masker.appendChild(this.layerElement);\r\n layerElementParent = masker;\r\n this.globalData.defs.appendChild(masker);\r\n // This is only for IE and Edge when mask if of type alpha\r\n if (!featureSupport.maskType && this.data.td == 1) { // eslint-disable-line eqeqeq\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(this.layerElement);\r\n layerElementParent = gg;\r\n masker.appendChild(gg);\r\n gg.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n } else if (this.data.td == 2) { // eslint-disable-line eqeqeq\r\n var maskGroup = createNS('mask');\r\n maskGroup.setAttribute('id', this.layerId);\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\r\n // This solution doesn't work on Android when meta tag with viewport attribute is set\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 1');\r\n fil.appendChild(feColorMatrix); */\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(' + locationHref + '#' + filId + ')');\r\n maskGrouper.appendChild(alphaRect);\r\n maskGrouper.appendChild(this.layerElement);\r\n layerElementParent = maskGrouper;\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 layerElementParent = gg;\r\n maskGrouper.appendChild(gg);\r\n }\r\n this.globalData.defs.appendChild(maskGroup);\r\n }\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 if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n // Clipping compositions to hide content that exceeds boundaries. If collapsed transformations is on, component should not be clipped\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(' + locationHref + '#' + clipId + ')');\r\n cpGroup.appendChild(this.layerElement);\r\n this.transformedElement = cpGroup;\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(' + locationHref + '#' + clipId + ')');\r\n }\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n if (this.finalTransform._matMdf) {\r\n this.transformedElement.setAttribute('transform', this.finalTransform.mat.to2dCSS());\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 () {\r\n this.layerElement = null;\r\n this.matteElement = null;\r\n this.maskManager.destroy();\r\n },\r\n getBaseElement: function () {\r\n if (this.data.hd) {\r\n return null;\r\n }\r\n return this.baseElement;\r\n },\r\n createRenderableComponents: function () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n this.renderableEffectsManager = new SVGEffects(this);\r\n },\r\n setMatte: function (id) {\r\n if (!this.matteElement) {\r\n return;\r\n }\r\n this.matteElement.setAttribute('mask', 'url(' + locationHref + '#' + id + ')');\r\n },\r\n};\r\n\r\n/* global ProcessedElement */\r\n\r\nfunction IShapeElement() {\r\n}\r\n\r\nIShapeElement.prototype = {\r\n addShapeToModifiers: function (data) {\r\n var i;\r\n var len = this.shapeModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.shapeModifiers[i].addShape(data);\r\n }\r\n },\r\n isShapeInAnimatedModifiers: function (data) {\r\n var i = 0;\r\n var len = this.shapeModifiers.length;\r\n while (i < len) {\r\n if (this.shapeModifiers[i].isAnimatedWithShape(data)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n },\r\n renderModifiers: function () {\r\n if (!this.shapeModifiers.length) {\r\n return;\r\n }\r\n var i;\r\n var len = this.shapes.length;\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 for (i = len - 1; i >= 0; i -= 1) {\r\n shouldBreakProcess = this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n // 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 if (shouldBreakProcess) {\r\n break;\r\n }\r\n }\r\n },\r\n\r\n searchProcessedElement: function (elem) {\r\n var elements = this.processedElements;\r\n var i = 0;\r\n var len = elements.length;\r\n while (i < len) {\r\n if (elements[i].elem === elem) {\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function (elem, pos) {\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while (i) {\r\n i -= 1;\r\n if (elements[i].elem === elem) {\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function (num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n },\r\n};\r\n\r\n/* global TextProperty, TextAnimatorProperty, buildShapeString, LetterProps */\r\n\r\nfunction ITextElement() {\r\n}\r\n\r\nITextElement.prototype.initElement = function (data, globalData, comp) {\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function (matrixHelper, shapes) {\r\n var j;\r\n var jLen = shapes.length;\r\n var pathNodes;\r\n var shapeStr = '';\r\n for (j = 0; j < jLen; j += 1) {\r\n pathNodes = shapes[j].ks.k;\r\n shapeStr += buildShapeString(pathNodes, pathNodes.i.length, true, matrixHelper);\r\n }\r\n return shapeStr;\r\n};\r\n\r\nITextElement.prototype.updateDocumentData = function (newData, index) {\r\n this.textProperty.updateDocumentData(newData, index);\r\n};\r\n\r\nITextElement.prototype.canResizeFont = function (_canResize) {\r\n this.textProperty.canResizeFont(_canResize);\r\n};\r\n\r\nITextElement.prototype.setMinimumFontSize = function (_fontSize) {\r\n this.textProperty.setMinimumFontSize(_fontSize);\r\n};\r\n\r\nITextElement.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 matrixHelper.translate(0, -documentData.ls, 0);\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 case 2:\r\n matrixHelper.translate(documentData.justifyOffset + (documentData.boxWidth - documentData.lineWidths[lineNumber]) / 2, 0, 0);\r\n break;\r\n default:\r\n break;\r\n }\r\n matrixHelper.translate(xPos, yPos, 0);\r\n};\r\n\r\nITextElement.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\nITextElement.prototype.emptyProp = new LetterProps();\r\n\r\nITextElement.prototype.destroy = function () {\r\n\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement */\r\n\r\nfunction ICompElement() {}\r\n\r\nextendPrototype([BaseElement, TransformElement, HierarchyElement, FrameElement, RenderableDOMElement], ICompElement);\r\n\r\nICompElement.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 if (this.data.xt || !globalData.progressiveLoad) {\r\n this.buildAllItems();\r\n }\r\n this.hide();\r\n};\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\nICompElement.prototype.prepareFrame = function (num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if (!this.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 if (timeRemapped === this.data.op) {\r\n timeRemapped = this.data.op - 1;\r\n }\r\n this.renderedFrame = timeRemapped;\r\n } else {\r\n this.renderedFrame = num / this.data.sr;\r\n }\r\n var i;\r\n var len = this.elements.length;\r\n if (!this.completeLayers) {\r\n this.checkLayers(this.renderedFrame);\r\n }\r\n // This iteration needs to be backwards because of how expressions connect between each other\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 if (this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function (elems) {\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function () {\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function () {\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, createNS */\r\n\r\nfunction IImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n this.sourceRect = {\r\n top: 0, left: 0, width: this.assetData.w, height: this.assetData.h,\r\n };\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function () {\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width', this.assetData.w + 'px');\r\n this.innerElem.setAttribute('height', this.assetData.h + 'px');\r\n this.innerElem.setAttribute('preserveAspectRatio', this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink', 'href', assetPath);\r\n\r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\r\nIImageElement.prototype.sourceRectAtTime = function () {\r\n return this.sourceRect;\r\n};\r\n\r\n/* global extendPrototype, IImageElement, createNS */\r\n\r\nfunction ISolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function () {\r\n var rect = createNS('rect');\r\n /// /rect.style.width = this.data.sw;\r\n /// /rect.style.height = this.data.sh;\r\n /// /rect.style.fill = this.data.sc;\r\n rect.setAttribute('width', this.data.sw);\r\n rect.setAttribute('height', this.data.sh);\r\n rect.setAttribute('fill', this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global PropertyFactory, extendPrototype, RenderableElement, BaseElement, FrameElement */\r\n\r\nfunction 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.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nAudioElement.prototype.prepareFrame = function (num) {\r\n this.prepareRenderableFrame(num, true);\r\n this.prepareProperties(num, true);\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\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], AudioElement);\r\n\r\nAudioElement.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()\r\n || Math.abs(this._currentTime / this.globalData.frameRate - this.audio.seek()) > 0.1\r\n ) {\r\n this.audio.seek(this._currentTime / this.globalData.frameRate);\r\n }\r\n }\r\n};\r\n\r\nAudioElement.prototype.show = function () {\r\n // this.audio.play()\r\n};\r\n\r\nAudioElement.prototype.hide = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n};\r\n\r\nAudioElement.prototype.pause = function () {\r\n this.audio.pause();\r\n this._isPlaying = false;\r\n this._canPlay = false;\r\n};\r\n\r\nAudioElement.prototype.resume = function () {\r\n this._canPlay = true;\r\n};\r\n\r\nAudioElement.prototype.setRate = function (rateValue) {\r\n this.audio.rate(rateValue);\r\n};\r\n\r\nAudioElement.prototype.volume = function (volumeValue) {\r\n this.audio.volume(volumeValue);\r\n};\r\n\r\nAudioElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nAudioElement.prototype.destroy = function () {\r\n};\r\n\r\nAudioElement.prototype.sourceRectAtTime = function () {\r\n};\r\n\r\nAudioElement.prototype.initExpressions = function () {\r\n};\r\n\r\n/* global extendPrototype, RenderableElement, BaseElement, FrameElement, FootageInterface */\r\n\r\nfunction 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\nFootageElement.prototype.prepareFrame = function () {\r\n};\r\n\r\nextendPrototype([RenderableElement, BaseElement, FrameElement], FootageElement);\r\n\r\nFootageElement.prototype.getBaseElement = function () {\r\n return null;\r\n};\r\n\r\nFootageElement.prototype.renderFrame = function () {\r\n};\r\n\r\nFootageElement.prototype.destroy = function () {\r\n};\r\n\r\nFootageElement.prototype.initExpressions = function () {\r\n this.layerInterface = FootageInterface(this);\r\n};\r\n\r\nFootageElement.prototype.getFootageData = function () {\r\n return this.footageData;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, SVGRenderer, ICompElement, SVGBaseElement */\r\n\r\nfunction SVGCompElement(data, globalData, comp) {\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n // this.layerElement = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createNS */\r\n\r\nfunction 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\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], SVGTextLottieElement);\r\n\r\nSVGTextLottieElement.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\nSVGTextLottieElement.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 while (i < len) {\r\n if (textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n};\r\n\r\nSVGTextLottieElement.prototype.buildNewText = function () {\r\n var i;\r\n var len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if (documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n } else {\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if (documentData.sc) {\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (fontData.fClass) {\r\n this.layerElement.setAttribute('class', fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight;\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 this.layerElement.setAttribute('aria-label', documentData.t);\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes;\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 if (singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch (documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n default:\r\n justify = 'start';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor', justify);\r\n tElement.setAttribute('letter-spacing', trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for (i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n\r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData;\r\n var charData;\r\n for (i = 0; i < len; i += 1) {\r\n if (!usesGlyphs || !singleShape || i === 0) {\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs ? 'path' : 'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin', 'round');\r\n tSpan.setAttribute('stroke-miterlimit', '4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n\r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if (letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n // xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if (usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if (!singleShape) {\r\n tSpan.setAttribute('d', this.createPathShape(matrixHelper, shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper, shapes);\r\n }\r\n } else {\r\n if (singleShape) {\r\n tSpan.setAttribute('transform', 'translate(' + matrixHelper.props[12] + ',' + matrixHelper.props[13] + ')');\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS('http://www.w3.org/XML/1998/namespace', 'xml:space', 'preserve');\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d', shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length) {\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n\r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextLottieElement.prototype.sourceRectAtTime = function () {\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if (this._sizeChanged) {\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height,\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextLottieElement.prototype.renderInnerContent = function () {\r\n if (!this.data.singleShape) {\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if (this.lettersChangedFlag || this.textAnimator.lettersChangedFlag) {\r\n this._sizeChanged = true;\r\n var i;\r\n var len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\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];\r\n if (renderedLetter._mdf.m) {\r\n textSpan.setAttribute('transform', renderedLetter.m);\r\n }\r\n if (renderedLetter._mdf.o) {\r\n textSpan.setAttribute('opacity', renderedLetter.o);\r\n }\r\n if (renderedLetter._mdf.sw) {\r\n textSpan.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter._mdf.sc) {\r\n textSpan.setAttribute('stroke', renderedLetter.sc);\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/* global extendPrototype, BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement,\r\nFrameElement, RenderableDOMElement, Matrix, SVGStyleData, SVGStrokeStyleData, SVGFillStyleData,\r\nSVGGradientFillStyleData, SVGGradientStrokeStyleData, locationHref, getBlendMode, ShapeGroupData,\r\nTransformPropertyFactory, SVGTransformData, ShapePropertyFactory, SVGShapeData, SVGElementsRenderer, ShapeModifiers,\r\nlineCapEnum, lineJoinEnum */\r\n\r\nfunction SVGShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.initElement(data, globalData, comp);\r\n // 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 this.prevViewData = [];\r\n // 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\nextendPrototype([BaseElement, TransformElement, SVGBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableDOMElement], SVGShapeElement);\r\n\r\nSVGShapeElement.prototype.initSecondaryElement = function () {\r\n};\r\n\r\nSVGShapeElement.prototype.identityMatrix = new Matrix();\r\n\r\nSVGShapeElement.prototype.buildExpressionInterface = function () {};\r\n\r\nSVGShapeElement.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/*\r\nThis method searches for multiple shapes that affect a single element and one of them is animated\r\n*/\r\nSVGShapeElement.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 for (j = 0; j < jLen; j += 1) {\r\n style = this.stylesList[j];\r\n areAnimated = false;\r\n tempShapes.length = 0;\r\n for (i = 0; i < len; i += 1) {\r\n shape = this.shapes[i];\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 if (tempShapes.length > 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function (shapes) {\r\n var i;\r\n var len = shapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.createStyleElement = function (data, level) {\r\n // TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if (data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if (data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if (data.ty === 'gf' || data.ty === 'gs') {\r\n var GradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new GradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask', 'url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', lineCapEnum[data.lc || 2]);\r\n pathElement.setAttribute('stroke-linejoin', lineJoinEnum[data.lj || 2]);\r\n pathElement.setAttribute('fill-opacity', '0');\r\n if (data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit', data.ml);\r\n }\r\n }\r\n\r\n if (data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if (data.ln) {\r\n pathElement.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n pathElement.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n pathElement.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function (data) {\r\n var elementData = new ShapeGroupData();\r\n if (data.ln) {\r\n elementData.gr.setAttribute('id', data.ln);\r\n }\r\n if (data.cl) {\r\n elementData.gr.setAttribute('class', data.cl);\r\n }\r\n if (data.bm) {\r\n elementData.gr.style['mix-blend-mode'] = getBlendMode(data.bm);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function (data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this, data, this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function (data, ownTransformers, level) {\r\n var ty = 4;\r\n if (data.ty === 'rc') {\r\n ty = 5;\r\n } else if (data.ty === 'el') {\r\n ty = 6;\r\n } else if (data.ty === 'sr') {\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this, data, ty, this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function (data, element) {\r\n var i = 0;\r\n var len = this.animatedContents.length;\r\n while (i < len) {\r\n if (this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data,\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function (elementData) {\r\n var arr = elementData.styles;\r\n var j;\r\n var jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, container, level, transformers, render) {\r\n var ownTransformers = [].concat(transformers);\r\n var i;\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 for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if (arr[i]._render) {\r\n if (itemsData[i].style.pElem.parentNode !== container) {\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\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 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 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 this.setElementStyles(itemsData[i]);\r\n } else if (arr[i].ty === 'tm' || arr[i].ty === 'rd' || arr[i].ty === 'ms' || arr[i].ty === 'pb') {\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 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 ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n len = ownStyles.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownStyles[i].closed = true;\r\n }\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.renderInnerContent = function () {\r\n this.renderModifiers();\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.stylesList[i].reset();\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);\r\n // Adding M0 0 fixes same mask bug on all browsers\r\n this.stylesList[i].d = 'M0 0' + this.stylesList[i].d;\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\nSVGShapeElement.prototype.renderShape = function () {\r\n var i;\r\n var len = this.animatedContents.length;\r\n var animatedContent;\r\n for (i = 0; i < len; i += 1) {\r\n animatedContent = this.animatedContents[i];\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\nSVGShapeElement.prototype.destroy = function () {\r\n this.destroyBaseElement();\r\n this.shapesData = null;\r\n this.itemsData = null;\r\n};\r\n\r\n/* global createNS */\r\n\r\nfunction SVGTintFilter(filter, filterManager) {\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', 'f1');\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', 'f2');\r\n filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n if (filterManager.effectElements[2].p.v !== 100 || filterManager.effectElements[2].p.k) {\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'f2');\r\n feMerge.appendChild(feMergeNode);\r\n }\r\n}\r\n\r\nSVGTintFilter.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/* global createNS */\r\n\r\nfunction SVGFillFilter(filter, filterManager) {\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 filter.appendChild(feColorMatrix);\r\n this.matrixFilter = feColorMatrix;\r\n}\r\nSVGFillFilter.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/* global createNS */\r\n\r\nfunction SVGGaussianBlurEffect(filter, filterManager) {\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\r\n this.filterManager = filterManager;\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n filter.appendChild(feGaussianBlur);\r\n this.feGaussianBlur = feGaussianBlur;\r\n}\r\n\r\nSVGGaussianBlurEffect.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;\r\n\r\n // Dimensions mapping:\r\n //\r\n // 1 -> horizontal & vertical\r\n // 2 -> horizontal only\r\n // 3 -> vertical only\r\n //\r\n var dimensions = this.filterManager.effectElements[1].p.v;\r\n var sigmaX = (dimensions == 3) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n var sigmaY = (dimensions == 2) ? 0 : sigma; // eslint-disable-line eqeqeq\r\n\r\n this.feGaussianBlur.setAttribute('stdDeviation', sigmaX + ' ' + sigmaY);\r\n\r\n // Repeat edges mapping:\r\n //\r\n // 0 -> off -> duplicate\r\n // 1 -> on -> wrap\r\n var edgeMode = (this.filterManager.effectElements[2].p.v == 1) ? 'wrap' : 'duplicate'; // eslint-disable-line eqeqeq\r\n this.feGaussianBlur.setAttribute('edgeMode', edgeMode);\r\n }\r\n};\r\n\r\n/* global createNS, createElementID, locationHref, bmFloor */\r\n\r\nfunction SVGStrokeEffect(elem, filterManager) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.elem = elem;\r\n this.paths = [];\r\n}\r\n\r\nSVGStrokeEffect.prototype.initialize = function () {\r\n 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 if (this.filterManager.effectElements[1].p.v === 1) {\r\n len = this.elem.maskManager.masksProperties.length;\r\n i = 0;\r\n } else {\r\n i = this.filterManager.effectElements[0].p.v - 1;\r\n len = i + 1;\r\n }\r\n groupPath = createNS('g');\r\n groupPath.setAttribute('fill', 'none');\r\n groupPath.setAttribute('stroke-linecap', 'round');\r\n groupPath.setAttribute('stroke-dashoffset', 1);\r\n for (i; i < len; i += 1) {\r\n path = createNS('path');\r\n groupPath.appendChild(path);\r\n this.paths.push({ p: path, m: i });\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(' + locationHref + '#' + id + ')');\r\n while (elemChildren[0]) {\r\n g.appendChild(elemChildren[0]);\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 while (elemChildren.length) {\r\n this.elem.layerElement.removeChild(elemChildren[0]);\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 this.initialized = true;\r\n this.pathMasker = groupPath;\r\n};\r\n\r\nSVGStrokeEffect.prototype.renderFrame = function (forceRender) {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n var i;\r\n var len = this.paths.length;\r\n var mask;\r\n var path;\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 if (forceRender || this.filterManager._mdf || mask.prop._mdf) {\r\n path.setAttribute('d', mask.lastPath);\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 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 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 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 path.setAttribute('stroke-dasharray', dasharrayValue);\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 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/* global createNS */\r\n\r\nfunction SVGTritoneFilter(filter, filterManager) {\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', 'f1');\r\n filter.appendChild(feColorMatrix);\r\n var feComponentTransfer = createNS('feComponentTransfer');\r\n feComponentTransfer.setAttribute('color-interpolation-filters', 'sRGB');\r\n filter.appendChild(feComponentTransfer);\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}\r\n\r\nSVGTritoneFilter.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 // 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/* global createNS */\r\n\r\nfunction SVGProLevelsFilter(filter, filterManager) {\r\n this.filterManager = filterManager;\r\n var effectElements = this.filterManager.effectElements;\r\n var feComponentTransfer = createNS('feComponentTransfer');\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 }\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 }\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 }\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 }\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 feComponentTransfer = createNS('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.setAttribute('color-interpolation-filters', 'sRGB');\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\nSVGProLevelsFilter.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\nSVGProLevelsFilter.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, { length: segments });\r\n var colorValue;\r\n var pos = 0;\r\n var outputDelta = outputWhite - outputBlack;\r\n var inputDelta = inputWhite - inputBlack;\r\n while (cnt <= 256) {\r\n perc = cnt / 256;\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 table[pos] = colorValue;\r\n pos += 1;\r\n cnt += 256 / (segments - 1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n var val;\r\n var effectElements = this.filterManager.effectElements;\r\n if (this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)) {\r\n val = this.getTableValue(effectElements[3].p.v, effectElements[4].p.v, effectElements[5].p.v, effectElements[6].p.v, effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues', val);\r\n this.feFuncGComposed.setAttribute('tableValues', val);\r\n this.feFuncBComposed.setAttribute('tableValues', val);\r\n }\r\n\r\n 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/* global createNS, rgbToHex, degToRads */\r\n\r\nfunction SVGDropShadowEffect(filter, filterManager) {\r\n var filterSize = filterManager.container.globalData.renderConfig.filterSize;\r\n filter.setAttribute('x', filterSize.x);\r\n filter.setAttribute('y', filterSize.y);\r\n filter.setAttribute('width', filterSize.width);\r\n filter.setAttribute('height', filterSize.height);\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in', 'SourceAlpha');\r\n feGaussianBlur.setAttribute('result', 'drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation', '0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx', '25');\r\n feOffset.setAttribute('dy', '0');\r\n feOffset.setAttribute('in', 'drop_shadow_1');\r\n feOffset.setAttribute('result', 'drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color', '#00ff00');\r\n feFlood.setAttribute('flood-opacity', '1');\r\n feFlood.setAttribute('result', 'drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in', 'drop_shadow_3');\r\n feComposite.setAttribute('in2', 'drop_shadow_2');\r\n feComposite.setAttribute('operator', 'in');\r\n feComposite.setAttribute('result', 'drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in', 'SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function (forceRender) {\r\n if (forceRender || this.filterManager._mdf) {\r\n if (forceRender || this.filterManager.effectElements[4].p._mdf) {\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if (forceRender || this.filterManager.effectElements[0].p._mdf) {\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color', rgbToHex(Math.round(col[0] * 255), Math.round(col[1] * 255), Math.round(col[2] * 255)));\r\n }\r\n if (forceRender || this.filterManager.effectElements[1].p._mdf) {\r\n this.feFlood.setAttribute('flood-opacity', this.filterManager.effectElements[1].p.v / 255);\r\n }\r\n if (forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf) {\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /* if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n } */\r\n }\r\n};\r\n\r\n/* global createElementID, createNS */\r\n\r\nvar _svgMatteSymbols = [];\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem) {\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function (mask) {\r\n var i = 0;\r\n var len = _svgMatteSymbols.length;\r\n while (i < len) {\r\n if (_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function (mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if (!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0;\r\n var len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if (nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function (elem, mask) {\r\n if (!this.findSymbol(mask)) {\r\n var symbolId = createElementID();\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function () {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0;\r\n var len = elements.length;\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 i += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function () {\r\n if (!this.initialized) {\r\n this.initialize();\r\n }\r\n};\r\n\r\n/* global createElementID, filtersFactory, SVGTintFilter, SVGFillFilter, SVGStrokeEffect, SVGTritoneFilter,\r\nSVGProLevelsFilter, SVGDropShadowEffect, SVGMatte3Effect, SVGGaussianBlurEffect, locationHref */\r\n\r\nfunction SVGEffects(elem) {\r\n var i;\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 for (i = 0; i < len; i += 1) {\r\n filterManager = null;\r\n if (elem.data.ef[i].ty === 20) {\r\n count += 1;\r\n filterManager = new SVGTintFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 21) {\r\n count += 1;\r\n filterManager = new SVGFillFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 22) {\r\n filterManager = new SVGStrokeEffect(elem, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 23) {\r\n count += 1;\r\n filterManager = new SVGTritoneFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 24) {\r\n count += 1;\r\n filterManager = new SVGProLevelsFilter(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 25) {\r\n count += 1;\r\n filterManager = new SVGDropShadowEffect(fil, elem.effectsManager.effectElements[i]);\r\n } else if (elem.data.ef[i].ty === 28) {\r\n // count += 1;\r\n filterManager = new SVGMatte3Effect(fil, elem.effectsManager.effectElements[i], elem);\r\n } else if (elem.data.ef[i].ty === 29) {\r\n count += 1;\r\n filterManager = new SVGGaussianBlurEffect(fil, elem.effectsManager.effectElements[i]);\r\n }\r\n if (filterManager) {\r\n this.filters.push(filterManager);\r\n }\r\n }\r\n if (count) {\r\n elem.globalData.defs.appendChild(fil);\r\n elem.layerElement.setAttribute('filter', 'url(' + locationHref + '#' + filId + ')');\r\n }\r\n if (this.filters.length) {\r\n elem.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nSVGEffects.prototype.renderFrame = function (_isFirstFrame) {\r\n var i;\r\n var len = this.filters.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.filters[i].renderFrame(_isFirstFrame);\r\n }\r\n};\r\n\r\n/* global Matrix, createTypedArray */\r\n\r\nfunction 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 for (i = 0; i < len; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = len;\r\n}\r\n\r\nCVContextData.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 for (i = this._length; i < newLength; i += 1) {\r\n this.saved[i] = createTypedArray('float32', 16);\r\n }\r\n this._length = newLength;\r\n};\r\n\r\nCVContextData.prototype.reset = function () {\r\n this.cArrPos = 0;\r\n this.cTr.reset();\r\n this.cO = 1;\r\n};\r\n\r\n/* global CVEffects, getBlendMode, CVMaskElement, Matrix */\r\n\r\nfunction CVBaseElement() {\r\n}\r\n\r\nCVBaseElement.prototype = {\r\n createElements: function () {},\r\n initRendererElement: function () {},\r\n createContainerElements: function () {\r\n this.canvasContext = this.globalData.canvasContext;\r\n this.renderableEffectsManager = new CVEffects(this);\r\n },\r\n createContent: function () {},\r\n setBlendMode: function () {\r\n var globalData = this.globalData;\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 () {\r\n this.maskManager = new CVMaskElement(this.data, this);\r\n },\r\n hideElement: function () {\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n this.hidden = true;\r\n }\r\n },\r\n showElement: function () {\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 () {\r\n if (this.hidden || this.data.hd) {\r\n return;\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 if (this.maskManager.hasMasks) {\r\n this.globalData.renderer.restore(true);\r\n }\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\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\nCVBaseElement.prototype.hide = CVBaseElement.prototype.hideElement;\r\nCVBaseElement.prototype.show = CVBaseElement.prototype.showElement;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement,HierarchyElement, FrameElement,\r\nRenderableElement, SVGShapeElement, IImageElement, createTag */\r\n\r\nfunction 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\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVImageElement);\r\n\r\nCVImageElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVImageElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVImageElement.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\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 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 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\nCVImageElement.prototype.renderInnerContent = function () {\r\n this.canvasContext.drawImage(this.img, 0, 0);\r\n};\r\n\r\nCVImageElement.prototype.destroy = function () {\r\n this.img = null;\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, CanvasRenderer, ICompElement, CVBaseElement */\r\n\r\nfunction CVCompElement(data, globalData, comp) {\r\n this.completeLayers = false;\r\n this.layers = data.layers;\r\n this.pendingElements = [];\r\n this.elements = createSizedArray(this.layers.length);\r\n this.initElement(data, globalData, comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this, data.tm, 0, globalData.frameRate, this) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([CanvasRenderer, ICompElement, CVBaseElement], CVCompElement);\r\n\r\nCVCompElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(this.data.w, 0);\r\n ctx.lineTo(this.data.w, this.data.h);\r\n ctx.lineTo(0, this.data.h);\r\n ctx.lineTo(0, 0);\r\n ctx.clip();\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.completeLayers || this.elements[i]) {\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nCVCompElement.prototype.destroy = function () {\r\n var i;\r\n var len = this.layers.length;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n if (this.elements[i]) {\r\n this.elements[i].destroy();\r\n }\r\n }\r\n this.layers = null;\r\n this.elements = null;\r\n};\r\n\r\n/* global createSizedArray, ShapePropertyFactory, MaskElement */\r\n\r\nfunction CVMaskElement(data, element) {\r\n this.data = data;\r\n this.element = element;\r\n this.masksProperties = this.data.masksProperties || [];\r\n this.viewData = createSizedArray(this.masksProperties.length);\r\n var i;\r\n var len = this.masksProperties.length;\r\n var hasMasks = false;\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 this.viewData[i] = ShapePropertyFactory.getShapeProp(this.element, this.masksProperties[i], 3);\r\n }\r\n this.hasMasks = hasMasks;\r\n if (hasMasks) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n}\r\n\r\nCVMaskElement.prototype.renderFrame = function () {\r\n if (!this.hasMasks) {\r\n return;\r\n }\r\n var transform = this.element.finalTransform.mat;\r\n var ctx = this.element.canvasContext;\r\n var i;\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 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 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 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 pts = transform.applyToTriplePoints(data.o[j - 1], data.i[0], data.v[0]);\r\n ctx.bezierCurveTo(pts[0], pts[1], pts[2], pts[3], pts[4], pts[5]);\r\n }\r\n }\r\n this.element.globalData.renderer.save(true);\r\n ctx.clip();\r\n};\r\n\r\nCVMaskElement.prototype.getMaskProperty = MaskElement.prototype.getMaskProperty;\r\n\r\nCVMaskElement.prototype.destroy = function () {\r\n this.element = null;\r\n};\r\n\r\n/* global ShapeTransformManager, extendPrototype, BaseElement, TransformElement, CVBaseElement, IShapeElement,\r\nHierarchyElement, FrameElement, RenderableElement, RenderableDOMElement, PropertyFactory, degToRads, GradientProperty,\r\nDashProperty, TransformPropertyFactory, CVShapeData, ShapeModifiers, bmFloor, lineCapEnum, lineJoinEnum */\r\n\r\nfunction CVShapeElement(data, globalData, comp) {\r\n this.shapes = [];\r\n this.shapesData = data.shapes;\r\n this.stylesList = [];\r\n this.itemsData = [];\r\n this.prevViewData = [];\r\n this.shapeModifiers = [];\r\n this.processedElements = [];\r\n this.transformsManager = new ShapeTransformManager();\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, IShapeElement, HierarchyElement, FrameElement, RenderableElement], CVShapeElement);\r\n\r\nCVShapeElement.prototype.initElement = RenderableDOMElement.prototype.initElement;\r\n\r\nCVShapeElement.prototype.transformHelper = { opacity: 1, _opMdf: false };\r\n\r\nCVShapeElement.prototype.dashResetter = [];\r\n\r\nCVShapeElement.prototype.createContent = function () {\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n};\r\n\r\nCVShapeElement.prototype.createStyleElement = function (data, transforms) {\r\n var styleElem = {\r\n data: data,\r\n type: data.ty,\r\n preTransforms: this.transformsManager.addTransformSequence(transforms),\r\n transforms: [],\r\n elements: [],\r\n closed: data.hd === true,\r\n };\r\n var elementData = {};\r\n if (data.ty === 'fl' || data.ty === 'st') {\r\n elementData.c = PropertyFactory.getProp(this, data.c, 1, 255, this);\r\n if (!elementData.c.k) {\r\n styleElem.co = 'rgb(' + 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 || { k: 0 }, 0, 0.01, this);\r\n elementData.a = PropertyFactory.getProp(this, data.a || { k: 0 }, 0, degToRads, this);\r\n elementData.g = new GradientProperty(this, data.g, this);\r\n }\r\n elementData.o = PropertyFactory.getProp(this, data.o, 0, 0.01, this);\r\n if (data.ty === 'st' || data.ty === 'gs') {\r\n styleElem.lc = lineCapEnum[data.lc || 2];\r\n styleElem.lj = lineJoinEnum[data.lj || 2];\r\n if (data.lj == 1) { // eslint-disable-line eqeqeq\r\n styleElem.ml = data.ml;\r\n }\r\n elementData.w = PropertyFactory.getProp(this, data.w, 0, null, this);\r\n if (!elementData.w.k) {\r\n styleElem.wi = elementData.w.v;\r\n }\r\n if (data.d) {\r\n var d = new DashProperty(this, data.d, 'canvas', this);\r\n elementData.d = d;\r\n if (!elementData.d.k) {\r\n styleElem.da = elementData.d.dashArray;\r\n styleElem.do = elementData.d.dashoffset[0];\r\n }\r\n }\r\n } else {\r\n styleElem.r = data.r === 2 ? 'evenodd' : 'nonzero';\r\n }\r\n this.stylesList.push(styleElem);\r\n elementData.style = styleElem;\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createGroupElement = function () {\r\n var elementData = {\r\n it: [],\r\n prevViewData: [],\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createTransformElement = function (data) {\r\n var elementData = {\r\n transform: {\r\n opacity: 1,\r\n _opMdf: false,\r\n key: this.transformsManager.getNewKey(),\r\n op: PropertyFactory.getProp(this, data.o, 0, 0.01, this),\r\n mProps: TransformPropertyFactory.getTransformProperty(this, data, this),\r\n },\r\n };\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.createShapeElement = function (data) {\r\n var elementData = new CVShapeData(this, data, this.stylesList, this.transformsManager);\r\n\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n return elementData;\r\n};\r\n\r\nCVShapeElement.prototype.reloadShapes = function () {\r\n this._isFirstFrame = true;\r\n var i;\r\n var len = this.itemsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData, this.itemsData, this.prevViewData, true, []);\r\n len = this.dynamicProperties.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n this.transformsManager.processSequences(this._isFirstFrame);\r\n};\r\n\r\nCVShapeElement.prototype.addTransformToStyleList = function (transform) {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.push(transform);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.removeTransformFromStyleList = function () {\r\n var i;\r\n var len = this.stylesList.length;\r\n for (i = 0; i < len; i += 1) {\r\n if (!this.stylesList[i].closed) {\r\n this.stylesList[i].transforms.pop();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.closeStyles = function (styles) {\r\n var i;\r\n var len = styles.length;\r\n for (i = 0; i < len; i += 1) {\r\n styles[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.searchShapes = function (arr, itemsData, prevViewData, shouldRender, transforms) {\r\n var i;\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 for (i = len; i >= 0; i -= 1) {\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if (!processedPos) {\r\n arr[i]._shouldRender = shouldRender;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if (arr[i].ty === 'fl' || arr[i].ty === 'st' || arr[i].ty === 'gf' || arr[i].ty === 'gs') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createStyleElement(arr[i], ownTransforms);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n\r\n ownStyles.push(itemsData[i].style);\r\n } else if (arr[i].ty === 'gr') {\r\n if (!processedPos) {\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n itemsData[i].prevViewData[j] = itemsData[i].it[j];\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 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') {\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 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 ownModifiers.push(modifier);\r\n }\r\n this.addProcessedElement(arr[i], i + 1);\r\n }\r\n this.removeTransformFromStyleList();\r\n this.closeStyles(ownStyles);\r\n len = ownModifiers.length;\r\n for (i = 0; i < len; i += 1) {\r\n ownModifiers[i].closed = true;\r\n }\r\n};\r\n\r\nCVShapeElement.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\nCVShapeElement.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\nCVShapeElement.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 for (i = 0; i < len; i += 1) {\r\n currentStyle = this.stylesList[i];\r\n type = currentStyle.type;\r\n\r\n // 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 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 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 renderer.ctxOpacity(currentStyle.coOp);\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.beginPath();\r\n }\r\n renderer.ctxTransform(currentStyle.preTransforms.finalTransform.props);\r\n jLen = elems.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (type === 'st' || type === 'gs') {\r\n ctx.beginPath();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(currentStyle.da);\r\n ctx.lineDashOffset = currentStyle.do;\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 if (type === 'st' || type === 'gs') {\r\n ctx.stroke();\r\n if (currentStyle.da) {\r\n ctx.setLineDash(this.dashResetter);\r\n }\r\n }\r\n }\r\n if (type !== 'st' && type !== 'gs') {\r\n ctx.fill(currentStyle.r);\r\n }\r\n renderer.restore();\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.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 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\nCVShapeElement.prototype.renderStyledShape = function (styledShape, shape) {\r\n if (this._isFirstFrame || shape._mdf || styledShape.transforms._mdf) {\r\n var shapeNodes = styledShape.trNodes;\r\n var paths = shape.paths;\r\n var i;\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 for (j = 0; j < jLen; j += 1) {\r\n var pathNodes = paths.shapes[j];\r\n if (pathNodes && pathNodes.v) {\r\n len = pathNodes._length;\r\n for (i = 1; i < len; i += 1) {\r\n if (i === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[i], pathNodes.v[i]),\r\n });\r\n }\r\n if (len === 1) {\r\n shapeNodes.push({\r\n t: 'm',\r\n p: groupTransformMat.applyToPointArray(pathNodes.v[0][0], pathNodes.v[0][1], 0),\r\n });\r\n }\r\n if (pathNodes.c && len) {\r\n shapeNodes.push({\r\n t: 'c',\r\n pts: groupTransformMat.applyToTriplePoints(pathNodes.o[i - 1], pathNodes.i[0], pathNodes.v[0]),\r\n });\r\n shapeNodes.push({\r\n t: 'z',\r\n });\r\n }\r\n }\r\n }\r\n styledShape.trNodes = shapeNodes;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderPath = function (pathData, itemData) {\r\n if (pathData.hd !== true && pathData._shouldRender) {\r\n var i;\r\n var len = itemData.styledShapes.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.renderStyledShape(itemData.styledShapes[i], itemData.sh);\r\n }\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb('\r\n + bmFloor(itemData.c.v[0]) + ','\r\n + bmFloor(itemData.c.v[1]) + ','\r\n + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.renderGradientFill = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var grd;\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 if (styleData.t === 1) {\r\n grd = ctx.createLinearGradient(pt1[0], pt1[1], pt2[0], pt2[1]);\r\n } else {\r\n var rad = Math.sqrt(Math.pow(pt1[0] - pt2[0], 2) + Math.pow(pt1[1] - pt2[1], 2));\r\n var ang = Math.atan2(pt2[1] - pt1[1], pt2[0] - pt1[0]);\r\n\r\n var percent = itemData.h.v;\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 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 grd.addColorStop(cValues[i * 4] / 100, 'rgba(' + cValues[i * 4 + 1] + ',' + cValues[i * 4 + 2] + ',' + cValues[i * 4 + 3] + ',' + opacity + ')');\r\n }\r\n styleElem.grd = grd;\r\n }\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n};\r\n\r\nCVShapeElement.prototype.renderStroke = function (styleData, itemData, groupTransform) {\r\n var styleElem = itemData.style;\r\n var d = itemData.d;\r\n if (d && (d._mdf || this._isFirstFrame)) {\r\n styleElem.da = d.dashArray;\r\n styleElem.do = d.dashoffset[0];\r\n }\r\n if (itemData.c._mdf || this._isFirstFrame) {\r\n styleElem.co = 'rgb(' + bmFloor(itemData.c.v[0]) + ',' + bmFloor(itemData.c.v[1]) + ',' + bmFloor(itemData.c.v[2]) + ')';\r\n }\r\n if (itemData.o._mdf || groupTransform._opMdf || this._isFirstFrame) {\r\n styleElem.coOp = itemData.o.v * groupTransform.opacity;\r\n }\r\n if (itemData.w._mdf || this._isFirstFrame) {\r\n styleElem.wi = itemData.w.v;\r\n }\r\n};\r\n\r\nCVShapeElement.prototype.destroy = function () {\r\n this.shapesData = null;\r\n this.globalData = null;\r\n this.canvasContext = null;\r\n this.stylesList.length = 0;\r\n this.itemsData.length = 0;\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement,\r\nSVGShapeElement, IImageElement */\r\n\r\nfunction CVSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement], CVSolidElement);\r\n\r\nCVSolidElement.prototype.initElement = SVGShapeElement.prototype.initElement;\r\nCVSolidElement.prototype.prepareFrame = IImageElement.prototype.prepareFrame;\r\n\r\nCVSolidElement.prototype.renderInnerContent = function () {\r\n var ctx = this.canvasContext;\r\n ctx.fillStyle = this.data.sc;\r\n ctx.fillRect(0, 0, this.data.sw, this.data.sh);\r\n //\r\n};\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement,\r\nRenderableElement, ITextElement, createTag, createSizedArray */\r\n\r\nfunction CVTextElement(data, globalData, comp) {\r\n this.textSpans = [];\r\n this.yOffset = 0;\r\n this.fillColorAnim = false;\r\n this.strokeColorAnim = false;\r\n this.strokeWidthAnim = false;\r\n this.stroke = false;\r\n this.fill = false;\r\n this.justifyOffset = 0;\r\n this.currentRender = null;\r\n this.renderType = 'canvas';\r\n this.values = {\r\n fill: 'rgba(0,0,0,0)',\r\n stroke: 'rgba(0,0,0,0)',\r\n sWidth: 0,\r\n fValue: '',\r\n };\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, CVBaseElement, HierarchyElement, FrameElement, RenderableElement, ITextElement], CVTextElement);\r\n\r\nCVTextElement.prototype.tHelper = createTag('canvas').getContext('2d');\r\n\r\nCVTextElement.prototype.buildNewText = function () {\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData.l ? documentData.l.length : 0);\r\n\r\n var hasFill = false;\r\n if (documentData.fc) {\r\n hasFill = true;\r\n this.values.fill = this.buildColor(documentData.fc);\r\n } else {\r\n this.values.fill = 'rgba(0,0,0,0)';\r\n }\r\n this.fill = hasFill;\r\n var hasStroke = false;\r\n if (documentData.sc) {\r\n hasStroke = true;\r\n this.values.stroke = this.buildColor(documentData.sc);\r\n this.values.sWidth = documentData.sw;\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n var i;\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;\r\n // this.tHelper.font = this.values.fValue;\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 for (i = 0; i < len; i += 1) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = (charData && charData.data) || {};\r\n matrixHelper.reset();\r\n if (singleShape && letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n jLen = shapes.length;\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n }\r\n commands = createSizedArray(jLen);\r\n for (j = 0; j < jLen; j += 1) {\r\n kLen = shapes[j].ks.k.i.length;\r\n pathNodes = shapes[j].ks.k;\r\n pathArr = [];\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 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 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[j] = pathArr;\r\n }\r\n if (singleShape) {\r\n xPos += letters[i].l;\r\n xPos += trackingOffset;\r\n }\r\n if (this.textSpans[cnt]) {\r\n this.textSpans[cnt].elem = commands;\r\n } else {\r\n this.textSpans[cnt] = { elem: commands };\r\n }\r\n cnt += 1;\r\n }\r\n};\r\n\r\nCVTextElement.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\r\n var letters = this.textProperty.currentData.l;\r\n\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 for (i = 0; i < len; i += 1) {\r\n if (!letters[i].n) {\r\n renderedLetter = renderedLetters[i];\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 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 commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\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 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 this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.fill();\r\n /// ctx.fillText(this.textSpans[i].val,0,0);\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 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 commands = this.textSpans[i].elem;\r\n jLen = commands.length;\r\n this.globalData.canvasContext.beginPath();\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 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 this.globalData.canvasContext.closePath();\r\n this.globalData.canvasContext.stroke();\r\n /// ctx.strokeText(letters[i].val,0,0);\r\n }\r\n if (renderedLetter) {\r\n this.globalData.renderer.restore();\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction CVEffects() {\r\n\r\n}\r\nCVEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, createNS, styleDiv, CVEffects, MaskElement, SVGBaseElement, HybridRenderer */\r\n\r\nfunction HBaseElement() {}\r\nHBaseElement.prototype = {\r\n checkBlendMode: function () {},\r\n initRendererElement: function () {\r\n this.baseElement = createTag(this.data.tg || 'div');\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 styleDiv(this.baseElement);\r\n },\r\n createContainerElements: function () {\r\n this.renderableEffectsManager = new CVEffects(this);\r\n this.transformedElement = this.baseElement;\r\n this.maskedElement = this.layerElement;\r\n if (this.data.ln) {\r\n this.layerElement.setAttribute('id', this.data.ln);\r\n }\r\n if (this.data.cl) {\r\n this.layerElement.setAttribute('class', this.data.cl);\r\n }\r\n if (this.data.bm !== 0) {\r\n this.setBlendMode();\r\n }\r\n },\r\n renderElement: function () {\r\n var transformedElementStyle = this.transformedElement ? this.transformedElement.style : {};\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 if (this.finalTransform._opMdf) {\r\n transformedElementStyle.opacity = this.finalTransform.mProp.o.v;\r\n }\r\n },\r\n renderFrame: function () {\r\n // If it is exported as hidden (data.hd === true) no need to render\r\n // If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n destroy: function () {\r\n this.layerElement = null;\r\n this.transformedElement = null;\r\n if (this.matteElement) {\r\n this.matteElement = null;\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 () {\r\n this.maskManager = new MaskElement(this.data, this, this.globalData);\r\n },\r\n addEffects: function () {\r\n },\r\n setMatte: function () {},\r\n};\r\nHBaseElement.prototype.getBaseElement = SVGBaseElement.prototype.getBaseElement;\r\nHBaseElement.prototype.destroyBaseElement = HBaseElement.prototype.destroy;\r\nHBaseElement.prototype.buildElementParenting = HybridRenderer.prototype.buildElementParenting;\r\n\r\n/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, createNS, createTag */\r\n\r\nfunction HSolidElement(data, globalData, comp) {\r\n this.initElement(data, globalData, comp);\r\n}\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement], HSolidElement);\r\n\r\nHSolidElement.prototype.createContent = function () {\r\n var rect;\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 this.layerElement.appendChild(rect);\r\n};\r\n\r\n/* global createSizedArray, PropertyFactory, extendPrototype, HybridRenderer, ICompElement, HBaseElement */\r\n\r\nfunction 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) : { _placeholder: true };\r\n}\r\n\r\nextendPrototype([HybridRenderer, ICompElement, HBaseElement], HCompElement);\r\nHCompElement.prototype._createBaseContainerElements = HCompElement.prototype.createContainerElements;\r\n\r\nHCompElement.prototype.createContainerElements = function () {\r\n this._createBaseContainerElements();\r\n // divElement.style.clip = 'rect(0px, '+this.data.w+'px, '+this.data.h+'px, 0px)';\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\nHCompElement.prototype.addTo3dContainer = function (elem, pos) {\r\n var j = 0;\r\n var nextElement;\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 j += 1;\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/* global createNS, extendPrototype, BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement,\r\nHierarchyElement, FrameElement, RenderableElement, createNS, bmMin, bmSqrt, bmMin, bmMax, bmPow */\r\n\r\nfunction HShapeElement(data, globalData, comp) {\r\n // List of drawable elements\r\n this.shapes = [];\r\n // Full shape data\r\n this.shapesData = data.shapes;\r\n // List of styles that will be applied to shapes\r\n this.stylesList = [];\r\n // List of modifiers that will be applied to shapes\r\n this.shapeModifiers = [];\r\n // List of items in shape tree\r\n this.itemsData = [];\r\n // List of items in previous shape tree\r\n this.processedElements = [];\r\n // List of animated components\r\n this.animatedContents = [];\r\n this.shapesContainer = createNS('g');\r\n this.initElement(data, globalData, comp);\r\n // 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 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\nextendPrototype([BaseElement, TransformElement, HSolidElement, SVGShapeElement, HBaseElement, HierarchyElement, FrameElement, RenderableElement], HShapeElement);\r\nHShapeElement.prototype._renderShapeFrame = HShapeElement.prototype.renderInnerContent;\r\n\r\nHShapeElement.prototype.createContent = function () {\r\n var cont;\r\n this.baseElement.style.fontSize = 0;\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\nHShapeElement.prototype.getTransformedPoint = function (transformers, point) {\r\n var i;\r\n var len = transformers.length;\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 return point;\r\n};\r\n\r\nHShapeElement.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 if (len <= 1) {\r\n return;\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 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\nHShapeElement.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\nHShapeElement.prototype.shapeBoundingBox = {\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n};\r\n\r\nHShapeElement.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\nHShapeElement.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) { // 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\r\n b |= 0; // eslint-disable-line no-bitwise\r\n a |= 0; // eslint-disable-line no-bitwise\r\n c |= 0; // eslint-disable-line no-bitwise\r\n\r\n if (a === 0 && b === 0) {\r\n //\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\nHShapeElement.prototype.calculateF = function (t, p0, p1, p2, p3, i) {\r\n return bmPow(1 - t, 3) * p0[i]\r\n + 3 * bmPow(1 - t, 2) * t * p1[i]\r\n + 3 * (1 - t) * bmPow(t, 2) * p2[i]\r\n + bmPow(t, 3) * p3[i];\r\n};\r\n\r\nHShapeElement.prototype.calculateBoundingBox = function (itemsData, boundingBox) {\r\n var i;\r\n var len = itemsData.length;\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 }\r\n }\r\n};\r\n\r\nHShapeElement.prototype.currentBoxContains = function (box) {\r\n return this.currentBBox.x <= box.x\r\n && this.currentBBox.y <= box.y\r\n && this.currentBBox.width + this.currentBBox.x >= box.x + box.width\r\n && this.currentBBox.height + this.currentBBox.y >= box.y + box.height;\r\n};\r\n\r\nHShapeElement.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;\r\n // var tempBoundingBox = this.shapeCont.getBBox();\r\n if (this.currentBoxContains(tempBoundingBox)) {\r\n return;\r\n }\r\n var changed = false;\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 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 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\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/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement,\r\nRenderableDOMElement, ITextElement, createSizedArray, createTag, styleDiv, createNS, lineJoinEnum, lineCapEnum */\r\n\r\nfunction 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\nextendPrototype([BaseElement, TransformElement, HBaseElement, HierarchyElement, FrameElement, RenderableDOMElement, ITextElement], HTextElement);\r\n\r\nHTextElement.prototype.createContent = function () {\r\n this.isMasked = this.checkMasks();\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\nHTextElement.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 if (documentData.sc) {\r\n innerElemStyle.stroke = this.buildColor(documentData.sc);\r\n innerElemStyle.strokeWidth = documentData.sw + 'px';\r\n }\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if (!this.globalData.fontManager.chars) {\r\n innerElemStyle.fontSize = documentData.finalSize + 'px';\r\n innerElemStyle.lineHeight = documentData.finalSize + 'px';\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 var i;\r\n var len;\r\n\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 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 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 }\r\n // tSpan.setAttribute('visibility', 'hidden');\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 if (charData) {\r\n shapeData = charData.data;\r\n } else {\r\n shapeData = null;\r\n }\r\n matrixHelper.reset();\r\n if (shapeData && shapeData.shapes) {\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 if (!this.isMasked) {\r\n this.innerElem.appendChild(tParent);\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\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 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 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 if (!this.isMasked) {\r\n this.textSpans[cnt] = tParent;\r\n } else {\r\n this.textSpans[cnt] = tSpan;\r\n }\r\n this.textSpans[cnt].style.display = 'block';\r\n this.textPaths[cnt] = tSpan;\r\n cnt += 1;\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\nHTextElement.prototype.renderInnerContent = function () {\r\n var svgStyle;\r\n if (this.data.singleShape) {\r\n if (!this._isFirstFrame && !this.lettersChangedFlag) {\r\n return;\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 if (!this.lettersChangedFlag && !this.textAnimator.lettersChangedFlag) {\r\n return;\r\n }\r\n var i;\r\n var len;\r\n var count = 0;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter;\r\n var textSpan;\r\n var textPath;\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 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 }\r\n /// /textSpan.setAttribute('opacity',renderedLetter.o);\r\n textSpan.style.opacity = renderedLetter.o;\r\n if (renderedLetter.sw && renderedLetter._mdf.sw) {\r\n textPath.setAttribute('stroke-width', renderedLetter.sw);\r\n }\r\n if (renderedLetter.sc && renderedLetter._mdf.sc) {\r\n textPath.setAttribute('stroke', renderedLetter.sc);\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 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 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\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/* global extendPrototype, BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement,\r\nFrameElement, RenderableElement, createNS */\r\n\r\nfunction HImageElement(data, globalData, comp) {\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data, globalData, comp);\r\n}\r\n\r\nextendPrototype([BaseElement, TransformElement, HBaseElement, HSolidElement, HierarchyElement, FrameElement, RenderableElement], HImageElement);\r\n\r\nHImageElement.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 img.crossOrigin = 'anonymous';\r\n img.src = assetPath;\r\n if (this.data.ln) {\r\n this.baseElement.setAttribute('id', this.data.ln);\r\n }\r\n};\r\n\r\n/* global PropertyFactory, degToRads, Matrix, extendPrototype, BaseElement, FrameElement, HierarchyElement */\r\n\r\nfunction 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 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 if (data.ks.a) {\r\n this.a = getProp(this, data.ks.a, 1, 0, this);\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 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 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;\r\n\r\n // TODO: find a better way to make the HCamera element to be compatible with the LayerInterface and TransformInterface.\r\n this.finalTransform = {\r\n mProp: this,\r\n };\r\n}\r\nextendPrototype([BaseElement, FrameElement, HierarchyElement], HCameraElement);\r\n\r\nHCameraElement.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 for (i = 0; i < len; i += 1) {\r\n // [perspectiveElem,container]\r\n comp = this.comp.threeDElements[i];\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\nHCameraElement.prototype.createElements = function () {\r\n};\r\n\r\nHCameraElement.prototype.hide = function () {\r\n};\r\n\r\nHCameraElement.prototype.renderFrame = function () {\r\n var _mdf = this._isFirstFrame;\r\n var i;\r\n var len;\r\n if (this.hierarchy) {\r\n len = this.hierarchy.length;\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 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 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 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 if (this.a) {\r\n var diffVector;\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 var mag = Math.sqrt(Math.pow(diffVector[0], 2) + Math.pow(diffVector[1], 2) + Math.pow(diffVector[2], 2));\r\n // var lookDir = getNormalizedPoint(getDiffVector(this.a.v,this.p.v));\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 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\r\n var hasMatrixChanged = !this._prevMat.equals(this.mat);\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 for (i = 0; i < len; i += 1) {\r\n comp = this.comp.threeDElements[i];\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 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 this.mat.clone(this._prevMat);\r\n }\r\n }\r\n this._isFirstFrame = false;\r\n};\r\n\r\nHCameraElement.prototype.prepareFrame = function (num) {\r\n this.prepareProperties(num, true);\r\n};\r\n\r\nHCameraElement.prototype.destroy = function () {\r\n};\r\nHCameraElement.prototype.getBaseElement = function () { return null; };\r\n\r\nfunction HEffects() {\r\n}\r\nHEffects.prototype.renderFrame = function () {};\r\n\r\n/* global createTag, AnimationItem */\r\n/* exported animationManager */\r\n\r\nvar 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 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 if (!animItem.isPaused) {\r\n subtractPlayingCount();\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 var i = 0;\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 i += 1;\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 for (i = 0; i < lenAnims; i += 1) {\r\n animations.push(registeredAnimations[i].animation);\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({ elem: element, animation: animItem });\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 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 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 for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.play(animation);\r\n }\r\n }\r\n function resume(nowTime) {\r\n var elapsedTime = nowTime - initTime;\r\n var i;\r\n for (i = 0; i < len; i += 1) {\r\n registeredAnimations[i].animation.advanceTime(elapsedTime);\r\n }\r\n initTime = nowTime;\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 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 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 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 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 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')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i;\r\n var lenAnims = animElements.length;\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 registerAnimation(animElements[i], animationData);\r\n }\r\n if (standalone && lenAnims === 0) {\r\n if (!renderer) {\r\n renderer = 'svg';\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 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 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 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 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;\r\n // moduleOb.start = start;\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/* global createElementID, subframeEnabled, ProjectInterface, ImagePreloader, audioControllerFactory, extendPrototype, BaseEvent,\r\nCanvasRenderer, SVGRenderer, HybridRenderer, dataManager, expressionsPlugin, BMEnterFrameEvent, BMCompleteLoopEvent,\r\nBMCompleteEvent, BMSegmentStartEvent, BMDestroyEvent, BMEnterFrameEvent, BMCompleteLoopEvent, BMCompleteEvent, BMSegmentStartEvent,\r\nBMDestroyEvent, BMRenderFrameErrorEvent, BMConfigErrorEvent, markerParser */\r\n\r\nvar AnimationItem = function () {\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 = subframeEnabled;\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};\r\n\r\nextendPrototype([BaseEvent], AnimationItem);\r\n\r\nAnimationItem.prototype.setParams = function (params) {\r\n if (params.wrapper || params.container) {\r\n this.wrapper = params.wrapper || params.container;\r\n }\r\n var animType = 'svg';\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 switch (animType) {\r\n case 'canvas':\r\n this.renderer = new CanvasRenderer(this, params.rendererSettings);\r\n break;\r\n case 'svg':\r\n this.renderer = new SVGRenderer(this, params.rendererSettings);\r\n break;\r\n default:\r\n this.renderer = new HybridRenderer(this, params.rendererSettings);\r\n break;\r\n }\r\n this.imagePreloader.setCacheType(animType, this.renderer.globalData.defs);\r\n this.renderer.setProjectInterface(this.projectInterface);\r\n this.animType = animType;\r\n if (params.loop === ''\r\n || params.loop === null\r\n || params.loop === undefined\r\n || 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 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 if (params.audioFactory) {\r\n this.audioController.setAudioFactory(params.audioFactory);\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 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(\r\n params.path,\r\n this.configAnimation,\r\n this.onSetupError\r\n );\r\n }\r\n};\r\n\r\nAnimationItem.prototype.onSetupError = function () {\r\n this.trigger('data_failed');\r\n};\r\n\r\nAnimationItem.prototype.setupAnimation = function (data) {\r\n dataManager.completeAnimation(\r\n data,\r\n this.configAnimation\r\n );\r\n};\r\n\r\nAnimationItem.prototype.setData = function (wrapper, animationData) {\r\n if (animationData) {\r\n if (typeof animationData !== 'object') {\r\n animationData = JSON.parse(animationData);\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\r\n params.path = wrapperAttributes.getNamedItem('data-animation-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-animation-path').value\r\n : wrapperAttributes.getNamedItem('data-bm-path') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-path').value\r\n : wrapperAttributes.getNamedItem('bm-path')\r\n ? wrapperAttributes.getNamedItem('bm-path').value\r\n : '';\r\n params.animType = wrapperAttributes.getNamedItem('data-anim-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-type').value\r\n : wrapperAttributes.getNamedItem('bm-type') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('bm-type').value\r\n : wrapperAttributes.getNamedItem('data-bm-renderer') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-renderer').value\r\n : wrapperAttributes.getNamedItem('bm-renderer')\r\n ? wrapperAttributes.getNamedItem('bm-renderer').value\r\n : 'canvas';\r\n\r\n var loop = wrapperAttributes.getNamedItem('data-anim-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-loop').value\r\n : wrapperAttributes.getNamedItem('data-bm-loop') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-loop').value\r\n : wrapperAttributes.getNamedItem('bm-loop')\r\n ? 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 var autoplay = wrapperAttributes.getNamedItem('data-anim-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-autoplay').value\r\n : wrapperAttributes.getNamedItem('data-bm-autoplay') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-autoplay').value\r\n : wrapperAttributes.getNamedItem('bm-autoplay')\r\n ? wrapperAttributes.getNamedItem('bm-autoplay').value\r\n : true;\r\n params.autoplay = autoplay !== 'false';\r\n\r\n params.name = wrapperAttributes.getNamedItem('data-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-name').value\r\n : wrapperAttributes.getNamedItem('data-bm-name') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-name').value\r\n : wrapperAttributes.getNamedItem('bm-name')\r\n ? wrapperAttributes.getNamedItem('bm-name').value\r\n : '';\r\n var prerender = wrapperAttributes.getNamedItem('data-anim-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-anim-prerender').value\r\n : wrapperAttributes.getNamedItem('data-bm-prerender') // eslint-disable-line no-nested-ternary\r\n ? wrapperAttributes.getNamedItem('data-bm-prerender').value\r\n : wrapperAttributes.getNamedItem('bm-prerender')\r\n ? wrapperAttributes.getNamedItem('bm-prerender').value\r\n : '';\r\n\r\n if (prerender === 'false') {\r\n params.prerender = false;\r\n }\r\n this.setParams(params);\r\n};\r\n\r\nAnimationItem.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 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 for (j = 0; j < jLen; j += 1) {\r\n i = 0;\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 i += 1;\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 if (data.assets) {\r\n len = data.assets.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.animationData.assets.push(data.assets[i]);\r\n }\r\n }\r\n this.animationData.__complete = false;\r\n dataManager.completeAnimation(\r\n this.animationData,\r\n this.onSegmentComplete\r\n );\r\n};\r\n\r\nAnimationItem.prototype.onSegmentComplete = function (data) {\r\n this.animationData = data;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.loadNextSegment = function () {\r\n var segments = this.animationData.segments;\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 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\nAnimationItem.prototype.loadSegments = function () {\r\n var segments = this.animationData.segments;\r\n if (!segments) {\r\n this.timeCompleted = this.totalFrames;\r\n }\r\n this.loadNextSegment();\r\n};\r\n\r\nAnimationItem.prototype.imagesLoaded = function () {\r\n this.trigger('loaded_images');\r\n this.checkLoaded();\r\n};\r\n\r\nAnimationItem.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\nAnimationItem.prototype.configAnimation = function (animData) {\r\n if (!this.renderer) {\r\n return;\r\n }\r\n try {\r\n this.animationData = animData;\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 this.renderer.configAnimation(animData);\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 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\nAnimationItem.prototype.waitForFontsLoaded = function () {\r\n if (!this.renderer) {\r\n return;\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\nAnimationItem.prototype.checkLoaded = function () {\r\n if (!this.isLoaded\r\n && this.renderer.globalData.fontManager.isLoaded\r\n && (this.imagePreloader.loadedImages() || this.renderer.rendererType !== 'canvas')\r\n && (this.imagePreloader.loadedFootages())\r\n ) {\r\n this.isLoaded = true;\r\n if (expressionsPlugin) {\r\n expressionsPlugin.initExpressions(this);\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 if (this.autoplay) {\r\n this.play();\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resize = function () {\r\n this.renderer.updateContainerSize();\r\n};\r\n\r\nAnimationItem.prototype.setSubframe = function (flag) {\r\n this.isSubframeEnabled = !!flag;\r\n};\r\n\r\nAnimationItem.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 this.trigger('enterFrame');\r\n this.renderFrame();\r\n this.trigger('drawnFrame');\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if (this.isLoaded === false || !this.renderer) {\r\n return;\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\nAnimationItem.prototype.play = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === true) {\r\n this.isPaused = false;\r\n this.audioController.resume();\r\n if (this._idle) {\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n if (this.isPaused === false) {\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n this.audioController.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if (name && this.name !== name) {\r\n return;\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\nAnimationItem.prototype.stop = function (name) {\r\n if (name && this.name !== name) {\r\n return;\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\nAnimationItem.prototype.getMarkerData = function (markerName) {\r\n var marker;\r\n for (var i = 0; i < this.markers.length; i += 1) {\r\n marker = this.markers[i];\r\n if (marker.payload && marker.payload.name === markerName) {\r\n return marker;\r\n }\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\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 this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n var numValue = Number(value);\r\n if (isNaN(numValue)) {\r\n var marker = this.getMarkerData(value);\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 this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // 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 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 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)) { // eslint-disable-line no-plusplus\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\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 if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function (arr, offset) {\r\n this.playCount = 0;\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 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 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 this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init, end) {\r\n var pendingFrame = -1;\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 if (pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame, true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i;\r\n var len = arr.length;\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 if (this.segments.length && forceFlag) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip, this.animationData.op]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.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 return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name !== name) || !this.renderer) {\r\n return;\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\nAnimationItem.prototype.setCurrentRawFrameValue = function (value) {\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setVolume = function (val, name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.setVolume(val);\r\n};\r\n\r\nAnimationItem.prototype.getVolume = function () {\r\n return this.audioController.getVolume();\r\n};\r\n\r\nAnimationItem.prototype.mute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.mute();\r\n};\r\n\r\nAnimationItem.prototype.unmute = function (name) {\r\n if (name && this.name !== name) {\r\n return;\r\n }\r\n this.audioController.unmute();\r\n};\r\n\r\nAnimationItem.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\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if (assetData.e) {\r\n path = assetData.p;\r\n } else if (this.assetsPath) {\r\n var imagePath = assetData.p;\r\n if (imagePath.indexOf('images/') !== -1) {\r\n imagePath = imagePath.split('/')[1];\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 return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0;\r\n var len = this.assets.length;\r\n while (i < len) {\r\n if (id === this.assets[i].id) {\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function (name) {\r\n if (this._cbs && this._cbs[name]) {\r\n switch (name) {\r\n case 'enterFrame':\r\n case 'drawnFrame':\r\n this.triggerEvent(name, new BMEnterFrameEvent(name, this.currentFrame, this.totalFrames, this.frameModifier));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name, new BMCompleteEvent(name, this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name, new BMSegmentStartEvent(name, this.firstFrame, this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name, new BMDestroyEvent(name, this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\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 if (name === 'loopComplete' && this.onLoopComplete) {\r\n this.onLoopComplete.call(this, new BMCompleteLoopEvent(name, this.loop, this.playCount, this.frameMult));\r\n }\r\n if (name === 'complete' && this.onComplete) {\r\n this.onComplete.call(this, new BMCompleteEvent(name, this.frameMult));\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 if (name === 'destroy' && this.onDestroy) {\r\n this.onDestroy.call(this, new BMDestroyEvent(name, this));\r\n }\r\n};\r\n\r\nAnimationItem.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\nAnimationItem.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/* global CompExpressionInterface, expressionsPlugin: writable */\r\n/* exported expressionsPlugin */\r\n\r\nvar 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 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 for (i = 0; i < len; i += 1) {\r\n registers[i].release();\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 return ob;\r\n}());\r\n\r\nexpressionsPlugin = Expressions;\r\n\r\n/* eslint-disable camelcase, no-unused-vars */\r\n/* global BMMath, BezierFactory, createTypedArray, degToRads, shapePool */\r\n\r\nvar 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\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 if (tOfA === 'number' || tOfA === 'boolean' || a instanceof Number) {\r\n return -a;\r\n }\r\n if ($bm_isInstanceOfArray(a)) {\r\n var i;\r\n var lenA = a.length;\r\n var retArr = [];\r\n for (i = 0; i < lenA; i += 1) {\r\n retArr[i] = -a[i];\r\n }\r\n return retArr;\r\n }\r\n if (a.propType) {\r\n return a.v;\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 var tOfB = typeof b;\r\n if (tOfA === 'string' || tOfB === 'string') {\r\n return a + b;\r\n }\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a + b;\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 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 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 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 i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n var add = sum;\r\n\r\n function sub(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n if (tOfA === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (tOfB === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a - b;\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 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 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 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 i += 1;\r\n }\r\n return retArr;\r\n }\r\n return 0;\r\n }\r\n\r\n function mul(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\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 if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] * b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a * b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n\r\n function div(a, b) {\r\n var tOfA = typeof a;\r\n var tOfB = typeof b;\r\n var arr;\r\n if (isNumerable(tOfA, a) && isNumerable(tOfB, b)) {\r\n return a / b;\r\n }\r\n var i;\r\n var len;\r\n if ($bm_isInstanceOfArray(a) && isNumerable(tOfB, b)) {\r\n len = a.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a[i] / b;\r\n }\r\n return arr;\r\n }\r\n if (isNumerable(tOfA, a) && $bm_isInstanceOfArray(b)) {\r\n len = b.length;\r\n arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = a / b[i];\r\n }\r\n return arr;\r\n }\r\n return 0;\r\n }\r\n function mod(a, b) {\r\n if (typeof a === 'string') {\r\n a = parseInt(a, 10);\r\n }\r\n if (typeof b === 'string') {\r\n b = parseInt(b, 10);\r\n }\r\n return a % b;\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 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 var radians_to_degrees = radiansToDegrees;\r\n\r\n function degreesToRadians(val) {\r\n return val * degToRads;\r\n }\r\n var degrees_to_radians = radiansToDegrees;\r\n\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 if (!arr2) {\r\n arr2 = helperLengthArray;\r\n }\r\n var i;\r\n var len = Math.min(arr1.length, arr2.length);\r\n var addedLength = 0;\r\n for (i = 0; i < len; i += 1) {\r\n addedLength += Math.pow(arr2[i] - arr1[i], 2);\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]; var g = val[1]; 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 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 switch (max) {\r\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\r\n case g: h = (b - r) / d + 2; break;\r\n case b: h = (r - g) / d + 4; break;\r\n default: break;\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\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 b = l; // achromatic\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 if (tMax < tMin) {\r\n var _tMin = tMax;\r\n tMax = tMin;\r\n tMin = _tMin;\r\n }\r\n if (t <= tMin) {\r\n return value1;\r\n } if (t >= tMax) {\r\n return value2;\r\n }\r\n var perc = tMax === tMin ? 0 : (t - tMin) / (tMax - tMin);\r\n if (!value1.length) {\r\n return value1 + (value2 - value1) * perc;\r\n }\r\n var i;\r\n var len = value1.length;\r\n var arr = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = value1[i] + (value2[i] - value1[i]) * perc;\r\n }\r\n return arr;\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 if (max.length) {\r\n var i;\r\n var len = max.length;\r\n if (!min) {\r\n min = createTypedArray('float32', len);\r\n }\r\n var arr = createTypedArray('float32', len);\r\n var rnd = BMMath.random();\r\n for (i = 0; i < len; i += 1) {\r\n arr[i] = min[i] + rnd * (max[i] - min[i]);\r\n }\r\n return arr;\r\n }\r\n if (min === undefined) {\r\n min = 0;\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 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 return path;\r\n }\r\n\r\n function initiateExpression(elem, data, property) {\r\n var val = data.x;\r\n var needsVelocity = /velocity(?![\\w\\d])/.test(val);\r\n var _needsRandom = val.indexOf('random') !== -1;\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 () {\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\r\n var scoped_bm_rt;\r\n // val = val.replace(/(\\\\?\"|')((http)(s)?(:\\/))?\\/.*?(\\\\?\"|')/g, \"\\\"\\\"\"); // deter potential network calls\r\n var expression_function = eval('[function _expression_function(){' + val + ';scoped_bm_rt=$bm_rt}]')[0]; // eslint-disable-line no-eval\r\n var numKeys = property.kf ? data.k.length : 0;\r\n\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 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();\r\n // addedAmps[j] += -amp + amp*2*rnd;\r\n }\r\n iWiggle += 1;\r\n }\r\n // var rnd2 = BMMath.random();\r\n var periods = time * freq;\r\n var perc = periods - Math.floor(periods);\r\n var arr = createTypedArray('float32', lenWiggle);\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;\r\n // 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 return arr;\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 if (t > 1) {\r\n t = 1;\r\n } else if (t < 0) {\r\n t = 0;\r\n }\r\n var mult = fn(t);\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 for (iKey = 0; iKey < lenKey; iKey += 1) {\r\n arr[iKey] = (val2[iKey] - val1[iKey]) * mult + val1[iKey];\r\n }\r\n return arr;\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 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 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 break;\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 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 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 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\r\n lenKey = arr.length;\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 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 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 if (!fps) {\r\n fps = elem.comp.globalData.frameRate;\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 return value.substring(init, end);\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 return value.substr(init, end);\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 function executeExpression(_value) {\r\n // globalData.pushExpression();\r\n value = _value;\r\n if (this.frameExpressionId === elem.globalData.frameId && this.propType !== 'textSelector') {\r\n return value;\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 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 if (!transform) {\r\n transform = elem.layerInterface('ADBE Transform Group');\r\n $bm_transform = transform;\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 if (!effect) {\r\n effect = thisLayer(4);\r\n }\r\n hasParent = !!(elem.hierarchy && elem.hierarchy.length);\r\n if (hasParent && !parent) {\r\n parent = elem.hierarchy[0].layerInterface;\r\n }\r\n time = this.comp.renderedFrame / this.comp.globalData.frameRate;\r\n if (_needsRandom) {\r\n seedRandom(randSeed + time);\r\n }\r\n if (needsVelocity) {\r\n velocity = velocityAtTime(time);\r\n }\r\n expression_function();\r\n this.frameExpressionId = elem.globalData.frameId;\r\n\r\n // TODO: Check if it's possible to return on ShapeInterface the .v value\r\n if (scoped_bm_rt.propType === 'shape') {\r\n scoped_bm_rt = scoped_bm_rt.v;\r\n }\r\n // globalData.popExpression();\r\n return scoped_bm_rt;\r\n }\r\n return executeExpression;\r\n }\r\n\r\n ob.initiateExpression = initiateExpression;\r\n return ob;\r\n}());\r\n\r\n/* global ExpressionManager, createTypedArray */\r\n/* exported expressionHelpers */\r\n\r\nvar 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 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 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 if (v1.length) {\r\n var i;\r\n for (i = 0; i < v1.length; i += 1) {\r\n speed += Math.pow(v2[i] - v1[i], 2);\r\n }\r\n speed = Math.sqrt(speed) * 100;\r\n } else {\r\n speed = 0;\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 var delta = -0.001;\r\n // frameNum += this.elem.data.st;\r\n var v1 = this.getValueAtTime(frameNum);\r\n var v2 = this.getValueAtTime(frameNum + delta);\r\n var velocity;\r\n if (v1.length) {\r\n velocity = createTypedArray('float32', v1.length);\r\n var i;\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 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/* global createTypedArray, Matrix, TransformPropertyFactory, expressionHelpers, PropertyFactory, expressionHelpers,\r\ninitialDefaultFrame, shapePool, ShapePropertyFactory, bez, extendPrototype, ExpressionManager, createSizedArray */\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 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 if (currentFrame <= lastKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var firstKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\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 firstKeyFrame = lastKeyFrame - cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\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 var repeats = Math.floor((currentFrame - firstKeyFrame) / cycleDuration);\r\n if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = (endV[i] - initV[i]) * repeats + current[i];\r\n }\r\n return ret;\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 if (this.pv.length) {\r\n ret = new Array(lastValue.length);\r\n len = ret.length;\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 return ret;\r\n }\r\n return lastValue + (lastValue - nextLastValue) * (((currentFrame - lastKeyFrame)) / 0.001);\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\r\n function loopIn(type, duration, durationFlag) {\r\n if (!this.k) {\r\n return this.pv;\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 if (currentFrame >= firstKeyFrame) {\r\n return this.pv;\r\n }\r\n var cycleDuration;\r\n var lastKeyFrame;\r\n if (!durationFlag) {\r\n if (!duration || duration > keyframes.length - 1) {\r\n duration = keyframes.length - 1;\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 lastKeyFrame = firstKeyFrame + cycleDuration;\r\n }\r\n var i;\r\n var len;\r\n var ret;\r\n if (type === 'pingpong') {\r\n var iterations = Math.floor((firstKeyFrame - currentFrame) / cycleDuration);\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 if (this.pv.length) {\r\n ret = new Array(initV.length);\r\n len = ret.length;\r\n for (i = 0; i < len; i += 1) {\r\n ret[i] = current[i] - (endV[i] - initV[i]) * repeats;\r\n }\r\n return ret;\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 if (this.pv.length) {\r\n ret = new Array(firstValue.length);\r\n len = ret.length;\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 return ret;\r\n }\r\n return firstValue + ((firstValue - nextFirstValue) * (firstKeyFrame - currentFrame)) / 0.001;\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\r\n function smooth(width, samples) {\r\n if (!this.k) {\r\n return this.pv;\r\n }\r\n width = (width || 0.4) * 0.5;\r\n samples = Math.floor(samples || 5);\r\n if (samples <= 1) {\r\n return this.pv;\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 if (this.pv.length) {\r\n value = createTypedArray('float32', this.pv.length);\r\n } else {\r\n value = 0;\r\n }\r\n var sampleValue;\r\n while (i < samples) {\r\n sampleValue = this.getValueAtTime(initFrame + i * sampleFrequency);\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 i += 1;\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 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 var matrix = this._transformCachingAtTime.v;\r\n matrix.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n var anchor = this.a.getValueAtTime(time);\r\n matrix.translate(\r\n -anchor[0] * this.a.mult,\r\n -anchor[1] * this.a.mult,\r\n 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(\r\n scale[0] * this.s.mult,\r\n scale[1] * this.s.mult,\r\n 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 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)\r\n .rotateY(rotationY * this.ry.mult)\r\n .rotateX(rotationX * this.rx.mult)\r\n .rotateZ(-orientation[2] * this.or.mult)\r\n .rotateY(orientation[1] * this.or.mult)\r\n .rotateX(orientation[0] * this.or.mult);\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 if (this.data.p.z) {\r\n var positionZ = this.pz.getValueAtTime(time);\r\n matrix.translate(\r\n positionX * this.px.mult,\r\n positionY * this.py.mult,\r\n -positionZ * this.pz.mult\r\n );\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(\r\n position[0] * this.p.mult,\r\n position[1] * this.p.mult,\r\n -position[2] * this.p.mult\r\n );\r\n }\r\n return matrix;\r\n /// /\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 TransformPropertyFactory.getTransformProperty = function (elem, data, container) {\r\n var prop = getTransformProperty(elem, data, container);\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 prop.setGroupProperty = expressionHelpers.setGroupProperty;\r\n return prop;\r\n };\r\n\r\n var propertyGetProp = PropertyFactory.getProp;\r\n PropertyFactory.getProp = function (elem, data, type, mult, container) {\r\n var prop = propertyGetProp(elem, data, type, mult, container);\r\n // prop.getVelocityAtTime = getVelocityAtTime;\r\n // prop.loopOut = loopOut;\r\n // prop.loopIn = loopIn;\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 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 if (type !== 0) {\r\n value = createTypedArray('float32', data.a === 1 ? data.k[0].s.length : data.k.length);\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 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 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 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 ShapeExpressions.prototype = {\r\n vertices: function (prop, time) {\r\n if (this.k) {\r\n this.getValue();\r\n }\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\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 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 return arr;\r\n },\r\n points: function (time) {\r\n return this.vertices('v', time);\r\n },\r\n inTangents: function (time) {\r\n return this.vertices('i', time);\r\n },\r\n outTangents: function (time) {\r\n return this.vertices('o', time);\r\n },\r\n isClosed: function () {\r\n return this.v.c;\r\n },\r\n pointOnPath: function (perc, time) {\r\n var shapePath = this.v;\r\n if (time !== undefined) {\r\n shapePath = this.getValueAtTime(time, 0);\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 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 i += 1;\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 return pt;\r\n },\r\n vectorOnPath: function (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) { // eslint-disable-line eqeqeq\r\n perc = this.v.c;\r\n } else if (perc == 0) { // eslint-disable-line eqeqeq\r\n perc = 0.999;\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 if (magnitude === 0) {\r\n return [0, 0];\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 (perc, time) {\r\n return this.vectorOnPath(perc, time, 'tangent');\r\n },\r\n normalOnPath: function (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\r\n var propertyGetShapeProp = ShapePropertyFactory.getShapeProp;\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 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 if (prop.k) {\r\n elem.addDynamicProperty(prop);\r\n }\r\n return prop;\r\n };\r\n}());\r\n\r\n/* global ExpressionManager, TextProperty */\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 return null;\r\n }\r\n\r\n TextProperty.prototype.getExpressionValue = function (currentValue, text) {\r\n var newValue = this.calculateExpression(text);\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 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/* global propertyGroupFactory, PropertyInterface */\r\n/* exported ShapePathInterface */\r\n\r\nvar ShapePathInterface = (\r\n\r\n 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 return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n prop.setGroupProperty(PropertyInterface('Path', _propertyGroup));\r\n Object.defineProperties(interfaceFunction, {\r\n path: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n shape: {\r\n get: function () {\r\n if (prop.k) {\r\n prop.getValue();\r\n }\r\n return prop;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n ix: { value: shape.ix },\r\n propertyIndex: { value: shape.ix },\r\n mn: { value: shape.mn },\r\n propertyGroup: { value: propertyGroup },\r\n });\r\n return interfaceFunction;\r\n };\r\n }()\r\n);\r\n\r\n/* exported propertyGroupFactory */\r\n\r\nvar propertyGroupFactory = (function () {\r\n return function (interfaceFunction, parentPropertyGroup) {\r\n return function (val) {\r\n val = val === undefined ? 1 : val;\r\n if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return parentPropertyGroup(val - 1);\r\n };\r\n };\r\n}());\r\n\r\n/* exported PropertyInterface */\r\n\r\nvar 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 if (val <= 0) {\r\n return interfaceFunction;\r\n }\r\n return propertyGroup(val - 1);\r\n }\r\n\r\n return _propertyGroup;\r\n };\r\n}());\r\n\r\n/* global ExpressionPropertyInterface, PropertyInterface, propertyGroupFactory, ShapePathInterface */\r\n/* exported ShapeExpressionInterface */\r\n\r\nvar 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 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') {\r\n // 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 return arr;\r\n }\r\n\r\n function contentsInterfaceFactory(shape, view, propertyGroup) {\r\n var interfaces;\r\n var interfaceFunction = function _interfaceFunction(value) {\r\n var i = 0;\r\n var len = interfaces.length;\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 i += 1;\r\n }\r\n if (typeof value === 'number') {\r\n return interfaces[value - 1];\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\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 default:\r\n return interfaceFunction.transform;\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 () {\r\n return shape.nm;\r\n },\r\n });\r\n // interfaceFunction.content = interfaceFunction;\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 } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\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: { value: shape.nm },\r\n mn: { 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 if (val === 'End Point' || val === 'end point') {\r\n return interfaceFunction.endPoint;\r\n }\r\n if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n return null;\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 () {\r\n return 'a';\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { 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 function defaultInterfaceFactory() {\r\n function interfaceFunction() {\r\n return null;\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 var _dashPropertyGroup = propertyGroupFactory(dashOb, _propertyGroup);\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 var i;\r\n var len = shape.d ? shape.d.length : 0;\r\n var dashOb = {};\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 } if (val === 'Opacity' || val === 'opacity') {\r\n return interfaceFunction.opacity;\r\n } if (val === 'Stroke Width' || val === 'stroke width') {\r\n return interfaceFunction.strokeWidth;\r\n }\r\n return null;\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 () {\r\n return dashOb;\r\n },\r\n },\r\n _name: { value: shape.nm },\r\n mn: { 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 if (val === shape.s.ix) {\r\n return interfaceFunction.start;\r\n }\r\n if (val === shape.o.ix) {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n interfaceFunction.propertyIndex = shape.ix;\r\n\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\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: { value: shape.nm },\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 if (shape.o.ix === value || value === 'Opacity') {\r\n return interfaceFunction.opacity;\r\n }\r\n if (shape.p.ix === value || value === 'Position') {\r\n return interfaceFunction.position;\r\n }\r\n if (shape.r.ix === value || value === 'Rotation' || value === 'ADBE Vector Rotation') {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.s.ix === value || value === 'Scale') {\r\n return interfaceFunction.scale;\r\n }\r\n if ((shape.sk && shape.sk.ix === value) || value === 'Skew') {\r\n return interfaceFunction.skew;\r\n }\r\n if ((shape.sa && shape.sa.ix === value) || value === 'Skew Axis') {\r\n return interfaceFunction.skewAxis;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\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 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 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: { value: shape.nm },\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 if (shape.s.ix === value) {\r\n return interfaceFunction.size;\r\n }\r\n return null;\r\n }\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\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\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: { value: shape.nm },\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 if (shape.r.ix === value) {\r\n return interfaceFunction.rotation;\r\n }\r\n if (shape.pt.ix === value) {\r\n return interfaceFunction.points;\r\n }\r\n if (shape.or.ix === value || value === 'ADBE Vector Star Outer Radius') {\r\n return interfaceFunction.outerRadius;\r\n }\r\n if (shape.os.ix === value) {\r\n return interfaceFunction.outerRoundness;\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 if (shape.is && shape.is.ix === value) {\r\n return interfaceFunction.innerRoundness;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\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 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: { value: shape.nm },\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 if (shape.r.ix === value) {\r\n return interfaceFunction.roundness;\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 return null;\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\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: { value: shape.nm },\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 return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\r\n var prop = view;\r\n interfaceFunction.propertyIndex = shape.ix;\r\n prop.rd.setGroupProperty(PropertyInterface('Radius', _propertyGroup));\r\n\r\n Object.defineProperties(interfaceFunction, {\r\n radius: {\r\n get: ExpressionPropertyInterface(prop.rd),\r\n },\r\n _name: { value: shape.nm },\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 } if (shape.o.ix === value || value === 'Offset') {\r\n return interfaceFunction.offset;\r\n }\r\n return null;\r\n }\r\n\r\n var _propertyGroup = propertyGroupFactory(interfaceFunction, propertyGroup);\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: { value: shape.nm },\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 function _interfaceFunction(value) {\r\n if (typeof value === 'number') {\r\n value = value === undefined ? 1 : value;\r\n if (value === 0) {\r\n return propertyGroup;\r\n }\r\n return interfaces[value - 1];\r\n }\r\n var i = 0;\r\n var len = interfaces.length;\r\n while (i < len) {\r\n if (interfaces[i]._name === value) {\r\n return interfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n function parentGroupWrapper() {\r\n return propertyGroup;\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/* exported TextExpressionInterface */\r\n\r\nvar TextExpressionInterface = (function () {\r\n return function (elem) {\r\n var _prevValue;\r\n var _sourceText;\r\n function _thisLayerFunction(name) {\r\n switch (name) {\r\n case 'ADBE Text Document':\r\n return _thisLayerFunction.sourceText;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisLayerFunction, 'sourceText', {\r\n get: function () {\r\n elem.textProperty.getValue();\r\n var stringValue = elem.textProperty.currentData.t;\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 _sourceText.value = stringValue || new String(stringValue); // eslint-disable-line no-new-wrappers\r\n }\r\n return _sourceText;\r\n },\r\n });\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global Matrix, MaskManagerInterface, TransformExpressionInterface, getDescriptor */\r\n/* exported LayerExpressionInterface */\r\n\r\nvar LayerExpressionInterface = (function () {\r\n function getMatrix(time) {\r\n var toWorldMat = new Matrix();\r\n if (time !== undefined) {\r\n var propMatrix = this._elem.finalTransform.mProp.getValueAtTime(time);\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 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 for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\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 for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(matrix);\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 this._elem.finalTransform.mProp.applyToMatrix(toWorldMat);\r\n if (this._elem.hierarchy && this._elem.hierarchy.length) {\r\n var i;\r\n var len = this._elem.hierarchy.length;\r\n for (i = 0; i < len; i += 1) {\r\n this._elem.hierarchy[i].finalTransform.mProp.applyToMatrix(toWorldMat);\r\n }\r\n return toWorldMat.inversePoint(arr);\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 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 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 case 4:\r\n case 'ADBE Effect Parade':\r\n case 'effects':\r\n case 'Effects':\r\n return _thisLayerFunction.effect;\r\n case 'ADBE Text Properties':\r\n return _thisLayerFunction.textInterface;\r\n default:\r\n return null;\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 () {\r\n return elem.hierarchy.length;\r\n },\r\n },\r\n parent: {\r\n get: function () {\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 () {\r\n return transformInterface;\r\n },\r\n },\r\n active: {\r\n get: function () {\r\n return elem.isInRange;\r\n },\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\r\n _thisLayerFunction.registerMaskInterface = _registerMaskInterface;\r\n _thisLayerFunction.registerEffectsInterface = _registerEffectsInterface;\r\n return _thisLayerFunction;\r\n };\r\n}());\r\n\r\n/* global */\r\n/* exported FootageInterface */\r\n\r\nvar FootageInterface = (function () {\r\n var outlineInterfaceFactory = (function (elem) {\r\n var currentPropertyName = '';\r\n var currentProperty = elem.getFootageData();\r\n function init() {\r\n currentPropertyName = '';\r\n currentProperty = elem.getFootageData();\r\n return searchProperty;\r\n }\r\n function searchProperty(value) {\r\n if (currentProperty[value]) {\r\n currentPropertyName = value;\r\n currentProperty = currentProperty[value];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n var propertyNameIndex = value.indexOf(currentPropertyName);\r\n if (propertyNameIndex !== -1) {\r\n var index = parseInt(value.substr(propertyNameIndex + currentPropertyName.length), 10);\r\n currentProperty = currentProperty[index];\r\n if (typeof currentProperty === 'object') {\r\n return searchProperty;\r\n }\r\n return currentProperty;\r\n }\r\n return '';\r\n }\r\n return init;\r\n });\r\n\r\n var dataInterfaceFactory = function (elem) {\r\n function interfaceFunction(value) {\r\n if (value === 'Outline') {\r\n return interfaceFunction.outlineInterface();\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 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/* exported CompExpressionInterface */\r\n\r\nvar 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 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 i += 1;\r\n }\r\n return null;\r\n // return {active:false};\r\n }\r\n Object.defineProperty(_thisLayerFunction, '_name', { value: comp.data.nm });\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/* global ExpressionPropertyInterface */\r\n/* exported TransformExpressionInterface */\r\n\r\nvar 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 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 case 'ADBE Rotate X':\r\n return _thisFunction.xRotation;\r\n case 'ADBE Rotate Y':\r\n return _thisFunction.yRotation;\r\n case 'position':\r\n case 'Position':\r\n case 'ADBE Position':\r\n case 2:\r\n return _thisFunction.position;\r\n case 'ADBE Position_0':\r\n return _thisFunction.xPosition;\r\n case 'ADBE Position_1':\r\n return _thisFunction.yPosition;\r\n case 'ADBE Position_2':\r\n return _thisFunction.zPosition;\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 case 'opacity':\r\n case 'Opacity':\r\n case 11:\r\n return _thisFunction.opacity;\r\n default:\r\n return null;\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'rotation', {\r\n get: ExpressionPropertyInterface(transform.r || transform.rz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zRotation', {\r\n get: ExpressionPropertyInterface(transform.rz || transform.r),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xRotation', {\r\n get: ExpressionPropertyInterface(transform.rx),\r\n });\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 var _px;\r\n var _py;\r\n var _pz;\r\n var _transformFactory;\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 if (transform.pz) {\r\n _pz = ExpressionPropertyInterface(transform.pz);\r\n }\r\n }\r\n Object.defineProperty(_thisFunction, 'position', {\r\n get: function () {\r\n if (transform.p) {\r\n return _transformFactory();\r\n }\r\n return [\r\n _px(),\r\n _py(),\r\n _pz ? _pz() : 0];\r\n },\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'xPosition', {\r\n get: ExpressionPropertyInterface(transform.px),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'yPosition', {\r\n get: ExpressionPropertyInterface(transform.py),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'zPosition', {\r\n get: ExpressionPropertyInterface(transform.pz),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'anchorPoint', {\r\n get: ExpressionPropertyInterface(transform.a),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'opacity', {\r\n get: ExpressionPropertyInterface(transform.o),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skew', {\r\n get: ExpressionPropertyInterface(transform.sk),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'skewAxis', {\r\n get: ExpressionPropertyInterface(transform.sa),\r\n });\r\n\r\n Object.defineProperty(_thisFunction, 'orientation', {\r\n get: ExpressionPropertyInterface(transform.or),\r\n });\r\n\r\n return _thisFunction;\r\n };\r\n}());\r\n\r\n/* exported ProjectInterface */\r\n\r\nvar 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 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 return this.compositions[i].compInterface;\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n }\r\n\r\n _thisProjectFunction.compositions = [];\r\n _thisProjectFunction.currentFrame = 0;\r\n\r\n _thisProjectFunction.registerComposition = registerComposition;\r\n\r\n return _thisProjectFunction;\r\n };\r\n}());\r\n\r\n/* global propertyGroupFactory, ExpressionPropertyInterface, PropertyInterface */\r\n/* exported EffectsExpressionInterface */\r\n\r\nvar 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 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 var groupInterface = function (name) {\r\n i = 0;\r\n len = effects.length;\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 i += 1;\r\n }\r\n return null;\r\n };\r\n Object.defineProperty(groupInterface, 'numProperties', {\r\n get: function () {\r\n return effects.length;\r\n },\r\n });\r\n return groupInterface;\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 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 return effectElements[i]();\r\n }\r\n i += 1;\r\n }\r\n throw new Error();\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 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 () {\r\n return effectElements[0]();\r\n },\r\n });\r\n }\r\n Object.defineProperties(groupInterface, {\r\n numProperties: {\r\n get: function () {\r\n return data.np;\r\n },\r\n },\r\n _name: { value: data.nm },\r\n propertyGroup: { value: _propertyGroup },\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 function interfaceFunction() {\r\n if (type === 10) {\r\n return elem.comp.compInterface(element.p.v);\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/* global createSizedArray */\r\n/* exported MaskManagerInterface */\r\n\r\nvar MaskManagerInterface = (function () {\r\n function MaskInterface(mask, data) {\r\n this._mask = mask;\r\n this._data = data;\r\n }\r\n Object.defineProperty(MaskInterface.prototype, 'maskPath', {\r\n get: function () {\r\n if (this._mask.prop.k) {\r\n this._mask.prop.getValue();\r\n }\r\n return this._mask.prop;\r\n },\r\n });\r\n Object.defineProperty(MaskInterface.prototype, 'maskOpacity', {\r\n get: function () {\r\n if (this._mask.op.k) {\r\n this._mask.op.getValue();\r\n }\r\n return this._mask.op.v * 100;\r\n },\r\n });\r\n\r\n var MaskManager = function (maskManager) {\r\n var _masksInterfaces = createSizedArray(maskManager.viewData.length);\r\n var i;\r\n var len = maskManager.viewData.length;\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 (name) {\r\n i = 0;\r\n while (i < len) {\r\n if (maskManager.masksProperties[i].nm === name) {\r\n return _masksInterfaces[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n };\r\n return maskFunction;\r\n };\r\n return MaskManager;\r\n}());\r\n\r\n/* global createTypedArray */\r\n/* exported ExpressionPropertyInterface */\r\n\r\nvar ExpressionPropertyInterface = (function () {\r\n var defaultUnidimensionalValue = { pv: 0, v: 0, mult: 1 };\r\n var defaultMultidimensionalValue = { pv: [0, 0, 0], v: [0, 0, 0], mult: 1 };\r\n\r\n function completeProperty(expressionValue, property, type) {\r\n Object.defineProperty(expressionValue, 'velocity', {\r\n get: function () {\r\n return property.getVelocityAtTime(property.comp.currentFrame);\r\n },\r\n });\r\n expressionValue.numKeys = property.keyframes ? property.keyframes.length : 0;\r\n expressionValue.key = function (pos) {\r\n if (!expressionValue.numKeys) {\r\n return 0;\r\n }\r\n var value = '';\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 var valueProp = type === 'unidimensional' ? new Number(value) : Object.assign({}, value); // eslint-disable-line no-new-wrappers\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 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 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 expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\r\n\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\r\n }\r\n val = property.v * mult;\r\n if (expressionValue.value !== val) {\r\n expressionValue = new Number(val); // eslint-disable-line no-new-wrappers\r\n expressionValue.value = val;\r\n completeProperty(expressionValue, property, 'unidimensional');\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 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\r\n return function () {\r\n if (property.k) {\r\n property.getValue();\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 return expressionValue;\r\n };\r\n }\r\n\r\n // TODO: try to avoid using this getter\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 } if (property.propType === 'unidimensional') {\r\n return UnidimensionalPropertyInterface(property);\r\n }\r\n return MultidimensionalPropertyInterface(property);\r\n };\r\n}());\r\n\r\n/* global expressionHelpers, TextSelectorProp, ExpressionManager */\r\n/* exported TextExpressionSelectorPropFactory */\r\n\r\nvar TextExpressionSelectorPropFactory = (function () { // eslint-disable-line no-unused-vars\r\n function getValueProxy(index, total) {\r\n this.textIndex = index + 1;\r\n this.textTotal = total;\r\n this.v = this.getValue() * this.mult;\r\n return this.v;\r\n }\r\n\r\n return function (elem, data) {\r\n this.pv = 1;\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.mult = 0.01;\r\n this.propType = 'textSelector';\r\n this.textTotal = data.totalChars;\r\n this.selectorValue = 100;\r\n this.lastValue = [1, 1, 1];\r\n this.k = true;\r\n this.x = true;\r\n this.getValue = ExpressionManager.initiateExpression.bind(this)(elem, data, this);\r\n this.getMult = getValueProxy;\r\n this.getVelocityAtTime = expressionHelpers.getVelocityAtTime;\r\n if (this.kf) {\r\n this.getValueAtTime = expressionHelpers.getValueAtTime.bind(this);\r\n } else {\r\n this.getValueAtTime = expressionHelpers.getStaticValueAtTime.bind(this);\r\n }\r\n this.setGroupProperty = expressionHelpers.setGroupProperty;\r\n };\r\n}());\r\n\r\nvar propertyGetTextProp = TextSelectorProp.getTextSelectorProp;\r\nTextSelectorProp.getTextSelectorProp = function (elem, data, arr) {\r\n if (data.t === 1) {\r\n return new TextExpressionSelectorPropFactory(elem, data, arr); // eslint-disable-line no-undef\r\n }\r\n return propertyGetTextProp(elem, data, arr);\r\n};\r\n\r\n/* global PropertyFactory */\r\n/* exported SliderEffect, AngleEffect, ColorEffect, PointEffect, LayerIndexEffect, MaskIndexEffect, CheckboxEffect, NoValueEffect */\r\n\r\nfunction SliderEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction AngleEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction ColorEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction PointEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 1, 0, container);\r\n}\r\nfunction LayerIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction MaskIndexEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction CheckboxEffect(data, elem, container) {\r\n this.p = PropertyFactory.getProp(elem, data.v, 0, 0, container);\r\n}\r\nfunction NoValueEffect() {\r\n this.p = {};\r\n}\r\n\r\n/* global extendPrototype, SliderEffect, AngleEffect, ColorEffect, PointEffect, CheckboxEffect, LayerIndexEffect,\r\nMaskIndexEffect, NoValueEffect, DynamicPropertyContainer */\r\n\r\nfunction 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 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\nfunction GroupEffect(data, element) {\r\n this.init(data, element);\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], GroupEffect);\r\n\r\nGroupEffect.prototype.getValue = GroupEffect.prototype.iterateDynamicProperties;\r\n\r\nGroupEffect.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 for (i = 0; i < len; i += 1) {\r\n eff = null;\r\n switch (effects[i].ty) {\r\n case 0:\r\n eff = new SliderEffect(effects[i], element, this);\r\n break;\r\n case 1:\r\n eff = new AngleEffect(effects[i], element, this);\r\n break;\r\n case 2:\r\n eff = new ColorEffect(effects[i], element, this);\r\n break;\r\n case 3:\r\n eff = new PointEffect(effects[i], element, this);\r\n break;\r\n case 4:\r\n case 7:\r\n eff = new CheckboxEffect(effects[i], element, this);\r\n break;\r\n case 10:\r\n eff = new LayerIndexEffect(effects[i], element, this);\r\n break;\r\n case 11:\r\n eff = new MaskIndexEffect(effects[i], element, this);\r\n break;\r\n case 5:\r\n eff = new EffectsManager(effects[i], element, this);\r\n break;\r\n // case 6:\r\n default:\r\n eff = new NoValueEffect(effects[i], element, this);\r\n break;\r\n }\r\n if (eff) {\r\n this.effectElements.push(eff);\r\n }\r\n }\r\n};\r\n\r\n\r\nvar lottie = {};\r\n\r\nfunction setLocationHref(href) {\r\n locationHref = href;\r\n}\r\n\r\nfunction 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\nfunction setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n}\r\n\r\nfunction setIDPrefix(prefix) {\r\n idPrefix = prefix;\r\n}\r\n\r\nfunction loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n}\r\n\r\nfunction setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n default:\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n}\r\n\r\nfunction inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n}\r\n\r\nfunction installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n}\r\n\r\nfunction getFactory(name) {\r\n switch (name) {\r\n case 'propertyFactory':\r\n return PropertyFactory;\r\n case 'shapePropertyFactory':\r\n return ShapePropertyFactory;\r\n case 'matrix':\r\n return Matrix;\r\n default:\r\n return null;\r\n }\r\n}\r\n\r\nlottie.play = animationManager.play;\r\nlottie.pause = animationManager.pause;\r\nlottie.setLocationHref = setLocationHref;\r\nlottie.togglePause = animationManager.togglePause;\r\nlottie.setSpeed = animationManager.setSpeed;\r\nlottie.setDirection = animationManager.setDirection;\r\nlottie.stop = animationManager.stop;\r\nlottie.searchAnimations = searchAnimations;\r\nlottie.registerAnimation = animationManager.registerAnimation;\r\nlottie.loadAnimation = loadAnimation;\r\nlottie.setSubframeRendering = setSubframeRendering;\r\nlottie.resize = animationManager.resize;\r\n// lottie.start = start;\r\nlottie.goToAndStop = animationManager.goToAndStop;\r\nlottie.destroy = animationManager.destroy;\r\nlottie.setQuality = setQuality;\r\nlottie.inBrowser = inBrowser;\r\nlottie.installPlugin = installPlugin;\r\nlottie.freeze = animationManager.freeze;\r\nlottie.unfreeze = animationManager.unfreeze;\r\nlottie.setVolume = animationManager.setVolume;\r\nlottie.mute = animationManager.mute;\r\nlottie.unmute = animationManager.unmute;\r\nlottie.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\nlottie.useWebWorker = function (flag) {\r\n _useWebWorker = flag;\r\n};\r\nlottie.setIDPrefix = setIDPrefix;\r\nlottie.__getFactory = getFactory;\r\nlottie.version = '5.8.1';\r\n\r\nfunction checkReady() {\r\n if (document.readyState === 'complete') {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i += 1) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) { // eslint-disable-line eqeqeq\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n return null;\r\n}\r\nvar standalone = '__[STANDALONE]__';\r\nvar animationData = '__[ANIMATIONDATA]__';\r\nvar renderer = '';\r\nvar queryString;\r\nif (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.replace(/^[^\\?]+\\??/, ''); // eslint-disable-line no-useless-escape\r\n renderer = getQueryVariable('renderer');\r\n}\r\nvar readyStateCheckInterval = setInterval(checkReady, 100);\r\n\nreturn lottie;\n}));","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport { useEffect } from 'react';\nimport { useDragDropManager } from './useDragDropManager';\nimport { useCollector } from './useCollector';\n/**\n * useDragLayer Hook\n * @param collector The property collector\n */\n\nexport function useDragLayer(collect) {\n var dragDropManager = useDragDropManager();\n var monitor = dragDropManager.getMonitor();\n\n var _useCollector = useCollector(monitor, collect),\n _useCollector2 = _slicedToArray(_useCollector, 2),\n collected = _useCollector2[0],\n updateCollected = _useCollector2[1];\n\n useEffect(function () {\n return monitor.subscribeToOffsetChange(updateCollected);\n });\n useEffect(function () {\n return monitor.subscribeToStateChange(updateCollected);\n });\n return collected;\n}","import { useDragLayer } from 'react-dnd';\n\nvar getStyle = function getStyle(currentOffset) {\n var transform = \"translate(\".concat(currentOffset.x, \"px, \").concat(currentOffset.y, \"px)\");\n return {\n pointerEvents: 'none',\n position: 'fixed',\n top: 0,\n left: 0,\n transform: transform,\n WebkitTransform: transform\n };\n};\n\nvar usePreview = function usePreview() {\n var collectedProps = useDragLayer(function (monitor) {\n return {\n currentOffset: monitor.getSourceClientOffset(),\n isDragging: monitor.isDragging(),\n itemType: monitor.getItemType(),\n item: monitor.getItem()\n };\n });\n\n if (!collectedProps.isDragging || collectedProps.currentOffset === null) {\n return {\n display: false\n };\n }\n\n return {\n display: true,\n itemType: collectedProps.itemType,\n item: collectedProps.item,\n style: getStyle(collectedProps.currentOffset)\n };\n};\n\nexport { usePreview };","import React from 'react';\nexport var Context = React.createContext();","function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { usePreview } from './usePreview';\nimport { Context } from './Context';\n\nvar Preview = function Preview(props) {\n var _usePreview = usePreview(),\n display = _usePreview.display,\n data = _objectWithoutProperties(_usePreview, [\"display\"]);\n\n if (!display) {\n return null;\n }\n\n var child;\n\n if (props.children && typeof props.children === 'function') {\n child = props.children(data);\n } else if (props.children) {\n child = props.children;\n } else {\n child = props.generator(data);\n }\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: data\n }, child);\n};\n\nPreview.propTypes = {\n generator: PropTypes.func,\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func])\n};\nexport { Preview };","import { Preview } from './Preview';\nexport { usePreview } from './usePreview';\nexport { Context } from './Context';\nexport { Preview };\nexport default Preview;","export var INIT_COORDS = 'dnd-core/INIT_COORDS';\nexport var BEGIN_DRAG = 'dnd-core/BEGIN_DRAG';\nexport var PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE';\nexport var HOVER = 'dnd-core/HOVER';\nexport var DROP = 'dnd-core/DROP';\nexport var END_DRAG = 'dnd-core/END_DRAG';","import { INIT_COORDS } from '../types';\nexport function setClientOffset(clientOffset, sourceClientOffset) {\n return {\n type: INIT_COORDS,\n payload: {\n sourceClientOffset: sourceClientOffset || null,\n clientOffset: clientOffset || null\n }\n };\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); }\n\n// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get(obj, path, defaultValue) {\n return path.split('.').reduce(function (a, c) {\n return a && a[c] ? a[c] : defaultValue || null;\n }, obj);\n}\n/**\n * drop-in replacement for _.without\n */\n\nexport function without(items, item) {\n return items.filter(function (i) {\n return i !== item;\n });\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isString(input) {\n return typeof input === 'string';\n}\n/**\n * drop-in replacement for _.isString\n * @param input\n */\n\nexport function isObject(input) {\n return _typeof(input) === 'object';\n}\n/**\n * repalcement for _.xor\n * @param itemsA\n * @param itemsB\n */\n\nexport function xor(itemsA, itemsB) {\n var map = new Map();\n\n var insertItem = function insertItem(item) {\n map.set(item, map.has(item) ? map.get(item) + 1 : 1);\n };\n\n itemsA.forEach(insertItem);\n itemsB.forEach(insertItem);\n var result = [];\n map.forEach(function (count, key) {\n if (count === 1) {\n result.push(key);\n }\n });\n return result;\n}\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\n\nexport function intersection(itemsA, itemsB) {\n return itemsA.filter(function (t) {\n return itemsB.indexOf(t) > -1;\n });\n}","import { invariant } from '@react-dnd/invariant';\nimport { setClientOffset } from './local/setClientOffset';\nimport { isObject } from '../../utils/js_utils';\nimport { BEGIN_DRAG, INIT_COORDS } from './types';\nvar ResetCoordinatesAction = {\n type: INIT_COORDS,\n payload: {\n clientOffset: null,\n sourceClientOffset: null\n }\n};\nexport function createBeginDrag(manager) {\n return function beginDrag() {\n var sourceIds = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n publishSource: true\n };\n var _options$publishSourc = options.publishSource,\n publishSource = _options$publishSourc === void 0 ? true : _options$publishSourc,\n clientOffset = options.clientOffset,\n getSourceClientOffset = options.getSourceClientOffset;\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry(); // Initialize the coordinates using the client offset\n\n manager.dispatch(setClientOffset(clientOffset));\n verifyInvariants(sourceIds, monitor, registry); // Get the draggable source\n\n var sourceId = getDraggableSource(sourceIds, monitor);\n\n if (sourceId === null) {\n manager.dispatch(ResetCoordinatesAction);\n return;\n } // Get the source client offset\n\n\n var sourceClientOffset = null;\n\n if (clientOffset) {\n if (!getSourceClientOffset) {\n throw new Error('getSourceClientOffset must be defined');\n }\n\n verifyGetSourceClientOffsetIsFunction(getSourceClientOffset);\n sourceClientOffset = getSourceClientOffset(sourceId);\n } // Initialize the full coordinates\n\n\n manager.dispatch(setClientOffset(clientOffset, sourceClientOffset));\n var source = registry.getSource(sourceId);\n var item = source.beginDrag(monitor, sourceId); // If source.beginDrag returns null, this is an indicator to cancel the drag\n\n if (item == null) {\n return undefined;\n }\n\n verifyItemIsObject(item);\n registry.pinSource(sourceId);\n var itemType = registry.getSourceType(sourceId);\n return {\n type: BEGIN_DRAG,\n payload: {\n itemType: itemType,\n item: item,\n sourceId: sourceId,\n clientOffset: clientOffset || null,\n sourceClientOffset: sourceClientOffset || null,\n isSourcePublic: !!publishSource\n }\n };\n };\n}\n\nfunction verifyInvariants(sourceIds, monitor, registry) {\n invariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.');\n sourceIds.forEach(function (sourceId) {\n invariant(registry.getSource(sourceId), 'Expected sourceIds to be registered.');\n });\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset) {\n invariant(typeof getSourceClientOffset === 'function', 'When clientOffset is provided, getSourceClientOffset must be a function.');\n}\n\nfunction verifyItemIsObject(item) {\n invariant(isObject(item), 'Item must be an object.');\n}\n\nfunction getDraggableSource(sourceIds, monitor) {\n var sourceId = null;\n\n for (var i = sourceIds.length - 1; i >= 0; i--) {\n if (monitor.canDragSource(sourceIds[i])) {\n sourceId = sourceIds[i];\n break;\n }\n }\n\n return sourceId;\n}","import { PUBLISH_DRAG_SOURCE } from './types';\nexport function createPublishDragSource(manager) {\n return function publishDragSource() {\n var monitor = manager.getMonitor();\n\n if (monitor.isDragging()) {\n return {\n type: PUBLISH_DRAG_SOURCE\n };\n }\n };\n}","export function matchesType(targetType, draggedItemType) {\n if (draggedItemType === null) {\n return targetType === null;\n }\n\n return Array.isArray(targetType) ? targetType.some(function (t) {\n return t === draggedItemType;\n }) : targetType === draggedItemType;\n}","import { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../../utils/matchesType';\nimport { HOVER } from './types';\nexport function createHover(manager) {\n return function hover(targetIdsArg) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n clientOffset = _ref.clientOffset;\n\n verifyTargetIdsIsArray(targetIdsArg);\n var targetIds = targetIdsArg.slice(0);\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n checkInvariants(targetIds, monitor, registry);\n var draggedItemType = monitor.getItemType();\n removeNonMatchingTargetIds(targetIds, registry, draggedItemType);\n hoverAllTargets(targetIds, monitor, registry);\n return {\n type: HOVER,\n payload: {\n targetIds: targetIds,\n clientOffset: clientOffset || null\n }\n };\n };\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg) {\n invariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.');\n}\n\nfunction checkInvariants(targetIds, monitor, registry) {\n invariant(monitor.isDragging(), 'Cannot call hover while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call hover after drop.');\n\n for (var i = 0; i < targetIds.length; i++) {\n var targetId = targetIds[i];\n invariant(targetIds.lastIndexOf(targetId) === i, 'Expected targetIds to be unique in the passed array.');\n var target = registry.getTarget(targetId);\n invariant(target, 'Expected targetIds to be registered.');\n }\n}\n\nfunction removeNonMatchingTargetIds(targetIds, registry, draggedItemType) {\n // Remove those targetIds that don't match the targetType. This\n // fixes shallow isOver which would only be non-shallow because of\n // non-matching targets.\n for (var i = targetIds.length - 1; i >= 0; i--) {\n var targetId = targetIds[i];\n var targetType = registry.getTargetType(targetId);\n\n if (!matchesType(targetType, draggedItemType)) {\n targetIds.splice(i, 1);\n }\n }\n}\n\nfunction hoverAllTargets(targetIds, monitor, registry) {\n // Finally call hover on all matching targets.\n targetIds.forEach(function (targetId) {\n var target = registry.getTarget(targetId);\n target.hover(monitor, targetId);\n });\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { invariant } from '@react-dnd/invariant';\nimport { DROP } from './types';\nimport { isObject } from '../../utils/js_utils';\nexport function createDrop(manager) {\n return function drop() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyInvariants(monitor);\n var targetIds = getDroppableTargets(monitor); // Multiple actions are dispatched here, which is why this doesn't return an action\n\n targetIds.forEach(function (targetId, index) {\n var dropResult = determineDropResult(targetId, index, registry, monitor);\n var action = {\n type: DROP,\n payload: {\n dropResult: _objectSpread(_objectSpread({}, options), dropResult)\n }\n };\n manager.dispatch(action);\n });\n };\n}\n\nfunction verifyInvariants(monitor) {\n invariant(monitor.isDragging(), 'Cannot call drop while not dragging.');\n invariant(!monitor.didDrop(), 'Cannot call drop twice during one drag operation.');\n}\n\nfunction determineDropResult(targetId, index, registry, monitor) {\n var target = registry.getTarget(targetId);\n var dropResult = target ? target.drop(monitor, targetId) : undefined;\n verifyDropResultType(dropResult);\n\n if (typeof dropResult === 'undefined') {\n dropResult = index === 0 ? {} : monitor.getDropResult();\n }\n\n return dropResult;\n}\n\nfunction verifyDropResultType(dropResult) {\n invariant(typeof dropResult === 'undefined' || isObject(dropResult), 'Drop result must either be an object or undefined.');\n}\n\nfunction getDroppableTargets(monitor) {\n var targetIds = monitor.getTargetIds().filter(monitor.canDropOnTarget, monitor);\n targetIds.reverse();\n return targetIds;\n}","import { invariant } from '@react-dnd/invariant';\nimport { END_DRAG } from './types';\nexport function createEndDrag(manager) {\n return function endDrag() {\n var monitor = manager.getMonitor();\n var registry = manager.getRegistry();\n verifyIsDragging(monitor);\n var sourceId = monitor.getSourceId();\n\n if (sourceId != null) {\n var source = registry.getSource(sourceId, true);\n source.endDrag(monitor, sourceId);\n registry.unpinSource();\n }\n\n return {\n type: END_DRAG\n };\n };\n}\n\nfunction verifyIsDragging(monitor) {\n invariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.');\n}","function _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 _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\nimport { createDragDropActions } from '../actions/dragDrop';\nexport var DragDropManagerImpl = /*#__PURE__*/function () {\n function DragDropManagerImpl(store, monitor) {\n var _this = this;\n\n _classCallCheck(this, DragDropManagerImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"backend\", void 0);\n\n _defineProperty(this, \"isSetUp\", false);\n\n _defineProperty(this, \"handleRefCountChange\", function () {\n var shouldSetUp = _this.store.getState().refCount > 0;\n\n if (_this.backend) {\n if (shouldSetUp && !_this.isSetUp) {\n _this.backend.setup();\n\n _this.isSetUp = true;\n } else if (!shouldSetUp && _this.isSetUp) {\n _this.backend.teardown();\n\n _this.isSetUp = false;\n }\n }\n });\n\n this.store = store;\n this.monitor = monitor;\n store.subscribe(this.handleRefCountChange);\n }\n\n _createClass(DragDropManagerImpl, [{\n key: \"receiveBackend\",\n value: function receiveBackend(backend) {\n this.backend = backend;\n }\n }, {\n key: \"getMonitor\",\n value: function getMonitor() {\n return this.monitor;\n }\n }, {\n key: \"getBackend\",\n value: function getBackend() {\n return this.backend;\n }\n }, {\n key: \"getRegistry\",\n value: function getRegistry() {\n return this.monitor.registry;\n }\n }, {\n key: \"getActions\",\n value: function getActions() {\n /* eslint-disable-next-line @typescript-eslint/no-this-alias */\n var manager = this;\n var dispatch = this.store.dispatch;\n\n function bindActionCreator(actionCreator) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var action = actionCreator.apply(manager, args);\n\n if (typeof action !== 'undefined') {\n dispatch(action);\n }\n };\n }\n\n var actions = createDragDropActions(this);\n return Object.keys(actions).reduce(function (boundActions, key) {\n var action = actions[key];\n boundActions[key] = bindActionCreator(action);\n return boundActions;\n }, {});\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(action) {\n this.store.dispatch(action);\n }\n }]);\n\n return DragDropManagerImpl;\n}();","import { createBeginDrag } from './beginDrag';\nimport { createPublishDragSource } from './publishDragSource';\nimport { createHover } from './hover';\nimport { createDrop } from './drop';\nimport { createEndDrag } from './endDrag';\nexport * from './types';\nexport function createDragDropActions(manager) {\n return {\n beginDrag: createBeginDrag(manager),\n publishDragSource: createPublishDragSource(manager),\n hover: createHover(manager),\n drop: createDrop(manager),\n endDrag: createEndDrag(manager)\n };\n}","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore };\n","export var strictEquality = function strictEquality(a, b) {\n return a === b;\n};\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\n\nexport function areCoordsEqual(offsetA, offsetB) {\n if (!offsetA && !offsetB) {\n return true;\n } else if (!offsetA || !offsetB) {\n return false;\n } else {\n return offsetA.x === offsetB.x && offsetA.y === offsetB.y;\n }\n}\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\n\nexport function areArraysEqual(a, b) {\n var isEqual = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : strictEquality;\n\n if (a.length !== b.length) {\n return false;\n }\n\n for (var i = 0; i < a.length; ++i) {\n if (!isEqual(a[i], b[i])) {\n return false;\n }\n }\n\n return true;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { INIT_COORDS, BEGIN_DRAG, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { areCoordsEqual } from '../utils/equality';\nvar initialState = {\n initialSourceClientOffset: null,\n initialClientOffset: null,\n clientOffset: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case INIT_COORDS:\n case BEGIN_DRAG:\n return {\n initialSourceClientOffset: payload.sourceClientOffset,\n initialClientOffset: payload.clientOffset,\n clientOffset: payload.clientOffset\n };\n\n case HOVER:\n if (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n clientOffset: payload.clientOffset\n });\n\n case END_DRAG:\n case DROP:\n return initialState;\n\n default:\n return state;\n }\n}","export var ADD_SOURCE = 'dnd-core/ADD_SOURCE';\nexport var ADD_TARGET = 'dnd-core/ADD_TARGET';\nexport var REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE';\nexport var REMOVE_TARGET = 'dnd-core/REMOVE_TARGET';\nexport function addSource(sourceId) {\n return {\n type: ADD_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function addTarget(targetId) {\n return {\n type: ADD_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}\nexport function removeSource(sourceId) {\n return {\n type: REMOVE_SOURCE,\n payload: {\n sourceId: sourceId\n }\n };\n}\nexport function removeTarget(targetId) {\n return {\n type: REMOVE_TARGET,\n payload: {\n targetId: targetId\n }\n };\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { REMOVE_TARGET } from '../actions/registry';\nimport { without } from '../utils/js_utils';\nvar initialState = {\n itemType: null,\n item: null,\n sourceId: null,\n targetIds: [],\n dropResult: null,\n didDrop: false,\n isSourcePublic: null\n};\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n var payload = action.payload;\n\n switch (action.type) {\n case BEGIN_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: payload.itemType,\n item: payload.item,\n sourceId: payload.sourceId,\n isSourcePublic: payload.isSourcePublic,\n dropResult: null,\n didDrop: false\n });\n\n case PUBLISH_DRAG_SOURCE:\n return _objectSpread(_objectSpread({}, state), {}, {\n isSourcePublic: true\n });\n\n case HOVER:\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: payload.targetIds\n });\n\n case REMOVE_TARGET:\n if (state.targetIds.indexOf(payload.targetId) === -1) {\n return state;\n }\n\n return _objectSpread(_objectSpread({}, state), {}, {\n targetIds: without(state.targetIds, payload.targetId)\n });\n\n case DROP:\n return _objectSpread(_objectSpread({}, state), {}, {\n dropResult: payload.dropResult,\n didDrop: true,\n targetIds: []\n });\n\n case END_DRAG:\n return _objectSpread(_objectSpread({}, state), {}, {\n itemType: null,\n item: null,\n sourceId: null,\n dropResult: null,\n didDrop: false,\n isSourcePublic: null,\n targetIds: []\n });\n\n default:\n return state;\n }\n}","import { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case ADD_SOURCE:\n case ADD_TARGET:\n return state + 1;\n\n case REMOVE_SOURCE:\n case REMOVE_TARGET:\n return state - 1;\n\n default:\n return state;\n }\n}","import { intersection } from './js_utils';\nexport var NONE = [];\nexport var ALL = [];\nNONE.__IS_NONE__ = true;\nALL.__IS_ALL__ = true;\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\n\nexport function areDirty(dirtyIds, handlerIds) {\n if (dirtyIds === NONE) {\n return false;\n }\n\n if (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n return true;\n }\n\n var commonIds = intersection(handlerIds, dirtyIds);\n return commonIds.length > 0;\n}","import { BEGIN_DRAG, PUBLISH_DRAG_SOURCE, HOVER, END_DRAG, DROP } from '../actions/dragDrop';\nimport { ADD_SOURCE, ADD_TARGET, REMOVE_SOURCE, REMOVE_TARGET } from '../actions/registry';\nimport { areArraysEqual } from '../utils/equality';\nimport { NONE, ALL } from '../utils/dirtiness';\nimport { xor } from '../utils/js_utils';\nexport function reduce() {\n var _state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : NONE;\n\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n switch (action.type) {\n case HOVER:\n break;\n\n case ADD_SOURCE:\n case ADD_TARGET:\n case REMOVE_TARGET:\n case REMOVE_SOURCE:\n return NONE;\n\n case BEGIN_DRAG:\n case PUBLISH_DRAG_SOURCE:\n case END_DRAG:\n case DROP:\n default:\n return ALL;\n }\n\n var _action$payload = action.payload,\n _action$payload$targe = _action$payload.targetIds,\n targetIds = _action$payload$targe === void 0 ? [] : _action$payload$targe,\n _action$payload$prevT = _action$payload.prevTargetIds,\n prevTargetIds = _action$payload$prevT === void 0 ? [] : _action$payload$prevT;\n var result = xor(targetIds, prevTargetIds);\n var didChange = result.length > 0 || !areArraysEqual(targetIds, prevTargetIds);\n\n if (!didChange) {\n return NONE;\n } // Check the target ids at the innermost position. If they are valid, add them\n // to the result\n\n\n var prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1];\n var innermostTargetId = targetIds[targetIds.length - 1];\n\n if (prevInnermostTargetId !== innermostTargetId) {\n if (prevInnermostTargetId) {\n result.push(prevInnermostTargetId);\n }\n\n if (innermostTargetId) {\n result.push(innermostTargetId);\n }\n }\n\n return result;\n}","export function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return state + 1;\n}","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\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\nimport { reduce as dragOffset } from './dragOffset';\nimport { reduce as dragOperation } from './dragOperation';\nimport { reduce as refCount } from './refCount';\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds';\nimport { reduce as stateId } from './stateId';\nimport { get } from '../utils/js_utils';\nexport function reduce() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments.length > 1 ? arguments[1] : undefined;\n return {\n dirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n type: action.type,\n payload: _objectSpread(_objectSpread({}, action.payload), {}, {\n prevTargetIds: get(state, 'dragOperation.targetIds', [])\n })\n }),\n dragOffset: dragOffset(state.dragOffset, action),\n refCount: refCount(state.refCount, action),\n dragOperation: dragOperation(state.dragOperation, action),\n stateId: stateId(state.stateId)\n };\n}","/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a, b) {\n return {\n x: a.x + b.x,\n y: a.y + b.y\n };\n}\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\n\nexport function subtract(a, b) {\n return {\n x: a.x - b.x,\n y: a.y - b.y\n };\n}\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\n\nexport function getSourceClientOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset,\n initialSourceClientOffset = state.initialSourceClientOffset;\n\n if (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n return null;\n }\n\n return subtract(add(clientOffset, initialSourceClientOffset), initialClientOffset);\n}\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\n\nexport function getDifferenceFromInitialOffset(state) {\n var clientOffset = state.clientOffset,\n initialClientOffset = state.initialClientOffset;\n\n if (!clientOffset || !initialClientOffset) {\n return null;\n }\n\n return subtract(clientOffset, initialClientOffset);\n}","function _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 _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\nimport { invariant } from '@react-dnd/invariant';\nimport { matchesType } from '../utils/matchesType';\nimport { getSourceClientOffset as _getSourceClientOffset, getDifferenceFromInitialOffset as _getDifferenceFromInitialOffset } from '../utils/coords';\nimport { areDirty } from '../utils/dirtiness';\nexport var DragDropMonitorImpl = /*#__PURE__*/function () {\n function DragDropMonitorImpl(store, registry) {\n _classCallCheck(this, DragDropMonitorImpl);\n\n _defineProperty(this, \"store\", void 0);\n\n _defineProperty(this, \"registry\", void 0);\n\n this.store = store;\n this.registry = registry;\n }\n\n _createClass(DragDropMonitorImpl, [{\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n handlerIds: undefined\n };\n var handlerIds = options.handlerIds;\n invariant(typeof listener === 'function', 'listener must be a function.');\n invariant(typeof handlerIds === 'undefined' || Array.isArray(handlerIds), 'handlerIds, when specified, must be an array of strings.');\n var prevStateId = this.store.getState().stateId;\n\n var handleChange = function handleChange() {\n var state = _this.store.getState();\n\n var currentStateId = state.stateId;\n\n try {\n var canSkipListener = currentStateId === prevStateId || currentStateId === prevStateId + 1 && !areDirty(state.dirtyHandlerIds, handlerIds);\n\n if (!canSkipListener) {\n listener();\n }\n } finally {\n prevStateId = currentStateId;\n }\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n var _this2 = this;\n\n invariant(typeof listener === 'function', 'listener must be a function.');\n var previousState = this.store.getState().dragOffset;\n\n var handleChange = function handleChange() {\n var nextState = _this2.store.getState().dragOffset;\n\n if (nextState === previousState) {\n return;\n }\n\n previousState = nextState;\n listener();\n };\n\n return this.store.subscribe(handleChange);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\n\n if (this.isDragging()) {\n return false;\n }\n\n return source.canDrag(this, sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var target = this.registry.getTarget(targetId);\n invariant(target, \"Expected to find a valid target. targetId=\".concat(targetId));\n\n if (!this.isDragging() || this.didDrop()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n return matchesType(targetType, draggedItemType) && target.canDrop(this, targetId);\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n return Boolean(this.getItemType());\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n // undefined on initial render\n if (!sourceId) {\n return false;\n }\n\n var source = this.registry.getSource(sourceId, true);\n invariant(source, \"Expected to find a valid source. sourceId=\".concat(sourceId));\n\n if (!this.isDragging() || !this.isSourcePublic()) {\n return false;\n }\n\n var sourceType = this.registry.getSourceType(sourceId);\n var draggedItemType = this.getItemType();\n\n if (sourceType !== draggedItemType) {\n return false;\n }\n\n return source.isDragging(this, sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n shallow: false\n };\n\n // undefined on initial render\n if (!targetId) {\n return false;\n }\n\n var shallow = options.shallow;\n\n if (!this.isDragging()) {\n return false;\n }\n\n var targetType = this.registry.getTargetType(targetId);\n var draggedItemType = this.getItemType();\n\n if (draggedItemType && !matchesType(targetType, draggedItemType)) {\n return false;\n }\n\n var targetIds = this.getTargetIds();\n\n if (!targetIds.length) {\n return false;\n }\n\n var index = targetIds.indexOf(targetId);\n\n if (shallow) {\n return index === targetIds.length - 1;\n } else {\n return index > -1;\n }\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.store.getState().dragOperation.itemType;\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.store.getState().dragOperation.item;\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.store.getState().dragOperation.sourceId;\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.store.getState().dragOperation.targetIds;\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.store.getState().dragOperation.dropResult;\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.store.getState().dragOperation.didDrop;\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return Boolean(this.store.getState().dragOperation.isSourcePublic);\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.store.getState().dragOffset.initialClientOffset;\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.store.getState().dragOffset.initialSourceClientOffset;\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.store.getState().dragOffset.clientOffset;\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return _getSourceClientOffset(this.store.getState().dragOffset);\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return _getDifferenceFromInitialOffset(this.store.getState().dragOffset);\n }\n }]);\n\n return DragDropMonitorImpl;\n}();","export var HandlerRole;\n\n(function (HandlerRole) {\n HandlerRole[\"SOURCE\"] = \"SOURCE\";\n HandlerRole[\"TARGET\"] = \"TARGET\";\n})(HandlerRole || (HandlerRole = {}));","var nextUniqueId = 0;\nexport function getNextUniqueId() {\n return nextUniqueId++;\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); }\n\nimport { invariant } from '@react-dnd/invariant';\nexport function validateSourceContract(source) {\n invariant(typeof source.canDrag === 'function', 'Expected canDrag to be a function.');\n invariant(typeof source.beginDrag === 'function', 'Expected beginDrag to be a function.');\n invariant(typeof source.endDrag === 'function', 'Expected endDrag to be a function.');\n}\nexport function validateTargetContract(target) {\n invariant(typeof target.canDrop === 'function', 'Expected canDrop to be a function.');\n invariant(typeof target.hover === 'function', 'Expected hover to be a function.');\n invariant(typeof target.drop === 'function', 'Expected beginDrag to be a function.');\n}\nexport function validateType(type, allowArray) {\n if (allowArray && Array.isArray(type)) {\n type.forEach(function (t) {\n return validateType(t, false);\n });\n return;\n }\n\n invariant(typeof type === 'string' || _typeof(type) === 'symbol', allowArray ? 'Type can only be a string, a symbol, or an array of either.' : 'Type can only be a string or a symbol.');\n}","import { rawAsap } from './raw'; // rawAsap provides everything we need except exception management.\n// RawTasks are recycled to reduce GC churn.\n\nvar freeTasks = []; // We queue errors to ensure they are thrown in right order (FIFO).\n// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\nvar pendingErrors = [];\nvar requestErrorThrow = rawAsap.makeRequestCallFromTimer(throwFirstError);\n\nfunction throwFirstError() {\n if (pendingErrors.length) {\n throw pendingErrors.shift();\n }\n}\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\n\n\nexport function asap(task) {\n var rawTask;\n\n if (freeTasks.length) {\n rawTask = freeTasks.pop();\n } else {\n rawTask = new RawTask();\n }\n\n rawTask.task = task;\n rawAsap(rawTask);\n} // We wrap tasks with recyclable task objects. A task object implements\n// `call`, just like a function.\n\nvar RawTask =\n/** @class */\nfunction () {\n function RawTask() {}\n\n RawTask.prototype.call = function () {\n try {\n this.task.call();\n } catch (error) {\n if (asap.onerror) {\n // This hook exists purely for testing purposes.\n // Its name will be periodically randomized to break any code that\n // depends on its existence.\n asap.onerror(error);\n } else {\n // In a web browser, exceptions are not fatal. However, to avoid\n // slowing down the queue of pending tasks, we rethrow the error in a\n // lower priority turn.\n pendingErrors.push(error);\n requestErrorThrow();\n }\n } finally {\n this.task = null;\n freeTasks[freeTasks.length] = this;\n }\n };\n\n return RawTask;\n}();","function _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 _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) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport { invariant } from '@react-dnd/invariant';\nimport { addSource as _addSource, addTarget as _addTarget, removeSource as _removeSource, removeTarget as _removeTarget } from '../actions/registry';\nimport { getNextUniqueId } from '../utils/getNextUniqueId';\nimport { HandlerRole } from '../interfaces';\nimport { validateSourceContract, validateTargetContract, validateType } from '../contracts';\nimport { asap } from '@react-dnd/asap';\n\nfunction getNextHandlerId(role) {\n var id = getNextUniqueId().toString();\n\n switch (role) {\n case HandlerRole.SOURCE:\n return \"S\".concat(id);\n\n case HandlerRole.TARGET:\n return \"T\".concat(id);\n\n default:\n throw new Error(\"Unknown Handler Role: \".concat(role));\n }\n}\n\nfunction parseRoleFromHandlerId(handlerId) {\n switch (handlerId[0]) {\n case 'S':\n return HandlerRole.SOURCE;\n\n case 'T':\n return HandlerRole.TARGET;\n\n default:\n invariant(false, \"Cannot parse handler ID: \".concat(handlerId));\n }\n}\n\nfunction mapContainsValue(map, searchValue) {\n var entries = map.entries();\n var isDone = false;\n\n do {\n var _entries$next = entries.next(),\n done = _entries$next.done,\n _entries$next$value = _slicedToArray(_entries$next.value, 2),\n value = _entries$next$value[1];\n\n if (value === searchValue) {\n return true;\n }\n\n isDone = !!done;\n } while (!isDone);\n\n return false;\n}\n\nexport var HandlerRegistryImpl = /*#__PURE__*/function () {\n function HandlerRegistryImpl(store) {\n _classCallCheck(this, HandlerRegistryImpl);\n\n _defineProperty(this, \"types\", new Map());\n\n _defineProperty(this, \"dragSources\", new Map());\n\n _defineProperty(this, \"dropTargets\", new Map());\n\n _defineProperty(this, \"pinnedSourceId\", null);\n\n _defineProperty(this, \"pinnedSource\", null);\n\n _defineProperty(this, \"store\", void 0);\n\n this.store = store;\n }\n\n _createClass(HandlerRegistryImpl, [{\n key: \"addSource\",\n value: function addSource(type, source) {\n validateType(type);\n validateSourceContract(source);\n var sourceId = this.addHandler(HandlerRole.SOURCE, type, source);\n this.store.dispatch(_addSource(sourceId));\n return sourceId;\n }\n }, {\n key: \"addTarget\",\n value: function addTarget(type, target) {\n validateType(type, true);\n validateTargetContract(target);\n var targetId = this.addHandler(HandlerRole.TARGET, type, target);\n this.store.dispatch(_addTarget(targetId));\n return targetId;\n }\n }, {\n key: \"containsHandler\",\n value: function containsHandler(handler) {\n return mapContainsValue(this.dragSources, handler) || mapContainsValue(this.dropTargets, handler);\n }\n }, {\n key: \"getSource\",\n value: function getSource(sourceId) {\n var includePinned = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n var isPinned = includePinned && sourceId === this.pinnedSourceId;\n var source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId);\n return source;\n }\n }, {\n key: \"getTarget\",\n value: function getTarget(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.dropTargets.get(targetId);\n }\n }, {\n key: \"getSourceType\",\n value: function getSourceType(sourceId) {\n invariant(this.isSourceId(sourceId), 'Expected a valid source ID.');\n return this.types.get(sourceId);\n }\n }, {\n key: \"getTargetType\",\n value: function getTargetType(targetId) {\n invariant(this.isTargetId(targetId), 'Expected a valid target ID.');\n return this.types.get(targetId);\n }\n }, {\n key: \"isSourceId\",\n value: function isSourceId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.SOURCE;\n }\n }, {\n key: \"isTargetId\",\n value: function isTargetId(handlerId) {\n var role = parseRoleFromHandlerId(handlerId);\n return role === HandlerRole.TARGET;\n }\n }, {\n key: \"removeSource\",\n value: function removeSource(sourceId) {\n var _this = this;\n\n invariant(this.getSource(sourceId), 'Expected an existing source.');\n this.store.dispatch(_removeSource(sourceId));\n asap(function () {\n _this.dragSources.delete(sourceId);\n\n _this.types.delete(sourceId);\n });\n }\n }, {\n key: \"removeTarget\",\n value: function removeTarget(targetId) {\n invariant(this.getTarget(targetId), 'Expected an existing target.');\n this.store.dispatch(_removeTarget(targetId));\n this.dropTargets.delete(targetId);\n this.types.delete(targetId);\n }\n }, {\n key: \"pinSource\",\n value: function pinSource(sourceId) {\n var source = this.getSource(sourceId);\n invariant(source, 'Expected an existing source.');\n this.pinnedSourceId = sourceId;\n this.pinnedSource = source;\n }\n }, {\n key: \"unpinSource\",\n value: function unpinSource() {\n invariant(this.pinnedSource, 'No source is pinned at the time.');\n this.pinnedSourceId = null;\n this.pinnedSource = null;\n }\n }, {\n key: \"addHandler\",\n value: function addHandler(role, type, handler) {\n var id = getNextHandlerId(role);\n this.types.set(id, type);\n\n if (role === HandlerRole.SOURCE) {\n this.dragSources.set(id, handler);\n } else if (role === HandlerRole.TARGET) {\n this.dropTargets.set(id, handler);\n }\n\n return id;\n }\n }]);\n\n return HandlerRegistryImpl;\n}();","import { DragDropManagerImpl } from './classes/DragDropManagerImpl';\nimport { createStore } from 'redux';\nimport { reduce } from './reducers';\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl';\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl';\nexport function createDragDropManager(backendFactory) {\n var globalContext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;\n var backendOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var debugMode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var store = makeStoreInstance(debugMode);\n var monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store));\n var manager = new DragDropManagerImpl(store, monitor);\n var backend = backendFactory(manager, globalContext, backendOptions);\n manager.receiveBackend(backend);\n return manager;\n}\n\nfunction makeStoreInstance(debugMode) {\n // TODO: if we ever make a react-native version of this,\n // we'll need to consider how to pull off dev-tooling\n var reduxDevTools = typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__;\n return createStore(reduce, debugMode && reduxDevTools && reduxDevTools({\n name: 'dnd-core',\n instanceId: 'dnd-core'\n }));\n}","export function registerTarget(type, target, manager) {\n var registry = manager.getRegistry();\n var targetId = registry.addTarget(type, target);\n return [targetId, function () {\n return registry.removeTarget(targetId);\n }];\n}\nexport function registerSource(type, source, manager) {\n var registry = manager.getRegistry();\n var sourceId = registry.addSource(type, source);\n return [sourceId, function () {\n return registry.removeSource(sourceId);\n }];\n}","var _excluded = [\"children\"];\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useEffect, memo } from 'react';\nimport { createDragDropManager } from 'dnd-core';\nimport { DndContext } from './DndContext';\nvar refCount = 0;\nvar INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__');\n/**\n * A React component that provides the React-DnD context\n */\n\nexport var DndProvider = memo(function DndProvider(_ref) {\n var children = _ref.children,\n props = _objectWithoutProperties(_ref, _excluded);\n\n var _getDndContextValue = getDndContextValue(props),\n _getDndContextValue2 = _slicedToArray(_getDndContextValue, 2),\n manager = _getDndContextValue2[0],\n isGlobalInstance = _getDndContextValue2[1]; // memoized from props\n\n /**\n * If the global context was used to store the DND context\n * then where theres no more references to it we should\n * clean it up to avoid memory leaks\n */\n\n\n useEffect(function () {\n if (isGlobalInstance) {\n var context = getGlobalContext();\n ++refCount;\n return function () {\n if (--refCount === 0) {\n context[INSTANCE_SYM] = null;\n }\n };\n }\n }, []);\n return _jsx(DndContext.Provider, Object.assign({\n value: manager\n }, {\n children: children\n }), void 0);\n});\n\nfunction getDndContextValue(props) {\n if ('manager' in props) {\n var _manager = {\n dragDropManager: props.manager\n };\n return [_manager, false];\n }\n\n var manager = createSingletonDndContext(props.backend, props.context, props.options, props.debugMode);\n var isGlobalInstance = !props.context;\n return [manager, isGlobalInstance];\n}\n\nfunction createSingletonDndContext(backend) {\n var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getGlobalContext();\n var options = arguments.length > 2 ? arguments[2] : undefined;\n var debugMode = arguments.length > 3 ? arguments[3] : undefined;\n var ctx = context;\n\n if (!ctx[INSTANCE_SYM]) {\n ctx[INSTANCE_SYM] = {\n dragDropManager: createDragDropManager(backend, context, options, debugMode)\n };\n }\n\n return ctx[INSTANCE_SYM];\n}\n\nfunction getGlobalContext() {\n return typeof global !== 'undefined' ? global : window;\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); }\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 _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\nexport var DragSourceImpl = /*#__PURE__*/function () {\n function DragSourceImpl(spec, monitor, connector) {\n _classCallCheck(this, DragSourceImpl);\n\n _defineProperty(this, \"spec\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n _defineProperty(this, \"connector\", void 0);\n\n this.spec = spec;\n this.monitor = monitor;\n this.connector = connector;\n }\n\n _createClass(DragSourceImpl, [{\n key: \"beginDrag\",\n value: function beginDrag() {\n var _result;\n\n var spec = this.spec;\n var monitor = this.monitor;\n var result = null;\n\n if (_typeof(spec.item) === 'object') {\n result = spec.item;\n } else if (typeof spec.item === 'function') {\n result = spec.item(monitor);\n } else {\n result = {};\n }\n\n return (_result = result) !== null && _result !== void 0 ? _result : null;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (typeof spec.canDrag === 'boolean') {\n return spec.canDrag;\n } else if (typeof spec.canDrag === 'function') {\n return spec.canDrag(monitor);\n } else {\n return true;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging(globalMonitor, target) {\n var spec = this.spec;\n var monitor = this.monitor;\n var isDragging = spec.isDragging;\n return isDragging ? isDragging(monitor) : target === globalMonitor.getSourceId();\n }\n }, {\n key: \"endDrag\",\n value: function endDrag() {\n var spec = this.spec;\n var monitor = this.monitor;\n var connector = this.connector;\n var end = spec.end;\n\n if (end) {\n end(monitor.getItem(), monitor);\n }\n\n connector.reconnect();\n }\n }]);\n\n return DragSourceImpl;\n}();","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport { registerSource } from '../../internals';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport { useDragSource } from './useDragSource';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useDragType } from './useDragType';\nexport function useRegisteredDragSource(spec, monitor, connector) {\n var manager = useDragDropManager();\n var handler = useDragSource(spec, monitor, connector);\n var itemType = useDragType(spec);\n useIsomorphicLayoutEffect(function registerDragSource() {\n if (itemType != null) {\n var _registerSource = registerSource(itemType, handler, manager),\n _registerSource2 = _slicedToArray(_registerSource, 2),\n handlerId = _registerSource2[0],\n unregister = _registerSource2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }\n }, [manager, monitor, connector, handler, itemType]);\n}","import { useEffect, useMemo } from 'react';\nimport { DragSourceImpl } from './DragSourceImpl';\nexport function useDragSource(spec, monitor, connector) {\n var handler = useMemo(function () {\n return new DragSourceImpl(spec, monitor, connector);\n }, [monitor, connector]);\n useEffect(function () {\n handler.spec = spec;\n }, [spec]);\n return handler;\n}","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\nexport function useDragType(spec) {\n return useMemo(function () {\n var result = spec.type;\n invariant(result != null, 'spec.type must be defined');\n return result;\n }, [spec]);\n}","function _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 _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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrag = false;\nvar isCallingIsDragging = false;\nexport var DragSourceMonitorImpl = /*#__PURE__*/function () {\n function DragSourceMonitorImpl(manager) {\n _classCallCheck(this, DragSourceMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"sourceId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DragSourceMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(sourceId) {\n this.sourceId = sourceId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.sourceId;\n }\n }, {\n key: \"canDrag\",\n value: function canDrag() {\n invariant(!isCallingCanDrag, 'You may not call monitor.canDrag() inside your canDrag() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingCanDrag = true;\n return this.internalMonitor.canDragSource(this.sourceId);\n } finally {\n isCallingCanDrag = false;\n }\n }\n }, {\n key: \"isDragging\",\n value: function isDragging() {\n if (!this.sourceId) {\n return false;\n }\n\n invariant(!isCallingIsDragging, 'You may not call monitor.isDragging() inside your isDragging() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor');\n\n try {\n isCallingIsDragging = true;\n return this.internalMonitor.isDraggingSource(this.sourceId);\n } finally {\n isCallingIsDragging = false;\n }\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"isDraggingSource\",\n value: function isDraggingSource(sourceId) {\n return this.internalMonitor.isDraggingSource(sourceId);\n }\n }, {\n key: \"isOverTarget\",\n value: function isOverTarget(targetId, options) {\n return this.internalMonitor.isOverTarget(targetId, options);\n }\n }, {\n key: \"getTargetIds\",\n value: function getTargetIds() {\n return this.internalMonitor.getTargetIds();\n }\n }, {\n key: \"isSourcePublic\",\n value: function isSourcePublic() {\n return this.internalMonitor.isSourcePublic();\n }\n }, {\n key: \"getSourceId\",\n value: function getSourceId() {\n return this.internalMonitor.getSourceId();\n }\n }, {\n key: \"subscribeToOffsetChange\",\n value: function subscribeToOffsetChange(listener) {\n return this.internalMonitor.subscribeToOffsetChange(listener);\n }\n }, {\n key: \"canDragSource\",\n value: function canDragSource(sourceId) {\n return this.internalMonitor.canDragSource(sourceId);\n }\n }, {\n key: \"canDropOnTarget\",\n value: function canDropOnTarget(targetId) {\n return this.internalMonitor.canDropOnTarget(targetId);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DragSourceMonitorImpl;\n}();","function _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 _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\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nimport { shallowEqual } from '@react-dnd/shallowequal';\nexport var SourceConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n // The drag preview may either be attached via ref or connect function\n function SourceConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, SourceConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dragSource: function dragSource(node, options) {\n _this.clearDragSource();\n\n _this.dragSourceOptions = options || null;\n\n if (isRef(node)) {\n _this.dragSourceRef = node;\n } else {\n _this.dragSourceNode = node;\n }\n\n _this.reconnectDragSource();\n },\n dragPreview: function dragPreview(node, options) {\n _this.clearDragPreview();\n\n _this.dragPreviewOptions = options || null;\n\n if (isRef(node)) {\n _this.dragPreviewRef = node;\n } else {\n _this.dragPreviewNode = node;\n }\n\n _this.reconnectDragPreview();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dragSourceRef\", null);\n\n _defineProperty(this, \"dragSourceNode\", void 0);\n\n _defineProperty(this, \"dragSourceOptionsInternal\", null);\n\n _defineProperty(this, \"dragSourceUnsubscribe\", void 0);\n\n _defineProperty(this, \"dragPreviewRef\", null);\n\n _defineProperty(this, \"dragPreviewNode\", void 0);\n\n _defineProperty(this, \"dragPreviewOptionsInternal\", null);\n\n _defineProperty(this, \"dragPreviewUnsubscribe\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDragSource\", null);\n\n _defineProperty(this, \"lastConnectedDragSourceOptions\", null);\n\n _defineProperty(this, \"lastConnectedDragPreview\", null);\n\n _defineProperty(this, \"lastConnectedDragPreviewOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(SourceConnector, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (this.handlerId === newHandlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"connectTarget\",\n get: function get() {\n return this.dragSource;\n }\n }, {\n key: \"dragSourceOptions\",\n get: function get() {\n return this.dragSourceOptionsInternal;\n },\n set: function set(options) {\n this.dragSourceOptionsInternal = options;\n }\n }, {\n key: \"dragPreviewOptions\",\n get: function get() {\n return this.dragPreviewOptionsInternal;\n },\n set: function set(options) {\n this.dragPreviewOptionsInternal = options;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n this.reconnectDragSource();\n this.reconnectDragPreview();\n }\n }, {\n key: \"reconnectDragSource\",\n value: function reconnectDragSource() {\n var dragSource = this.dragSource; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragSourceChange() || this.didDragSourceOptionsChange();\n\n if (didChange) {\n this.disconnectDragSource();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragSource) {\n this.lastConnectedDragSource = dragSource;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragSource = dragSource;\n this.lastConnectedDragSourceOptions = this.dragSourceOptions;\n this.dragSourceUnsubscribe = this.backend.connectDragSource(this.handlerId, dragSource, this.dragSourceOptions);\n }\n }\n }, {\n key: \"reconnectDragPreview\",\n value: function reconnectDragPreview() {\n var dragPreview = this.dragPreview; // if nothing has changed then don't resubscribe\n\n var didChange = this.didHandlerIdChange() || this.didConnectedDragPreviewChange() || this.didDragPreviewOptionsChange();\n\n if (didChange) {\n this.disconnectDragPreview();\n }\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dragPreview) {\n this.lastConnectedDragPreview = dragPreview;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDragPreview = dragPreview;\n this.lastConnectedDragPreviewOptions = this.dragPreviewOptions;\n this.dragPreviewUnsubscribe = this.backend.connectDragPreview(this.handlerId, dragPreview, this.dragPreviewOptions);\n }\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didConnectedDragSourceChange\",\n value: function didConnectedDragSourceChange() {\n return this.lastConnectedDragSource !== this.dragSource;\n }\n }, {\n key: \"didConnectedDragPreviewChange\",\n value: function didConnectedDragPreviewChange() {\n return this.lastConnectedDragPreview !== this.dragPreview;\n }\n }, {\n key: \"didDragSourceOptionsChange\",\n value: function didDragSourceOptionsChange() {\n return !shallowEqual(this.lastConnectedDragSourceOptions, this.dragSourceOptions);\n }\n }, {\n key: \"didDragPreviewOptionsChange\",\n value: function didDragPreviewOptionsChange() {\n return !shallowEqual(this.lastConnectedDragPreviewOptions, this.dragPreviewOptions);\n }\n }, {\n key: \"disconnectDragSource\",\n value: function disconnectDragSource() {\n if (this.dragSourceUnsubscribe) {\n this.dragSourceUnsubscribe();\n this.dragSourceUnsubscribe = undefined;\n }\n }\n }, {\n key: \"disconnectDragPreview\",\n value: function disconnectDragPreview() {\n if (this.dragPreviewUnsubscribe) {\n this.dragPreviewUnsubscribe();\n this.dragPreviewUnsubscribe = undefined;\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }\n }, {\n key: \"dragSource\",\n get: function get() {\n return this.dragSourceNode || this.dragSourceRef && this.dragSourceRef.current;\n }\n }, {\n key: \"dragPreview\",\n get: function get() {\n return this.dragPreviewNode || this.dragPreviewRef && this.dragPreviewRef.current;\n }\n }, {\n key: \"clearDragSource\",\n value: function clearDragSource() {\n this.dragSourceNode = null;\n this.dragSourceRef = null;\n }\n }, {\n key: \"clearDragPreview\",\n value: function clearDragPreview() {\n this.dragPreviewNode = null;\n this.dragPreviewRef = null;\n }\n }]);\n\n return SourceConnector;\n}();","import { useMemo } from 'react';\nexport function useConnectDragSource(connector) {\n return useMemo(function () {\n return connector.hooks.dragSource();\n }, [connector]);\n}\nexport function useConnectDragPreview(connector) {\n return useMemo(function () {\n return connector.hooks.dragPreview();\n }, [connector]);\n}","import { useRegisteredDragSource } from './useRegisteredDragSource';\nimport { useOptionalFactory } from '../useOptionalFactory';\nimport { useDragSourceMonitor } from './useDragSourceMonitor';\nimport { useDragSourceConnector } from './useDragSourceConnector';\nimport { useCollectedProps } from '../useCollectedProps';\nimport { useConnectDragPreview, useConnectDragSource } from './connectors';\nimport { invariant } from '@react-dnd/invariant';\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\n\nexport function useDrag(specArg, deps) {\n var spec = useOptionalFactory(specArg, deps);\n invariant(!spec.begin, \"useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)\");\n var monitor = useDragSourceMonitor();\n var connector = useDragSourceConnector(spec.options, spec.previewOptions);\n useRegisteredDragSource(spec, monitor, connector);\n return [useCollectedProps(spec.collect, monitor, connector), useConnectDragSource(connector), useConnectDragPreview(connector)];\n}","import { useMemo } from 'react';\nimport { DragSourceMonitorImpl } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nexport function useDragSourceMonitor() {\n var manager = useDragDropManager();\n return useMemo(function () {\n return new DragSourceMonitorImpl(manager);\n }, [manager]);\n}","import { useMemo } from 'react';\nimport { SourceConnector } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nexport function useDragSourceConnector(dragSourceOptions, dragPreviewOptions) {\n var manager = useDragDropManager();\n var connector = useMemo(function () {\n return new SourceConnector(manager.getBackend());\n }, [manager]);\n useIsomorphicLayoutEffect(function () {\n connector.dragSourceOptions = dragSourceOptions || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDragSource();\n };\n }, [connector, dragSourceOptions]);\n useIsomorphicLayoutEffect(function () {\n connector.dragPreviewOptions = dragPreviewOptions || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDragPreview();\n };\n }, [connector, dragPreviewOptions]);\n return connector;\n}","function _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 _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\nexport var DropTargetImpl = /*#__PURE__*/function () {\n function DropTargetImpl(spec, monitor) {\n _classCallCheck(this, DropTargetImpl);\n\n _defineProperty(this, \"spec\", void 0);\n\n _defineProperty(this, \"monitor\", void 0);\n\n this.spec = spec;\n this.monitor = monitor;\n }\n\n _createClass(DropTargetImpl, [{\n key: \"canDrop\",\n value: function canDrop() {\n var spec = this.spec;\n var monitor = this.monitor;\n return spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true;\n }\n }, {\n key: \"hover\",\n value: function hover() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (spec.hover) {\n spec.hover(monitor.getItem(), monitor);\n }\n }\n }, {\n key: \"drop\",\n value: function drop() {\n var spec = this.spec;\n var monitor = this.monitor;\n\n if (spec.drop) {\n return spec.drop(monitor.getItem(), monitor);\n }\n }\n }]);\n\n return DropTargetImpl;\n}();","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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\nimport { registerTarget } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nimport { useAccept } from './useAccept';\nimport { useDropTarget } from './useDropTarget';\nexport function useRegisteredDropTarget(spec, monitor, connector) {\n var manager = useDragDropManager();\n var dropTarget = useDropTarget(spec, monitor);\n var accept = useAccept(spec);\n useIsomorphicLayoutEffect(function registerDropTarget() {\n var _registerTarget = registerTarget(accept, dropTarget, manager),\n _registerTarget2 = _slicedToArray(_registerTarget, 2),\n handlerId = _registerTarget2[0],\n unregister = _registerTarget2[1];\n\n monitor.receiveHandlerId(handlerId);\n connector.receiveHandlerId(handlerId);\n return unregister;\n }, [manager, monitor, dropTarget, connector, accept.map(function (a) {\n return a.toString();\n }).join('|')]);\n}","import { useEffect, useMemo } from 'react';\nimport { DropTargetImpl } from './DropTargetImpl';\nexport function useDropTarget(spec, monitor) {\n var dropTarget = useMemo(function () {\n return new DropTargetImpl(spec, monitor);\n }, [monitor]);\n useEffect(function () {\n dropTarget.spec = spec;\n }, [spec]);\n return dropTarget;\n}","import { invariant } from '@react-dnd/invariant';\nimport { useMemo } from 'react';\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\n\nexport function useAccept(spec) {\n var accept = spec.accept;\n return useMemo(function () {\n invariant(spec.accept != null, 'accept must be defined');\n return Array.isArray(accept) ? accept : [accept];\n }, [accept]);\n}","function _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 _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\nimport { invariant } from '@react-dnd/invariant';\nvar isCallingCanDrop = false;\nexport var DropTargetMonitorImpl = /*#__PURE__*/function () {\n function DropTargetMonitorImpl(manager) {\n _classCallCheck(this, DropTargetMonitorImpl);\n\n _defineProperty(this, \"internalMonitor\", void 0);\n\n _defineProperty(this, \"targetId\", null);\n\n this.internalMonitor = manager.getMonitor();\n }\n\n _createClass(DropTargetMonitorImpl, [{\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(targetId) {\n this.targetId = targetId;\n }\n }, {\n key: \"getHandlerId\",\n value: function getHandlerId() {\n return this.targetId;\n }\n }, {\n key: \"subscribeToStateChange\",\n value: function subscribeToStateChange(listener, options) {\n return this.internalMonitor.subscribeToStateChange(listener, options);\n }\n }, {\n key: \"canDrop\",\n value: function canDrop() {\n // Cut out early if the target id has not been set. This should prevent errors\n // where the user has an older version of dnd-core like in\n // https://github.com/react-dnd/react-dnd/issues/1310\n if (!this.targetId) {\n return false;\n }\n\n invariant(!isCallingCanDrop, 'You may not call monitor.canDrop() inside your canDrop() implementation. ' + 'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor');\n\n try {\n isCallingCanDrop = true;\n return this.internalMonitor.canDropOnTarget(this.targetId);\n } finally {\n isCallingCanDrop = false;\n }\n }\n }, {\n key: \"isOver\",\n value: function isOver(options) {\n if (!this.targetId) {\n return false;\n }\n\n return this.internalMonitor.isOverTarget(this.targetId, options);\n }\n }, {\n key: \"getItemType\",\n value: function getItemType() {\n return this.internalMonitor.getItemType();\n }\n }, {\n key: \"getItem\",\n value: function getItem() {\n return this.internalMonitor.getItem();\n }\n }, {\n key: \"getDropResult\",\n value: function getDropResult() {\n return this.internalMonitor.getDropResult();\n }\n }, {\n key: \"didDrop\",\n value: function didDrop() {\n return this.internalMonitor.didDrop();\n }\n }, {\n key: \"getInitialClientOffset\",\n value: function getInitialClientOffset() {\n return this.internalMonitor.getInitialClientOffset();\n }\n }, {\n key: \"getInitialSourceClientOffset\",\n value: function getInitialSourceClientOffset() {\n return this.internalMonitor.getInitialSourceClientOffset();\n }\n }, {\n key: \"getSourceClientOffset\",\n value: function getSourceClientOffset() {\n return this.internalMonitor.getSourceClientOffset();\n }\n }, {\n key: \"getClientOffset\",\n value: function getClientOffset() {\n return this.internalMonitor.getClientOffset();\n }\n }, {\n key: \"getDifferenceFromInitialOffset\",\n value: function getDifferenceFromInitialOffset() {\n return this.internalMonitor.getDifferenceFromInitialOffset();\n }\n }]);\n\n return DropTargetMonitorImpl;\n}();","function _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 _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\nimport { shallowEqual } from '@react-dnd/shallowequal';\nimport { wrapConnectorHooks } from './wrapConnectorHooks';\nimport { isRef } from './isRef';\nexport var TargetConnector = /*#__PURE__*/function () {\n // The drop target may either be attached via ref or connect function\n function TargetConnector(backend) {\n var _this = this;\n\n _classCallCheck(this, TargetConnector);\n\n _defineProperty(this, \"hooks\", wrapConnectorHooks({\n dropTarget: function dropTarget(node, options) {\n _this.clearDropTarget();\n\n _this.dropTargetOptions = options;\n\n if (isRef(node)) {\n _this.dropTargetRef = node;\n } else {\n _this.dropTargetNode = node;\n }\n\n _this.reconnect();\n }\n }));\n\n _defineProperty(this, \"handlerId\", null);\n\n _defineProperty(this, \"dropTargetRef\", null);\n\n _defineProperty(this, \"dropTargetNode\", void 0);\n\n _defineProperty(this, \"dropTargetOptionsInternal\", null);\n\n _defineProperty(this, \"unsubscribeDropTarget\", void 0);\n\n _defineProperty(this, \"lastConnectedHandlerId\", null);\n\n _defineProperty(this, \"lastConnectedDropTarget\", null);\n\n _defineProperty(this, \"lastConnectedDropTargetOptions\", null);\n\n _defineProperty(this, \"backend\", void 0);\n\n this.backend = backend;\n }\n\n _createClass(TargetConnector, [{\n key: \"connectTarget\",\n get: function get() {\n return this.dropTarget;\n }\n }, {\n key: \"reconnect\",\n value: function reconnect() {\n // if nothing has changed then don't resubscribe\n var didChange = this.didHandlerIdChange() || this.didDropTargetChange() || this.didOptionsChange();\n\n if (didChange) {\n this.disconnectDropTarget();\n }\n\n var dropTarget = this.dropTarget;\n\n if (!this.handlerId) {\n return;\n }\n\n if (!dropTarget) {\n this.lastConnectedDropTarget = dropTarget;\n return;\n }\n\n if (didChange) {\n this.lastConnectedHandlerId = this.handlerId;\n this.lastConnectedDropTarget = dropTarget;\n this.lastConnectedDropTargetOptions = this.dropTargetOptions;\n this.unsubscribeDropTarget = this.backend.connectDropTarget(this.handlerId, dropTarget, this.dropTargetOptions);\n }\n }\n }, {\n key: \"receiveHandlerId\",\n value: function receiveHandlerId(newHandlerId) {\n if (newHandlerId === this.handlerId) {\n return;\n }\n\n this.handlerId = newHandlerId;\n this.reconnect();\n }\n }, {\n key: \"dropTargetOptions\",\n get: function get() {\n return this.dropTargetOptionsInternal;\n },\n set: function set(options) {\n this.dropTargetOptionsInternal = options;\n }\n }, {\n key: \"didHandlerIdChange\",\n value: function didHandlerIdChange() {\n return this.lastConnectedHandlerId !== this.handlerId;\n }\n }, {\n key: \"didDropTargetChange\",\n value: function didDropTargetChange() {\n return this.lastConnectedDropTarget !== this.dropTarget;\n }\n }, {\n key: \"didOptionsChange\",\n value: function didOptionsChange() {\n return !shallowEqual(this.lastConnectedDropTargetOptions, this.dropTargetOptions);\n }\n }, {\n key: \"disconnectDropTarget\",\n value: function disconnectDropTarget() {\n if (this.unsubscribeDropTarget) {\n this.unsubscribeDropTarget();\n this.unsubscribeDropTarget = undefined;\n }\n }\n }, {\n key: \"dropTarget\",\n get: function get() {\n return this.dropTargetNode || this.dropTargetRef && this.dropTargetRef.current;\n }\n }, {\n key: \"clearDropTarget\",\n value: function clearDropTarget() {\n this.dropTargetRef = null;\n this.dropTargetNode = null;\n }\n }]);\n\n return TargetConnector;\n}();","import { useMemo } from 'react';\nexport function useConnectDropTarget(connector) {\n return useMemo(function () {\n return connector.hooks.dropTarget();\n }, [connector]);\n}","import { useRegisteredDropTarget } from './useRegisteredDropTarget';\nimport { useOptionalFactory } from '../useOptionalFactory';\nimport { useDropTargetMonitor } from './useDropTargetMonitor';\nimport { useDropTargetConnector } from './useDropTargetConnector';\nimport { useCollectedProps } from '../useCollectedProps';\nimport { useConnectDropTarget } from './connectors';\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\n\nexport function useDrop(specArg, deps) {\n var spec = useOptionalFactory(specArg, deps);\n var monitor = useDropTargetMonitor();\n var connector = useDropTargetConnector(spec.options);\n useRegisteredDropTarget(spec, monitor, connector);\n return [useCollectedProps(spec.collect, monitor, connector), useConnectDropTarget(connector)];\n}","import { useMemo } from 'react';\nimport { DropTargetMonitorImpl } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nexport function useDropTargetMonitor() {\n var manager = useDragDropManager();\n return useMemo(function () {\n return new DropTargetMonitorImpl(manager);\n }, [manager]);\n}","import { useMemo } from 'react';\nimport { TargetConnector } from '../../internals';\nimport { useDragDropManager } from '../useDragDropManager';\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect';\nexport function useDropTargetConnector(options) {\n var manager = useDragDropManager();\n var connector = useMemo(function () {\n return new TargetConnector(manager.getBackend());\n }, [manager]);\n useIsomorphicLayoutEffect(function () {\n connector.dropTargetOptions = options || null;\n connector.reconnect();\n return function () {\n return connector.disconnectDropTarget();\n };\n }, [options]);\n return connector;\n}"],"sourceRoot":""}