!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).LottieInteractivity={})}(this,(function(e){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function a(e,t){if(null==e)return{};var n,i,a=function(e,t){if(null==e)return{};var n,i,a={},r=Object.keys(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(i=0;i<r.length;i++)n=r[i],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}function r(e,t){var n=t.get(e);if(!n)throw new TypeError("attempted to get private field on non-instance");return n.get?n.get.call(e):n.value}var o={player:"lottie-player"},s="[lottieInteractivity]:",l=function(){function e(){var i=this,l=arguments.length>0&&void 0!==arguments[0]?arguments[0]:o,C=l.actions,A=l.container,T=l.mode,H=l.player,O=a(l,["actions","container","mode","player"]);if(n(this,e),c.set(this,{writable:!0,value:function(){if(i.player){var e=function(){i.player.addEventListener("enterFrame",r(i,g)),i.container.addEventListener("mouseenter",r(i,E)),i.container.addEventListener("mouseleave",r(i,w)),i.container.addEventListener("touchstart",r(i,E),{passive:!0}),i.container.addEventListener("touchend",r(i,w),{passive:!0})};i.stateHandler.set("loop",(function(){i.actions[i.interactionIdx].loop?i.player.loop=parseInt(i.actions[i.interactionIdx].loop)-1:i.player.loop=!0,i.player.autoplay=!0})),i.stateHandler.set("autoplay",(function(){i.player.loop=!1,i.player.autoplay=!0})),i.stateHandler.set("click",(function(){i.player.loop=!1,i.player.autoplay=!1,i.container.addEventListener("click",r(i,p))})),i.stateHandler.set("hover",(function(){i.player.loop=!1,i.player.autoplay=!1,i.container.addEventListener("mouseenter",r(i,p)),i.container.addEventListener("touchstart",r(i,p),{passive:!0})})),i.transitionHandler.set("click",(function(){i.container.addEventListener("click",r(i,h))})),i.transitionHandler.set("hover",(function(){i.container.addEventListener("mouseenter",r(i,h)),i.container.addEventListener("touchstart",r(i,h),{passive:!0})})),i.transitionHandler.set("hold",e),i.transitionHandler.set("pauseHold",e),i.transitionHandler.set("repeat",(function(){i.player.loop=!0,i.player.autoplay=!0;i.player.addEventListener("loopComplete",(function e(){r(i,f).call(i,{handler:e})}))})),i.transitionHandler.set("onComplete",(function(){"loop"===i.actions[i.interactionIdx].state?i.player.addEventListener("loopComplete",r(i,m)):i.player.addEventListener("complete",r(i,m))})),i.transitionHandler.set("seek",(function(){i.player.stop(),i.player.addEventListener("enterFrame",r(i,L)),i.container.addEventListener("mousemove",r(i,y)),i.container.addEventListener("touchmove",r(i,u),{passive:!1}),i.container.addEventListener("mouseout",r(i,v))}))}}}),p.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].forceFlag;e||!0!==i.player.isPaused?e&&r(i,I).call(i,!0):r(i,I).call(i,!0)}}),d.set(this,{writable:!0,value:function(){0===i.clickCounter?(i.player.play(),i.clickCounter++):(i.clickCounter++,i.player.setDirection(-1*i.player.playDirection),i.player.play())}}),h.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].forceFlag;if("chain"===i.mode){if(i.actions[i.interactionIdx].count){var t=parseInt(i.actions[i.interactionIdx].count);if(i.clickCounter<t-1)return void(i.clickCounter+=1)}return i.clickCounter=0,i.container.removeEventListener("click",r(i,h)),i.container.removeEventListener("mouseenter",r(i,h)),void r(i,k).call(i)}e||!0!==i.player.isPaused?e&&i.player.goToAndPlay(0,!0):i.player.goToAndPlay(0,!0)}}),y.set(this,{writable:!0,value:function(e){r(i,M).call(i,e.clientX,e.clientY)}}),u.set(this,{writable:!0,value:function(e){e.cancelable&&e.preventDefault(),r(i,M).call(i,e.touches[0].clientX,e.touches[0].clientY)}}),v.set(this,{writable:!0,value:function(){r(i,M).call(i,-1,-1)}}),m.set(this,{writable:!0,value:function(){"loop"===i.actions[i.interactionIdx].state?i.player.removeEventListener("loopComplete",r(i,m)):i.player.removeEventListener("complete",r(i,m)),r(i,k).call(i)}}),f.set(this,{writable:!0,value:function(e){var t=e.handler,n=1;i.actions[i.interactionIdx].repeat&&(n=i.actions[i.interactionIdx].repeat),i.playCounter>=n-1?(i.playCounter=0,i.player.removeEventListener("loopComplete",t),i.player.loop=!1,i.player.autoplay=!1,r(i,k).call(i)):i.playCounter+=1}}),L.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].frames;e&&i.player.currentFrame>=parseInt(e[1])-1&&(i.player.removeEventListener("enterFrame",r(i,L)),i.container.removeEventListener("mousemove",r(i,y)),i.container.removeEventListener("mouseout",r(i,v)),setTimeout(r(i,k),0))}}),g.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].frames;(e&&i.player.currentFrame>=e[1]||i.player.currentFrame>=i.player.totalFrames-1)&&(i.player.removeEventListener("enterFrame",r(i,g)),i.container.removeEventListener("mouseenter",r(i,E)),i.container.removeEventListener("mouseleave",r(i,w)),i.player.pause(),r(i,k).call(i))}}),E.set(this,{writable:!0,value:function(){-1!==i.player.playDirection&&0!==i.player.currentFrame&&"pauseHold"!==i.actions[i.interactionIdx].transition&&"pauseHold"!==i.actions[0].type||(i.player.setDirection(1),i.player.play())}}),w.set(this,{writable:!0,value:function(){"hold"===i.actions[i.interactionIdx].transition||"hold"===i.actions[0].type?(i.player.setDirection(-1),i.player.play()):"pauseHold"!==i.actions[i.interactionIdx].transition&&"pauseHold"!==i.actions[0].type||i.player.pause()}}),b.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].state;"hover"!==e&&"click"!==e||(i.container.removeEventListener("click",r(i,p)),i.container.removeEventListener("mouseenter",r(i,p)))}}),k.set(this,{writable:!0,value:function(){var e=i.interactionIdx;r(i,b).call(i);var t=i.actions[i.interactionIdx].jumpTo;t?t>=0&&t<i.actions.length?(i.interactionIdx=t,r(i,P).call(i,{ignorePath:!1})):(i.interactionIdx=0,i.player.goToAndStop(0,!0),r(i,P).call(i,{ignorePath:!1})):(i.interactionIdx++,i.interactionIdx>=i.actions.length?i.actions[i.actions.length-1].reset?(i.interactionIdx=0,i.player.goToAndStop(0,!0),r(i,P).call(i,{ignorePath:!1})):(i.interactionIdx=i.actions.length-1,r(i,P).call(i,{ignorePath:!1})):r(i,P).call(i,{ignorePath:!1})),i.container.dispatchEvent(new CustomEvent("transition",{bubbles:!0,composed:!0,detail:{oldIndex:e,newIndex:i.interactionIdx}}))}}),I.set(this,{writable:!0,value:function(e){var t=i.actions[i.interactionIdx].frames;if(!t)return i.player.resetSegments(!0),void i.player.goToAndPlay(0,!0);"string"==typeof t?i.player.goToAndPlay(t,e):i.player.playSegments(t,e)}}),x.set(this,{writable:!0,value:function(){var e=i.actions[i.interactionIdx].path;if(!e)if("object"===t(i.enteredPlayer)&&"AnimationItem"===i.enteredPlayer.constructor.name){if(e=i.enteredPlayer,i.player===e)return void r(i,P).call(i,{ignorePath:!0})}else{var n=(e=i.loadedAnimation).substr(e.lastIndexOf("/")+1);if(n=n.substr(0,n.lastIndexOf(".json")),i.player.fileName===n)return void r(i,P).call(i,{ignorePath:!0})}var a=i.container.getBoundingClientRect(),o="width: "+a.width+"px !important; height: "+a.height+"px !important; background: "+i.container.style.background;if(i.container.setAttribute("style",o),"object"!==t(i.enteredPlayer)||"AnimationItem"!==i.enteredPlayer.constructor.name){if("string"==typeof i.enteredPlayer){var l=document.querySelector(i.enteredPlayer);l&&"LOTTIE-PLAYER"===l.nodeName&&(i.attachedListeners||(l.addEventListener("ready",(function(){i.container.style.width="",i.container.style.height=""})),l.addEventListener("load",(function(){i.player=l.getLottie(),r(i,P).call(i,{ignorePath:!0})})),i.attachedListeners=!0),l.load(e))}else i.enteredPlayer instanceof HTMLElement&&"LOTTIE-PLAYER"===i.enteredPlayer.nodeName&&(i.attachedListeners||(i.enteredPlayer.addEventListener("ready",(function(){i.container.style.width="",i.container.style.height=""})),i.enteredPlayer.addEventListener("load",(function(){i.player=i.enteredPlayer.getLottie(),r(i,P).call(i,{ignorePath:!0})})),i.attachedListeners=!0),i.enteredPlayer.load(e));if(!i.player)throw new Error("".concat(s," Specified player is invalid."),i.enteredPlayer)}else{if(!window.lottie)throw new Error("".concat(s," A Lottie player is required."));i.stop(),i.player.destroy(),i.container.innerHTML="","object"===t(e)&&"AnimationItem"===e.constructor.name?i.player=window.lottie.loadAnimation({loop:!1,autoplay:!1,animationData:e.animationData,container:i.container}):i.player=window.lottie.loadAnimation({loop:!1,autoplay:!1,path:e,container:i.container}),i.player.addEventListener("DOMLoaded",(function(){i.container.style.width="",i.container.style.height="",r(i,P).call(i,{ignorePath:!0})}))}i.clickCounter=0,i.playCounter=0}}),P.set(this,{writable:!0,value:function(e){var t=e.ignorePath,n=i.actions[i.interactionIdx].state,a=i.actions[i.interactionIdx].transition,o=i.actions[i.interactionIdx].path,s=i.stateHandler.get(n),l=i.transitionHandler.get(a),c=i.actions[i.interactionIdx].speed?i.actions[i.interactionIdx].speed:1,p=i.actions[i.interactionIdx].delay?i.actions[i.interactionIdx].delay:0;t||!(o||i.actions[i.actions.length-1].reset&&0===i.interactionIdx)?setTimeout((function(){s?s.call():"none"===n&&(i.player.loop=!1,i.player.autoplay=!1),l&&l.call(),i.player.autoplay&&(i.player.resetSegments(!0),r(i,I).call(i,!0)),i.player.setSpeed(c)}),p):r(i,x).call(i)}}),M.set(this,{writable:!0,value:function(e,t){if(-1!==e&&-1!==t){var n=i.getContainerCursorPosition(e,t);e=n.x,t=n.y}var a=i.actions.find((function(n){var i=n.position;if(i){if(Array.isArray(i.x)&&Array.isArray(i.y))return e>=i.x[0]&&e<=i.x[1]&&t>=i.y[0]&&t<=i.y[1];if(!Number.isNaN(i.x)&&!Number.isNaN(i.y))return e===i.x&&t===i.y}return!1}));if(a)if("seek"===a.type||"seek"===a.transition){var r=(e-a.position.x[0])/(a.position.x[1]-a.position.x[0]),o=(t-a.position.y[0])/(a.position.y[1]-a.position.y[0]);i.player.playSegments(a.frames,!0),a.position.y[0]<0&&a.position.y[1]>1?i.player.goToAndStop(Math.floor(r*i.player.totalFrames),!0):i.player.goToAndStop(Math.ceil((r+o)/2*i.player.totalFrames),!0)}else"loop"===a.type?i.player.playSegments(a.frames,!0):"play"===a.type?(!0===i.player.isPaused&&i.player.resetSegments(),i.player.playSegments(a.frames)):"stop"===a.type&&(i.player.resetSegments(!0),i.player.goToAndStop(a.frames[0],!0))}}),S.set(this,{writable:!0,value:function(){var e=i.getContainerVisibility(),t=i.actions.find((function(t){var n=t.visibility;return e>=n[0]&&e<=n[1]}));if(t)if("seek"===t.type){var n=t.frames[0],a=2==t.frames.length?t.frames[1]:i.player.totalFrames-1;null!==i.assignedSegment&&(i.player.resetSegments(!0),i.assignedSegment=null),i.player.goToAndStop(n+Math.round((e-t.visibility[0])/(t.visibility[1]-t.visibility[0])*(a-n)),!0)}else"loop"===t.type?(i.player.loop=!0,(null===i.assignedSegment||i.assignedSegment!==t.frames||!0===i.player.isPaused)&&(i.player.playSegments(t.frames,!0),i.assignedSegment=t.frames)):"play"===t.type?i.scrolledAndPlayed||(i.scrolledAndPlayed=!0,i.player.resetSegments(!0),t.frames?i.player.playSegments(t.frames,!0):i.player.play()):"stop"===t.type&&i.player.goToAndStop(t.frames[0],!0)}}),this.enteredPlayer=H,"object"!==t(H)||"AnimationItem"!==H.constructor.name){if("string"==typeof H){var W=document.querySelector(H);W&&"LOTTIE-PLAYER"===W.nodeName&&(H=W.getLottie())}else H instanceof HTMLElement&&"LOTTIE-PLAYER"===H.nodeName&&(H=H.getLottie());if(!H){var j=s+"Specified player:"+H+" is invalid.";throw new Error(j)}}"string"==typeof A&&(A=document.querySelector(A)),A||(A=H.wrapper),this.player=H,this.loadedAnimation=this.player.path+this.player.fileName+".json",this.attachedListeners=!1,this.container=A,this.mode=T,this.actions=C,this.options=O,this.assignedSegment=null,this.scrolledAndPlayed=!1,this.interactionIdx=0,this.clickCounter=0,this.playCounter=0,this.stateHandler=new Map,this.transitionHandler=new Map}var l,C,A;return l=e,(C=[{key:"getContainerVisibility",value:function(){var e=this.container.getBoundingClientRect(),t=e.top,n=e.height;return(window.innerHeight-t)/(window.innerHeight+n)}},{key:"getContainerCursorPosition",value:function(e,t){var n=this.container.getBoundingClientRect(),i=n.top;return{x:(e-n.left)/n.width,y:(t-i)/n.height}}},{key:"initScrollMode",value:function(){this.player.stop(),window.addEventListener("scroll",r(this,S))}},{key:"initCursorMode",value:function(){this.actions&&1===this.actions.length?"click"===this.actions[0].type?(this.player.loop=!1,this.player.stop(),this.container.addEventListener("click",r(this,h))):"hover"===this.actions[0].type?(this.player.loop=!1,this.player.stop(),this.container.addEventListener("mouseenter",r(this,h)),this.container.addEventListener("touchstart",r(this,h),{passive:!0})):"toggle"===this.actions[0].type?(this.player.loop=!1,this.player.stop(),this.container.addEventListener("click",r(this,d))):"hold"===this.actions[0].type||"pauseHold"===this.actions[0].type?(this.container.addEventListener("mouseenter",r(this,E)),this.container.addEventListener("mouseleave",r(this,w)),this.container.addEventListener("touchstart",r(this,E),{passive:!0}),this.container.addEventListener("touchend",r(this,w),{passive:!0})):"seek"===this.actions[0].type&&(this.player.loop=!0,this.player.stop(),this.container.addEventListener("mousemove",r(this,y)),this.container.addEventListener("touchmove",r(this,u),{passive:!1}),this.container.addEventListener("mouseout",r(this,v))):(this.player.loop=!0,this.player.stop(),this.container.addEventListener("mousemove",r(this,y)),this.container.addEventListener("mouseleave",r(this,v)),r(this,M).call(this,-1,-1))}},{key:"initChainMode",value:function(){r(this,c).call(this),this.player.loop=!1,this.player.stop(),r(this,P).call(this,{ignorePath:!1})}},{key:"start",value:function(){var e=this;"scroll"===this.mode?this.player.isLoaded?this.initScrollMode():this.player.addEventListener("DOMLoaded",(function(){e.initScrollMode()})):"cursor"===this.mode?this.player.isLoaded?this.initCursorMode():this.player.addEventListener("DOMLoaded",(function(){e.initCursorMode()})):"chain"===this.mode&&(this.player.isLoaded?this.initChainMode():this.player.addEventListener("DOMLoaded",(function(){e.initChainMode()})))}},{key:"redefineOptions",value:function(e){var n=e.actions,i=e.container,r=e.mode,o=e.player,l=a(e,["actions","container","mode","player"]);if(this.stop(),this.player.stop(),this.enteredPlayer=o,"object"!==t(o)||"AnimationItem"!==o.constructor.name){if("string"==typeof o){var c=document.querySelector(o);c&&"LOTTIE-PLAYER"===c.nodeName&&(o=c.getLottie())}else o instanceof HTMLElement&&"LOTTIE-PLAYER"===o.nodeName&&(o=o.getLottie());if(!o)throw new Error(s+"Specified player:"+o+" is invalid.",o)}"string"==typeof i&&(i=document.querySelector(i)),i||(i=o.wrapper),this.player=o,this.loadedAnimation=this.player.path+this.player.fileName+".json",this.attachedListeners=!1,this.container=i,this.mode=r,this.actions=n,this.options=l,this.assignedSegment=null,this.scrolledAndPlayed=!1,this.interactionIdx=0,this.clickCounter=0,this.playCounter=0,this.stateHandler=new Map,this.transitionHandler=new Map,this.start()}},{key:"stop",value:function(){"scroll"===this.mode&&window.removeEventListener("scroll",r(this,S)),"cursor"===this.mode&&(this.container.removeEventListener("click",r(this,h)),this.container.removeEventListener("click",r(this,d)),this.container.removeEventListener("mouseenter",r(this,h)),this.container.removeEventListener("touchstart",r(this,h)),this.container.removeEventListener("touchmove",r(this,u)),this.container.removeEventListener("mousemove",r(this,y)),this.container.removeEventListener("mouseleave",r(this,v)),this.container.removeEventListener("touchstart",r(this,E)),this.container.removeEventListener("touchend",r(this,w))),"chain"===this.mode&&(this.container.removeEventListener("click",r(this,h)),this.container.removeEventListener("click",r(this,p)),this.container.removeEventListener("mouseenter",r(this,h)),this.container.removeEventListener("touchstart",r(this,h)),this.container.removeEventListener("touchmove",r(this,u)),this.container.removeEventListener("mouseenter",r(this,p)),this.container.removeEventListener("touchstart",r(this,p)),this.container.removeEventListener("mouseenter",r(this,E)),this.container.removeEventListener("touchstart",r(this,E)),this.container.removeEventListener("mouseleave",r(this,w)),this.container.removeEventListener("mousemove",r(this,y)),this.container.removeEventListener("mouseout",r(this,v)),this.container.removeEventListener("touchend",r(this,w)),this.player.removeEventListener("loopComplete",r(this,m)),this.player.removeEventListener("complete",r(this,m)),this.player.removeEventListener("enterFrame",r(this,L)),this.player.removeEventListener("enterFrame",r(this,g)))}}])&&i(l.prototype,C),A&&i(l,A),e}(),c=new WeakMap,p=new WeakMap,d=new WeakMap,h=new WeakMap,y=new WeakMap,u=new WeakMap,v=new WeakMap,m=new WeakMap,f=new WeakMap,L=new WeakMap,g=new WeakMap,E=new WeakMap,w=new WeakMap,b=new WeakMap,k=new WeakMap,I=new WeakMap,x=new WeakMap,P=new WeakMap,M=new WeakMap,S=new WeakMap,C=function(e){var t=new l(e);return t.start(),t};e.LottieInteractivity=l,e.create=C,e.default=C,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=lottie-interactivity.min.js.map
