{"version":3,"file":"chunks/8d2e43d1ec2e33.js","mappings":"gpCAC2C,IAEtBA,EAAS,WAO5B,SAAAA,EAAYC,EAAsBC,I,4FAAaC,CAAA,KAAAH,GAC7CI,KAAKH,QAAUI,EAAEJ,GACjBG,KAAKF,O,+VAAMI,CAAA,CAETC,SAAU,OACPL,GAELE,KAAKI,UACLJ,KAAKK,MAAQ,EAEbL,KAAKM,gBAAkB,CACrBC,UAAWC,SAASC,eAAeT,KAAKF,OAAOY,MAC/CP,SAAUH,KAAKF,OAAOK,SACtBQ,KAAMX,KAAKF,OAAOa,KAClBC,SAAUZ,KAAKF,OAAOc,SACtBC,KAAMb,KAAKF,OAAOgB,eAGpBd,KAAKe,aAAaf,KAAKgB,KAAKC,KAAKjB,MACnC,C,QAyFC,O,EAzFAJ,G,EAAA,EAAAsB,IAAA,OAAAC,MAED,WACEnB,KAAKoB,aACL,IACMpB,KAAKF,OAAOuB,iBACdpB,EAAE,IAAMD,KAAKF,OAAOwB,QAAStB,KAAKH,SAC/B0B,OACAC,QAAQ,qBAEXxB,KAAKH,QAAQ2B,QAAQ,oBAEzB,CAAE,MAAOC,GACPzB,KAAKI,UAAY,IACnB,CACF,GAAC,CAAAc,IAAA,aAAAC,MAED,WACE,IAAIO,EAAO1B,KACXA,KAAKH,QAAQ8B,GAAG,qBAAqB,WACnCD,EAAKtB,UAAYwB,OAAOC,UAAUC,cAAcJ,EAAKpB,iBACrDoB,EAAKtB,UAAU2B,iBACb,WACAL,EAAKM,gBAAgBf,KAAKS,IAGE,mBAA5BA,EAAK5B,OAAOmC,cACa,IAAzBP,EAAK5B,OAAOc,UAEZc,EAAKQ,cAET,IAKe,IAAIC,kBAAiB,SAAUC,GAC5CA,EAAUC,SAAQ,WAEhB,IAEEpC,EAAEyB,EAAKpB,gBAAgBC,WAAW+B,SAAS,UAC7CZ,EAAKtB,UAAUmC,OAEfb,EAAKtB,UAAUoC,OAEnB,IAUSC,QAAQzC,KAAKM,gBAAgBC,UAPzB,CACXmC,YAAY,EACZC,gBAAiB,CAAC,SAClBC,WAAW,GAKf,GAAC,CAAA1B,IAAA,eAAAC,MAED,WACE,IAAIO,EAAO1B,KACX,IAAI6C,SAAS,CACXC,QAASpB,EAAKpB,gBAAgBC,UAC9BwC,QAAO,SAACC,GACY,SAAdA,EACFtB,EAAKtB,UAAUmC,OAEfb,EAAKtB,UAAUoC,OAEnB,EACAS,OAAQ,kBAEZ,GAAC,CAAA/B,IAAA,kBAAAC,MAED,WACMnB,KAAKK,MAAQL,KAAKF,OAAOoD,WAC3BlD,KAAKI,UAAU+C,YAAY,GAE7BnD,KAAKK,MAAQL,KAAKK,MAAQ,CAC5B,GAEA,CAAAa,IAAA,eAAAC,MACA,SAAaiC,GACX,oCAGEC,MAAK,SAACC,GACNF,EAAUxB,OAAOC,UAAYyB,EAC/B,GACF,M,oEAAC1D,CAAA,CAnH2B,E","sources":["webpack:///./resources/js/components/generic/animation.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport \"waypoints/lib/jquery.waypoints.js\";\n\nexport default class Animation {\n domRoot: JQuery<HTMLElement>;\n params: any;\n animation: any;\n count: number;\n animationParams: { container: HTMLElement | null; renderer: any; loop: any; autoplay: any; path: any; };\n \n constructor(domRoot: HTMLElement, params: any) {\n this.domRoot = $(domRoot);\n this.params = {\n // replace these in template from dialog\n renderer: \"svg\",\n ...params,\n };\n this.animation;\n this.count = 1;\n //console.log(this.params);\n this.animationParams = {\n container: document.getElementById(this.params.uuid),\n renderer: this.params.renderer,\n loop: this.params.loop,\n autoplay: this.params.autoplay,\n path: this.params.animationJSON,\n };\n // get bodymovin plugin and call init()\n this.getBodymovin(this.init.bind(this));\n }\n\n init() {\n this.bindEvents();\n try {\n if (this.params.hasImageFallback) {\n $(\"#\" + this.params.imageID, this.domRoot)\n .hide()\n .trigger(\"activateAnimation\");\n } else {\n this.domRoot.trigger(\"activateAnimation\");\n }\n } catch (error) {\n this.animation = null;\n }\n }\n\n bindEvents() {\n var self = this;\n this.domRoot.on(\"activateAnimation\", function () {\n self.animation = window.bodymovin.loadAnimation(self.animationParams);\n self.animation.addEventListener(\n \"complete\",\n self.completeHandler.bind(self)\n );\n if (\n self.params.activeClass === \"bottom-in-view\" &&\n self.params.autoplay === false\n ) {\n self.bottomInView();\n }\n });\n\n // listen for when a class gets added to our domRoot container\n\n // create an observer instance\n var observer = new MutationObserver(function (mutations) {\n mutations.forEach(function () {\n // see what change has been observed\n // console.log(mutation);\n });\n if ($(self.animationParams.container).hasClass(\"active\")) {\n self.animation.play();\n } else {\n self.animation.pause();\n }\n });\n\n // configuration of the observer:\n var config = {\n attributes: true,\n attributeFilter: [\"class\"],\n childList: false,\n };\n\n // pass in the target node, as well as the observer options\n observer.observe(this.animationParams.container, config);\n }\n\n bottomInView() {\n var self = this;\n new Waypoint({\n element: self.animationParams.container,\n handler(direction) {\n if (direction === \"down\") {\n self.animation.play();\n } else {\n self.animation.pause();\n }\n },\n offset: \"bottom-in-view\",\n });\n }\n\n completeHandler() {\n if (this.count < this.params.loopCount) {\n this.animation.goToAndPlay(0);\n }\n this.count = this.count + 1;\n }\n\n // gets bodymovin.js and then calls the funciton you pass in\n getBodymovin(callback) {\n import(\n /* webpackChunkName: \"bodymovin\" */\n \"bodymovin/build/player/bodymovin\"\n ).then((_bodymovin) => {\n callback((window.bodymovin = _bodymovin));\n });\n }\n}\n"],"names":["Animation","domRoot","params","_classCallCheck","this","$","_objectSpread","renderer","animation","count","animationParams","container","document","getElementById","uuid","loop","autoplay","path","animationJSON","getBodymovin","init","bind","key","value","bindEvents","hasImageFallback","imageID","hide","trigger","error","self","on","window","bodymovin","loadAnimation","addEventListener","completeHandler","activeClass","bottomInView","MutationObserver","mutations","forEach","hasClass","play","pause","observe","attributes","attributeFilter","childList","Waypoint","element","handler","direction","offset","loopCount","goToAndPlay","callback","then","_bodymovin"],"sourceRoot":""}