{"version":3,"file":"spa-enquiry.js","names":[],"sources":["../resources/modern-javascript/spa-enquiry.js"],"sourcesContent":["document.addEventListener('DOMContentLoaded', () => {\n    const form = document.querySelector('.js-contact-form');\n\n    const baseUrl = form?.dataset.baseUrl;\n\n    const typeField = form?.querySelector('#enquiry_type');\n    const itemField = form?.querySelector('#enquiry_item');\n\n    const datesWrap = document.querySelector('#enquiry_dates_wrap');\n    const datesField = document.querySelector('#enquiry_dates');\n\n    const treatmentTimeWrap = document.querySelector(\n        '#enquiry_preferred_treatment_time_wrap'\n    );\n    const treatmentTimeField = document.querySelector(\n        '#enquiry_preferred_treatment_time'\n    );\n\n    const diningTimeWrap = document.querySelector(\n        '#enquiry_preferred_dining_time_wrap'\n    );\n    const diningTimeField = document.querySelector(\n        '#enquiry_preferred_dining_time'\n    );\n\n    const dateFieldWrap = document.querySelector('#enquiry_date_wrap');\n    const numberOfGuestsWrap = document.querySelector(\n        '#enquiry_number_of_guests_wrap'\n    );\n\n    typeField?.addEventListener('change', e => {\n        const field = e.target.closest('select');\n\n        resetSelectField(itemField);\n\n        document\n            .querySelector('#enquiry_time_wrap')\n            ?.classList.toggle('d3r-hidden', field.value !== 'treatment');\n\n        numberOfGuestsWrap?.classList.toggle(\n            'd3r-hidden',\n            field.value !== 'package'\n        );\n\n        if (field.value === '') {\n            return;\n        }\n\n        const url = `${baseUrl}/get-${field.value}s?ajax=1`;\n\n        fetch(url)\n            .then(response => response.json())\n            .then(data => {\n                resetSelectField(itemField);\n\n                for (const [key, value] of Object.entries(data.result)) {\n                    const option = document.createElement('option');\n                    option.value = key;\n                    option.textContent = value;\n                    itemField.appendChild(option);\n                }\n            });\n    });\n\n    itemField?.addEventListener('change', e => {\n        const field = e.target.closest('select');\n\n        if (typeField.value === 'package') {\n            const url = `${baseUrl}/get-package-data/${field.value}?ajax=1`;\n\n            fetch(url)\n                .then(response => response.json())\n                .then(data => {\n                    const { dates, treatment_times, dining_times } =\n                        data.result;\n\n                    processDataForField(dates, datesWrap, datesField);\n                    processDataForField(\n                        treatment_times,\n                        treatmentTimeWrap,\n                        treatmentTimeField\n                    );\n                    processDataForField(\n                        dining_times,\n                        diningTimeWrap,\n                        diningTimeField\n                    );\n                });\n        } else {\n            processDataForField(null, datesWrap, datesField);\n            processDataForField(null, treatmentTimeWrap, treatmentTimeField);\n            processDataForField(null, diningTimeWrap, diningTimeField);\n        }\n    });\n});\n\nconst resetSelectField = field => {\n    field.innerHTML = '<option value=\"\">Please select...</option>';\n    field.value = '';\n    field.dispatchEvent(new Event('change'));\n};\n\nconst processDataForField = (data, wrap, field) => {\n    resetSelectField(field);\n\n    if (data) {\n        wrap?.classList.remove('d3r-hidden');\n\n        for (const [key, value] of Object.entries(data)) {\n            const option = document.createElement('option');\n            option.value = key;\n            option.textContent = value;\n            field.appendChild(option);\n        }\n    } else {\n        wrap?.classList.add('d3r-hidden');\n    }\n};\n"],"mappings":"AAAA,SAAS,iBAAiB,uBAA0B,CAChD,IAAM,EAAO,SAAS,cAAc,kBAAkB,EAEhD,EAAU,GAAM,QAAQ,QAExB,EAAY,GAAM,cAAc,eAAe,EAC/C,EAAY,GAAM,cAAc,eAAe,EAE/C,EAAY,SAAS,cAAc,qBAAqB,EACxD,EAAa,SAAS,cAAc,gBAAgB,EAEpD,EAAoB,SAAS,cAC/B,wCACJ,EACM,EAAqB,SAAS,cAChC,mCACJ,EAEM,EAAiB,SAAS,cAC5B,qCACJ,EACM,EAAkB,SAAS,cAC7B,gCACJ,EAEsB,SAAS,cAAc,oBAAoB,EACjE,IAAM,EAAqB,SAAS,cAChC,gCACJ,EAEA,GAAW,iBAAiB,SAAU,GAAK,CAAA,IAAA,EACvC,IAAM,EAAQ,EAAE,OAAO,QAAQ,QAAQ,EAavC,GAXA,EAAiB,CAAS,GAE1B,EAAA,SACK,cAAc,oBAAoB,IAAC,MADxC,EAEM,UAAU,OAAO,aAAc,EAAM,QAAU,WAAW,EAEhE,GAAoB,UAAU,OAC1B,aACA,EAAM,QAAU,SACpB,EAEI,EAAM,QAAU,GAChB,OAGJ,IAAM,EAAM,GAAG,EAAA,OAAe,EAAM,MAAA,UAEpC,MAAM,CAAG,CAAC,CACL,KAAK,GAAY,EAAS,KAAK,CAAC,CAAC,CACjC,KAAK,GAAQ,CACV,EAAiB,CAAS,EAE1B,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,EAAK,MAAM,EAAG,CACpD,IAAM,EAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,MAAQ,EACf,EAAO,YAAc,EACrB,EAAU,YAAY,CAAM,CAChC,CACJ,CAAC,CACT,CAAC,EAED,GAAW,iBAAiB,SAAU,GAAK,CACvC,IAAM,EAAQ,EAAE,OAAO,QAAQ,QAAQ,EAEvC,GAAI,EAAU,QAAU,UAAW,CAC/B,IAAM,EAAM,GAAG,EAAA,oBAA4B,EAAM,MAAA,SAEjD,MAAM,CAAG,CAAC,CACL,KAAK,GAAY,EAAS,KAAK,CAAC,CAAC,CACjC,KAAK,GAAQ,CACV,GAAM,CAAE,QAAO,kBAAiB,gBAC5B,EAAK,OAET,EAAoB,EAAO,EAAW,CAAU,EAChD,EACI,EACA,EACA,CACJ,EACA,EACI,EACA,EACA,CACJ,CACJ,CAAC,CACT,MACI,EAAoB,KAAM,EAAW,CAAU,EAC/C,EAAoB,KAAM,EAAmB,CAAkB,EAC/D,EAAoB,KAAM,EAAgB,CAAe,CAEjE,CAAC,CACL,CAAC,EAED,MAAM,EAAmB,GAAS,CAC9B,EAAM,UAAY,6CAClB,EAAM,MAAQ,GACd,EAAM,cAAc,IAAI,MAAM,QAAQ,CAAC,CAC3C,EAEM,GAAuB,EAAM,EAAM,IAAU,CAG/C,GAFA,EAAiB,CAAK,EAElB,EAAM,CACN,GAAM,UAAU,OAAO,YAAY,EAEnC,IAAK,GAAM,CAAC,EAAK,KAAU,OAAO,QAAQ,CAAI,EAAG,CAC7C,IAAM,EAAS,SAAS,cAAc,QAAQ,EAC9C,EAAO,MAAQ,EACf,EAAO,YAAc,EACrB,EAAM,YAAY,CAAM,CAC5B,CACJ,MACI,GAAM,UAAU,IAAI,YAAY,CAExC"}