{"version":3,"file":"js/date_picker-a2646b17b9b5952559b8.js","mappings":"6GAGMA,G,OAAiB,WACrBC,SAASC,iBAAiB,oBAAoBC,SAAQ,SAAUC,GAC9D,IACMC,EADgBC,KAAKC,MAAMH,EAASI,QAAQC,eAAiB,MAClBC,KAAI,SAACC,GACpD,OAAOA,EAAO,MAGVC,GAAgBC,EAAAA,EAAAA,GAAUT,EAAU,CACxCU,YAAY,EACZC,OAAQ,KACRC,KAAM,QACNC,WAAYhB,SAASiB,KAAKC,wBAAwBC,MAAQ,IAAM,EAAI,EACpEC,QAASjB,EAASI,QAAQa,SAAW,KAErCC,YAAa,SAAUC,EAAMC,EAAMC,EAAIC,GAEnCrB,EAA2BsB,SACzBd,EAAAA,EAAAA,WAAqBa,EAAQE,QAAS,WAMT,GAA3BH,EAAGI,cAAcC,QACnBJ,EAAQK,UAAUC,IAAI,aAK5BC,SAAU,SAAUJ,EAAeK,EAASC,GAC1ClC,SAASmC,cAAT,IAA2BhC,EAASI,QAAQ6B,aAAeC,MACzDT,EAAc,GAChB5B,SAASmC,cAAT,IAA2BhC,EAASI,QAAQ+B,WAAaD,MACvDT,EAAcA,EAAcC,OAAS,IAGzCU,YAAapC,EAASI,QAAQiC,aAC1BrC,EAASI,QAAQiC,aAAaC,MAAM,KACpC,GACJC,WAAY,UAGRC,EAAYxC,EAASyC,cAAcT,cAAc,eAEnDQ,GACFA,EAAUE,iBAAiB,SAAS,SAACC,GACnCnC,EAAcoC,QACdpC,EAAcqC,eAYtBhD,SAAS6C,iBAAiB,gBAAgB,SAAUI,GAClDlD,OAGFC,SAAS6C,iBAAiB,cAAc,SAAUI,GAChDlD,S","sources":["webpack://app/./app/packs/entrypoints/date_picker.js"],"sourcesContent":["import flatpickr from \"flatpickr\";\nimport { French } from \"flatpickr/dist/l10n/fr.js\";\n\nconst setupFlatpickr = () => {\n document.querySelectorAll(\".flatpickr-range\").forEach(function (selector) {\n const bookedPeriods = JSON.parse(selector.dataset.bookedPeriods || \"[]\");\n const onlyDeparturePossibleDates = bookedPeriods.map((period) => {\n return period[0];\n });\n\n const pickrInstance = flatpickr(selector, {\n allowInput: false,\n locale: \"fr\",\n mode: \"range\",\n showMonths: document.body.getBoundingClientRect().width > 620 ? 2 : 1,\n minDate: selector.dataset.minDate || null,\n\n onDayCreate: function (dObj, dStr, fp, dayElem) {\n if (\n onlyDeparturePossibleDates.includes(\n flatpickr.formatDate(dayElem.dateObj, \"Y-m-d\")\n )\n ) {\n // only add no-start class if we're choosing a arrival date\n // it's the only case where it makes sense to show a warning about\n // this day being only available for departures\n if (fp.selectedDates.length == 0) {\n dayElem.classList.add(\"no-start\");\n }\n }\n },\n\n onChange: function (selectedDates, dateStr, instance) {\n document.querySelector(`#${selector.dataset.idStartDate}`).value =\n selectedDates[0];\n document.querySelector(`#${selector.dataset.idEndDate}`).value =\n selectedDates[selectedDates.length - 1];\n },\n\n defaultDate: selector.dataset.initialValue\n ? selector.dataset.initialValue.split(\",\")\n : \"\",\n dateFormat: \"d-m-Y\",\n });\n\n const clearIcon = selector.parentElement.querySelector(\"#clear-icon\");\n\n if (clearIcon) {\n clearIcon.addEventListener(\"click\", (e) => {\n pickrInstance.clear();\n pickrInstance.open();\n });\n }\n });\n};\n\n// Listen to multiple turbo event types\n// https://github.com/hotwired/turbo/issues/85\n// One downside is that it might fire multiple times, with unintended side effects\n// From testing though, it seems to work fine.\n\n// This is fired when a form is re-rendered after a 422 error for example\ndocument.addEventListener(\"turbo:render\", function (event) {\n setupFlatpickr();\n});\n\ndocument.addEventListener(\"turbo:load\", function (event) {\n setupFlatpickr();\n});\n"],"names":["setupFlatpickr","document","querySelectorAll","forEach","selector","onlyDeparturePossibleDates","JSON","parse","dataset","bookedPeriods","map","period","pickrInstance","flatpickr","allowInput","locale","mode","showMonths","body","getBoundingClientRect","width","minDate","onDayCreate","dObj","dStr","fp","dayElem","includes","dateObj","selectedDates","length","classList","add","onChange","dateStr","instance","querySelector","idStartDate","value","idEndDate","defaultDate","initialValue","split","dateFormat","clearIcon","parentElement","addEventListener","e","clear","open","event"],"sourceRoot":""}