{"version":3,"sources":["priory.consultantSearchBlock.js"],"names":["consultantSearchBlock","pagingInit","handlePaging","el","paging","querySelector","classList","remove","prevButton","nextButton","currentPage","parseInt","dataset","totalPages","updateButtons","addEventListener","handlePagingButton","newPage","resultsWrapper","currentValueElement","searchValues","getSearchValues","pageSize","pageId","currentValue","fetch","name","condition","ageGroup","type","then","response","text","data","innerHTML","newTotalPagesElement","newTotalPages","resultsTotalPages","scrollIntoView","behavior","search","nameWrapper","conditionWrapper","ageGroupWrapper","typeWrapper","value","handleSearch","querySelectorAll","length","add","setAttribute","removeAttribute","totalValueElement","totalValue","initBlock","ControlBinders","register"],"mappings":"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","sourcesContent":["const consultantSearchBlock = (() => {\r\n \r\n let pagingInit = false;\r\n\r\n const initBlock = ((el) => {\r\n handleSearch(el);\r\n handlePaging(el);\r\n });\r\n\r\n const handlePaging = (el) => {\r\n const paging = el.querySelector('[data-paging]');\r\n if (paging) {\r\n paging.classList.remove('hidden');\r\n const prevButton = paging.querySelector('button[title=\"Previous Page\"]');\r\n const nextButton = paging.querySelector('button[title=\"Next Page\"]');\r\n const currentPage = parseInt(paging.dataset.currentPage);\r\n let totalPages = parseInt(paging.dataset.totalPages);\r\n updateButtons(el, prevButton, nextButton, currentPage, totalPages);\r\n if (prevButton && nextButton && pagingInit === false) {\r\n prevButton.addEventListener('click', () =>\r\n handlePagingButton(el, paging, (parseInt(paging.dataset.currentPage) - 1), totalPages, nextButton, prevButton));\r\n nextButton.addEventListener('click', () =>\r\n handlePagingButton(el, paging, (parseInt(paging.dataset.currentPage) + 1), totalPages, nextButton, prevButton));\r\n pagingInit = true;\r\n }\r\n }\r\n };\r\n\r\n const handlePagingButton = (el, paging, newPage, totalPages, nextButton, prevButton) => {\r\n const resultsWrapper = el.querySelector('[data-results]');\r\n const currentValueElement = paging.querySelector('[data-current-value]');\r\n const searchValues = getSearchValues(el);\r\n const pageSize = el.querySelector('[data-page-size]').dataset.pageSize;\r\n const pageId = el.querySelector('[data-page-id]').dataset.pageId;\r\n if (currentValueElement) currentValueElement.dataset.currentValue = newPage;\r\n paging.dataset.currentPage = newPage;\r\n fetch(`/umbraco/surface/ClinicianResults/GetFilteredConsultantSearchBlock?currentPage=${newPage}&name=${searchValues.name}&condition=${searchValues.condition}&ageGroup=${searchValues.ageGroup}&type=${searchValues.type}&pageSize=${pageSize}&pageId=${pageId}`)\r\n .then(response => response.text())\r\n .then(data => {\r\n if (resultsWrapper) {\r\n resultsWrapper.innerHTML = data;\r\n const paging = el.querySelector('[data-paging]');\r\n const newTotalPagesElement = resultsWrapper.querySelector('[data-results-total-pages]');\r\n if (newTotalPagesElement) {\r\n const newTotalPages = newTotalPagesElement.dataset.resultsTotalPages;\r\n paging.dataset.totalPages = newTotalPages;\r\n totalPages = parseInt(paging.dataset.totalPages);\r\n }\r\n updateButtons(el, prevButton, nextButton, newPage, totalPages);\r\n el.scrollIntoView({behavior: \"smooth\"});\r\n }\r\n });\r\n }\r\n\r\n const getSearchValues = (el) => {\r\n const search = el.querySelector('[data-consultant-search]');\r\n const nameWrapper = search.querySelector('[data-consultant-search-name]');\r\n const conditionWrapper = search.querySelector('[data-consultant-search-condition]');\r\n const ageGroupWrapper = search.querySelector('[data-consultant-search-agegroup]');\r\n const typeWrapper = search.querySelector('[data-consultant-search-type]');\r\n return {\r\n name: nameWrapper.querySelector('input').value,\r\n condition: conditionWrapper.querySelector('select').value,\r\n ageGroup: ageGroupWrapper.querySelector('select').value,\r\n type: typeWrapper.querySelector('select').value\r\n }\r\n };\r\n\r\n const handleSearch = (el) => {\r\n const resultsWrapper = el.querySelector('[data-results]');\r\n const search = el.querySelector('[data-consultant-search]');\r\n if (search) {\r\n const buttonWrapper = search.querySelector('[data-consultant-search-button]');\r\n const button = buttonWrapper.querySelector('button');\r\n button.addEventListener('click', (() => {\r\n const paging = el.querySelector('[data-paging]');\r\n if (paging) {\r\n const prevButton = paging.querySelector('button[title=\"Previous Page\"]');\r\n const nextButton = paging.querySelector('button[title=\"Next Page\"]');\r\n const currentPage = 1;\r\n let totalPages = parseInt(paging.dataset.totalPages);\r\n const searchValues = getSearchValues(el);\r\n const pageSize = el.querySelector('[data-page-size]').dataset.pageSize;\r\n const pageId = el.querySelector('[data-page-id]').dataset.pageId;\r\n fetch(`/umbraco/surface/ClinicianResults/GetFilteredConsultantSearchBlock?currentPage=${currentPage}&name=${searchValues.name}&condition=${searchValues.condition}&ageGroup=${searchValues.ageGroup}&type=${searchValues.type}&pageSize=${pageSize}&pageId=${pageId}`)\r\n .then(response => response.text())\r\n .then(data => {\r\n if (resultsWrapper) {\r\n resultsWrapper.innerHTML = data;\r\n const newTotalPagesElement = resultsWrapper.querySelector('[data-results-total-pages]');\r\n if (newTotalPagesElement) {\r\n const newTotalPages = newTotalPagesElement.dataset.resultsTotalPages;\r\n paging.dataset.totalPages = newTotalPages;\r\n totalPages = parseInt(paging.dataset.totalPages);\r\n }\r\n paging.dataset.currentPage = \"1\";\r\n updateButtons(el, prevButton, nextButton, currentPage, totalPages);\r\n handlePaging(el);\r\n el.scrollIntoView({behavior: \"smooth\"});\r\n const results = resultsWrapper.querySelectorAll('.search-results-block__results__wrapper__result').length;\r\n if (results === 0){\r\n paging.classList.add('hidden');\r\n resultsWrapper.innerHTML += `No Results Found`\r\n }else{\r\n paging.classList.remove('hidden');\r\n }\r\n }\r\n })\r\n }\r\n }));\r\n }\r\n };\r\n\r\n const updateButtons = (el, prevButton, nextButton, currentPage, totalPages) => {\r\n if (currentPage === 1) {\r\n prevButton.setAttribute('disabled', '');\r\n prevButton.classList.add('disabled');\r\n } else {\r\n prevButton.removeAttribute('disabled');\r\n prevButton.classList.remove('disabled');\r\n }\r\n if (currentPage === totalPages) {\r\n nextButton.setAttribute('disabled', '');\r\n nextButton.classList.add('disabled');\r\n } else {\r\n nextButton.removeAttribute('disabled');\r\n nextButton.classList.remove('disabled');\r\n }\r\n const paging = el.querySelector('[data-paging]');\r\n if (paging) {\r\n const currentValueElement = paging.querySelector('[data-current-value]');\r\n const totalValueElement = paging.querySelector('[data-total-value]');\r\n if (currentValueElement && totalValueElement) {\r\n currentValueElement.dataset.currentValue = currentPage;\r\n totalValueElement.dataset.totalValue = totalPages;\r\n }\r\n }\r\n }\r\n\r\n return {initBlock};\r\n})();\r\n\r\nControlBinders.register(`.consultant-search-block`, el => consultantSearchBlock.initBlock(el));"],"file":"priory.consultantSearchBlock-min.js"}