{"version":3,"file":"frontend-Cb7XI074.js","sources":["../assets/js/components/header.js","../assets/js/components/space-archive.js","../assets/js/components/post-archive.js","../assets/js/components/notification-bar.js","../assets/js/components/gravityforms.js","../assets/js/frontend.js"],"sourcesContent":["export function headerInit() {\n\tdocument.addEventListener( 'DOMContentLoaded', function() {\n\t\t// Header open logic\n\t\tconst openMobileHeader = () => {\n\t\t\tdocument.getElementById( 'site-navigation' ).classList.toggle( 'active' );\n\t\t\tdocument.getElementById( 'mobile-nav-close' ).focus();\n\t\t};\n\t\tconst closeMobileHeader = () => {\n\t\t\tdocument.getElementById( 'site-navigation' ).classList.toggle( 'active' );\n\t\t\tdocument.getElementById( 'mobile-nav-open' ).focus();\n\t\t};\n\n\t\tdocument.getElementById( 'mobile-nav-open' ).addEventListener( 'click', openMobileHeader );\n\t\tdocument.getElementById( 'mobile-nav-close' ).addEventListener( 'click', closeMobileHeader );\n\n\t\t// Header scroll logic\n\t\tlet prevScroll = window.scrollY;\n\t\tconst header = document.querySelector( 'header' );\n\t\tconst top = header.offsetTop + 130;\n\n\t\twindow.onscroll = () => {\n\t\t\tconst currentScroll = window.scrollY;\n\n\t\t\tif ( currentScroll >= top ) {\n\t\t\t\theader.classList.add( 'sticky' );\n\t\t\t} else {\n\t\t\t\theader.classList.remove( 'sticky' );\n\t\t\t}\n\n\t\t\tif ( prevScroll >= currentScroll ) {\n\t\t\t\theader.style.top = '0';\n\t\t\t} else {\n\t\t\t\theader.style.top = '-300px';\n\t\t\t}\n\n\t\t\tprevScroll = currentScroll;\n\t\t};\n\n\t\tconst search = document.getElementById( 'header-search' );\n\t\tconst searchLabel = search.getElementsByClassName( 'site-header-menu-search-label' )[ 0 ];\n\t\tconst searchInput = search.getElementsByClassName( 'search-field' )[ 0 ];\n\t\tconst searchSubmit = search.getElementsByClassName( 'search-submit' )[ 0 ];\n\t\tconst searchClose = search.getElementsByClassName( 'search-close' )[ 0 ];\n\n\t\tconst openSearch = () => {\n\t\t\tsearch.classList.add( 'search__open' );\n\t\t\tsearchInput.focus();\n\t\t\tif ( ! searchInput.value ) {\n\t\t\t\tsearchLabel.style.display = 'none';\n\t\t\t} else {\n\t\t\t\tsearchLabel.style.display = 'block';\n\t\t\t}\n\t\t};\n\n\t\tconst closeSearch = () => {\n\t\t\tsearch.classList.remove( 'search__open' );\n\t\t\tsearchLabel.style.display = 'flex';\n\t\t};\n\n\t\tsearchLabel.onclick = function( e ) {\n\t\t\te.preventDefault();\n\t\t\tif ( search.classList.contains( 'search__open' ) ) {\n\t\t\t\tsearchSubmit.click();\n\t\t\t} else {\n\t\t\t\topenSearch();\n\t\t\t}\n\n\t\t\te.stopPropagation();\n\t\t};\n\t\tsearchInput.onclick = function( e ) {\n\t\t\topenSearch();\n\t\t\te.stopPropagation();\n\t\t};\n\t\tsearchInput.onkeydown = function( e ) {\n\t\t\tif ( ( e.key === 'Backspace' || e.key === 'Delete' ) && searchInput.value.length <= 1 ) {\n\t\t\t\tsearchLabel.style.display = 'none';\n\t\t\t} else {\n\t\t\t\tsearchLabel.style.display = 'block';\n\t\t\t}\n\t\t};\n\t\tsearchInput.onkeyup = function() {\n\t\t\tif ( searchInput.value.length === 0 ) {\n\t\t\t\tsearchLabel.style.display = 'none';\n\t\t\t} else {\n\t\t\t\tsearchLabel.style.display = 'block';\n\t\t\t}\n\t\t};\n\t\tsearchSubmit.onclick = function( e ) {\n\t\t\tif ( ! search.classList.contains( 'search__open' ) ) {\n\t\t\t\te.preventDefault();\n\t\t\t\topenSearch();\n\t\t\t}\n\t\t\te.stopPropagation();\n\t\t};\n\t\tsearchClose.onclick = function() {\n\t\t\tcloseSearch();\n\t\t};\n\n\t\tdocument.addEventListener( 'click', function() {\n\t\t\tif ( window.innerWidth > 767 && document.getSelection().toString().length === 0 ) {\n\t\t\t\tcloseSearch();\n\t\t\t}\n\t\t} );\n\t\tdocument.addEventListener( 'keydown', function( e ) {\n\t\t\tif ( e.code === 'Escape' ) {\n\t\t\t\tcloseSearch();\n\t\t\t}\n\t\t} );\n\n\t\t// Focus trapping example taken from: https://medium.com/@im_rahul/focus-trapping-looping-b3ee658e5177\n\t\tfunction MobileMenuKeyboardHandler( e ) {\n\t\t\t/// Get all links from menu.\n\t\t\tconst menuLinks = document.getElementById( 'site-navigation' ).getElementsByTagName( 'a' );\n\n\t\t\tif ( menuLinks ) {\n\t\t\t\t// Nav close button.\n\t\t\t\tconst navCloseButton = document.getElementById( 'mobile-nav-close' );\n\n\t\t\t\t// Get last link from menu.\n\t\t\t\tconst lastLinkInMenuIndex = menuLinks.length - 1;\n\n\t\t\t\t// Get last link from menu.\n\t\t\t\tconst lastLinkInMenu = menuLinks[ lastLinkInMenuIndex ];\n\n\t\t\t\tif ( e.key === 'Tab' ) {\n\t\t\t\t\t// Rotate Focus\n\t\t\t\t\t// eslint-disable-next-line @wordpress/no-global-active-element\n\t\t\t\t\tif ( e.shiftKey && document.activeElement === navCloseButton ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tlastLinkInMenu.focus();\n\t\t\t\t\t\t// eslint-disable-next-line @wordpress/no-global-active-element\n\t\t\t\t\t} else if ( ! e.shiftKey && document.activeElement === lastLinkInMenu ) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tnavCloseButton.focus();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdocument.addEventListener( 'keydown', MobileMenuKeyboardHandler );\n\n\t\tfunction handleAriaRole() {\n\t\t\t// When DOM is loaded role attribute will be added to navigation.\n\t\t\tif ( window.innerWidth < 768 ) {\n\t\t\t\tdocument.getElementById( 'site-navigation' ).setAttribute( 'role', 'dialog' );\n\t\t\t\tdocument.getElementById( 'site-navigation' ).setAttribute( 'aria-modal', 'true' );\n\t\t\t}\n\n\t\t\t// Handle resizing and based on the screen size,\n\t\t\t// role will be added or removed from navigation.\n\t\t\taddEventListener( 'resize', () => {\n\t\t\t\tif ( window.innerWidth < 768 ) {\n\t\t\t\t\tdocument.getElementById( 'site-navigation' ).setAttribute( 'role', 'dialog' );\n\t\t\t\t\tdocument.getElementById( 'site-navigation' ).setAttribute( 'aria-modal', 'true' );\n\t\t\t\t} else {\n\t\t\t\t\tdocument.getElementById( 'site-navigation' ).removeAttribute( 'role', 'dialog' );\n\t\t\t\t\tdocument.getElementById( 'site-navigation' ).removeAttribute( 'aria-modal', 'true' );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\thandleAriaRole();\n\n\t\t// Language switcher.\n\t\tconst langToggle = document.querySelector( '#site-header-menu-lang__toggle' );\n\t\tconst toggleArrow = langToggle.lastElementChild;\n\t\tconst langMenuPanel = document.querySelector( '#site-header-menu-lang__panel' );\n\n\t\tconst toggleLanguageMenu = () => {\n\t\t\tif ( langToggle.hasAttribute( 'aria-controls' ) ) {\n\t\t\t\tlangToggle.removeAttribute( 'aria-controls' );\n\t\t\t} else {\n\t\t\t\tlangToggle.setAttribute( 'aria-controls', 'site-header-menu-lang__panel' );\n\t\t\t}\n\n\t\t\ttoggleArrow.classList.toggle( 'reversed' );\n\t\t\tlangMenuPanel.classList.toggle( 'visible' );\n\n\t\t\tif ( langMenuPanel.classList.contains( 'visible' ) ) {\n\t\t\t\tlangToggle.setAttribute( 'aria-expanded', 'true' );\n\t\t\t\tlangMenuPanel.querySelector( '.site-header-menu-lang__panel-list-item a' ).focus();\n\t\t\t} else {\n\t\t\t\tlangToggle.setAttribute( 'aria-expanded', 'false' );\n\t\t\t\tlangToggle.focus();\n\t\t\t}\n\t\t};\n\n\t\t// Event listener for click and keyboard.\n\t\tlangToggle.addEventListener( 'click', toggleLanguageMenu );\n\t\tlangToggle.addEventListener( 'keydown', ( event ) => {\n\t\t\tif ( event.key === 'Enter' ) {\n\t\t\t\ttoggleLanguageMenu();\n\t\t\t}\n\t\t} );\n\n\t\t// Close the language menu with Escape key\n\t\tdocument.addEventListener( 'keydown', ( event ) => {\n\t\t\tif ( event.key === 'Escape' && langMenuPanel.classList.contains( 'visible' ) ) {\n\t\t\t\ttoggleLanguageMenu();\n\t\t\t\tlangToggle.focus();\n\t\t\t}\n\t\t} );\n\n\t\t// Focus trap for the language menu.\n\t\tconst focusableElements = Array.from( langMenuPanel.querySelectorAll( 'a, button' ) );\n\t\tfocusableElements.unshift( langToggle );\n\t\tconst firstFocusableElement = focusableElements[ 0 ];\n\t\tconst lastFocusableElement = focusableElements[ focusableElements.length - 1 ];\n\n\t\tlangMenuPanel.addEventListener( 'keydown', ( event ) => {\n\t\t\tconst activeElement = langMenuPanel.ownerDocument.activeElement;\n\n\t\t\tif ( event.key === 'Tab' ) {\n\t\t\t\tif ( event.shiftKey ) { // Shift + Tab\n\t\t\t\t\tif ( activeElement === firstFocusableElement ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tlastFocusableElement.focus();\n\t\t\t\t\t}\n\t\t\t\t} else if ( ! event.shiftKey && activeElement === lastFocusableElement ) { // Tab\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tfirstFocusableElement.focus();\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t} );\n}\n","export function spaceArchiveInit() {\n\tdocument.addEventListener( 'DOMContentLoaded', function() {\n\t\t// Don't run this script if not in correct archive page\n\t\tif ( ! document.querySelector( '.post-type-archive-space' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst filterSelection = document.querySelector( '.archive-space-filter-selection' );\n\n\t\tconst displayFilterSelection = () => {\n\t\t// Hide selection element if there are no filters selected\n\t\t\tif ( filterSelection.innerHTML.trim() === '' ) {\n\t\t\t\tfilterSelection.classList.remove( 'active' );\n\t\t\t} else {\n\t\t\t\tfilterSelection.classList.add( 'active' );\n\t\t\t}\n\t\t};\n\n\t\tconst openAreaCounter = async ( el ) => {\n\t\t\tconst hidden = el.target.ariaExpanded === 'true';\n\t\t\tdocument.querySelector( '.archive-space-areacounter' ).classList.toggle( 'active' );\n\t\t\tel.target.ariaExpanded = hidden ? 'false' : 'true';\n\t\t\tdocument.querySelector( '#areacounter-content' ).ariaHidden = hidden ? 'true' : 'false';\n\n\t\t\tif ( document.querySelector( '#areacounter-content' ).hidden === true ) {\n\t\t\t\tdocument.querySelector( '#areacounter-content' ).hidden = false;\n\t\t\t} else {\n\t\t\t\tdocument.querySelector( '#areacounter-content' ).hidden = true;\n\t\t\t}\n\t\t};\n\n\t\tdocument.querySelector( '#archive-space-areacounter-btn' ).addEventListener( 'click', openAreaCounter );\n\n\t\tconst archiveDropDowns = document.querySelectorAll( '.archive-space-dropdown' );\n\n\t\tconst countArea = ( el ) => {\n\t\t\t// Values for calculations\n\t\t\tconst openOfficeVal = 17;\n\t\t\tconst roomOfficeVal = 31;\n\t\t\tconst combinationOfficeVal = 11.5;\n\n\t\t\tlet openOfficeResult;\n\t\t\tlet roomOfficeResult;\n\t\t\tlet combinationOfficeResult;\n\n\t\t\tconst personelAmount = document.querySelector( '#personel-amount' );\n\t\t\tconst squareMeters = document.querySelector( '#square-meters-amount' );\n\n\t\t\tif ( el.target.id === 'personel-amount' ) {\n\t\t\t\tsquareMeters.value = 0;\n\n\t\t\t\tconst unit = ' m²';\n\n\t\t\t\topenOfficeResult = parseInt( personelAmount.value * openOfficeVal ) + unit;\n\t\t\t\troomOfficeResult = parseInt( personelAmount.value * roomOfficeVal ) + unit;\n\t\t\t\tcombinationOfficeResult = parseInt( personelAmount.value * combinationOfficeVal ) + unit;\n\n\t\t\t\tdocument.querySelector( '#areacounter-result-header' ).innerHTML = window.recommendedSpaceStr;\n\t\t\t} else {\n\t\t\t\tpersonelAmount.value = 0;\n\n\t\t\t\topenOfficeResult = parseInt( squareMeters.value / openOfficeVal );\n\t\t\t\troomOfficeResult = parseInt( squareMeters.value / roomOfficeVal );\n\t\t\t\tcombinationOfficeResult = parseInt( squareMeters.value / combinationOfficeVal );\n\n\t\t\t\tdocument.querySelector( '#areacounter-result-header' ).innerHTML = window.recommendedPersonnelStr;\n\t\t\t}\n\n\t\t\tdocument.querySelector( '#open-office' ).value = `${ openOfficeResult }`;\n\t\t\tdocument.querySelector( '#room-office' ).value = `${ roomOfficeResult }`;\n\t\t\tdocument.querySelector( '#combination-office' ).value = `${ combinationOfficeResult }`;\n\t\t};\n\n\t\tdocument.querySelector( '#personel-amount' ).addEventListener( 'input', countArea );\n\t\tdocument.querySelector( '#square-meters-amount' ).addEventListener( 'input', countArea );\n\n\t\tconst mapParams = ( element ) => {\n\t\t\tif ( element.checked ) {\n\t\t\t\treturn element.value;\n\t\t\t}\n\t\t};\n\n\t\tconst resetForms = ( element ) => {\n\t\t\tif ( element.name === 'all' ) {\n\t\t\t\telement.disabled = true;\n\t\t\t\telement.checked = true;\n\t\t\t} else {\n\t\t\t\telement.checked = false;\n\t\t\t}\n\t\t\tdocument.getElementsByClassName( 'archive-space-misc-show-list' )[ 0 ].click();\n\t\t};\n\n\t\tconst fetchData = async () => {\n\t\t\tdocument.querySelector( '.archive-space-items-overlay' ).classList.add( 'active' );\n\n\t\t\tconst types = [ ...document.querySelectorAll( '[data-term=\"space-type\"]' ) ].filter( ( item ) => item.checked && item.value !== '' ).map( mapParams );\n\t\t\tconst locations = [ ...document.querySelectorAll( '[data-term=\"space-location\"]' ) ].filter( ( item ) => item.checked && item.value !== '' ).map( mapParams );\n\t\t\tconst squareMeters = [ ...document.querySelectorAll( '[data-term=\"space-square-metres\"]' ) ].filter( ( item ) => item.checked && item.value !== '' ).map( mapParams );\n\n\t\t\tconst groupByPremise = document.getElementById( 'group-spaces' ).checked;\n\n\t\t\tconst paramType = types.length > 0 ? `space_type=${ types.join( ',' ) }` : '';\n\t\t\tconst paramLocation = locations.length > 0 ? `space_location=${ locations.join( ',' ) }` : '';\n\t\t\tconst paramSquareMeters = squareMeters.length > 0 ? `space_square_metres=${ squareMeters.join( ',' ) }` : '';\n\t\t\tconst paramGroupByPremise = groupByPremise === true ? `group=true` : '';\n\n\t\t\tconst lang = document.getElementsByTagName( 'html' )[ 0 ].attributes.lang.value;\n\n\t\t\tconst paramLang = `space_lang=${ lang }`;\n\n\t\t\tconst params = `${ [ paramType, paramLocation, paramSquareMeters, paramGroupByPremise, paramLang ].filter( Boolean ).join( '&' ) }`;\n\n\t\t\tconst fetchUrl = `${ window.location.origin }/wp-json/wp-exove/v2/space/${ params !== '' ? '?' + params : '' }`;\n\n\t\t\tawait fetch( fetchUrl )\n\t\t\t\t.then( ( res ) => {\n\t\t\t\t\treturn res.json();\n\t\t\t\t} )\n\t\t\t\t.then( ( data ) => {\n\t\t\t\t\tdocument.querySelector( '#archive-space-list' ).innerHTML = data.html;\n\t\t\t\t\tdocument.querySelector( '#spaces-count' ).innerHTML = document.querySelector( '.archive-space-items-container' ).dataset.count;\n\t\t\t\t\tdocument.querySelector( '#spaces-count + span' ).innerHTML = document.querySelector( '.archive-space-misc-count' ).dataset[ groupByPremise ? 'premiseLabel' : 'spaceLabel' ];\n\t\t\t\t} )\n\t\t\t\t.finally( () => {\n\t\t\t\t\tdocument.querySelector( '.archive-space-items-overlay' ).classList.remove( 'active' );\n\t\t\t\t} );\n\n\t\t\tconst slugUrl = lang !== 'fi' ? `/${ lang.split( '-' )[ 0 ] }/${ window.postType }/` : `/${ window.postType }/`;\n\t\t\tconst newUrl = window.location.protocol + '//' + window.location.host + slugUrl + ( params !== '' ? '?' + params : '' );\n\t\t\twindow.history.pushState( { path: newUrl }, document.title, newUrl );\n\t\t\twindow.dispatchEvent( new Event( 'popstate' ) );\n\t\t};\n\n\t\tconst onInputChange = ( el ) => {\n\t\t\tif ( el.target.id.startsWith( 'all' ) ) {\n\t\t\t\tif ( el.target.checked ) {\n\t\t\t\t\tel.target.disabled = true;\n\t\t\t\t}\n\n\t\t\t\tdocument.querySelectorAll( `[data-term=\"${ el.target.dataset.term }\"]` ).forEach( ( item ) => {\n\t\t\t\t\tif ( item.id !== `all-${ el.target.dataset.term }` && item.checked ) {\n\t\t\t\t\t\titem.checked = false;\n\n\t\t\t\t\t\t// Add extra letter for square meter slug to prevent ID syntax error\n\t\t\t\t\t\tconst newValue = el.target.dataset.term === 'space-square-metres' ? 'a' + item.value : item.value;\n\n\t\t\t\t\t\tdocument.querySelector( `#filter-selection-${ newValue }` ).remove();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else if ( [ ...document.querySelectorAll( `[data-term=\"${ el.target.dataset.term }\"]` ) ].filter( ( item ) => item.id !== `#all-${ el.target.dataset.term }` ).every( ( item ) => ! item.checked ) ) {\n\t\t\t\tdocument.querySelector( `#all-${ el.target.dataset.term }` ).checked = true;\n\t\t\t} else {\n\t\t\t\tdocument.querySelector( `#all-${ el.target.dataset.term }` ).checked = false;\n\t\t\t\tdocument.querySelector( `#all-${ el.target.dataset.term }` ).disabled = false;\n\t\t\t}\n\n\t\t\t// Add extra letter for square meter slug to prevent ID syntax error\n\t\t\tconst newValue = el.target.dataset.term === 'space-square-metres' ? 'a' + el.target.value : el.target.value;\n\n\t\t\tif ( ! el.target.id.startsWith( 'all' ) ) {\n\t\t\t\tif ( el.target.checked ) {\n\t\t\t\t\tlet newSelection = `
`;\n\t\t\t\t\tnewSelection +=\t`${ el.target.name }`;\n\t\t\t\t\tnewSelection += `
`;\n\t\t\t\t\tconst newElement = document.createElement( 'div' );\n\t\t\t\t\tnewElement.innerHTML = newSelection;\n\t\t\t\t\tnewElement.firstChild.querySelector( 'button' ).onclick = removeFilterSeletion;\n\t\t\t\t\tfilterSelection.append( newElement.firstChild );\n\t\t\t\t} else {\n\t\t\t\t\tdocument.querySelector( `#filter-selection-${ newValue }` ).remove();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdisplayFilterSelection();\n\t\t\tfetchData();\n\t\t};\n\n\t\tdocument.getElementById( 'space-type' ).addEventListener( 'change', onInputChange );\n\t\tdocument.getElementById( 'space-location' ).addEventListener( 'change', onInputChange );\n\t\tdocument.getElementById( 'space-square-metres' ).addEventListener( 'change', onInputChange );\n\t\tdocument.getElementById( 'group-spaces' ).addEventListener( 'change', ( () => {\n\t\t\tdocument.getElementsByClassName( 'archive-space-misc-show-list' )[ 0 ].click(); fetchData();\n\t\t} ) );\n\n\t\tconst closeDropdowns = () => {\n\t\t\tarchiveDropDowns.forEach( ( dropdown ) => {\n\t\t\t\tdropdown.classList.remove( 'open' );\n\t\t\t} );\n\t\t};\n\n\t\tconst clearFilters = () => {\n\t\t\tdocument.querySelectorAll( '[data-term=\"space-type\"]' ).forEach( resetForms );\n\t\t\tdocument.querySelectorAll( '[data-term=\"space-location\"]' ).forEach( resetForms );\n\t\t\tdocument.querySelectorAll( '[data-term=\"space-square-metres\"]' ).forEach( resetForms );\n\t\t\tfilterSelection.innerHTML = '';\n\t\t\tdocument.getElementById( 'group-spaces' ).checked = false;\n\t\t};\n\n\t\tarchiveDropDowns.forEach( ( dropdown ) => {\n\t\t\tdropdown.querySelector( 'button' ).onclick = function( e ) {\n\t\t\t\tif ( ! dropdown.classList.contains( 'open' ) ) {\n\t\t\t\t\tcloseDropdowns();\n\t\t\t\t\tdropdown.classList.add( 'open' );\n\t\t\t\t\tdropdown.querySelector( '.archive-space-dropdown-label' ).setAttribute( 'aria-expanded', 'true' );\n\t\t\t\t} else {\n\t\t\t\t\tdropdown.classList.remove( 'open' );\n\t\t\t\t\tdropdown.querySelector( '.archive-space-dropdown-label' ).setAttribute( 'aria-expanded', 'false' );\n\t\t\t\t}\n\t\t\t\te.stopPropagation();\n\t\t\t};\n\t\t\tdropdown.onclick = function( e ) {\n\t\t\t\tdropdown.classList.add( 'open' );\n\t\t\t\tdropdown.querySelector( '.archive-space-dropdown-label' ).setAttribute( 'aria-expanded', 'true' );\n\t\t\t\te.stopPropagation();\n\t\t\t};\n\t\t} );\n\n\t\tdocument.onclick = function() {\n\t\t\tcloseDropdowns();\n\t\t};\n\n\t\tdocument.querySelector( '#search-clear' ).onclick = function() {\n\t\t\tclearFilters();\n\t\t\tdisplayFilterSelection();\n\t\t\tfetchData();\n\t\t};\n\n\t\tdocument.querySelector( '.archive-space-misc-show-list' ).onclick = function( el ) {\n\t\t\tif ( ! el.target.classList.contains( 'active' ) ) {\n\t\t\t\tel.target.classList.add( 'active' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-map' ).classList.remove( 'active' );\n\n\t\t\t\tdocument.querySelector( '#archive-space-list' ).classList.add( 'show' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-list' ).ariaSelected = true;\n\t\t\t\tdocument.querySelector( '#archive-space-map' ).classList.remove( 'show' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-map' ).ariaSelected = false;\n\t\t\t}\n\t\t};\n\t\tdocument.querySelector( '.archive-space-misc-show-map' ).onclick = function( el ) {\n\t\t\tif ( ! el.target.classList.contains( 'active' ) ) {\n\t\t\t\tconst groupBox = document.getElementById( 'group-spaces' );\n\t\t\t\tif ( ! groupBox.checked ) {\n\t\t\t\t\tgroupBox.click();\n\t\t\t\t}\n\t\t\t\tel.target.classList.add( 'active' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-list' ).classList.remove( 'active' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-list' ).ariaSelected = false;\n\t\t\t\tdocument.querySelector( '#archive-space-list' ).classList.remove( 'show' );\n\t\t\t\tdocument.querySelector( '#archive-space-map' ).classList.add( 'show' );\n\t\t\t\tdocument.querySelector( '.archive-space-misc-show-map' ).ariaSelected = true;\n\t\t\t}\n\t\t};\n\n\t\tconst removeFilterSeletion = ( e ) => {\n\t\t\tconst selection = e.target.dataset.for;\n\t\t\tdocument.querySelector( `#filter-selection-${ selection }` ).remove();\n\n\t\t\tconst input = document.querySelector( `#${ selection }` );\n\t\t\tinput.checked = false;\n\n\t\t\tif ( [ ...document.querySelectorAll( `[data-term=\"${ input.dataset.term }\"]` ) ].filter( ( item ) => item.id !== `#all-${ input.dataset.term }` ).every( ( item ) => ! item.checked ) ) {\n\t\t\t\tdocument.querySelector( `#all-${ input.dataset.term }` ).checked = true;\n\t\t\t\tdocument.querySelector( `#all-${ input.dataset.term }` ).disabled = true;\n\t\t\t}\n\n\t\t\tdisplayFilterSelection();\n\t\t\tfetchData();\n\t\t};\n\n\t\tdocument.querySelectorAll( '.remove-selection-btn' ).forEach( ( btn ) => {\n\t\t\tbtn.onclick = removeFilterSeletion;\n\t\t} );\n\n\t\tconst listViewButton = document.getElementById( 'archive-space-misc-show-list' );\n\t\tconst mapViewButton = document.getElementById( 'archive-space-misc-show-map' );\n\n\t\t// Get all links from List view tab content area.\n\t\tlet tabContentLinksListView = document.getElementById( 'archive-space-list' ).getElementsByTagName( 'a' );\n\t\t// Get first link from List viewtab content area.\n\t\tlet firstLinkListView = tabContentLinksListView[ '0' ];\n\n\t\tlistViewButton.addEventListener( 'keydown', function( e ) {\n\t\t\ttabContentLinksListView = document.getElementById( 'archive-space-list' ).getElementsByTagName( 'a' );\n\t\t\tfirstLinkListView = tabContentLinksListView[ '0' ];\n\n\t\t\tif ( e.key === 'ArrowRight' || e.key === 'ArrowLeft' ) {\n\t\t\t\tmapViewButton.focus();\n\t\t\t}\n\n\t\t\tif ( e.key === 'Tab' ) {\n\t\t\t\t// For some reason without timeout focus goes to second link.\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tfirstLinkListView.focus();\n\n\t\t\t\t\t// Back to listview tab button.\n\t\t\t\t\t// eslint-disable-next-line no-shadow\n\t\t\t\t\tfirstLinkListView.addEventListener( 'keydown', function( e ) {\n\t\t\t\t\t\tif ( e.shiftKey && e.key === 'Tab' ) {\n\t\t\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\t\t\tlistViewButton.focus();\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}, '10' );\n\t\t\t}\n\n\t\t\t// Focus back to previous checkbox.\n\t\t\tif ( e.shiftKey && e.key === 'Tab' ) {\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tdocument.getElementById( 'group-spaces' ).focus();\n\t\t\t\t}, '10' );\n\t\t\t}\n\t\t} );\n\n\t\tmapViewButton.addEventListener( 'keydown', function( e ) {\n\t\t\t// Get all links from tab content area.\n\t\t\tconst tabContentLinksMapView = document.getElementById( 'archive-space-map' ).getElementsByTagName( 'a' );\n\n\t\t\t// Get first link from tab content area.\n\t\t\tconst firstLinkMapView = tabContentLinksMapView[ '0' ];\n\n\t\t\tif ( e.key === 'ArrowLeft' || e.key === 'ArrowRight' ) {\n\t\t\t\te.preventDefault();\n\t\t\t\tlistViewButton.focus();\n\t\t\t}\n\n\t\t\tif ( firstLinkMapView ) {\n\t\t\t\tif ( e.key === 'Tab' ) {\n\t\t\t\t\tsetTimeout( () => {\n\t\t\t\t\t\tfirstLinkMapView.focus();\n\t\t\t\t\t}, '10' );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Focus back to previous checkbox.\n\t\t\tif ( e.shiftKey && e.key === 'Tab' ) {\n\t\t\t\tsetTimeout( () => {\n\t\t\t\t\tdocument.getElementById( 'group-spaces' ).focus();\n\t\t\t\t}, '10' );\n\t\t\t}\n\t\t} );\n\t} );\n}\n","export function postArchiveInit() {\n\tdocument.addEventListener( 'DOMContentLoaded', function() {\n\t\t// Don't run this script if not in correct archive page\n\t\tif ( ! document.querySelector( '.archive-page' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst archiveDropDowns = document.querySelectorAll( '.archive-post-dropdown' );\n\n\t\tconst mapParams = ( element ) => {\n\t\t\tif ( element.checked ) {\n\t\t\t\treturn element.value;\n\t\t\t}\n\t\t};\n\n\t\tconst fetchData = async () => {\n\t\t\tdocument.querySelector( '.archive-post-items-overlay' ).classList.add( 'active' );\n\n\t\t\tconst categories = [ ...document.querySelectorAll( '[data-term=\"post-category\"]' ) ].filter( ( item ) => item.checked && item.value !== '' ).map( mapParams );\n\t\t\tconst years = [ ...document.querySelectorAll( '[data-term=\"post-year\"]' ) ].filter( ( item ) => item.checked && item.value !== '' ).map( mapParams );\n\n\t\t\tconst paramCategory = categories.length > 0 ? `category=${ categories.join( ',' ) }` : '';\n\t\t\tconst paramYear = years.length > 0 ? `year=${ years.join( ',' ) }` : '';\n\n\t\t\tconst params = `${ [ paramCategory, paramYear ].filter( Boolean ).join( '&' ) }`;\n\n\t\t\tconst fetchUrl = `${ window.location.origin }/wp-json/wp-exove/v2/post/${ params !== '' ? '?' + params : '' }`;\n\n\t\t\tawait fetch( fetchUrl )\n\t\t\t\t.then( ( res ) => {\n\t\t\t\t\treturn res.json();\n\t\t\t\t} )\n\t\t\t\t.then( ( data ) => {\n\t\t\t\t\tdocument.querySelector( '#archive-post-list' ).innerHTML = data.html;\n\t\t\t\t} )\n\t\t\t\t.finally( () => {\n\t\t\t\t\tdocument.querySelector( '.archive-post-items-overlay' ).classList.remove( 'active' );\n\t\t\t\t} );\n\n\t\t\tconst pathCleaned = window.location.pathname.replace( /page(.*)/, '' );\n\t\t\tconst newUrl = window.location.protocol + '//' + window.location.host + pathCleaned + ( params !== '' ? '?' + params : '' );\n\t\t\twindow.history.pushState( { path: newUrl }, document.title, newUrl );\n\t\t};\n\n\t\tconst onInputChange = ( el ) => {\n\t\t\tif ( el.target.id === `all-${ el.target.dataset.term }` ) {\n\t\t\t\tdocument.querySelectorAll( `[data-term=\"${ el.target.dataset.term }\"]` ).forEach( ( item ) => {\n\t\t\t\t\tif ( item.id !== `all-${ el.target.dataset.term }` ) {\n\t\t\t\t\t\titem.checked = false;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} else if ( [ ...document.querySelectorAll( `[data-term=\"${ el.target.dataset.term }\"]` ) ].filter( ( item ) => item.id !== `#all-${ el.target.dataset.term }` ).every( ( item ) => ! item.checked ) ) {\n\t\t\t\tdocument.querySelector( `#all-${ el.target.dataset.term }` ).checked = true;\n\t\t\t} else {\n\t\t\t\tdocument.querySelector( `#all-${ el.target.dataset.term }` ).checked = false;\n\t\t\t}\n\n\t\t\tfetchData();\n\t\t};\n\n\t\tdocument.getElementById( 'post-category' ).addEventListener( 'change', onInputChange );\n\t\tdocument.getElementById( 'post-year' ).addEventListener( 'change', onInputChange );\n\n\t\tconst closeDropdowns = () => {\n\t\t\tarchiveDropDowns.forEach( ( dropdown ) => {\n\t\t\t\tdropdown.classList.remove( 'open' );\n\t\t\t} );\n\t\t};\n\n\t\tarchiveDropDowns.forEach( ( dropdown ) => {\n\t\t\tdropdown.querySelector( 'button' ).onclick = function( e ) {\n\t\t\t\tif ( ! dropdown.classList.contains( 'open' ) ) {\n\t\t\t\t\tcloseDropdowns();\n\t\t\t\t\tdropdown.classList.add( 'open' );\n\t\t\t\t} else {\n\t\t\t\t\tdropdown.classList.remove( 'open' );\n\t\t\t\t}\n\t\t\t\te.stopPropagation();\n\t\t\t};\n\t\t\tdropdown.onclick = function( e ) {\n\t\t\t\tdropdown.classList.add( 'open' );\n\t\t\t\te.stopPropagation();\n\t\t\t};\n\t\t} );\n\n\t\tdocument.addEventListener( 'keydown', ( e ) => {\n\t\t\tif ( e.code === 'Escape' ) {\n\t\t\t\tcloseDropdowns();\n\t\t\t}\n\t\t} );\n\n\t\tdocument.onclick = function() {\n\t\t\tcloseDropdowns();\n\t\t};\n\t} );\n}\n","export function notificationBarInit() {\n\tconst notificationBarWrapper = document.querySelector( '.easy-notification-bar' );\n\tconst language = getLanguage();\n\tlet label;\n\n\tif ( language === 'en-GB' ) {\n\t\tlabel = 'Information';\n\t} else if ( language === 'fi' ) {\n\t\tlabel = 'Tiedotus';\n\t}\n\n\t// Don't run this script if notification bar is disabled.\n\tif ( notificationBarWrapper ) {\n\t\t// Role and aria-label attributes to notification bar.\n\t\tnotificationBarWrapper.setAttribute( 'role', 'region' );\n\t\tnotificationBarWrapper.setAttribute( 'aria-label', label );\n\t}\n\n\t// Language code from current page.\n\tfunction getLanguage() {\n\t\treturn document.getElementsByTagName( 'html' )[ 0 ].getAttribute( 'lang' );\n\t}\n}\n","export function gFormsInit() {\n\tdocument.addEventListener( 'gform/post_render', () => {\n\t\tconst validationWrapper = document.querySelectorAll( '.gform_validation_errors' );\n\n\t\tif ( validationWrapper ) {\n\t\t\tvalidationWrapper.forEach( ( wrapper ) => {\n\t\t\t\tconst labelText = wrapper.querySelector( '.gform_submission_error' ).innerText;\n\n\t\t\t\twrapper.setAttribute( 'role', 'region' );\n\t\t\t\twrapper.setAttribute( 'aria-label', labelText );\n\t\t\t} );\n\t\t}\n\t} );\n}\n","//Import all frontend scripts here\n\n// header\nimport { headerInit } from './components/header';\n\n// Archives\nimport { spaceArchiveInit } from './components/space-archive';\nimport { postArchiveInit } from './components/post-archive';\n\n// Notification bar\nimport { notificationBarInit } from './components/notification-bar';\n\n// Gravity Forms\nimport { gFormsInit } from './components/gravityforms';\n\nheaderInit();\nspaceArchiveInit();\npostArchiveInit();\nnotificationBarInit();\ngFormsInit();\n"],"names":["headerInit","openMobileHeader","closeMobileHeader","prevScroll","header","top","currentScroll","search","searchLabel","searchInput","searchSubmit","searchClose","openSearch","closeSearch","e","MobileMenuKeyboardHandler","menuLinks","navCloseButton","lastLinkInMenuIndex","lastLinkInMenu","handleAriaRole","langToggle","toggleArrow","langMenuPanel","toggleLanguageMenu","event","focusableElements","firstFocusableElement","lastFocusableElement","activeElement","spaceArchiveInit","filterSelection","displayFilterSelection","openAreaCounter","el","hidden","archiveDropDowns","countArea","openOfficeResult","roomOfficeResult","combinationOfficeResult","personelAmount","squareMeters","unit","mapParams","element","resetForms","fetchData","types","item","locations","groupByPremise","paramType","paramLocation","paramSquareMeters","paramGroupByPremise","lang","paramLang","params","fetchUrl","res","data","slugUrl","newUrl","onInputChange","newValue","newSelection","newElement","removeFilterSeletion","closeDropdowns","dropdown","clearFilters","groupBox","selection","input","btn","listViewButton","mapViewButton","tabContentLinksListView","firstLinkListView","firstLinkMapView","postArchiveInit","categories","years","paramCategory","paramYear","pathCleaned","notificationBarInit","notificationBarWrapper","language","getLanguage","label","gFormsInit","validationWrapper","wrapper","labelText"],"mappings":"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"}