{"version":3,"file":"blog-BXA3ev7h.js","sources":["../../../scripts/module/blog.js"],"sourcesContent":["/* eslint-disable no-console */\nimport axios from 'axios';\n\nconst filterForm = document.querySelector('#blogFilter');\n\nconst fetchArticles = (params) => {\n\treturn new Promise((resolve) => {\n\t\tconst url = 'assets/components/canadianaffair/getArticles.php';\n\n\t\taxios\n\t\t\t.get(url, { params: new URLSearchParams(params) })\n\t\t\t.then((response) => {\n\t\t\t\tresolve(response.data);\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error(error);\n\t\t\t});\n\t});\n};\n\nconst debounce = (func, wait = 400) => {\n\tlet timer;\n\treturn (...args) => {\n\t\tclearTimeout(timer);\n\t\ttimer = setTimeout(() => {\n\t\t\tfunc.apply(this, args);\n\t\t}, wait);\n\t};\n};\n\nif (filterForm) {\n\tconst searchResultsEl = document.querySelector('#blogResults');\n\tconst blogResultsContainerEl = document.querySelector('#blogResultsContainer');\n\tconst blogNoResultsEl = document.querySelector('#blogNoResults');\n\tconst blogPagingEl = document.querySelector('#blogPaging');\n\tconst informationTextEl = filterForm.querySelector('#informationText');\n\tconst filterCountEl = filterForm.querySelector('#filterCount');\n\tconst resetBlogFilterBtn = filterForm.querySelector('#resetBlogFilter');\n\n\tconst blogInputEl = filterForm.querySelector('#blogSearch');\n\tconst filterTagsContainerEl = filterForm.querySelector('.fliter-tags');\n\tconst filterTagsEls = filterForm.querySelectorAll('.fliter-tags-checkbox');\n\tconst blogCategorySelectorEl = filterForm.querySelector('#blogCategories');\n\tconst blogSortbySelectorEl = filterForm.querySelector('#blogSortby');\n\n\tconst blogContext = filterForm.querySelector('#blogContext').value;\n\n\tlet controller = new AbortController();\n\tlet isSearching = false;\n\n\tconst perPage = 12;\n\t// let resultsData = [];\n\tlet resultsData = '';\n\tlet totalResultPages = 0;\n\tlet currentPage = 1;\n\tlet filterCounter = 0;\n\n\tconst performSearch = (cPage = 1) => {\n\t\tconst tags = Array.from(filterForm.querySelectorAll('.fliter-tags-checkbox:checked')).map((el) => el.value);\n\n\t\tconst urlObj = new URL(window.location);\n\t\tconst defaultParams = ['page', 'search', 'categories', 'sortby', 'filters', 'context'];\n\t\tdefaultParams.forEach((e) => urlObj.searchParams.delete(e));\n\t\tlet urlName = `${urlObj.pathname}?`;\n\t\tif (urlObj.search) {\n\t\t\turlName = `${urlObj.pathname + urlObj.search}&`;\n\t\t}\n\n\t\twindow.history.pushState('', '', `${urlName}page=${cPage}&search=${blogInputEl.value}&categories=${blogCategorySelectorEl.value}&sortby=${blogSortbySelectorEl.value}&filters=${tags}&context=${blogContext}`);\n\n\t\tconst params = {\n\t\t\tpage: cPage,\n\t\t\tblogSearch: blogInputEl.value,\n\t\t\tblogCategories: blogCategorySelectorEl.value,\n\t\t\tblogSortby: blogSortbySelectorEl.value,\n\t\t\tblogFilters: tags,\n\t\t\tcontext: blogContext,\n\t\t\t_t: Date.now(),\n\t\t\tincludePastPageResults: 1,\n\t\t};\n\n\t\tfetchArticles(params).then((data) => {\n\t\t\tconst { page, results, total, totalPages, from, to } = data;\n\n\t\t\ttotalResultPages = totalPages;\n\n\t\t\tif (total === 0) {\n\t\t\t\tblogNoResultsEl.classList.remove('hidden');\n\t\t\t\tblogResultsContainerEl.classList.add('hidden');\n\n\t\t\t\tinformationTextEl.classList.add('!hidden');\n\t\t\t} else {\n\t\t\t\tblogResultsContainerEl.classList.remove('hidden');\n\t\t\t\tblogNoResultsEl.classList.add('hidden');\n\n\t\t\t\tinformationTextEl.classList.remove('!hidden');\n\t\t\t\tinformationTextEl.innerHTML = from && to && total ? `show ${from} - ${to} of ${total}` : '';\n\t\t\t}\n\n\t\t\tif (totalPages > 1 && page < totalPages) {\n\t\t\t\tblogPagingEl.classList.remove('hidden');\n\t\t\t} else {\n\t\t\t\tblogPagingEl.classList.add('hidden');\n\t\t\t}\n\n\t\t\tif (cPage === 1) {\n\t\t\t\t// console.log('a');\n\t\t\t\tresultsData = results;\n\t\t\t}\n\n\t\t\tif (cPage !== parseInt(currentPage)) {\n\t\t\t\t// console.log('b');\n\t\t\t\tresultsData = results;\n\t\t\t\tcurrentPage = cPage;\n\t\t\t}\n\n\t\t\tsearchResultsEl.innerHTML = resultsData.trim();\n\t\t});\n\t};\n\n\tconst doSearch = debounce((cPage = 1) => {\n\t\tif (isSearching) {\n\t\t\tcontroller.abort();\n\t\t\tcontroller = new AbortController();\n\t\t\tisSearching = false;\n\t\t}\n\t\tperformSearch(cPage);\n\t});\n\n\tfilterForm.addEventListener('submit', function (e) {\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\t\tdoSearch();\n\t});\n\n\tblogInputEl.addEventListener('keyup', () => {\n\t\tdoSearch();\n\t});\n\n\tblogInputEl.addEventListener('change', () => {\n\t\tdoSearch();\n\t});\n\n\tblogInputEl.addEventListener('input', (e) => {\n\t\tconst val = e.currentTarget.value;\n\t\tif (!val) {\n\t\t\tdoSearch();\n\t\t}\n\t});\n\n\tfilterTagsEls.forEach((item) => {\n\t\titem.addEventListener('change', (event) => {\n\t\t\tdoSearch();\n\n\t\t\tif (!event.currentTarget.checked && filterCounter > 0) {\n\t\t\t\tfilterCounter -= 1;\n\t\t\t} else {\n\t\t\t\tfilterCounter += 1;\n\t\t\t}\n\t\t\tfilterCountEl.innerHTML = `${filterCounter} filters`;\n\t\t});\n\t});\n\n\tblogCategorySelectorEl.addEventListener('change', (event) => {\n\t\tdoSearch();\n\n\t\tif (event.target.value.toLowerCase() === 'all' && filterCounter > 0) {\n\t\t\tfilterCounter -= 1;\n\t\t} else {\n\t\t\tfilterCounter += 1;\n\t\t}\n\t\tfilterCountEl.innerHTML = `${filterCounter} filters`;\n\t});\n\n\tblogSortbySelectorEl.addEventListener('change', (event) => {\n\t\tdoSearch();\n\n\t\tif (event.target.value === 'modResource.publishedon' && filterCounter > 0) {\n\t\t\tfilterCounter -= 1;\n\t\t} else {\n\t\t\tfilterCounter += 1;\n\t\t}\n\t\tfilterCountEl.innerHTML = `${filterCounter} filters`;\n\t});\n\n\tconst moreTagTriggerEl = filterForm.querySelector('.js-blog-tag-more');\n\tif (moreTagTriggerEl) {\n\t\tconst filterMoreTagEls = filterTagsContainerEl.querySelectorAll('.more-checkbox-tag');\n\t\tmoreTagTriggerEl.addEventListener('click', (event) => {\n\t\t\tconst target = event.currentTarget;\n\n\t\t\tfilterMoreTagEls.forEach((item) => {\n\t\t\t\titem.classList.remove('md:hidden');\n\t\t\t});\n\t\t\ttarget.remove();\n\t\t});\n\t}\n\n\tresetBlogFilterBtn.addEventListener('click', (event) => {\n\t\tevent.preventDefault();\n\n\t\tfilterTagsEls.forEach((item) => {\n\t\t\tif (item.checked) {\n\t\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\t\titem.checked = false;\n\t\t\t\t// console.log(item);\n\n\t\t\t\tif ('createEvent' in document) {\n\t\t\t\t\tconst evt = document.createEvent('HTMLEvents');\n\t\t\t\t\tevt.initEvent('change', false, true);\n\t\t\t\t\titem.dispatchEvent(evt);\n\t\t\t\t} else {\n\t\t\t\t\titem.fireEvent('onchange');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tblogCategorySelectorEl.value = 'All';\n\t\tblogSortbySelectorEl.value = 'modResource.publishedon';\n\t\tif ('createEvent' in document) {\n\t\t\tconst evt = document.createEvent('HTMLEvents');\n\t\t\tevt.initEvent('change', false, true);\n\t\t\tblogCategorySelectorEl.dispatchEvent(evt);\n\t\t\tblogSortbySelectorEl.dispatchEvent(evt);\n\t\t} else {\n\t\t\tblogCategorySelectorEl.fireEvent('onchange');\n\t\t\tblogSortbySelectorEl.fireEvent('onchange');\n\t\t}\n\t});\n\n\tblogPagingEl.querySelector('a').addEventListener('click', (event) => {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\n\t\tif (currentPage < totalResultPages) {\n\t\t\t// currentPage += 1;\n\t\t\tdoSearch(currentPage + 1);\n\t\t}\n\t});\n\n\twindow.addEventListener('load', (event) => {\n\t\tconst currentURL = new URL(window.location.href);\n\t\tconst urlparams = currentURL.searchParams;\n\t\tconst queryparams = Object.fromEntries([...urlparams]);\n\n\t\tif (queryparams.filters) {\n\t\t\tconst tagsArray = queryparams.filters ? queryparams.filters.split(',') : [];\n\n\t\t\tfilterTagsEls.forEach(function (item) {\n\t\t\t\titem.checked = tagsArray.includes(item.value);\n\t\t\t});\n\t\t}\n\n\t\tif (queryparams.categories) {\n\t\t\tblogCategorySelectorEl.value = queryparams.categories;\n\t\t}\n\t\tif (queryparams.sortby) {\n\t\t\tblogSortbySelectorEl.value = queryparams.sortby;\n\t\t}\n\t\tif (queryparams.search) {\n\t\t\tblogInputEl.value = queryparams.search;\n\t\t}\n\n\t\tconst qsPage = parseInt(queryparams.page);\n\t\tdoSearch(qsPage >= 1 ? qsPage : 1);\n\t});\n}\n"],"names":["filterForm","fetchArticles","params","resolve","axios","response","error","debounce","func","wait","timer","args","this","searchResultsEl","blogResultsContainerEl","blogNoResultsEl","blogPagingEl","informationTextEl","filterCountEl","resetBlogFilterBtn","blogInputEl","filterTagsContainerEl","filterTagsEls","blogCategorySelectorEl","blogSortbySelectorEl","blogContext","resultsData","totalResultPages","currentPage","filterCounter","performSearch","cPage","tags","el","urlObj","e","urlName","data","page","results","total","totalPages","from","to","doSearch","item","event","moreTagTriggerEl","filterMoreTagEls","target","evt","urlparams","queryparams","tagsArray","qsPage"],"mappings":"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"}