{"version":3,"sources":["priory.serviceWizard.js"],"names":["serviceWizard","showStep","stepNum","window","location","href","document","querySelector","scrollTo","handleStep1Data","el","lastPage","referrer","step1","serviceWrap","continueButton","backButton","setTimeout","addEventListener","removeEventListener","selectedService","classList","remove","value","handleStep2Data","handleStep3Data","add","getAttribute","setAttribute","step2","serviceTypeWrap","selectedServiceType","handleStep4Data","history","back","isBound","nameField","e","keyCode","dispatchEvent","Event","user","type","step3","querySelectorAll","forEach","item","input","itemUser","dataset","serviceUser","itemType","serviceType","submitType","label","step4","innerHTML","onpageshow","persisted","initBlock","event","includes","ControlBinders","register"],"mappings":"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","sourcesContent":["const serviceWizard = (() => {\r\n const initBlock = el => {\r\n handleStep1Data(el);\r\n window.addEventListener('popstate', event => {\r\n //if no content has loaded\r\n if(!window.location.href.includes(\"#\")){\r\n window.history.back();\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 const serviceWrap = step1.querySelector('[data-step-1-service]');\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 continueButton.removeEventListener('click', () => {});\r\n const selectedService = serviceWrap.querySelector('input[name=\"service\"]:checked');\r\n if (selectedService) {\r\n step1.classList.remove('wizard--error');\r\n if (selectedService.value === 'individual') {\r\n showStep(2);\r\n handleStep2Data(el);\r\n } else if (selectedService.value === 'healthcare') {\r\n showStep(3);\r\n handleStep3Data(el, 'Healthcare', 'Both');\r\n }\r\n } else {\r\n step1.classList.add('wizard--error');\r\n }\r\n });\r\n if (backButton.getAttribute('listener') !== 'true'){\r\n backButton.addEventListener('click', () => {\r\n backButton.setAttribute('listener', 'true');\r\n window.location = lastPage;\r\n });\r\n }\r\n }\r\n\r\n const handleStep2Data = el => {\r\n const step2 = el.querySelector('[data-step-2]'); \r\n const serviceTypeWrap = step2.querySelector('[data-step-2-service-type]');\r\n const continueButton = step2.querySelector('[data-next-step]');\r\n const backButton = step2.querySelector('[data-prev]');\r\n continueButton.addEventListener('click', () => {\r\n continueButton.removeEventListener('click', () => {});\r\n const selectedServiceType = serviceTypeWrap.querySelector('input[name=\"serviceType\"]:checked');\r\n if (selectedServiceType) {\r\n step2.classList.remove('wizard--error');\r\n if (selectedServiceType.value === 'private') {\r\n showStep(4);\r\n handleStep4Data(el, 'Find a service', 'Individual', 'Private');\r\n } else if (selectedServiceType.value === 'nhs') {\r\n showStep(3);\r\n handleStep3Data(el, 'Individual', 'NHS');\r\n }\r\n } else {\r\n step2.classList.add('wizard--error');\r\n }\r\n });\r\n if (backButton.getAttribute('listener') !== 'true'){\r\n backButton.addEventListener('click', () => {\r\n backButton.setAttribute('listener', 'true');\r\n history.back();\r\n });\r\n }\r\n \r\n if (step2.isBound) {\r\n return;\r\n }\r\n \r\n const nameField = step2.querySelector(\"[name='clinicianName']\");\r\n \r\n if (nameField) {\r\n nameField.addEventListener(\"keyup\", e => {\r\n if (nameField.value && e.keyCode === 13) {\r\n continueButton.dispatchEvent(new Event(\"click\"));\r\n }\r\n });\r\n }\r\n \r\n step2.isBound = true;\r\n }\r\n\r\n const handleStep3Data = (el, user, type) => {\r\n const step3 = el.querySelector('[data-step-3]');\r\n const serviceTypeWrap = step3.querySelector('[data-step-3-service-type]');\r\n const continueButton = step3.querySelector('[data-next-step]');\r\n const backButton = step3.querySelector('[data-prev]');\r\n serviceTypeWrap.querySelectorAll('[data-service-type-item]').forEach(item => {\r\n const input = item.querySelector('input[name=\"servicesItem\"]');\r\n const itemUser = input.dataset.serviceUser;\r\n const itemType = input.dataset.serviceType;\r\n if ((itemUser === 'Both' || user === 'Both' || itemUser === user) &&\r\n (itemType === 'Both' || type === 'Both' || itemType === type)) {\r\n item.classList.remove('hidden');\r\n } else {\r\n item.classList.add('hidden');\r\n }\r\n });\r\n continueButton.addEventListener('click', () => {\r\n continueButton.removeEventListener('click', () => {});\r\n const selectedServiceType = serviceTypeWrap.querySelector('input[name=\"servicesItem\"]:checked');\r\n if (selectedServiceType) {\r\n step3.classList.remove('wizard--error');\r\n const type = selectedServiceType.dataset.type;\r\n if (type) {\r\n if (type === 'Page') {\r\n window.location.href = selectedServiceType.dataset.submitType;\r\n } else if (type === 'Links') {\r\n handleStep4Data(el, selectedServiceType.value, user, type);\r\n showStep(4);\r\n }\r\n }\r\n } else {\r\n step3.classList.add('wizard--error');\r\n }\r\n });\r\n if (backButton.getAttribute('listener') !== 'true'){\r\n backButton.addEventListener('click', () => {\r\n backButton.setAttribute('listener', 'true');\r\n history.back();\r\n });\r\n }\r\n }\r\n\r\n const handleStep4Data = (el, label, user, type) => {\r\n const step4 = el.querySelector('[data-step-4]');\r\n const title = step4.querySelector('.title');\r\n title.innerHTML = label;\r\n const listLinksWrap = step4.querySelector('[data-step-4-list-links]');\r\n listLinksWrap.querySelectorAll('[data-step-4-item]').forEach(item => {\r\n if (item.dataset.label === label) {\r\n item.classList.remove('hidden');\r\n } else {\r\n if (label === 'Find a service') {\r\n const itemUser = item.dataset.user;\r\n const itemType = item.dataset.type;\r\n if ((itemUser === 'Both' || itemUser === user) &&\r\n (itemType === 'Both' || itemType === type)) {\r\n item.classList.remove('hidden');\r\n } else {\r\n item.classList.add('hidden');\r\n }\r\n } else {\r\n item.classList.add('hidden');\r\n }\r\n }\r\n });\r\n const backButton = step4.querySelector('[data-prev]');\r\n if (backButton.getAttribute('listener') !== 'true'){\r\n backButton.addEventListener('click', () => {\r\n backButton.setAttribute('listener', 'true');\r\n history.back();\r\n }); \r\n }\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-service-wizard]`, el => serviceWizard.initBlock(el));\r\n"],"file":"priory.serviceWizard-min.js"}