{"version":3,"file":"Src_Scripts_components_knowledge-search_js.d33b743dfd8ac1d51c63.js","sources":["webpack://Boerneraadet/./Src/Scripts/components/knowledge-search.js"],"sourcesContent":["import Masonry from 'masonry-layout';\r\n\r\nexport default class KnowledgeSearch {\r\n\r\n constructor(elm) {\r\n\r\n let msnry;\r\n\r\n const searchBox = elm.querySelector('#knowledge-search-term');\r\n const clearSearch = elm.querySelector('#clear-search');\r\n const newsText = elm.querySelector('#search-filter-news-text');\r\n const newsCheckbox = elm.querySelector('input[type=\"checkbox\"]#nyheder');\r\n const materialsText = elm.querySelector('#search-filter-materials-text');\r\n const materialsCheckbox = elm.querySelector('input[type=\"checkbox\"]#materials');\r\n const hearingResultsText = elm.querySelector('#search-filter-hearing-results-text');\r\n const hearingResultsCheckbox = elm.querySelector('input[type=\"checkbox\"]#hearinganswers');\r\n let yearsContainer = elm.querySelector('.swiper-wrapper');\r\n const currentSearchYear = elm.querySelectorAll('.search-filters__year'); // elm.querySelector('#current-search-year');\r\n const themeContainer = elm.querySelector('.search-filters__box__themes');\r\n const themeContainerMore = elm.querySelector('.search-filters__box__themes-more');\r\n const themeFilterButton = elm.querySelector('.search-filters__box__themes-button');\r\n const searchShowMoreButton = elm.querySelector('#search-show-more');\r\n const searchResultContainer = elm.querySelector('.search__results__items');\r\n const mobileFilter = elm.querySelector('#mobile-filter');\r\n const knowledgeFilter = elm.querySelector('#perform-knowledge-filter');\r\n\r\n let allThemes;\r\n let swiper;\r\n let activeYear;\r\n\r\n let page = 0;\r\n const pageSize = 10;\r\n\r\n let isScrolling;\r\n\r\n // Function to check zoom level and screen width\r\n function checkZoomAndWidth() {\r\n var zoom = Math.round((window.outerWidth / window.innerWidth) * 100);\r\n var screenWidth = window.innerWidth;\r\n\r\n // Check if zoom level is at least 400% and screen width is at most 330px\r\n if (zoom >= 400 && screenWidth <= 330) {\r\n // Get all elements with class 'search-result__boxes'\r\n var elements = document.querySelectorAll('.search-result__boxes');\r\n console.log(\"yes\");\r\n // Add a new class to each element\r\n elements.forEach(function (element) {\r\n element.classList.add('zoom-class');\r\n });\r\n }\r\n }\r\n\r\n // Call the function when the page loads\r\n window.onload = checkZoomAndWidth;\r\n\r\n // You may also need to listen for window resize events to update styles dynamically\r\n window.onresize = checkZoomAndWidth;\r\n\r\n function initializeMasonry() {\r\n const grid = elm.querySelector('.grid');\r\n if (grid) {\r\n msnry = new Masonry(grid, {\r\n itemSelector: '.search-result',\r\n gutter: 20,\r\n });\r\n }\r\n }\r\n\r\n function setGrid() {\r\n if (window.innerWidth > 1700) {\r\n elm.querySelector('.search__results__view-switch').style.display = 'flex';\r\n if (elm.querySelector('#gridview').classList.contains('selected')) {\r\n elm.querySelector('.search__results__items').classList.add('grid');\r\n }\r\n } else {\r\n elm.querySelector('.search__results__view-switch').style.display = 'none';\r\n elm.querySelector('.search__results__items').classList.remove('grid');\r\n }\r\n if (msnry) {\r\n searchResultContainer.classList.add('hidden');\r\n // msnry.destroy();\r\n setTimeout(() => {\r\n initializeMasonry();\r\n // need some time to get ready\r\n }, '1000');\r\n searchResultContainer.classList.remove('hidden');\r\n }\r\n }\r\n\r\n function updateThemeButtons() {\r\n while (themeContainer.firstChild) {\r\n themeContainer.removeChild(themeContainer.firstChild);\r\n }\r\n while (themeContainerMore.firstChild) {\r\n themeContainerMore.removeChild(themeContainerMore.firstChild);\r\n }\r\n for (const i in allThemes) {\r\n addTheme(allThemes[i].text, allThemes[i].isSelected, allThemes[i].isDisabled);\r\n }\r\n if (allThemes.length <= 6) { // was 10\r\n themeFilterButton.classList.add('hidden');\r\n } else {\r\n themeFilterButton.classList.remove('hidden');\r\n }\r\n }\r\n\r\n async function performSearch(addToResults, filter, gotoYear = '0') {\r\n\r\n if (searchBox.value.length > 0) {\r\n clearSearch.classList.remove('hidden');\r\n }\r\n\r\n if (!addToResults) {\r\n // clear search results\r\n while (searchResultContainer.firstChild) {\r\n searchResultContainer.removeChild(searchResultContainer.firstChild);\r\n }\r\n if (!filter) {\r\n page = 0;\r\n }\r\n } else {\r\n page += 1;\r\n }\r\n\r\n const templateArea = elm.querySelector('[data-templates]');\r\n const searchResultTemplate = templateArea.querySelector('[data-search-result-template]');\r\n const searchUrl = '/Umbraco/Api/Search/GetArticleSearchResults';\r\n const searchParams = new Array();\r\n const searchTerm = searchBox.value;\r\n\r\n if (searchTerm !== null && searchTerm !== '') {\r\n searchParams.push('searchTerm=' + searchTerm);\r\n }\r\n\r\n if (newsCheckbox.checked) {\r\n searchParams.push('categories=Nyheder');\r\n }\r\n\r\n if (materialsCheckbox.checked) {\r\n searchParams.push('categories=Materialer');\r\n }\r\n\r\n if (hearingResultsCheckbox.checked) {\r\n searchParams.push('categories=Høringssvar');\r\n }\r\n\r\n const selectedThemes = themeContainer.querySelectorAll('.search-filters__box__theme.selected');\r\n for (let i = 0; i < selectedThemes.length; i++) {\r\n searchParams.push('themes=' + selectedThemes[i].innerText);\r\n }\r\n\r\n const selectedThemesMore = themeContainerMore.querySelectorAll('.search-filters__box__theme.selected');\r\n for (let i = 0; i < selectedThemesMore.length; i++) {\r\n searchParams.push('themes=' + selectedThemesMore[i].innerText);\r\n }\r\n\r\n if (page > 0) {\r\n searchParams.push('page=' + page);\r\n }\r\n\r\n if (filter) {\r\n searchParams.push('takeAll=true');\r\n }\r\n\r\n if (gotoYear !== '0') {\r\n searchParams.push('gotoYear=' + gotoYear);\r\n }\r\n\r\n let searchParamString = '';\r\n\r\n if (searchParams.length > 0) {\r\n\r\n searchParamString = '?' + searchParams.join('&');\r\n const currentUrl = window.location.href.split('?')[0];\r\n window.history.replaceState({}, '', currentUrl + searchParamString);\r\n }\r\n\r\n const responseText = await fetch(searchUrl + searchParamString);\r\n const response = await responseText.json();\r\n const results = response.results;\r\n\r\n allThemes = response.themes;\r\n let currentArticleYear = '';\r\n let previousArticleYear = '';\r\n\r\n page = response.page;\r\n\r\n for (const i in results) {\r\n const elem = searchResultTemplate.cloneNode(true);\r\n elem.classList.add('grid-item');\r\n elem.classList.add('category-' + results[i].category.toLowerCase());\r\n const iconElement = templateArea.querySelector('.article__category-icon.' + results[i].category.toLowerCase().replace('ø', 'oe'));\r\n const newIconElement = iconElement.cloneNode(true);\r\n\r\n currentArticleYear = results[i].publishDate.slice(-4);\r\n\r\n if (currentArticleYear !== previousArticleYear && !document.querySelector('#year-' + currentArticleYear)) {\r\n elem.classList.add('anchor');\r\n elem.id = 'year-' + currentArticleYear;\r\n }\r\n\r\n elem.querySelector('.article__theme-text').innerText = results[i].themes[0];\r\n elem.querySelector('.article__category').innerText = results[i].category;\r\n\r\n if (results[i].imageUrl) {\r\n elem.querySelector('.search-result__image').src = results[i].imageUrl;\r\n if (results[i].media === 'pdf') {\r\n elem.querySelector('.search-result__image').classList.add('pdf');\r\n }\r\n\r\n elem.querySelector('.search-result__image').alt = results[i].altText;\r\n\r\n if (results[i].hasVideo) {\r\n const playButtonElement = templateArea.querySelector('.play-icon');\r\n const newPlayButtonElement = playButtonElement.cloneNode(true);\r\n elem.querySelector('.search-result__image-container').appendChild(newPlayButtonElement);\r\n }\r\n\r\n } else {\r\n elem.querySelector('.search-result__content').removeChild(elem.querySelector('.search-result__image-container'));\r\n }\r\n\r\n elem.querySelector('.article__category').insertBefore(newIconElement, elem.querySelector('.article__category').firstChild);\r\n elem.querySelector('.article__date').innerText = results[i].publishDate;\r\n elem.querySelector('.search-result__headline').innerText = results[i].headline;\r\n elem.querySelector('.search-result__text-extract').innerText = results[i].bodyText;\r\n elem.setAttribute('data-url', results[i].url);\r\n const url = results[i].url.slice();\r\n\r\n elem.addEventListener('click', () => {\r\n location.href = url;\r\n });\r\n\r\n elem.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n location.href = url;\r\n }\r\n });\r\n\r\n searchResultContainer.appendChild(elem);\r\n\r\n elem.classList.add('visible');\r\n previousArticleYear = currentArticleYear;\r\n }\r\n\r\n if (elm.getElementsByClassName('grid')) {\r\n initializeMasonry();\r\n }\r\n updateThemeButtons();\r\n\r\n updateYearButtons(response.years, Number(currentArticleYear), !addToResults);\r\n\r\n updateCategories(response.totalCategoryCount, response.filteredCategoryCount);\r\n\r\n if (results.length === 0) {\r\n searchResultContainer.innerHTML = '

Ingen søgeresultater fundet

';\r\n }\r\n\r\n if (response.totalResultCount <= pageSize || response.pagedResultCount >= response.filteredResultCount) {\r\n searchShowMoreButton.classList.add('hidden');\r\n } else {\r\n searchShowMoreButton.classList.remove('hidden');\r\n }\r\n if (gotoYear === '0') {\r\n // not if triggered by loading a new year from year button\r\n setYearScroll();\r\n }\r\n }\r\n // end perform search\r\n\r\n function clearFilters() {\r\n newsCheckbox.checked = false;\r\n materialsCheckbox.checked = false;\r\n hearingResultsCheckbox.checked = false;\r\n\r\n const selectedThemes = themeContainer.querySelectorAll('.search-filters__box__theme.selected');\r\n if (selectedThemes && selectedThemes.length > 0) {\r\n\r\n for (let i = 0; i < selectedThemes.length; i++) {\r\n selectedThemes[i].classList.remove('selected');\r\n }\r\n }\r\n }\r\n\r\n function addTheme(theme, isSelected) {\r\n const themeDiv = document.createElement('div');\r\n themeDiv.classList.add('search-filters__box__theme');\r\n themeDiv.setAttribute('tabindex', '0');\r\n themeDiv.innerText = theme;\r\n\r\n themeDiv.setAttribute('data-theme', theme);\r\n if (isSelected) {\r\n themeDiv.classList.add('selected');\r\n }\r\n themeDiv.addEventListener('click', function (e) {\r\n e.target.classList.toggle('selected');\r\n performSearch(false, true);\r\n });\r\n\r\n if (themeContainer.childNodes.length >= 6) { // was 10\r\n themeContainerMore.append(themeDiv);\r\n } else {\r\n themeContainer.append(themeDiv);\r\n }\r\n }\r\n\r\n elm.querySelector('#select-listview').addEventListener('click', e => {\r\n e.preventDefault();\r\n elm.querySelector('#gridview').classList.remove('selected');\r\n elm.querySelector('#listview').classList.add('selected');\r\n searchResultContainer.classList.add('hidden');\r\n searchResultContainer.classList.remove('grid');\r\n msnry.destroy();\r\n searchResultContainer.classList.remove('hidden');\r\n });\r\n\r\n elm.querySelector('#select-gridview').addEventListener('click', e => {\r\n e.preventDefault();\r\n elm.querySelector('#gridview').classList.add('selected');\r\n elm.querySelector('#listview').classList.remove('selected');\r\n searchResultContainer.classList.add('hidden');\r\n searchResultContainer.classList.add('grid');\r\n\r\n setTimeout(() => {\r\n initializeMasonry();\r\n // need some time to get ready\r\n }, '1000');\r\n searchResultContainer.classList.remove('hidden');\r\n });\r\n\r\n elm.querySelector('#perform-knowledge-search').addEventListener('click', () => {\r\n // new search, clear filters\r\n clearFilters();\r\n performSearch(false, false);\r\n });\r\n\r\n searchBox.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter') {\r\n // new search, clear filters\r\n clearFilters();\r\n performSearch(false, false);\r\n }\r\n });\r\n\r\n newsCheckbox.addEventListener('click', () => {\r\n performSearch(false, true);\r\n });\r\n\r\n materialsCheckbox.addEventListener('click', () => {\r\n performSearch(false, true);\r\n });\r\n\r\n hearingResultsCheckbox.addEventListener('click', () => {\r\n performSearch(false, true);\r\n });\r\n\r\n searchShowMoreButton.addEventListener('click', e => {\r\n e.preventDefault();\r\n if (!searchShowMoreButton.classList.contains('disabled')) {\r\n performSearch(true, false);\r\n }\r\n });\r\n\r\n knowledgeFilter.addEventListener('click', e => {\r\n e.preventDefault();\r\n elm.querySelector('.search-filters__box').classList.add('openmobile');\r\n document.querySelector('#mobile-filter').classList.add('hidden');\r\n document.querySelector('.search-filters__year-mobile').classList.add('hidden');\r\n document.body.classList.add('stop-scrolling');\r\n });\r\n\r\n mobileFilter.addEventListener('click', e => {\r\n const clickX = e.pageX - e.currentTarget.offsetLeft;\r\n e.preventDefault();\r\n if (clickX < 72) {\r\n window.scrollTo(0, 0);\r\n searchBox.focus();\r\n } else {\r\n elm.querySelector('.search-filters__box').classList.add('openmobile');\r\n document.querySelector('#mobile-filter').classList.add('hidden');\r\n document.querySelector('.search-filters__year-mobile').classList.add('hidden');\r\n document.body.classList.add('stop-scrolling');\r\n }\r\n });\r\n\r\n elm.querySelector('.search-filters__box__mobile-close').addEventListener('click', e => {\r\n e.preventDefault();\r\n elm.querySelector('.search-filters__box').classList.remove('openmobile');\r\n document.querySelector('.search-filters__year-mobile').classList.remove('hidden');\r\n document.body.classList.remove('stop-scrolling');\r\n });\r\n\r\n themeFilterButton.addEventListener('click', e => {\r\n e.preventDefault();\r\n if (themeContainerMore.classList.contains('hidden')) {\r\n themeContainerMore.style.removeProperty('display');\r\n setTimeout(() => themeContainerMore.classList.remove('hidden'), 0);\r\n elm.querySelector('#search-filters__box__themes-button-text').innerText = 'Vis færre temaer';\r\n } else {\r\n themeContainerMore.classList.add('hidden');\r\n elm.querySelector('#search-filters__box__themes-button-text').innerText = 'Vis flere temaer';\r\n }\r\n });\r\n\r\n themeContainerMore.addEventListener('transitionend', () => {\r\n if (themeContainerMore.classList.contains('hidden')) {\r\n themeContainerMore.style.display = 'none';\r\n }\r\n });\r\n\r\n clearSearch.addEventListener('click', () => {\r\n searchBox.value = '';\r\n clearSearch.classList.add('hidden');\r\n clearFilters();\r\n performSearch(false, false);\r\n });\r\n\r\n\r\n window.addEventListener('resize', () => {\r\n setGrid();\r\n });\r\n\r\n window.addEventListener('scroll', () => {\r\n\r\n window.clearTimeout(isScrolling);\r\n isScrolling = setTimeout(function () {\r\n\r\n setYearScroll();\r\n setMobileFilterButtonVisibility();\r\n\r\n }, 66);\r\n }, false);\r\n\r\n function setYearScroll() {\r\n // Display the current scrolled-to year above filter box and show the year's progress with the progress bar\r\n const anchors = elm.querySelectorAll('.anchor');\r\n const windowHeight = window.innerHeight;\r\n let b;\r\n if (anchors && anchors.length > 0) {\r\n for (let i = anchors.length - 1; i >= 0; i--) {\r\n // find last anchor visible in vindow\r\n const offset = anchors[i].getBoundingClientRect();\r\n const a = offset.top;\r\n if (a < windowHeight) {\r\n setYearActive2(anchors[i].id.substring(5));\r\n if (i < anchors.length - 1) {\r\n b = anchors[i + 1].getBoundingClientRect().top;\r\n } else {\r\n b = document.querySelector('.search__results__items').getBoundingClientRect().bottom;\r\n }\r\n let scrolledYear = (windowHeight - a) / (b - a) * 100;\r\n if (scrolledYear > 100) {\r\n scrolledYear = 100;\r\n }\r\n const progress = document.querySelectorAll('.search-filters__year-progress');\r\n for (let j = 0; j < progress.length; j++) {\r\n progress[j].style.width = Math.floor(scrolledYear) + '%';\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n function setMobileFilterButtonVisibility() {\r\n const offset = document.querySelector('.search__box').getBoundingClientRect();\r\n if (offset.bottom < 0) {\r\n document.querySelector('#mobile-filter').classList.remove('hidden');\r\n } else {\r\n document.querySelector('#mobile-filter').classList.add('hidden');\r\n }\r\n }\r\n\r\n function setYearActive(newYearDiv) {\r\n // Set selected year as active in filter box based on selected div\r\n if (activeYear !== newYearDiv.innerText) {\r\n activeYear = newYearDiv.innerText;\r\n yearsContainer.querySelector('.search-filters__box__year.selected').classList.remove('selected');\r\n newYearDiv.classList.toggle('selected');\r\n if (swiper) {\r\n swiper.slideTo(newYearDiv.getAttribute('data-index'));\r\n }\r\n currentSearchYear.forEach((year) => {\r\n year.innerText = newYearDiv.innerText;\r\n });\r\n }\r\n }\r\n\r\n function setYearActive2(newActiveYear) {\r\n // Set selected year as active in filter box, based on year as string\r\n if (activeYear !== newActiveYear) {\r\n currentSearchYear.forEach((year) => {\r\n year.innerText = newActiveYear;\r\n });\r\n\r\n activeYear = newActiveYear;\r\n yearsContainer = elm.querySelector('.swiper-wrapper');\r\n const selectedYearElement = yearsContainer.querySelector('.search-filters__box__year.selected');\r\n if (selectedYearElement) {\r\n selectedYearElement.classList.remove('selected');\r\n }\r\n\r\n const newYearDiv = yearsContainer.querySelector('.search-filters__box__year[data-year=\"' + newActiveYear + '\"]');\r\n if (newYearDiv) {\r\n newYearDiv.classList.toggle('selected');\r\n if (swiper) {\r\n swiper.slideTo(newYearDiv.getAttribute('data-index'));\r\n }\r\n }\r\n }\r\n }\r\n\r\n function updateYearButtons(years, earliestYear, setFirstYearActive) {\r\n\r\n // refresh the year buttons in filter box based on search results\r\n while (yearsContainer.firstChild) {\r\n yearsContainer.removeChild(yearsContainer.firstChild);\r\n }\r\n\r\n for (const i in years) {\r\n const yearButton = document.createElement('div');\r\n yearButton.classList.add('search-filters__box__year');\r\n yearButton.classList.add('swiper-slide');\r\n yearButton.setAttribute('data-index', i);\r\n yearButton.setAttribute('tabindex', '0');\r\n if (i === 0 && setFirstYearActive && !activeYear) {\r\n yearButton.classList.add('selected');\r\n } else if (activeYear && years[i] === activeYear) {\r\n yearButton.classList.add('selected');\r\n }\r\n\r\n yearButton.innerText = years[i];\r\n yearButton.setAttribute('data-year', years[i]);\r\n if (years[i] >= earliestYear) {\r\n yearButton.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n if (!e.target.classList.contains('selected')) {\r\n setYearActive(e.target);\r\n location.hash = '#year-' + e.target.innerText;\r\n }\r\n });\r\n } else {\r\n yearButton.addEventListener('click', function (e) {\r\n e.preventDefault();\r\n if (!e.target.classList.contains('selected')) {\r\n performSearch(false, true, e.target.innerText);\r\n setTimeout(() => {\r\n location.hash = '#year-' + e.target.innerText;\r\n setYearActive2(e.target.innerText);\r\n }, '1000');\r\n }\r\n });// yearButton.classList.add('disabled');\r\n }\r\n yearsContainer.append(yearButton);\r\n }\r\n swiper = window.cr.loadedComponents['knowledge-swiper'][0].create();\r\n }\r\n\r\n function updateCategories(totalCategoryCount, filteredCategoryCount) {\r\n const input = document.querySelector('#knowledge-search-term').value;\r\n\r\n if (totalCategoryCount.newsCount > 0 && input !== '') {\r\n newsText.innerHTML = 'Nyheder (' + filteredCategoryCount.newsCount + ')';\r\n newsCheckbox.disabled = false;\r\n } else {\r\n newsText.innerHTML = 'Nyheder';\r\n if (totalCategoryCount.newsCount > 0) {\r\n newsCheckbox.disabled = false;\r\n } else {\r\n newsCheckbox.disabled = true;\r\n }\r\n }\r\n\r\n if (totalCategoryCount.materialCount > 0 && input !== '') {\r\n materialsText.innerHTML = 'Materialer (' + filteredCategoryCount.materialCount + ')';\r\n materialsCheckbox.disabled = false;\r\n } else {\r\n materialsText.innerHTML = 'Materialer';\r\n if (totalCategoryCount.materialCount > 0) {\r\n materialsCheckbox.disabled = false;\r\n } else {\r\n materialsCheckbox.disabled = true;\r\n }\r\n }\r\n\r\n if (totalCategoryCount.hearingResultCount > 0 && input !== '') {\r\n hearingResultsText.innerHTML = 'Høringssvar (' + filteredCategoryCount.hearingResultCount + ')';\r\n hearingResultsCheckbox.disabled = false;\r\n } else {\r\n hearingResultsText.innerHTML = 'Høringssvar';\r\n if (totalCategoryCount.hearingResultCount > 0) {\r\n hearingResultsCheckbox.disabled = false;\r\n } else {\r\n hearingResultsCheckbox.disabled = true;\r\n }\r\n }\r\n }\r\n\r\n // get querystring parameters\r\n const params = new URLSearchParams(window.location.search);\r\n\r\n if (params.has('searchTerm')) {\r\n searchBox.value = params.get('searchTerm');\r\n }\r\n\r\n if (params.has('categories')) {\r\n\r\n params.getAll('categories').forEach(category => {\r\n\r\n if (category.toLowerCase() === 'nyheder') {\r\n newsCheckbox.checked = true;\r\n } else if (category.toLowerCase() === 'høringssvar') {\r\n hearingResultsCheckbox.checked = true;\r\n } else if (category.toLowerCase() === 'materialer') {\r\n materialsCheckbox.checked = true;\r\n }\r\n });\r\n }\r\n\r\n if (params.has('themes')) {\r\n params.getAll('themes').forEach(theme => {\r\n // add theme as selected\r\n addTheme(theme, true, false);\r\n });\r\n }\r\n\r\n let gotoYear = 0;\r\n if (params.has('gotoYear')) {\r\n gotoYear = params.get('gotoYear');\r\n }\r\n\r\n setGrid();\r\n performSearch(false, false, gotoYear);\r\n }\r\n}\r\n\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;;;AACA;AAEA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAFA;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;AACA;AAEA;AAEA;AACA;AAEA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAxnBA;AACA;A;;A;;A","sourceRoot":""}