{"version":3,"file":"js/tw_application-229e4b476c416c798109.js","mappings":"utBAAqBA,EAAW,WAC9B,SAAAA,EAAYC,GAAS,IAADC,EAAA,M,4FAAAC,CAAA,KAAAH,GAAAI,OAAAC,eAAA,KAAAC,EAAA,CAAAC,MAAAC,IAAA,KAgBpBC,MAAQ,WACNP,EAAKQ,QAAU,EACfR,EAAKS,YAAYC,MAAMC,MAAQ,KAC/BX,EAAKY,qBAAqBC,UAAUC,OAAO,SAC7C,EAnBE,IAAMF,EAAuBG,SAASC,eAAejB,EAAOkB,wBACtDR,EAAcM,SAASC,eAAejB,EAAOmB,oBAEtBC,IAAzBP,GACFQ,QAAQC,MAAM,sCAAkCT,EAAuB,mBAErDO,IAAhBV,GACFW,QAAQC,MAAM,sCAAkCZ,EAAc,cAGhEa,KAAKd,QAAU,EACfc,KAAKV,qBAAuBA,EAC5BU,KAAKb,YAAcA,CACrB,C,UAcC,O,EAdAX,E,EAAA,EAAAyB,IAAA,kBAAAlB,MAQD,WAA+B,IAADmB,EAAA,KACtBC,EAAmBC,aAAY,WACnCF,EAAKhB,SAAW,EAChBgB,EAAKf,YAAYC,MAAMC,MAAQa,EAAKhB,QAAU,I,2IAC9CmB,CAAAH,EAAIpB,GAAAA,GAA0BqB,EAChC,GALqBG,UAAAC,OAAA,QAAAV,IAAAS,UAAA,GAAAA,UAAA,GAAG,GAM1B,I,iFAAC9B,CAAA,CA7B6B,GA6B7B,SAAAQ,EAEwBwB,GAAW,IAADC,EAAA,KAC7BT,KAAKd,QAAU,MAEnBwB,cAAcF,GACdG,YAAW,WACTF,EAAKnB,qBAAqBC,UAAUqB,IAAI,SAC1C,GAAG,KACL,CClCF,IAAMzB,EAAc,IAAIX,EAAY,CAClCmB,uBAAwB,eACxBC,cAAe,aAGjB,CAAC,6BAA8B,sBAAsBiB,KAAI,SAAAC,GACvDrB,SAASsB,iBAAiBD,GAAO,WAC/B3B,EAAYF,QACZE,EAAY6B,iBACd,GACF,IAEA,CAAC,8BAA+B,oBAAoBH,KAAI,SAAAC,GACtDrB,SAASsB,iBAAiBD,GAAO,kBAAM3B,EAAY6B,gBAAgB,EAAE,GACvE,IAEAC,EAAAA,EAAAA,GAAcC,OAAQ,C","sources":["webpack://thepackengersapp/./app/javascript/utils/progress-bar.js","webpack://thepackengersapp/./app/javascript/tw_application.js"],"sourcesContent":["export default class ProgressBar {\n constructor(config) {\n const progressBarContainer = document.getElementById(config.progressBarContainerId);\n const progressBar = document.getElementById(config.progressBarId);\n\n if (progressBarContainer === undefined) {\n console.error(\"Aucun élément html avec l'ID \" + progressBarContainer + \" n'existe.\");\n }\n if (progressBar === undefined) {\n console.error(\"Aucun élément html avec l'ID \" + progressBar + \" n'existe.\");\n }\n\n this.percent = 0;\n this.progressBarContainer = progressBarContainer;\n this.progressBar = progressBar;\n }\n\n reset = () => {\n this.percent = 0;\n this.progressBar.style.width = \"0%\";\n this.progressBarContainer.classList.remove(\"hidden\");\n }\n\n animateProgress(timeout = 20) {\n const progressInterval = setInterval(() => {\n this.percent += 1;\n this.progressBar.style.width = this.percent + \"%\";\n this.#cleanIntervalAndHideBar(progressInterval)\n }, timeout);\n }\n\n #cleanIntervalAndHideBar(interval) {\n if (this.percent < 100) return;\n\n clearInterval(interval);\n setTimeout(() => {\n this.progressBarContainer.classList.add(\"hidden\");\n }, 150)\n }\n}\n","import \"controllers\";\nimport { Turbo } from \"@hotwired/turbo-rails\";\nimport ProgressBar from \"./utils/progress-bar\";\n\nconst progressBar = new ProgressBar({\n progressBarContainerId: \"progress-bar\",\n progressBarId: \"progress\",\n});\n\n['turbo:before-fetch-request', 'turbo:submit-start'].map(event => {\n document.addEventListener(event, () => {\n progressBar.reset();\n progressBar.animateProgress();\n });\n});\n\n['turbo:before-fetch-response', 'turbo:submit-end'].map(event => {\n document.addEventListener(event, () => progressBar.animateProgress(1));\n})\n\nTurbo.session.drive = false\n"],"names":["ProgressBar","config","_this","_classCallCheck","Object","defineProperty","_cleanIntervalAndHideBar","value","_cleanIntervalAndHideBar2","reset","percent","progressBar","style","width","progressBarContainer","classList","remove","document","getElementById","progressBarContainerId","progressBarId","undefined","console","error","this","key","_this2","progressInterval","setInterval","_classPrivateFieldLooseBase","arguments","length","interval","_this3","clearInterval","setTimeout","add","map","event","addEventListener","animateProgress","Turbo","drive"],"sourceRoot":""}