{"version":3,"sources":["priory.searchResultsBlock.js"],"names":["searchResultsBlock","isAllValue","v","getResultsType","scope","results","querySelector","dataset","undefined","getCurrentSession","model","resultsType","categories","Array","from","querySelectorAll","map","x","value","length","category","indexOf","join","clinicianName","onlineAppointments","checked","ageGroupField","jobTypeField","ageGroup","jobType","sort","locationName","typeField","getCategory","serviceTypeField","type","serviceType","params","Proxy","URLSearchParams","window","location","search","get","searchParams","prop","currentPageEl","locationTypeField","locationInputField","locationDistanceField","locationType","locationInput","locationDistance","currentPage","parseInt","nodeId","handleDistanceFilters","session","hasClickedSearchButton","sortValue","hasAppliedDistance","inputField","forEach","select","option","classList","remove","add","handleFilters","updatePaging","paging","prev","next","totalPagesEl","totalPages","setAttribute","removeAttribute","options","i","push","innerHTML","bindResults","totalResults","count","totalResultsCount","bindLocationResults","Promise","resolve","applySession","loadingMessage","selectIfExists","elm","setField","field","nodeName","match","find","selected","NodeList","selectedConditions","split","conditionField","item","disabled","filterGroup","refreshUi","endpoint","queryString","Object","keys","key","set","viewport","document","scrollIntoView","behavior","block","fetch","then","response","text","data","pageNumber","url","URL","delete","history","pushState","updateSeo","rememberedLocationCategories","el","ids","mapIds","json","mapContent","mapNoResults","GoogleMap","locations","openWindow","zoomControl","fullscreenControl","handleMapLoad","result","id","viewOnMap","toggle","listWrapper","mapWrapper","mapHideEls","addEventListener","viewToggleText","mapHideEl","handleViewOnMap","wrapper","outerHTML","updatedWrapper","radio","content","selectedChecked","selectedRadio","parentNode","initBlock","filters","toggleFilters","documentElement","toggleSort","handleToggleOverlays","bindPaging","clearField","fieldName","distanceField","showHideDistanceOptions","button","filterTextSubmit","searchField","e","keyCode","dispatchEvent","Event","anyField","checkbox","getAttribute","handleSubmitFilters","mapIcon","listIcon","scrollTo","handleMapToggle","state","ControlBinders","register"],"mappings":"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","sourcesContent":["const searchResultsBlock = (() => {\r\n const ResultsTypeClinician = \"Clinician\";\r\n const ResultsTypeLocation = \"Location\";\r\n\r\n const isAllValue = v => v === \"any\" || v === \"all\";\r\n \r\n const getResultsType = scope => {\r\n const results = scope.querySelector('[data-results]');\r\n \r\n return results ? results.dataset.results : undefined;\r\n };\r\n \r\n const getCurrentSession = scope => {\r\n const model = {};\r\n const resultsType = getResultsType(scope);\r\n \r\n if (resultsType === ResultsTypeClinician) {\r\n const categories = Array.from(scope.querySelectorAll('input[name=\"condition\"]:checked')).map(x => x.value);\r\n\r\n if (categories.length) {\r\n model.category = categories.indexOf(\"all\") === -1 ? categories.join(\",\") : \"all\"; \r\n }\r\n else {\r\n model.category = \"\";\r\n }\r\n \r\n model.clinicianName = scope.querySelector('input[name=\"clinicianName\"]').value; \r\n model.onlineAppointments = scope.querySelector('input[name=\"onlineAppointments\"]').checked;\r\n \r\n const ageGroupField = scope.querySelector('input[name=\"ageGroup\"]:checked');\r\n const jobTypeField = scope.querySelector('input[name=\"jobType\"]:checked'); \r\n \r\n if (ageGroupField) {\r\n model.ageGroup = ageGroupField.value;\r\n }\r\n \r\n if (jobTypeField) {\r\n model.jobType = jobTypeField.value; \r\n }\r\n } else if (resultsType === ResultsTypeLocation) {\r\n model.sort = scope.querySelector('input[name=\"SortValue\"]').value;\r\n model.locationName = scope.querySelector('input[name=\"locationName\"]').value;\r\n \r\n const typeField = scope.querySelector('input[name=\"type\"]:checked');\r\n const getCategory = scope.querySelector('input[name=\"category\"]:checked');\r\n const serviceTypeField = scope.querySelector('input[name=\"ServiceType\"]');\r\n \r\n if (typeField) {\r\n model.type = typeField.value;\r\n }\r\n \r\n if (serviceTypeField) {\r\n model.serviceType = serviceTypeField.value; \r\n }\r\n\r\n if (getCategory) { \r\n model.category = getCategory.value;\r\n } else { \r\n const params = new Proxy(new URLSearchParams(window.location.search), {\r\n get: (searchParams, prop) => searchParams.get(prop),\r\n });\r\n\r\n if (params.category) {\r\n model.category = params.category; \r\n }\r\n }\r\n }\r\n \r\n const currentPageEl = scope.querySelector('[data-current-page]');\r\n const locationTypeField = scope.querySelector('input[name=\"locationRadios\"]:checked');\r\n const locationInputField = scope.querySelector('input[name=\"townPostcode\"]');\r\n const locationDistanceField = scope.querySelector('select[name=\"Distance\"]');\r\n \r\n if (locationTypeField) {\r\n model.locationType = locationTypeField.value; \r\n }\r\n \r\n if (locationInputField && model.locationType !== \"any\") {\r\n model.locationInput = locationInputField.value; \r\n }\r\n \r\n if (locationDistanceField && model.locationType === \"postcode\") {\r\n model.locationDistance = locationDistanceField.value; \r\n }\r\n \r\n model.currentPage = parseInt(currentPageEl ? currentPageEl.dataset.currentPage : \"1\") || 1;\r\n model.nodeId = scope.querySelector('[data-node-id]').dataset.nodeId;\r\n \r\n return model;\r\n }\r\n\r\n const scrollToResults = () => {\r\n if (viewport() < 3) {\r\n document.querySelector('main').scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n } else {\r\n document.querySelector('.search-results-block').scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n }\r\n }\r\n\r\n const handleDistanceFilters = (scope, session, hasClickedSearchButton) => {\r\n const sortValue = scope.querySelector('[name=\"SortValue\"]'); \r\n const hasAppliedDistance = session.locationType !== \"any\" && session.locationInput; \r\n const inputField = scope.querySelector(\"[name='townPostcode']\");\r\n \r\n if (inputField) {\r\n session.locationInput = inputField.value = hasAppliedDistance ? session.locationInput : \"\";\r\n }\r\n\r\n scope.querySelectorAll('[data-sort]').forEach(select => {\r\n select.querySelectorAll(\"option[value='3'], option[value='4']\").forEach(option => {\r\n if (hasAppliedDistance) {\r\n option.classList.remove('hidden');\r\n }\r\n else {\r\n option.classList.add('hidden');\r\n }\r\n });\r\n \r\n if (!hasAppliedDistance) {\r\n select.value = sortValue.value = session.sort = (session.sort === \"3\" || session.sort === \"4\" ? \"1\" : session.sort);\r\n } else if (hasClickedSearchButton) {\r\n select.value = sortValue.value = session.sort = (session.sort === \"1\" || session.sort === \"2\" ? \"3\" : session.sort);\r\n }\r\n });\r\n }\r\n\r\n const updateSeo = scope => {\r\n const session = getCurrentSession(scope);\r\n const url = new URL(location);\r\n \r\n Array.from(url.searchParams.keys()).forEach(key => url.searchParams.delete(key));\r\n\r\n Object.keys(session)\r\n .forEach(key => {\r\n if (key !== \"nodeId\" && session[key] && session[key] !== \"*\") {\r\n url.searchParams.set(key, session[key]);\r\n }\r\n });\r\n\r\n history.pushState(session, \"\", url);\r\n }\r\n\r\n let handleFilters;\r\n\r\n const handleToggleOverlays = el => {\r\n const filters = el.querySelector('[data-results-filters]');\r\n el.querySelectorAll('[data-toggle-filters]').forEach(toggleFilters => {\r\n toggleFilters.addEventListener('click', () => {\r\n filters.classList.toggle('search-results-block__filters--open');\r\n document.documentElement.classList.toggle('overlay--filters');\r\n });\r\n });\r\n const sort = el.querySelector('[data-results-sort]');\r\n el.querySelectorAll('[data-toggle-sort]').forEach(toggleSort => {\r\n toggleSort.addEventListener('click', () => {\r\n sort.classList.toggle('search-results-block__sort--open');\r\n document.documentElement.classList.toggle('overlay--filters');\r\n });\r\n });\r\n };\r\n\r\n const handleMapToggle = el => {\r\n el.querySelectorAll('[data-toggle-map-view]').forEach(toggle => {\r\n const listWrapper = el.querySelector('[data-results-list]');\r\n const mapWrapper = el.querySelector('[data-results-map]');\r\n toggle.addEventListener('click', () => {\r\n const text = toggle.querySelector('span[data-view-toggle-text]');\r\n const mapHideEls = el.querySelectorAll('[data-map-hide]');\r\n if (text.dataset.viewToggleText === 'Map ') {\r\n listWrapper.classList.add('hidden');\r\n mapWrapper.classList.remove('hidden');\r\n if (text) {\r\n text.dataset.viewToggleText = 'List ';\r\n }\r\n mapHideEls.forEach(mapHideEl => mapHideEl.classList.add('hidden'));\r\n el.classList.add('map-view');\r\n el.querySelectorAll('[data-icon-map]').forEach(mapIcon => mapIcon.classList.add('hidden'));\r\n el.querySelectorAll('[data-icon-list]').forEach(listIcon => listIcon.classList.remove('hidden'));\r\n } else {\r\n listWrapper.classList.remove('hidden');\r\n mapWrapper.classList.add('hidden');\r\n if (text) {\r\n text.dataset.viewToggleText = 'Map ';\r\n }\r\n mapHideEls.forEach(mapHideEl => mapHideEl.classList.remove('hidden'));\r\n el.classList.remove('map-view');\r\n el.querySelectorAll('[data-icon-map]').forEach(mapIcon => mapIcon.classList.remove('hidden'));\r\n el.querySelectorAll('[data-icon-list]').forEach(listIcon => listIcon.classList.add('hidden'));\r\n }\r\n window.scrollTo(0, 0);\r\n });\r\n });\r\n };\r\n\r\n const handleMapLoad = el => {\r\n const ids = el.querySelector('[data-map-ids]').dataset.mapIds;\r\n const mapWrapper = el.querySelector('[data-results-map]');\r\n if (mapWrapper) {\r\n fetch(`/Umbraco/surface/Locations/GetLocations?ids=${ids}`)\r\n .then(response => response.json())\r\n .then(data => {\r\n const mapContent = el.querySelector('[data-map-content]');\r\n const mapNoResults = el.querySelector('[data-map-no-results]');\r\n const totalResults = el.querySelector('[data-total-results]');\r\n if (totalResults.dataset.totalResults !== \"0 locations found\") {\r\n mapNoResults.classList.add('hidden');\r\n mapContent.classList.remove('hidden');\r\n let options = {\r\n locations: data,\r\n openWindow: false,\r\n zoomControl: true,\r\n fullscreenControl: true\r\n };\r\n new GoogleMap(mapContent, options);\r\n } else {\r\n mapNoResults.classList.remove('hidden');\r\n mapContent.classList.add('hidden');\r\n }\r\n });\r\n }\r\n };\r\n\r\n const handleViewOnMap = el => {\r\n el.querySelectorAll('[data-view-on-map]').forEach(result => {\r\n const id = result.dataset.viewOnMap;\r\n el.querySelectorAll('[data-toggle-map-view]').forEach(toggle => {\r\n const listWrapper = el.querySelector('[data-results-list]');\r\n const mapWrapper = el.querySelector('[data-results-map]');\r\n const text = toggle.querySelector('span[data-view-toggle-text]');\r\n const mapHideEls = el.querySelectorAll('[data-map-hide]');\r\n result.addEventListener('click', () => {\r\n listWrapper.classList.add('hidden');\r\n mapWrapper.classList.remove('hidden');\r\n text.dataset.viewToggleText = 'List ';\r\n mapHideEls.forEach(mapHideEl => mapHideEl.classList.add('hidden'));\r\n mapWrapper.innerHTML = '';\r\n fetch(`/Umbraco/surface/Locations/GetLocations?ids=${id}`)\r\n .then(response => response.json())\r\n .then(data => {\r\n let options = {\r\n locations: data,\r\n openWindow: false,\r\n zoomControl: true,\r\n fullscreenControl: true\r\n };\r\n new GoogleMap(mapWrapper, options);\r\n });\r\n });\r\n });\r\n });\r\n };\r\n \r\n const handleSubmitFilters = scope => {\r\n const clearField = fieldName => {\r\n const field = scope.querySelector(`[name='${fieldName}']`);\r\n\r\n if (field) {\r\n field.value = \"\";\r\n }\r\n }\r\n \r\n const distanceField = scope.querySelector(\"[name='Distance']\");\r\n \r\n if (distanceField) {\r\n distanceField.addEventListener(\"change\", () => {\r\n [\"clinicianName\", \"locationName\"].forEach(fieldName => clearField(fieldName));\r\n \r\n if (getCurrentSession(scope).locationInput) {\r\n handleFilters(scope, 1);\r\n }\r\n });\r\n }\r\n\r\n const showHideDistanceOptions = () => {\r\n const sortValue = scope.querySelector('[name=\"SortValue\"]');\r\n\r\n scope.querySelectorAll('[data-sort]').forEach(select => {\r\n select.value = sortValue.value = (select.value === \"3\" || select.value === \"4\" ? \"1\" : select.value);\r\n\r\n select.querySelectorAll(\"option[value='3'], option[value='4']\").forEach(option => {\r\n option.classList.add('hidden');\r\n });\r\n });\r\n }\r\n \r\n scope.querySelectorAll('[data-filter-text-submit]').forEach(button => {\r\n if (button.dataset.filterTextSubmit === \"clinicianName\" || button.dataset.filterTextSubmit === \"locationName\") {\r\n const searchField = scope.querySelector(`[name='${button.dataset.filterTextSubmit}']`);\r\n\r\n if (searchField) {\r\n searchField.addEventListener(\"keyup\", e => {\r\n if (e.keyCode === 13) {\r\n button.dispatchEvent(new Event(\"click\"));\r\n }\r\n });\r\n } \r\n }\r\n \r\n button.addEventListener('click', () => {\r\n switch (button.dataset.filterTextSubmit) {\r\n case \"clinicianName\":\r\n case \"locationName\":\r\n clearField(\"townPostcode\");\r\n \r\n const anyField = scope.querySelector(\"[name='locationRadios'][value='any']\");\r\n \r\n if (anyField) {\r\n anyField.checked = true;\r\n showHideDistanceOptions();\r\n } \r\n\r\n break;\r\n case \"distance\":\r\n [\"clinicianName\", \"locationName\"].forEach(fieldName => clearField(fieldName));\r\n break;\r\n } \r\n \r\n const session = getCurrentSession(scope);\r\n \r\n if (button.dataset.filterTextSubmit === \"distance\") {\r\n if (session.locationType === \"any\" || !session.locationInput) {\r\n handleDistanceFilters(scope, session, false);\r\n return;\r\n }\r\n\r\n handleDistanceFilters(scope, session, true); \r\n }\r\n\r\n handleFilters(scope, 1);\r\n });\r\n });\r\n scope.querySelectorAll('input[type=\"checkbox\"]').forEach(checkbox => {\r\n checkbox.addEventListener('input', () => {\r\n handleFilters(scope, 1);\r\n });\r\n }); \r\n \r\n scope.querySelectorAll('input[type=\"radio\"]').forEach(radio => { \r\n radio.addEventListener('input', () => { \r\n if (radio.getAttribute('name') === 'locationRadios') {\r\n if (radio.value !== \"any\") {\r\n return;\r\n }\r\n\r\n showHideDistanceOptions();\r\n handleFilters(scope, 1);\r\n }\r\n else {\r\n handleFilters(scope, 1); \r\n }\r\n });\r\n });\r\n \r\n scope.querySelectorAll('[data-sort]').forEach(item => {\r\n item.addEventListener('change', () => {\r\n const sortValue = scope.querySelector('[name=\"SortValue\"]');\r\n sortValue.value = item.value;\r\n handleFilters(scope, 1);\r\n })\r\n });\r\n }\r\n\r\n const bindPaging = scope => {\r\n const paging = scope.querySelector('.pagination');\r\n\r\n if (!paging) {\r\n return;\r\n }\r\n\r\n const prev = paging.querySelector('[title=\"Previous Page\"]');\r\n const next = paging.querySelector('[title=\"Next Page\"]');\r\n const select = paging.querySelector('select');\r\n\r\n if (prev){\r\n prev.addEventListener('click', () => {\r\n handleFilters(scope, getCurrentSession(scope).currentPage - 1);\r\n });\r\n }\r\n\r\n if (next){\r\n next.addEventListener('click', () => {\r\n handleFilters(scope, getCurrentSession(scope).currentPage + 1);\r\n });\r\n }\r\n\r\n if (select){\r\n select.addEventListener('change', () => {\r\n handleFilters(scope, parseInt(select.value) || 1);\r\n });\r\n }\r\n };\r\n\r\n const updatePaging = scope => {\r\n const paging = scope.querySelector('.pagination');\r\n \r\n if (!paging) {\r\n return;\r\n }\r\n\r\n const prev = paging.querySelector('[title=\"Previous Page\"]');\r\n const next = paging.querySelector('[title=\"Next Page\"]');\r\n const select = paging.querySelector('select');\r\n const totalPagesEl = scope.querySelector('[data-total-pages]');\r\n \r\n const currentPage = getCurrentSession(scope).currentPage;\r\n \r\n if (!prev || !next || !select || !totalPagesEl) {\r\n return;\r\n }\r\n\r\n const totalPages = parseInt(totalPagesEl.dataset.totalPages);\r\n \r\n if (!totalPages) {\r\n paging.classList.add('pagination--hidden');\r\n return;\r\n }\r\n\r\n paging.classList.remove('pagination--hidden');\r\n\r\n if (currentPage === 1) {\r\n prev.setAttribute('disabled', '');\r\n prev.classList.add('disabled');\r\n } else {\r\n prev.removeAttribute('disabled');\r\n prev.classList.remove('disabled');\r\n }\r\n\r\n if (currentPage === totalPages) {\r\n next.setAttribute('disabled', '');\r\n next.classList.add('disabled');\r\n } else {\r\n next.removeAttribute('disabled');\r\n next.classList.remove('disabled');\r\n }\r\n \r\n const options = [];\r\n\r\n for (let i = 1; i <= totalPages; i++) {\r\n options.push(``)\r\n }\r\n\r\n select.innerHTML = options.join('');\r\n }\r\n \r\n const bindResults = scope => {\r\n const resultsType = getResultsType(scope);\r\n const totalResults = scope.querySelector('[data-total-results]');\r\n const results = scope.querySelector('[data-results]');\r\n\r\n scope.querySelectorAll('[data-count]').forEach(count => {\r\n count.innerHTML = totalResults\r\n ? totalResults.dataset.totalResults\r\n : `0 ${resultsType === ResultsTypeClinician ? \"specialists\" : \"locations\"} found`;\r\n });\r\n\r\n if (totalResults && parseInt(totalResults.dataset.totalResultsCount) > 0) {\r\n results.classList.remove('search-results-block__results__wrapper--no-results');\r\n }\r\n else {\r\n results.classList.add('search-results-block__results__wrapper--no-results')\r\n }\r\n\r\n if (resultsType === ResultsTypeLocation) {\r\n return bindLocationResults(scope);\r\n }\r\n \r\n return Promise.resolve();\r\n };\r\n\r\n const applySession = (scope, session) => {\r\n const resultsType = getResultsType(scope);\r\n const results = scope.querySelector('[data-results]');\r\n const loadingMessage = scope.querySelector('[data-results-loading]');\r\n\r\n const selectIfExists = (elm, value) => {\r\n if (!elm) {\r\n return;\r\n }\r\n \r\n const setField = field => {\r\n if (field.type === \"radio\" || field.type === \"checkbox\") {\r\n if (typeof value === \"undefined\") {\r\n field.checked = isAllValue(field.value);\r\n }\r\n else {\r\n field.checked = (typeof value === \"boolean\" && value) || value === field.value || (isAllValue(field.value) && isAllValue(value));\r\n }\r\n }\r\n else if (field.nodeName === \"SELECT\") {\r\n const options = Array.from(field.options);\r\n const match = options.find(x => x.value === value);\r\n \r\n if (match) {\r\n match.selected = true;\r\n }\r\n else if (options.length) {\r\n options[0].selected = true;\r\n }\r\n }\r\n else {\r\n field.value = value;\r\n } \r\n }\r\n \r\n if (elm instanceof NodeList) {\r\n elm.forEach(field => setField(field));\r\n }\r\n else {\r\n setField(elm);\r\n }\r\n }\r\n\r\n const locationTypeField = scope.querySelector(`[name='locationRadios'][value='${session.locationType}']`);\r\n const selectedConditions = session.category ? session.category.split(',') : [];\r\n\r\n scope.querySelectorAll(\"input[name='condition']\").forEach(conditionField => {\r\n conditionField.checked = selectedConditions.indexOf(\"all\") !== -1 || selectedConditions.indexOf(conditionField.value) !== -1;\r\n });\r\n\r\n selectIfExists(scope.querySelector('input[name=\"clinicianName\"]'), session.clinicianName);\r\n selectIfExists(scope.querySelector(\"[name='onlineAppointments']\"), session.onlineAppointments);\r\n selectIfExists(scope.querySelectorAll(`[name='ageGroup']`), session.ageGroup);\r\n selectIfExists(scope.querySelectorAll(`[name='jobType']`), session.jobType);\r\n selectIfExists(scope.querySelector('input[name=\"SortValue\"]'), session.sort);\r\n selectIfExists(scope.querySelectorAll(`[name='type']`), session.type);\r\n selectIfExists(scope.querySelectorAll(`[name='category']`), session.category);\r\n selectIfExists(scope.querySelector(`[name='ServiceType']`), session.serviceType);\r\n selectIfExists(scope.querySelector(\"[name='locationName']\"), session.locationName);\r\n selectIfExists(scope.querySelector('input[name=\"townPostcode\"]'), session.locationInput);\r\n selectIfExists(scope.querySelector('select[name=\"Distance\"]'), session.locationDistance);\r\n\r\n if (locationTypeField) {\r\n locationTypeField.checked = true;\r\n }\r\n \r\n if (loadingMessage) {\r\n results.innerHTML = '';\r\n loadingMessage.classList.remove('hidden');\r\n }\r\n \r\n handleDistanceFilters(scope, session, false);\r\n\r\n //disable sort event handler\r\n scope.querySelectorAll('[data-sort]').forEach(item => {\r\n item.disabled = true;\r\n });\r\n\r\n if (typeof filterGroup === \"object\") {\r\n filterGroup.refreshUi();\r\n }\r\n \r\n const endpoint = resultsType === ResultsTypeClinician ?\r\n \"/umbraco/surface/ClinicianResults/Get\" :\r\n \"/umbraco/surface/LocationResults/Get\";\r\n \r\n const queryString = new URLSearchParams();\r\n \r\n Object.keys(session)\r\n .forEach(key => {\r\n queryString.set(key, session[key]);\r\n });\r\n\r\n scrollToResults();\r\n \r\n return fetch(`${endpoint}?${queryString}`)\r\n .then(response => response.text())\r\n .then(data => {\r\n results.innerHTML = data;\r\n })\r\n .then(() => updatePaging(scope))\r\n .then(() => bindResults(scope))\r\n .then(() => {\r\n if (loadingMessage) {\r\n loadingMessage.classList.add('hidden');\r\n }\r\n \r\n scope.querySelectorAll('[data-sort]').forEach(item => {\r\n item.disabled = false;\r\n });\r\n });\r\n }\r\n\r\n handleFilters = (scope, pageNumber) => {\r\n const session = getCurrentSession(scope);\r\n session.currentPage = pageNumber;\r\n \r\n return applySession(scope, session)\r\n .then(() => updateSeo(scope));\r\n }\r\n \r\n const rememberedLocationCategories = {\r\n type: undefined,\r\n category: undefined\r\n };\r\n\r\n const bindLocationResults = (scope) => { \r\n const session = getCurrentSession(scope); \r\n \r\n handleMapLoad(scope);\r\n handleViewOnMap(scope);\r\n \r\n const wrapper = scope.querySelector('[data-categories-filter]');\r\n \r\n if (!wrapper) {\r\n return;\r\n }\r\n \r\n if (rememberedLocationCategories.type === session.type && rememberedLocationCategories.category === session.category) {\r\n return;\r\n }\r\n \r\n rememberedLocationCategories.type = session.type;\r\n rememberedLocationCategories.category = session.category;\r\n \r\n if (session.type === \"any\") {\r\n wrapper.outerHTML = '
';\r\n return;\r\n }\r\n \r\n return fetch(`/umbraco/surface/LocationResults/GetCategories?type=${session.type}&selected=${session.category}`)\r\n .then(response => response.text())\r\n .then(data => {\r\n if (data !== '') {\r\n wrapper.outerHTML = data;\r\n const updatedWrapper = scope.querySelector('[data-categories-filter]');\r\n const updatedCategories = updatedWrapper.querySelectorAll('input[type=\"radio\"]').length;\r\n if (updatedCategories > 2) {\r\n updatedWrapper.querySelectorAll('input[type=\"radio\"]').forEach(radio => {\r\n radio.addEventListener('input', () => handleFilters(scope, 1));\r\n });\r\n \r\n const content = updatedWrapper.querySelector('[data-filter-group-content]');\r\n updatedWrapper.querySelectorAll('[data-filter-group-toggle]').forEach(filterGroup => {\r\n filterGroup.addEventListener('click', () => {\r\n updatedWrapper.classList.toggle('filter-group--closed');\r\n content.classList.toggle('filter-group__wrapper--open');\r\n });\r\n });\r\n const selected = updatedWrapper.querySelector('[data-filter-selected]');\r\n const selectedChecked = updatedWrapper.querySelector('input[type=\"radio\"]:checked');\r\n if (selectedChecked) {\r\n const selectedRadio = selectedChecked.parentNode;\r\n selected.innerHTML = selectedRadio.dataset.radio;\r\n } else {\r\n updatedWrapper.querySelector('input[type=\"radio\"]').checked = true;\r\n selected.innerHTML = 'Any';\r\n }\r\n } else {\r\n updatedWrapper.outerHTML = '
';\r\n }\r\n } else {\r\n wrapper.outerHTML = '
';\r\n }\r\n });\r\n };\r\n \r\n const initBlock = scope => {\r\n handleToggleOverlays(scope);\r\n bindPaging(scope);\r\n updatePaging(scope);\r\n handleSubmitFilters(scope);\r\n bindResults(scope);\r\n if (scope.querySelector('[data-results-map]')) {\r\n handleMapToggle(scope);\r\n }\r\n\r\n history.pushState(getCurrentSession(scope), \"\", new URL(location));\r\n\r\n window.addEventListener(\"popstate\", e => {\r\n if (e.state) {\r\n applySession(scope, e.state);\r\n }\r\n });\r\n };\r\n\r\n return {\r\n initBlock\r\n };\r\n})();\r\nControlBinders.register(`[data-search-results]`, el => searchResultsBlock.initBlock(el));"],"file":"priory.searchResultsBlock-min.js"}