for the image content container\r\n let imageContentContainerDiv = document.createElement('div');\r\n imageContentContainerDiv.classList.add('card__event__image-content--container');\r\n imageContentDiv.appendChild(imageContentContainerDiv);\r\n \r\n // Create the nested
for the image\r\n let imageDiv = document.createElement('div');\r\n imageDiv.classList.add('card__event__image-content__image');\r\n imageContentContainerDiv.appendChild(imageDiv);\r\n \r\n // Create the
![]()
element for the image\r\n let image = document.createElement('img');\r\n image.classList.add('ls-is-cached', 'lazyloaded');\r\n image.setAttribute('data-src', event.event.imageUrls.small);\r\n image.setAttribute('alt', 'Event billede');\r\n image.setAttribute('src', event.event.imageUrls.small);\r\n imageDiv.appendChild(image);\r\n \r\n // Create the nested
for the date\r\n let dateDiv = document.createElement('div');\r\n dateDiv.classList.add('card__event__image-content__date');\r\n imageContentDiv.appendChild(dateDiv);\r\n \r\n // Create the
elements for the date\r\n let day = document.createElement('p');\r\n day.classList.add('day');\r\n day.textContent = `${event.start.substring(8,10)}.`;\r\n dateDiv.appendChild(day);\r\n \r\n let month = document.createElement('p');\r\n month.classList.add('month');\r\n let monthSubstring = parseInt(event.start.substring(5,7))\r\n let months = ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.']\r\n month.textContent = months[monthSubstring - 1];\r\n dateDiv.appendChild(month);\r\n \r\n\r\n }\r\n\r\n // Create the
element for the event content\r\n let contentDiv = document.createElement('div');\r\n contentDiv.classList.add('card__event__content');\r\n eventCard.appendChild(contentDiv);\r\n\r\n // Create the
element for the text content\r\n let textDiv = document.createElement('div');\r\n textDiv.classList.add('card__event__content__text');\r\n contentDiv.appendChild(textDiv);\r\n\r\n // Create the
element for the title\r\n let title = document.createElement('h3');\r\n title.textContent = event.event.title;\r\n textDiv.appendChild(title);\r\n\r\n // Create the
element for the description\r\n let description = document.createElement('p');\r\n description.textContent = event.event.excerpt\r\n textDiv.appendChild(description);\r\n\r\n // Create the
element for the icon list\r\n let listIconsDiv = document.createElement('div');\r\n listIconsDiv.classList.add('list__icons', 'list--dividers');\r\n contentDiv.appendChild(listIconsDiv);\r\n\r\n // Create the
element for the icon list\r\n let ul = document.createElement('ul');\r\n \r\n // Create date li\r\n let liDate = document.createElement('li');\r\n \r\n // Create an SVG element\r\n let dateSvg = document.createElement('svg');\r\n dateSvg.classList.add('svg-date');\r\n dateSvg.setAttribute('width', '19');\r\n dateSvg.setAttribute('height', '21');\r\n dateSvg.setAttribute('viewBox', '0 0 19 21');\r\n dateSvg.setAttribute('fill', 'none');\r\n dateSvg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n \r\n // Create and append a element to the SVG\r\n let path = document.createElement('path');\r\n path.setAttribute('fill-rule', 'evenodd');\r\n path.setAttribute('clip-rule', 'evenodd');\r\n path.setAttribute('d', 'M3.04545 4.38635C2.31421 4.38635 1.75 4.95057 1.75 5.68181V17.9545C1.75 18.6858 2.31421 19.25 3.04545 19.25H15.3182C16.0494 19.25 16.6136 18.6858 16.6136 17.9545V5.68181C16.6136 4.95057 16.0494 4.38635 15.3182 4.38635H3.04545ZM0.25 5.68181C0.25 4.12214 1.48579 2.88635 3.04545 2.88635H15.3182C16.8778 2.88635 18.1136 4.12214 18.1136 5.68181V17.9545C18.1136 19.5142 16.8778 20.75 15.3182 20.75H3.04545C1.48579 20.75 0.25 19.5142 0.25 17.9545V5.68181Z');\r\n path.setAttribute('fill', '#000');\r\n dateSvg.appendChild(path);\r\n \r\n // Create and append a element to the SVG\r\n let rect = document.createElement('rect');\r\n rect.setAttribute('x', '1');\r\n rect.setAttribute('y', '4');\r\n rect.setAttribute('width', '16');\r\n rect.setAttribute('height', '6');\r\n rect.setAttribute('fill', '#000');\r\n dateSvg.appendChild(rect);\r\n \r\n // Create and append a element to the SVG\r\n let path2 = document.createElement('path');\r\n path2.setAttribute('fill-rule', 'evenodd');\r\n path2.setAttribute('clip-rule', 'evenodd');\r\n path2.setAttribute('d', 'M4.27246 0.25C4.68667 0.25 5.02246 0.585786 5.02246 1V4.27273C5.02246 4.68694 4.68667 5.02273 4.27246 5.02273C3.85825 5.02273 3.52246 4.68694 3.52246 4.27273V1C3.52246 0.585786 3.85825 0.25 4.27246 0.25Z');\r\n path2.setAttribute('fill', '#000');\r\n dateSvg.appendChild(path2);\r\n\r\n // Create and append a element to the SVG\r\n let path3 = document.createElement('path');\r\n path3.setAttribute('fill-rule', 'evenodd');\r\n path3.setAttribute('clip-rule', 'evenodd');\r\n path3.setAttribute('d', 'M14.0908 0.25C14.505 0.25 14.8408 0.585786 14.8408 1V4.27273C14.8408 4.68694 14.505 5.02273 14.0908 5.02273C13.6766 5.02273 13.3408 4.68694 13.3408 4.27273V1C13.3408 0.585786 13.6766 0.25 14.0908 0.25Z');\r\n path3.setAttribute('fill', '#000');\r\n dateSvg.appendChild(path3);\r\n\r\n liDate.appendChild(dateSvg)\r\n let month = document.createElement('p');\r\n let months = ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun.', 'jul.', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.']\r\n //if only one date\r\n\r\n let monthSubstring = parseInt(event.start.substring(5,7))\r\n liDate.innerHTML += `${event.start.substring(8,10)}. ${month.textContent = months[monthSubstring - 1]} ${event.start.substring(0, 4)}`\r\n\r\n \r\n ul.appendChild(liDate)\r\n\r\n // Create time li\r\n let liTime = document.createElement('li');\r\n\r\n // Create time svg\r\n let timeSvg = document.createElement('svg');\r\n timeSvg.classList.add('svg-time');\r\n timeSvg.setAttribute('width', '19')\r\n timeSvg.setAttribute('height', '19')\r\n timeSvg.setAttribute('viewBox', '0 0 19 19')\r\n timeSvg.setAttribute('fill', 'none')\r\n timeSvg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n\r\n let timeCircle = document.createElement('circle');\r\n timeCircle.setAttribute('cx', '9.5')\r\n timeCircle.setAttribute('cy', '9.5')\r\n timeCircle.setAttribute('r', '8.75')\r\n timeCircle.setAttribute('stroke', '#000')\r\n timeCircle.setAttribute('stroke-width', '1.5')\r\n timeSvg.appendChild(timeCircle)\r\n\r\n let timePath = document.createElement('path')\r\n timePath.setAttribute('d', 'M9.02539 4.27502V10.45L11.8754 13.3')\r\n timePath.setAttribute('stroke', '#000')\r\n timePath.setAttribute('stroke-width', '1.5')\r\n timeSvg.appendChild(timePath)\r\n\r\n liTime.appendChild(timeSvg);\r\n\r\n //get times\r\n let startTime = event.start.substring(11, 16).replace(':','.')\r\n let endTime = event.end.substring(11, 16).replace(':','.')\r\n if(startTime == '00.00' && endTime == '23.59'){\r\n liTime.innerHTML += 'Hele dagen'\r\n } else {\r\n liTime.innerHTML += `${startTime} - ${endTime}`\r\n }\r\n\r\n ul.appendChild(liTime)\r\n\r\n // Create location li\r\n let liLocation = document.createElement('li');\r\n\r\n //Create locationSvg\r\n let locationSvg = document.createElement('svg');\r\n locationSvg.classList.add('svg-location');\r\n locationSvg.setAttribute('width', '16')\r\n locationSvg.setAttribute('height', '21')\r\n locationSvg.setAttribute('viewBox', '0 0 16 21')\r\n locationSvg.setAttribute('fill', 'none')\r\n locationSvg.setAttribute('xmlns', 'http://www.w3.org/2000/svg')\r\n\r\n let locationPath = document.createElement('path');\r\n locationPath.setAttribute('d', 'M8 0C3.6 0 0 3.6 0 8C0 9.73333 0.533333 11.4 1.6 12.8L8 21L14.4 12.8C15.4667 11.4 16 9.73333 16 8C16 3.6 12.4 0 8 0ZM8 10.8667C6.26667 10.8667 4.8 9.46667 4.8 7.66667C4.8 6 6.26667 4.53333 8 4.53333C9.73333 4.53333 11.2 5.93333 11.2 7.73333C11.2 9.46667 9.73333 10.8667 8 10.8667Z')\r\n locationPath.setAttribute('fill', '#000')\r\n locationSvg.appendChild(locationPath)\r\n\r\n liLocation.appendChild(locationSvg)\r\n liLocation.innerHTML += `${event.event.location ? event.event.location.name : ''}`\r\n\r\n ul.appendChild(liLocation)\r\n\r\n listIconsDiv.appendChild(ul);\r\n\r\n\r\n \r\n //append to dom\r\n col.appendChild(eventCard);\r\n \r\n targetContainer.appendChild(col)\r\n \r\n\r\n}\r\n\r\nexport default aarhusguidenConstructCard\r\n\r\n","import aarhusguidenConstructCard from \"./aarhusguiden-construct-card\";\r\n\r\nexport function aarhusguidenFilter(){\r\n if(document.querySelector('.js-aarhusguiden')){\r\n const currentUrl = window.location.origin;\r\n const baseUrl = 'https://api.detskeriaarhus.dk/api/v2/daily_occurrences'\r\n const accessToken = 'iw1pvLnjtBM0AvNG7TeH7ZT4ukNYgpdAWxUZ96Rc';\r\n\r\n const element = document.querySelector('.js-aarhusguiden')\r\n $( \"#aarhusguiden-datepicker-from\" ).datepicker({\r\n onSelect: datePickerFrom,\r\n dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],\r\n firstDay: 1,\r\n monthNames: [ \"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\" ]\r\n });\r\n $( \"#aarhusguiden-datepicker-to\" ).datepicker({\r\n onSelect: datePickerTo,\r\n dayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n dayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],\r\n firstDay: 1,\r\n monthNames: [ \"Januar\", \"Februar\", \"Marts\", \"April\", \"Maj\", \"Juni\", \"Juli\", \"August\", \"September\", \"Oktober\", \"November\", \"December\" ]\r\n });\r\n\r\n //set \"to\" date to x number of days ahead\r\n const daysAhead = element.getAttribute('data-days') ? parseInt(element.getAttribute('data-days')) : 7;\r\n const dateAhead = new Date();\r\n dateAhead.setDate(dateAhead.getDate() + daysAhead);\r\n $(\"#aarhusguiden-datepicker-to\").datepicker(\"setDate\", dateAhead);\r\n\r\n //fetch variables\r\n let tagsParam = [];\r\n let dateFromParam = '';\r\n let dateToParam = '';\r\n let numberParam = element.getAttribute('data-number') ? element.getAttribute('data-number') : 6;\r\n let pageParam = 1;\r\n let fetchUrl = '';\r\n let dataUrl = element.getAttribute('data-url') ? element.getAttribute('data-url') : '';\r\n let totalItems;\r\n let searchParam = false;\r\n let accessParam = element.getAttribute('data-access') ? `&event.publicAccess=${element.getAttribute('data-access')}` : '';\r\n let locationIdParam = element.getAttribute('data-location') ? `&event.location.entityId=${encodeURIComponent(element.getAttribute('data-location'))}` : '';\r\n let organizerIdParam = element.getAttribute('data-organizer') ? `&event.organizer.entityId=${encodeURIComponent(element.getAttribute('data-organizer'))}` : '';\r\n\r\n //get default dateParams\r\n // Extract year, month, and day components\r\n let currentDate = new Date();\r\n function convertDate(date, variable){\r\n let year = date.getFullYear();\r\n let month = ('0' + (date.getMonth() + 1)).slice(-2); // Adding 1 because getMonth() returns zero-based month index\r\n let day = ('0' + date.getDate()).slice(-2);\r\n return year + '-' + month + '-' + day;\r\n }\r\n\r\n // Format the date as \"YYYY-MM-DD\"\r\n const defaultDateFrom = convertDate(currentDate) + 'T00:00:00Z'\r\n const defaultDateTo = convertDate(dateAhead) + 'T23:59:59Z'\r\n\r\n dateFromParam = encodeURIComponent(defaultDateFrom);\r\n dateToParam = encodeURIComponent(defaultDateTo);\r\n\r\n //element variables\r\n const cardsContainer = document.querySelector('.aarhusguiden__cards-container .row');\r\n const searchFormElement = document.querySelector('.aarhusguiden__search-container').querySelector('form');\r\n\r\n //default tagsParam (all available tags in all categories)\r\n const tagElements = document.querySelectorAll('.js-aarhusguiden-category')\r\n\r\n // If default tag selection is supposed to be all used tags, this code can be used\r\n let defaultTags = Array.from(tagElements).map(item => {\r\n let tagString = item.getAttribute('data-tags');\r\n return tagString.replace(/[a-zA-ZøØæÆåÅ\\s]/g, match => encodeURIComponent(match));\r\n }).join(',')\r\n\r\n //If default tag selection is supposed to be all events, this code can be used\r\n /*let defaultTags = ''*/\r\n\r\n tagsParam = defaultTags\r\n\r\n //init fetch\r\n fetchData()\r\n\r\n //tagElements onclick function\r\n const handleTagClick = (item) => {\r\n clear();\r\n\r\n item.classList.toggle('tag--underline')\r\n\r\n // Get all currently selected tags\r\n let selectedTagsElements = element.querySelectorAll('.tag--underline');\r\n let selectedTags = Array.from(selectedTagsElements).map(item => {\r\n let singleTagsString = item.getAttribute('data-tags');\r\n // Encode letters and spaces in the tag string\r\n return singleTagsString.replace(/[a-zA-ZøØæÆåÅ\\s]/g, match => encodeURIComponent(match));\r\n }).join(',');\r\n\r\n //if no selected tags, return to default tags\r\n if(selectedTags.length != 0){\r\n tagsParam = selectedTags;\r\n } else {\r\n tagsParam = defaultTags;\r\n }\r\n\r\n //reset page param\r\n pageParam = 1;\r\n\r\n //fetch from API based on new tags\r\n fetchData();\r\n }\r\n\r\n //tags onclick\r\n tagElements.forEach((item) => {\r\n //add event listener\r\n item.addEventListener('click', () => handleTagClick(item))\r\n item.addEventListener('keydown', (event) => {\r\n if(event.key == 'Enter'){\r\n handleTagClick(item)\r\n }\r\n })\r\n })\r\n\r\n //clear cards container and reset page param\r\n function clear(){\r\n pageParam = 1;\r\n searchParam = false;\r\n tagsParam = defaultTags;\r\n cardsContainer.innerHTML = ''\r\n\r\n }\r\n\r\n //search input\r\n searchFormElement.addEventListener('submit', (e) => {\r\n e.preventDefault();\r\n pageParam = 1;\r\n cardsContainer.innerHTML = '';\r\n searchParam = encodeURIComponent(e.target[0].value);\r\n fetchData();\r\n })\r\n\r\n //convert output date to API date format (DD/MM/YYYY to YYYY-MM-DD)\r\n function convertDateFormat(inputDate){\r\n const year = inputDate.substring(6,10);\r\n const month = inputDate.substring(0,2)\r\n const day = inputDate.substring(3,5)\r\n return `${year}-${month}-${day}`\r\n }\r\n\r\n //date from onclick\r\n function datePickerFrom(dateText){\r\n dateFromParam = convertDateFormat(dateText)\r\n dateFromParam += 'T00:00:00Z';\r\n dateFromParam = encodeURIComponent(dateFromParam);\r\n clear();\r\n fetchData()\r\n }\r\n\r\n //date to onclick\r\n function datePickerTo(dateText){\r\n dateToParam = convertDateFormat(dateText)\r\n dateToParam += 'T23:59:59Z'\r\n dateToParam = encodeURIComponent(dateToParam)\r\n clear();\r\n fetchData();\r\n }\r\n\r\n //today button\r\n const todayBtnElement = document.querySelector('.js-aarhusguiden-today-btn');\r\n todayBtnElement.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n //reset page param\r\n clear();\r\n $('#aarhusguiden-datepicker-from').datepicker('setDate', new Date());\r\n $('#aarhusguiden-datepicker-to').datepicker('setDate', new Date());\r\n\r\n dateFromParam = encodeURIComponent(defaultDateFrom);\r\n dateToParam = defaultDateFrom.substring(0,11) + '23:59:59Z';\r\n dateToParam = encodeURIComponent(dateToParam)\r\n\r\n //fetch data from API\r\n fetchData();\r\n })\r\n\r\n //reset button\r\n const resetBtnElement = document.querySelector('.js-aarhusguiden-reset-btn');\r\n resetBtnElement.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n //reset page param\r\n clear();\r\n\r\n $('#aarhusguiden-datepicker-from').datepicker('setDate', new Date());\r\n $(\"#aarhusguiden-datepicker-to\").datepicker(\"setDate\", dateAhead);\r\n\r\n tagElements.forEach((item) => {\r\n item.classList.remove('tag--underline')\r\n })\r\n dateFromParam = encodeURIComponent(defaultDateFrom)\r\n dateToParam = encodeURIComponent(defaultDateTo)\r\n\r\n //fetch data again\r\n fetchData();\r\n\r\n })\r\n\r\n //fetch data function\r\n async function fetchData(){\r\n\r\n //separate fetch for search only if search param is set\r\n if(searchParam){\r\n fetchUrl = `${baseUrl}?page=${pageParam}&itemsPerPage=${numberParam}&event.title=${searchParam}${locationIdParam}${organizerIdParam}&start=${encodeURIComponent(defaultDateFrom)}`\r\n const response = await fetch(fetchUrl, {\r\n headers: {\r\n 'Origin': currentUrl,\r\n 'X-Api-Key': accessToken\r\n }\r\n })\r\n if(response.ok){\r\n const events = await response.json()\r\n totalItems = events['hydra:member'];\r\n totalItems.forEach((item) => {\r\n aarhusguidenConstructCard(item, cardsContainer, dataUrl)\r\n })\r\n }\r\n } else {\r\n fetchUrl = `${baseUrl}?page=${pageParam}&itemsPerPage=${numberParam}&event.tags=${encodeURIComponent(tagsParam)}&start=${dateFromParam}&end=${dateToParam}${locationIdParam}${organizerIdParam}${accessParam}`\r\n const response = await fetch(fetchUrl, {\r\n headers: {\r\n 'Origin': currentUrl,\r\n 'X-Api-Key': accessToken\r\n }\r\n })\r\n if(response.ok){\r\n const events = await response.json()\r\n totalItems = events['hydra:member'];\r\n totalItems.forEach((item) => {\r\n aarhusguidenConstructCard(item, cardsContainer, dataUrl)\r\n })\r\n }\r\n }\r\n\r\n pageParam ++;\r\n }\r\n\r\n //load more\r\n const loadMoreBtnElement = document.querySelector('.js-aarhusguiden-load-more-btn')\r\n loadMoreBtnElement.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n fetchData();\r\n })\r\n\r\n }\r\n}\r\n\r\nexport default aarhusguidenFilter;\r\n","import aarhusguidenConstructCard from \"./aarhusguiden-construct-card\";\r\n\r\nexport function aarhusguidenList(){\r\n if(document.querySelector('.js-aarhusguiden--list')){\r\n document.querySelectorAll('.js-aarhusguiden--list').forEach((element) => {\r\n const currentTime = new Date();\r\n const dateString = currentTime.toISOString().substring(0, 11) + '00:00:00+00:00';\r\n\r\n //const element = document.querySelector('.js-aarhusguiden--list');\r\n const currentUrl = window.location.origin;\r\n const baseUrl = 'https://api.detskeriaarhus.dk/api/v2/daily_occurrences'\r\n const baseUrlHighlight = 'https://api.detskeriaarhus.dk/api/v2/occurrences'\r\n const accessToken = 'iw1pvLnjtBM0AvNG7TeH7ZT4ukNYgpdAWxUZ96Rc';\r\n\r\n //- Collect fetch params from DOM\r\n let numberParam = element.dataset.number ? `&itemsPerPage=${element.dataset.number}` : '&itemsPerPage=3';\r\n const tagsParam = element.dataset.tags ? `&event.tags=${encodeURIComponent(element.dataset.tags)}` : '';\r\n const accessParam = element.dataset.access ? `&event.publicAccess=${element.dataset.access}` : '';\r\n //const postalcodeParam = element.dataset.postalcode ? element.dataset.postalcode : '';\r\n const locationParam = element.dataset.location ? `&event.location.entityId=${encodeURIComponent(element.dataset.location)}` : '';\r\n const organizerParam = element.dataset.organizer ? `&event.organizer.entityId=${encodeURIComponent(element.dataset.organizer)}` : '';\r\n const startParam = `&start=${encodeURIComponent(dateString)}`\r\n\r\n const dataUrl = element.dataset.url ? element.dataset.url : '';\r\n //- Fetch resource\r\n let url = baseUrl + '?page=1' + numberParam + tagsParam + accessParam + locationParam + organizerParam + startParam;\r\n const row = element.querySelector('.row--grid')\r\n \r\n //- Fetch highlight card if applicable\r\n if(element.getAttribute('data-highlight')){\r\n const highlightUrl = baseUrlHighlight + '/' + element.getAttribute('data-highlight');\r\n //- Fetch one less normal card\r\n numberParam = element.dataset.number ? `&itemsPerPage=${element.dataset.number - 1}` : '&itemsPerPage=2'\r\n\r\n async function fetchHighlight(){\r\n const response = await fetch(highlightUrl, {\r\n headers: {\r\n 'Origin': currentUrl,\r\n 'X-Api-Key': accessToken\r\n }\r\n });\r\n const highlight = await response.json();\r\n aarhusguidenConstructCard(highlight['hydra:member'][0], row, dataUrl);\r\n\r\n url = baseUrl + '?page=1' + numberParam + tagsParam + accessParam + locationParam + organizerParam + startParam;\r\n fetchEvents()\r\n }\r\n fetchHighlight()\r\n } else {\r\n fetchEvents()\r\n }\r\n \r\n\r\n\r\n async function fetchEvents(){\r\n const response = await fetch(url, {\r\n headers: {\r\n 'Origin': currentUrl,\r\n 'X-Api-Key': accessToken\r\n }\r\n });\r\n const events = await response.json()\r\n //Construct cards of each returned event\r\n events['hydra:member'].forEach((event) => {\r\n aarhusguidenConstructCard(event, row, dataUrl)\r\n })\r\n }\r\n \r\n //-fetchEvents()\r\n })\r\n }\r\n\r\n\r\n\r\n\r\n}\r\n\r\nexport default aarhusguidenList;\r\n","import aarhusguidenEventPage from \"../modules/third-party/aarhusguiden/aarhusguiden-event-page\";\r\nimport aarhusguidenFilter from \"../modules/third-party/aarhusguiden/aarhusguiden-filter\";\r\nimport aarhusguidenList from \"../modules/third-party/aarhusguiden/aarhusguiden-list\"\r\n\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n aarhusguidenList();\r\n aarhusguidenEventPage();\r\n aarhusguidenFilter();\r\n})","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 513;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t513: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcabanaboiler\"] = self[\"webpackChunkcabanaboiler\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], function() { return __webpack_require__(6136); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","delegateYield","asyncGeneratorStep","event","targetContainer","url","col","document","createElement","classList","add","eventCard","setAttribute","concat","entityId","imageContentDiv","appendChild","imageUrls","imageContentContainerDiv","imageDiv","image","small","dateDiv","day","textContent","start","substring","month","monthSubstring","parseInt","contentDiv","textDiv","title","description","excerpt","listIconsDiv","ul","liDate","dateSvg","path","rect","path2","path3","innerHTML","liTime","timeSvg","timeCircle","timePath","startTime","replace","endTime","end","liLocation","locationSvg","locationPath","location","_asyncToGenerator","arguments","apply","_next","_throw","addEventListener","querySelector","querySelectorAll","element","dateString","Date","toISOString","currentUrl","window","origin","baseUrl","accessToken","numberParam","dataset","number","tagsParam","tags","encodeURIComponent","accessParam","access","locationParam","organizerParam","organizer","startParam","dataUrl","row","getAttribute","fetchHighlight","_ref","_callee","response","highlight","_context","fetch","highlightUrl","headers","json","aarhusguidenConstructCard","fetchEvents","baseUrlHighlight","_fetchEvents","_callee2","_context2","id","URL","searchParams","get","fetchData","data","mainElement","imgSrc","bannerSection","banner","imageContainer","img","article","container","col1","articleContainer","articleWrapper","row2","colMain","heroArticle","heroArticleText","heroTagsOver","tagsContainer","h1","richText","colSide","sidebox","sideboxDynamic","sideboxTitle","listIcons","months","dateLi","timeLi","locationLi","address","postalcode","city","locationString","priceLi","priceSvg","pricePath1","pricePath2","linkLi","linkSvg","linkPath1","linkPath2","eventLink","btnContainer","btnLink","large","item","tag","capitalizedItem","toUpperCase","occurrences","year","string","street","postalCode","ticketPriceRange","ticketUrl","aarhusguidenEventPage","convertDate","date","variable","getFullYear","getMonth","getDate","clear","pageParam","searchParam","defaultTags","cardsContainer","convertDateFormat","inputDate","_response","fetchUrl","locationIdParam","organizerIdParam","defaultDateFrom","ok","dateFromParam","dateToParam","$","datepicker","onSelect","dateText","dayNames","dayNamesMin","firstDay","monthNames","daysAhead","dateAhead","setDate","defaultDateTo","searchFormElement","tagElements","Array","from","map","match","join","handleTagClick","toggle","selectedTagsElements","selectedTags","key","preventDefault","target","remove","aarhusguidenFilter","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","loaded","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","splice","getter","__esModule","definition","globalThis","this","Function","obj","prop","nmd","paths","children","b","baseURI","self","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","bind","nc","__webpack_exports__"],"sourceRoot":""}