{"version":3,"sources":["priory.clinicianWizard.js"],"names":["clinicianWizard","showStep","stepNum","window","location","href","document","querySelector","scrollTo","handleStep1Data","el","lastPage","referrer","step1","isBound","searchTypeWrap","continueButton","backButton","setTimeout","addEventListener","selectedCategory","classList","remove","value","handleStep2Data","handleStep3Data","add","step2","clinicianNameWrap","clinicianName","form","submit","event","history","back","textField","button","e","keyCode","dispatchEvent","Event","attachPressEnterListener","step3","all","checkboxes","Array","from","querySelectorAll","conditionSearchInput","forEach","checkbox","length","dataset","toLowerCase","includes","checkBox","checked","filter","x","conditions","condition","push","clinicianConditionsField","join","handleStep4Data","step4","ageGroupWrap","jobTypeWrap","ageGroup","jobType","ageGroupField","jobTypeField","onpageshow","persisted","initBlock","ControlBinders","register"],"mappings":"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","sourcesContent":["const clinicianWizard = (() => {\r\n const initBlock = el => {\r\n handleStep1Data(el);\r\n };\r\n\r\n const attachPressEnterListener = (textField, button) => {\r\n if (textField && button) {\r\n textField.addEventListener(\"keyup\", e => {\r\n if (textField.value && e.keyCode === 13) {\r\n button.dispatchEvent(new Event(\"click\"));\r\n }\r\n });\r\n }\r\n }\r\n\r\n const showStep = (stepNum) => {\r\n window.location.href = `#${stepNum}`;\r\n\r\n document.querySelector(\".wizard\").scrollTo(0,0);\r\n }\r\n\r\n const handleStep1Data = (el) => {\r\n const lastPage = document.referrer || \"/\";\r\n const step1 = el.querySelector('[data-step-1]');\r\n\r\n if (step1.isBound) {\r\n return;\r\n }\r\n \r\n const searchTypeWrap = step1.querySelector('[data-step-1-search-type]');\r\n const continueButton = step1.querySelector('[data-next-step]');\r\n const backButton = step1.querySelector('[data-prev]');\r\n\r\n setTimeout(() => {\r\n showStep(1);\r\n }, 150);\r\n \r\n continueButton.addEventListener('click', () => {\r\n const selectedCategory = searchTypeWrap.querySelector('input[name=\"searchType\"]:checked');\r\n if (selectedCategory) {\r\n step1.classList.remove('wizard--error');\r\n if (selectedCategory.value === 'name') {\r\n handleStep2Data(el);\r\n showStep(2);\r\n } else if (selectedCategory.value === 'condition') {\r\n handleStep3Data(el);\r\n showStep(3);\r\n }\r\n } else {\r\n step1.classList.add('wizard--error');\r\n }\r\n });\r\n backButton.addEventListener('click', () => window.location.href = lastPage);\r\n \r\n step1.isBound = true;\r\n }\r\n\r\n const handleStep2Data = (el) => {\r\n const step2 = el.querySelector('[data-step-2]');\r\n \r\n if (step2.isBound) {\r\n return;\r\n }\r\n \r\n const clinicianNameWrap = step2.querySelector('[data-step-2-clinician-name]');\r\n const continueButton = step2.querySelector('[data-next-step]');\r\n const backButton = step2.querySelector('[data-prev]');\r\n continueButton.addEventListener('click', () => {\r\n const clinicianName = clinicianNameWrap.querySelector('input[name=\"clinicianName\"]');\r\n if (clinicianName && clinicianName.value !== '') {\r\n step2.classList.remove('wizard--error');\r\n const loading = el.querySelector('[data-loading]');\r\n loading.classList.remove('hidden');\r\n const form = el.querySelector('form[data-clinician-wizard-form]');\r\n const clinicianNameField = form.querySelector('input[name=\"name\"]');\r\n clinicianNameField.value = clinicianName.value;\r\n form.querySelector('input[name=\"category\"]').value = \"all\";\r\n form.submit();\r\n showStep(\"loading\");\r\n window.addEventListener('unload', function(event) {\r\n // Cleanup or telemetry actions\r\n showStep(\"4\");\r\n });\r\n } else {\r\n step2.classList.add('wizard--error');\r\n }\r\n });\r\n backButton.addEventListener('click', () => {\r\n history.back();\r\n });\r\n\r\n attachPressEnterListener(clinicianNameWrap.querySelector('input[name=\"clinicianName\"]'), continueButton);\r\n \r\n step2.isBound = true;\r\n }\r\n\r\n const handleStep3Data = (el) => {\r\n const step3 = el.querySelector('[data-step-3]');\r\n \r\n if (step3.isBound) {\r\n return; \r\n }\r\n\r\n const all = step3.querySelector('[data-checkbox-all]');\r\n const checkboxes = Array.from(step3.querySelectorAll('[data-checkbox]'));\r\n const conditionSearchInput = el.querySelector('input[name=\"conditionsSearchInput\"]');\r\n const continueButton = step3.querySelector('[data-next-step]');\r\n const backButton = step3.querySelector('[data-prev]');\r\n conditionSearchInput.addEventListener('input', () => {\r\n const value = conditionSearchInput.value;\r\n checkboxes.forEach(checkbox => {\r\n checkbox.classList.remove('flag-wrap__flag--hidden');\r\n if (value.length > 2) {\r\n if (checkbox.dataset.checkbox.toLowerCase().includes(value.toLowerCase())) {\r\n checkbox.classList.remove('flag-wrap__flag--hidden');\r\n } else {\r\n checkbox.classList.add('flag-wrap__flag--hidden');\r\n }\r\n }\r\n });\r\n });\r\n \r\n checkboxes.forEach(checkBox => {\r\n const input = checkBox.querySelector(\"input\");\r\n \r\n input.addEventListener(\"input\", () => {\r\n if (all) {\r\n all.querySelector(\"input\").checked = checkboxes.filter(x => x.querySelector(\"input\").checked).length === checkboxes.length;\r\n }\r\n });\r\n });\r\n \r\n if (all){\r\n all.addEventListener('input', () => {\r\n checkboxes.forEach(checkbox => checkbox.querySelector('input').checked = all.querySelector(\"input\").checked);\r\n });\r\n }\r\n continueButton.addEventListener('click', () => {\r\n let conditions = []; \r\n step3.querySelectorAll('input[name=\"condition\"]:checked').forEach(condition => {\r\n conditions.push(condition.value);\r\n });\r\n const form = el.querySelector('form[data-clinician-wizard-form]');\r\n const clinicianConditionsField = form.querySelector('input[name=\"category\"]'); \r\n if (conditions.includes('all')){\r\n clinicianConditionsField.value = 'all';\r\n } else {\r\n clinicianConditionsField.value = conditions.join(',');\r\n }\r\n if (clinicianConditionsField.value === ''){\r\n step3.classList.add('wizard--error'); \r\n } else {\r\n step3.classList.remove('wizard--error');\r\n handleStep4Data(el);\r\n showStep(4);\r\n }\r\n });\r\n backButton.addEventListener('click', () => {\r\n history.back(); \r\n });\r\n \r\n step3.isBound = true;\r\n }\r\n \r\n const handleStep4Data = (el) => {\r\n const step4 = el.querySelector('[data-step-4]');\r\n \r\n if (step4.isBound) {\r\n return;\r\n }\r\n \r\n const ageGroupWrap = step4.querySelector('[data-step-4-age-group]');\r\n const jobTypeWrap = step4.querySelector('[data-step-4-job-type]');\r\n const continueButton = step4.querySelector('[data-next-step]');\r\n const backButton = step4.querySelector('[data-prev]');\r\n continueButton.addEventListener('click', () => {\r\n const ageGroup = ageGroupWrap.querySelector('input[name=\"ageGroup\"]:checked');\r\n const jobType = jobTypeWrap.querySelector('input[name=\"jobType\"]:checked');\r\n if (ageGroup && jobType){\r\n step4.classList.remove('wizard--error');\r\n const loading = el.querySelector('[data-loading]');\r\n loading.classList.remove('hidden');\r\n const form = el.querySelector('form[data-clinician-wizard-form]');\r\n const ageGroupField = form.querySelector('input[name=\"ageGroup\"]');\r\n const jobTypeField = form.querySelector('input[name=\"jobType\"]');\r\n ageGroupField.value = ageGroup.value;\r\n jobTypeField.value = jobType.value;\r\n form.submit();\r\n showStep(\"loading\");\r\n window.addEventListener('unload', function(event) {\r\n // Cleanup or telemetry actions\r\n showStep(\"4\");\r\n });\r\n } else {\r\n step4.classList.add('wizard--error');\r\n }\r\n });\r\n backButton.addEventListener('click', () => {\r\n history.back();\r\n });\r\n \r\n step4.isBound = true;\r\n };\r\n\r\n window.onpageshow = (e) => {\r\n if (e.persisted) {\r\n showStep(1);\r\n }\r\n }\r\n\r\n return {initBlock};\r\n})();\r\n\r\nControlBinders.register(`[data-clinician-wizard]`, el => clinicianWizard.initBlock(el));"],"file":"priory.clinicianWizard-min.js"}