{"version":3,"sources":["carousel.js","fetch-blocks.js","filter.js","guide.js","hero.js","image-gallery.js","image-zoom.js","inspiration-tabs.js","lottie.js"],"names":["_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","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","this","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","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","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_createForOfIteratorHelper","allowArrayLike","it","F","_e","err","normalCompletion","didErr","step","_e2","minLen","toString","test","len","arr2","asyncGeneratorStep","gen","reject","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","undefined","carousels","document","querySelectorAll","isTablet","window","innerWidth","options","pageDots","prevNextButtons","wrapAround","percentPosition","fade","cellAlign","carousel","flkty","Flickity","parentElement","querySelector","concat","classList","add","on","remove","item","addEventListener","id","getAttribute","_fetchAndAddSampleBlocks","_callee","newInspirationBlocks","currentPage","alreadyInsertedSampleBlocks","usedSampleLinks","firstSubUrl","response","samplesData","_context","getAlreadyShownBlockDataName","location","pathname","split","fetch","origin","headers","Content-Type","json","addSamplesBlocks","filterAwayAlreadyShownBlocks","t0","console","filteredSamplesData","insertedIndex","block","newSamplesBlock","samplesBlockElement","createElement","dataset","aTag","href","appendChild","preWord","spanTag","innerHTML","fields","headerImageUrl","figureTag","imgTag","src","createSampleBlock","after","_fetchAndAddGuideBlocks","_callee2","alreadyInsertedGuideBlocks","usedGuideLinks","guidesData","_context2","addGuideBlocks","filteredGuidesData","newGuidesBlock","guideData","en","guideBlockElement","ElementCreator","addClass","addDataset","getElement","setHref","appendAsChildTo","setInnerHTML","setSrc","createGuideBlock","alreadyInsertedBlocks","usedLinksReturnArray","dataName","data","alreadyUsedNames","filteredSamples","found","j","shouldFilter","inspirationGrid","randomIndex","Math","floor","random","isLoadingMore","infiniteScrollUrl","isMobile","inspirationMenuItem","infiniteScrollListener","url","docEl","documentElement","footerHeight","getBoundingClientRect","height","hasScrolledBottom","scrollHeight","scrollTop","clientHeight","fetchAndLoadItems","grid","loader","res","text","result","newDocument","DOMParser","parseFromString","nextLinkEl","removeEventListener","history","pushState","addZoomListeners","urlParams","search","log","includes","_x","_x2","fetchAndAddSampleBlocks","_x3","_x4","fetchAndAddGuideBlocks","checkPostsReturned","hrefs","prevCount","body","JSON","stringify","fetchPostCount","term","setAttribute","updateFilterButtons","substring","map","filter","taxonomy","terms","activeTaxButton","taxCount","innerText","number","subMenuCurrentWrapperIndex","addClickEventListeners","target","contains","button","numResults","getNumberOfResults","runTermButtonInteraction","base","prevOpenGroup","preventDefault","X-Requested-With","doc","newGrid","oldGrid","newFilter","loadMoreButton","newLoadMoreButton","oldFilter","newHrefs","newSearchInput","searchInputWidth","placeholder","style","width","setTimeout","before","zoomEvent","Event","dispatchEvent","scrollY","scroll","assign","runFiltering","buttonTaxName","prevOpenBtn","group","toggle","runTaxButtonInteraction","openGroup","activeTaxButtons","filterNumbers","resetButton","btn","_step","_iterator","resetFilterButtons","activeButton","submenu","scrollTimer","lastScrollTop","clearTimeout","resizeTimeout","guideTitles","guideTitlesContainer","letters","filterButtons","backArrows","manuallySelectedLetter","updateLetter","letter","el","textContent","trim","adjustPaddingBottom","paddingBottom","lastGuideTitle","guideTitleHeight","numOfLastLetters","title","handleHashChange","observer","IntersectionObserver","entries","entry","isIntersecting","observe","showGuideContent","letterEl","isActive","display","element","dataId","prevActive","replaceState","contentWrapper","img","srcset","removeActiveGuideContent","slug","event","stopPropagation","closest","arrow","hash","guideTitle","scrollToElement","desktopMargin","mobileMargin","scrollMarginTop","scrollIntoView","behavior","_step2","letterValue","toLowerCase","_iterator2","startsWith","nextSibling","nextElementSibling","elementPosition","top","scrollTo","onload","focusedImages","galleryThumbnails","timeout","thumbEventListener","image","parentNode","zoomImageEls","offsetX","offsetY","touches","pageX","pageY","x","currentTarget","offsetWidth","offsetHeight","backgroundPosition","zoomImage","addZoomListenerButtons","filterButtonsSingleInspiration","_fetchAndBuildGuideData","_callee3","_context3","buildHoverGuide","tabParent","hoverSection","imagesWrapper","imgTags","filterButton","guideWordId","_loop","guideItem","firstParagraph","nrOfLoops","min","k","imageUrl","_x5","fetchAndBuildGuideData","loaderContainer","loaderLottie","container","loop","lottie","loadAnimation","renderer","autoplay","path","initLottie","setSpeed"],"mappings":"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","file":"modules.bundle.min.js","sourcesContent":["const carousels = document.querySelectorAll(\".Carousel\");\r\n\r\nif (carousels.length) {\r\n const isTablet = window.innerWidth < 1024;\r\n\r\n const options = {\r\n pageDots: false,\r\n prevNextButtons: false,\r\n wrapAround: !isTablet ? true : false,\r\n percentPosition: false,\r\n fade: true,\r\n cellAlign: !isTablet ? \"center\" : \"left\",\r\n };\r\n\r\n carousels.forEach((carousel) => {\r\n // eslint-disable-next-line no-undef, no-unused-vars\r\n const flkty = new Flickity(carousel, options);\r\n\r\n if (!isTablet) {\r\n const items = carousel.querySelectorAll(\".Carousel-item\");\r\n\r\n items.forEach((item) => {\r\n item.addEventListener(\"mouseenter\", () => {\r\n const id = item.getAttribute(\"data-id\");\r\n\r\n document\r\n .querySelector(`.Carousel-itemTitle[data-id='${id}']`)\r\n .classList.add(\"--visible\");\r\n });\r\n\r\n item.addEventListener(\"mouseleave\", () => {\r\n document\r\n .querySelector(\".Carousel-itemTitle.--visible\")\r\n .classList.remove(\"--visible\");\r\n });\r\n });\r\n } else {\r\n carousel.parentElement\r\n .querySelector(`.Carousel-itemTitle[data-index='${0}']`)\r\n .classList.add(\"--visible\");\r\n\r\n flkty.on(\"change\", (i) => {\r\n carousel.parentElement\r\n .querySelector(\".Carousel-itemTitle.--visible\")\r\n .classList.remove(\"--visible\");\r\n\r\n carousel.parentElement\r\n .querySelector(`.Carousel-itemTitle[data-index='${i}']`)\r\n .classList.add(\"--visible\");\r\n });\r\n }\r\n });\r\n}\r\n","//--------------------------\r\n//HANDLE SAMPLE BLOCKS\r\n//--------------------------\r\n\r\n//Fetch -> Call this above\r\nasync function fetchAndAddSampleBlocks(newInspirationBlocks, currentPage) {\r\n //Get already inserted sample blocks\r\n const alreadyInsertedSampleBlocks = [\r\n ...document.querySelectorAll(\".Inspiration-block--sample\"),\r\n ];\r\n //Get their links (as a unique ID)\r\n const usedSampleLinks = getAlreadyShownBlockDataName(\r\n alreadyInsertedSampleBlocks\r\n );\r\n\r\n try {\r\n //Get \"en\" if english or something else if swedish\r\n let firstSubUrl = window.location.pathname.split(\"/\")[1];\r\n if (firstSubUrl != \"en\") {\r\n firstSubUrl = \"sv\";\r\n }\r\n\r\n const response = await fetch(\r\n `${window.location.origin}/wp-json/atta45/v1/samples?lang=${firstSubUrl}`,\r\n {\r\n method: \"GET\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n );\r\n //Get all samples from database\r\n const samplesData = await response.json();\r\n //Remove already inserted blocks from data\r\n\r\n const filteredSamplesData = filterAwayAlreadyShownBlocks(\r\n samplesData,\r\n usedSampleLinks\r\n );\r\n //Add new one as needed\r\n addSamplesBlocks(filteredSamplesData, newInspirationBlocks, currentPage);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\n//Insert\r\nfunction addSamplesBlocks(\r\n filteredSamplesData,\r\n newInspirationBlocks,\r\n currentPage\r\n) {\r\n let insertedIndex = 0;\r\n\r\n newInspirationBlocks.forEach((block, i) => {\r\n if ((i % 10) - 6 == 0 && currentPage % 2 == 0) {\r\n if (filteredSamplesData.length > insertedIndex) {\r\n const newSamplesBlock = createSampleBlock(\r\n filteredSamplesData[insertedIndex]\r\n );\r\n block.after(newSamplesBlock);\r\n\r\n insertedIndex++;\r\n }\r\n }\r\n });\r\n}\r\n\r\n//Returns a div to be appended\r\nfunction createSampleBlock(samplesData) {\r\n const samplesBlockElement = document.createElement(\"div\");\r\n samplesBlockElement.classList.add(\"Inspiration-block\");\r\n samplesBlockElement.classList.add(\"Inspiration-block--sample\");\r\n samplesBlockElement.dataset.name = samplesData[\"post_name\"];\r\n\r\n const aTag = document.createElement(\"a\");\r\n //Slug has been manualy added with php\r\n aTag.href = samplesData[\"slug\"];\r\n samplesBlockElement.appendChild(aTag);\r\n\r\n //Get \"en\" if english or something else if swedish\r\n let firstSubUrl = window.location.pathname.split(\"/\")[1];\r\n\r\n const preWord = firstSubUrl == \"en\" ? \"Sample\" : \"Prov\";\r\n\r\n const spanTag = document.createElement(\"span\");\r\n spanTag.innerHTML = \"(\" + preWord + \") \" + samplesData[\"post_title\"];\r\n aTag.appendChild(spanTag);\r\n\r\n const fields = samplesData[\"fields\"];\r\n if (fields[\"display_image\"]) {\r\n const headerImageUrl = fields[\"display_image\"][\"sizes\"][\"medium\"];\r\n\r\n if (headerImageUrl) {\r\n const figureTag = document.createElement(\"figure\");\r\n figureTag.classList.add(\"Inspiration-block--hoverImageWrapper\");\r\n aTag.appendChild(figureTag);\r\n imgTag = document.createElement(\"img\");\r\n imgTag.src = headerImageUrl;\r\n figureTag.appendChild(imgTag);\r\n }\r\n }\r\n\r\n return samplesBlockElement;\r\n}\r\n\r\n//--------------------------\r\n//HANDLE GUIDE BLOCKS\r\n//--------------------------\r\n\r\n//Fetch -> Call this above\r\nasync function fetchAndAddGuideBlocks(newInspirationBlocks, currentPage) {\r\n //Get already inserted guide blocks\r\n const alreadyInsertedGuideBlocks = [\r\n ...document.querySelectorAll(\".Inspiration-block--guide\"),\r\n ];\r\n //Get their links (as a unique ID)\r\n const usedGuideLinks = getAlreadyShownBlockDataName(\r\n alreadyInsertedGuideBlocks\r\n );\r\n\r\n try {\r\n //Get \"en\" if english or something else if swedish\r\n let firstSubUrl = window.location.pathname.split(\"/\")[1];\r\n if (firstSubUrl != \"en\") {\r\n firstSubUrl = \"sv\";\r\n }\r\n\r\n const response = await fetch(\r\n `${window.location.origin}/wp-json/atta45/v1/chosen-guides?lang=${firstSubUrl}`,\r\n {\r\n method: \"GET\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n );\r\n //Get all guides from database\r\n const guidesData = await response.json();\r\n //Remove already inserted blocks from data\r\n\r\n const filteredGuidesData = filterAwayAlreadyShownBlocks(\r\n guidesData,\r\n usedGuideLinks\r\n );\r\n //Add new one as needed\r\n addGuideBlocks(filteredGuidesData, newInspirationBlocks, currentPage);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\n//Insert\r\nfunction addGuideBlocks(filteredGuidesData, newInspirationBlocks, currentPage) {\r\n let insertedIndex = 0;\r\n\r\n newInspirationBlocks.forEach((block, i) => {\r\n if ((i % 10) - 3 == 0) {\r\n if (filteredGuidesData.length > insertedIndex) {\r\n const newGuidesBlock = createGuideBlock(\r\n filteredGuidesData[insertedIndex]\r\n );\r\n block.after(newGuidesBlock);\r\n\r\n insertedIndex++;\r\n }\r\n }\r\n });\r\n}\r\n\r\n//Returns a div to be appended\r\nfunction createGuideBlock(guideData) {\r\n //Get \"en\" if english or something else if swedish\r\n let en = window.location.pathname.split(\"/\")[1];\r\n en === \"en\" ? \"en\" : \"\";\r\n\r\n const guideBlockElement = new ElementCreator(\"div\")\r\n .addClass(\"Inspiration-block\")\r\n .addClass(\"Inspiration-block--guide\")\r\n .addDataset(\"name\", guideData[\"post_name\"])\r\n .getElement();\r\n\r\n let href = `/guide/#${guideData[\"post_name\"]}`;\r\n if (en === \"en\") {\r\n href = `/en/guide/#${guideData[\"post_name\"]}`;\r\n }\r\n\r\n const aTag = new ElementCreator(\"a\")\r\n .setHref(href)\r\n .appendAsChildTo(guideBlockElement)\r\n .getElement();\r\n\r\n new ElementCreator(\"span\")\r\n .setInnerHTML(\"(Guide) \" + guideData[\"post_title\"])\r\n .appendAsChildTo(aTag);\r\n\r\n if (guideData[\"imageUrl\"] && guideData[\"imageUrl\"] != \"\") {\r\n const figureTag = new ElementCreator(\"figure\")\r\n .addClass(\"Inspiration-block--hoverImageWrapper\")\r\n .appendAsChildTo(aTag)\r\n .getElement();\r\n\r\n new ElementCreator(\"img\")\r\n .setSrc(guideData[\"imageUrl\"])\r\n .appendAsChildTo(figureTag);\r\n }\r\n return guideBlockElement;\r\n}\r\n\r\n//HELPERS\r\nfunction getAlreadyShownBlockDataName(alreadyInsertedBlocks) {\r\n const usedLinksReturnArray = [];\r\n alreadyInsertedBlocks.forEach((block) => {\r\n const dataName = block.dataset.name;\r\n usedLinksReturnArray.push(dataName);\r\n });\r\n return usedLinksReturnArray;\r\n}\r\n\r\n//Returns array of non-used block data\r\nfunction filterAwayAlreadyShownBlocks(data, alreadyUsedNames) {\r\n const filteredSamples = [];\r\n\r\n for (let i = 0; i < data.length; i++) {\r\n let found = false;\r\n for (let j = 0; j < alreadyUsedNames.length; j++) {\r\n if (data[i][\"post_name\"] === alreadyUsedNames[j]) {\r\n found = true;\r\n break;\r\n }\r\n }\r\n if (!found) {\r\n filteredSamples.push(data[i]);\r\n }\r\n }\r\n return filteredSamples;\r\n}\r\n","const filter = document.querySelector(\".Filter\");\r\n\r\nif (filter) {\r\n const shouldFilter =\r\n location.pathname === \"/inspiration/\" ||\r\n location.pathname === \"/en/inspiration/\";\r\n const inspirationGrid = document.querySelector(\".Inspiration-grid\");\r\n const randomIndex = Math.floor(Math.random() * (4 - 1 + 1) + 1);\r\n\r\n let isLoadingMore = false;\r\n let infiniteScrollUrl = \"\";\r\n let isMobile = window.innerWidth < 1024;\r\n\r\n /* Update inspiration grid icon */\r\n if (\r\n inspirationGrid &&\r\n location.pathname !== \"/samples/\" &&\r\n location.pathname !== \"/en/samples/\"\r\n ) {\r\n inspirationGrid.classList.add(`Inspiration-grid--${randomIndex}`);\r\n document\r\n .querySelector(`.Filter-gridIcon[data-grid-icon='${randomIndex}']`)\r\n .classList.add(\"--active\");\r\n }\r\n\r\n /* Set inspiration in menu active if on inspire me page */\r\n if (location.pathname === \"/inspirera-mig/\") {\r\n const inspirationMenuItem = document.querySelectorAll(\".Menu-item\")[0];\r\n\r\n if (inspirationMenuItem) inspirationMenuItem.classList.add(\"--current\");\r\n }\r\n\r\n /* Set inspiration in menu active if on inspire me page */\r\n if (location.pathname === \"/inspirera-mig/\") {\r\n const inspirationMenuItem = document.querySelectorAll(\".Menu-item\")[0];\r\n\r\n if (inspirationMenuItem) inspirationMenuItem.classList.add(\"--current\");\r\n }\r\n\r\n const infiniteScrollListener = (url) => {\r\n const docEl = document.documentElement;\r\n\r\n const footerHeight = document\r\n .querySelector(\"footer\")\r\n .getBoundingClientRect().height;\r\n const hasScrolledBottom =\r\n docEl.scrollHeight - docEl.scrollTop <= docEl.clientHeight + footerHeight;\r\n\r\n if (url && hasScrolledBottom && !isLoadingMore) {\r\n fetchAndLoadItems(url);\r\n }\r\n };\r\n let currentPage = 0;\r\n /* Fetches and appends new items into grid for infinite scroll */\r\n const fetchAndLoadItems = (url) => {\r\n const grid = document.querySelector(\".Inspiration-grid\");\r\n const loader = document.querySelector(\".Inspiration-loader\");\r\n\r\n isLoadingMore = true;\r\n loader.classList.add(\"--visible\");\r\n grid.classList.add(\"--loading\");\r\n\r\n fetch(url).then((res) => {\r\n try {\r\n currentPage++;\r\n res.text().then((result) => {\r\n const parser = new DOMParser();\r\n const newDocument = parser.parseFromString(result, \"text/html\");\r\n\r\n const newInspirationBlocks =\r\n newDocument.querySelectorAll(\".Inspiration-block\");\r\n\r\n newInspirationBlocks.forEach((item) => {\r\n grid.appendChild(item);\r\n });\r\n\r\n const nextLinkEl = newDocument.querySelector(\".js-loadMore\");\r\n\r\n if (nextLinkEl === null) {\r\n infiniteScrollUrl = \"\";\r\n window.removeEventListener(\"scroll\", infiniteScrollListener);\r\n } else {\r\n infiniteScrollUrl = nextLinkEl.getAttribute(\"href\");\r\n }\r\n\r\n loader.classList.remove(\"--visible\");\r\n grid.classList.remove(\"--loading\");\r\n\r\n if (location.pathname !== \"/inspiration/\") {\r\n window.history.pushState(\"\", \"\", infiniteScrollUrl);\r\n }\r\n\r\n addZoomListeners();\r\n\r\n //Insert new sample blocks if no URL-params (No filter activated)\r\n const urlParams = document.location.search;\r\n\r\n console.log(urlParams);\r\n\r\n //Obs! This check wont work on start page, has to remake if it should show up there as well\r\n\r\n if (urlParams === \"\" || urlParams.includes(\"?load-more=\")) {\r\n fetchAndAddSampleBlocks(newInspirationBlocks, currentPage);\r\n fetchAndAddGuideBlocks(newInspirationBlocks, currentPage);\r\n }\r\n //End sample blocks\r\n\r\n isLoadingMore = false;\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n });\r\n };\r\n\r\n /* Resizes width of search input */\r\n const resizeSearchInput = ({ target }) => {\r\n const defaultWidth = target.placeholder.length + 3;\r\n\r\n if (!target.value.length) {\r\n target.style.width = `${defaultWidth}ch`;\r\n } else if (target.value.length > defaultWidth) {\r\n target.style.width = `${defaultWidth + target.value.length}ch`;\r\n }\r\n };\r\n\r\n /* Fetches number of posts returned on each term button */\r\n const fetchPostCount = (hrefs) => {\r\n const data = fetch(\r\n `${window.location.origin}/wp-json/atta45/v1/post-count`,\r\n {\r\n method: \"POST\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n body: JSON.stringify({ hrefs: hrefs }),\r\n }\r\n )\r\n .then((res) =>\r\n res.json().then((result) => {\r\n return result;\r\n })\r\n )\r\n .catch((err) => {\r\n console.log(err);\r\n return;\r\n });\r\n\r\n return data;\r\n };\r\n\r\n /* Disables term buttons if no posts are returned */\r\n const checkPostsReturned = (hrefs) => {\r\n const prevCount = document\r\n .querySelector(\".Filter\")\r\n .getAttribute(\"data-count\");\r\n\r\n fetchPostCount(hrefs).then((data) => {\r\n document.querySelectorAll(\".js-term\").forEach((term, i) => {\r\n term.setAttribute(\"data-count\", data[i]);\r\n if (\r\n (data[i] === 0 &&\r\n !location.search.includes(term.getAttribute(\"data-term\"))) ||\r\n data[i] === prevCount\r\n ) {\r\n term.classList.add(\"--disabled\");\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* Term button interaction */\r\n const runTermButtonInteraction = (button) => {\r\n if (!button.classList.contains(\"--active\")) {\r\n button.classList.add(\"--active\");\r\n\r\n if (window.innerWidth < 764) {\r\n const numResults = getNumberOfResults(button.getAttribute(\"href\"));\r\n console.log(numResults);\r\n }\r\n } else {\r\n button.classList.remove(\"--active\");\r\n }\r\n };\r\n\r\n /* Tax button interaction */\r\n const runTaxButtonInteraction = (button) => {\r\n const buttonTaxName = button.getAttribute(\"data-taxonomy\");\r\n if (!button.classList.contains(\"--open\")) {\r\n const prevOpenBtn = document.querySelector(\".js-taxonomy.--open\");\r\n const prevOpenGroup = document.querySelector(\".js-taxGroup.--open\");\r\n if (prevOpenBtn) prevOpenBtn.classList.remove(\"--open\");\r\n button.classList.add(\"--open\");\r\n if (\r\n prevOpenGroup &&\r\n prevOpenGroup.getAttribute(\"data-taxonomy\") !== buttonTaxName\r\n ) {\r\n prevOpenGroup.classList.remove(\"--open\");\r\n }\r\n document.querySelectorAll(\".js-taxGroup\").forEach((group) => {\r\n if (\r\n group.getAttribute(\"data-taxonomy\") ===\r\n button.getAttribute(\"data-taxonomy\")\r\n ) {\r\n group.classList.toggle(\"--open\");\r\n }\r\n });\r\n } else {\r\n button.classList.remove(\"--open\");\r\n document\r\n .querySelector(`.Filter-group[data-taxonomy='${buttonTaxName}']`)\r\n .classList.remove(\"--open\");\r\n }\r\n };\r\n\r\n /* Resets all filters */\r\n const resetFilterButtons = () => {\r\n document.body.classList.add(\"is-filtering\");\r\n\r\n const openGroup = document.querySelector(\".js-taxGroup.--open\");\r\n const activeTaxButtons = document.querySelectorAll(\".js-taxonomy.--active\");\r\n const filterNumbers = document.querySelectorAll(\".Filter-taxCount\");\r\n const resetButton = document.querySelector(\".Filter-button--reset\");\r\n\r\n document\r\n .querySelectorAll(\".js-term.--disabled\")\r\n .forEach((btn) => btn.classList.remove(\"--disabled\"));\r\n\r\n document.querySelector(\".Filter-searchInput\").value = \"\";\r\n\r\n if (resetButton) {\r\n resetButton.remove();\r\n }\r\n\r\n if (openGroup) {\r\n openGroup.classList.remove(\"--open\");\r\n }\r\n\r\n if (activeTaxButtons.length) {\r\n activeTaxButtons.forEach((btn) => {\r\n btn.classList.remove(\"--open\");\r\n btn.classList.remove(\"--active\");\r\n });\r\n }\r\n\r\n if (filterNumbers.length) {\r\n for (let num of filterNumbers) {\r\n num.remove();\r\n }\r\n }\r\n };\r\n\r\n /* Sets active filter classes on load of page */\r\n const updateFilterButtons = (href) => {\r\n if (href === \"./\" || href === location.origin + location.pathname) {\r\n const taxCount = document.querySelector(\".Filter-taxCount\");\r\n if (taxCount) taxCount.remove();\r\n\r\n return;\r\n }\r\n\r\n // // Remove `order=rand` from href\r\n // const urlParams = new URLSearchParams(href.startsWith(\"?\") ? href.slice(1) : href);\r\n // if (urlParams.has(\"order\") && urlParams.get(\"order\") === \"rand\") {\r\n // urlParams.delete(\"order\");\r\n // }\r\n\r\n // const updatedHref = urlParams.toString();\r\n // if (!updatedHref) return; // Stop if all parameters are removed\r\n\r\n // const activeFilters = updatedHref.split(\"&\").map((filter) => filter.split(\"=\"));\r\n\r\n const activeFilters = href\r\n .substring(1)\r\n .split(\"&\")\r\n .map((filter) => filter.split(\"=\"));\r\n\r\n activeFilters.forEach((filter) => {\r\n const taxonomy = filter[0];\r\n const terms = filter[1];\r\n\r\n const activeTaxButton = document.querySelector(\r\n `.Filter-button[data-taxonomy='${taxonomy}']`\r\n );\r\n\r\n if (activeTaxButton) {\r\n activeTaxButton.classList.add(\"--active\");\r\n const taxCount = activeTaxButton.querySelector(\".Filter-taxCount\");\r\n\r\n if (!taxCount) {\r\n const number = document.createElement(\"span\");\r\n number.classList.add(\"Filter-taxCount\");\r\n number.innerHTML = ` ${terms.split(\",\").length}`;\r\n activeTaxButton.appendChild(number);\r\n } else {\r\n taxCount.innerText = ` ${terms.split(\",\").length}`;\r\n }\r\n }\r\n\r\n terms.split(\",\").forEach((term) => {\r\n document\r\n .querySelector(`.Filter-button--term[data-term='${term}']`)\r\n .classList.add(\"--active\");\r\n });\r\n\r\n // console.log('terms');\r\n // console.log(terms);\r\n });\r\n };\r\n\r\n const closeFilterOnScroll = () => {\r\n let scrollTimer;\r\n let lastScrollTop = window.scrollY > 0 ? window.scrollY : 0;\r\n\r\n window.addEventListener(\r\n \"scroll\",\r\n () => {\r\n const openGroup = document.querySelector(\".js-taxGroup.--open\");\r\n const activeTaxButton = document.querySelector(\".js-taxonomy.--open\");\r\n\r\n window.clearTimeout(scrollTimer);\r\n\r\n scrollTimer = setTimeout(() => {\r\n lastScrollTop = window.scrollY;\r\n }, 100);\r\n\r\n if (\r\n openGroup &&\r\n activeTaxButton &&\r\n window.scrollY > lastScrollTop + 200\r\n ) {\r\n openGroup.classList.remove(\"--open\");\r\n activeTaxButton.classList.remove(\"--open\");\r\n }\r\n },\r\n false\r\n );\r\n };\r\n\r\n const runFiltering = (e) => {\r\n // Todo\r\n /* \r\n När filter knappen trycks hämtas promise för både ny DOM och filter count. \r\n Sätt alla filterknappar disabled och starta loader efter items fade out\r\n Promse.all(promises) => {\r\n 1. By ut dom\r\n 2. Fade in av items\r\n 3. Uppdatera filter knappar (count) \r\n }\r\n */\r\n\r\n const base = location.origin + location.pathname;\r\n const prevOpenGroup = document.querySelector(\".js-taxonomy.--open\");\r\n let url = e.target.getAttribute(\"href\");\r\n\r\n if (!shouldFilter) return;\r\n if (!url) return;\r\n if (url === \"./\") url = base;\r\n\r\n e.preventDefault();\r\n\r\n /* Perceived performance only */\r\n updateFilterButtons(url);\r\n window.history.pushState(\"\", \"\", url);\r\n document.body.classList.add(\"is-filtering\");\r\n\r\n fetch(url, {\r\n method: \"GET\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n },\r\n }).then((res) => {\r\n try {\r\n res.text().then((result) => {\r\n const parser = new DOMParser();\r\n const doc = parser.parseFromString(result, \"text/html\");\r\n const newGrid = doc.querySelector(\".Inspiration-grid\");\r\n const oldGrid = document.querySelector(\".Inspiration-grid\");\r\n const newFilter = doc.querySelector(\".Filter\");\r\n const loadMoreButton = document.querySelector(\r\n \".js-loadMore:not(--hidden)\"\r\n );\r\n const newLoadMoreButton = doc.querySelector(\".js-loadMore\");\r\n const zoomImageEls = doc.querySelector(\".js-imageZoom\");\r\n\r\n if (loadMoreButton) {\r\n if (newLoadMoreButton) {\r\n loadMoreButton.setAttribute(\r\n \"href\",\r\n newLoadMoreButton.getAttribute(\"href\")\r\n );\r\n loadMoreButton.classList.remove(\"--hidden\");\r\n } else {\r\n loadMoreButton.classList.add(\"--hidden\");\r\n }\r\n }\r\n\r\n // if (window.innerWidth < 764) {\r\n // fetchPostCount(url).then((result) => {\r\n // console.log(result);\r\n // // document.querySelector(\".js-filterResultsCount\").innerHTML = ``\r\n // });\r\n // }\r\n\r\n const oldFilter = document.querySelector(\".Filter\");\r\n\r\n const newTerms = doc.querySelectorAll(\".js-term\");\r\n const newHrefs = [...newTerms].map((term) =>\r\n term.getAttribute(\"href\")\r\n );\r\n\r\n /* Reset classes to new filter */\r\n newFilter\r\n .querySelector(\r\n `.js-taxonomy[data-taxonomy='${prevOpenGroup.getAttribute(\r\n \"data-taxonomy\"\r\n )}']`\r\n )\r\n .classList.add(\"--open\");\r\n newFilter\r\n .querySelector(\r\n `.js-taxGroup[data-taxonomy='${prevOpenGroup.getAttribute(\r\n \"data-taxonomy\"\r\n )}']`\r\n )\r\n .classList.add(\"--open\");\r\n\r\n /* If all filters are unset we need to manually activate disabled filters */\r\n if (url === base) {\r\n doc\r\n .querySelectorAll(\".js-term.--disabled\")\r\n .forEach((term) => term.classList.remove(\"--disabled\"));\r\n }\r\n\r\n /* Index for new grid layout + grid icon */\r\n const randomIndex = Math.floor(Math.random() * (4 - 1 + 1) + 1);\r\n\r\n doc\r\n .querySelector(`.Filter-gridIcon[data-grid-icon='${randomIndex}']`)\r\n .classList.add(\"--active\");\r\n\r\n const newSearchInput = doc.querySelector(\".Filter-searchInput\");\r\n const searchInputWidth = `${newSearchInput.placeholder.length + 3}ch`;\r\n doc.querySelector(\".Filter-searchInput\").style.width =\r\n searchInputWidth;\r\n\r\n oldGrid.classList.add(\"--hidden\");\r\n newGrid.classList.add(`Inspiration-grid--${randomIndex}`, \"--hidden\");\r\n\r\n checkPostsReturned(newHrefs);\r\n\r\n /* Timeout to create opacity animation effect */\r\n setTimeout(() => {\r\n oldGrid.remove();\r\n oldFilter.after(newGrid);\r\n newGrid.before(newFilter);\r\n oldFilter.remove();\r\n updateFilterButtons(url);\r\n const zoomEvent = new Event(\"addImageZoom\");\r\n window.dispatchEvent(zoomEvent);\r\n }, 150);\r\n\r\n setTimeout(() => {\r\n newGrid.classList.remove(\"--hidden\");\r\n if (isMobile) document.body.classList.remove(\"--no-scroll\");\r\n }, 300);\r\n\r\n /* Update filter */\r\n if (window.scrollY != 0) {\r\n window.scroll(0, 0);\r\n // window.scrollTo({\r\n // top: 0,\r\n // left: 0,\r\n // behavior: \"smooth\",\r\n // });\r\n }\r\n\r\n document.body.classList.remove(\"is-filtering\");\r\n });\r\n } catch (error) {\r\n console.error(error);\r\n location.assign(\"/inspiration\");\r\n }\r\n });\r\n };\r\n\r\n let subMenuCurrentWrapperIndex = -1;\r\n const addClickEventListeners = (e) => {\r\n /* Term button */\r\n if (e.target.classList.contains(\"js-term\")) {\r\n document.body.classList.remove(\"--filter-open\");\r\n infiniteScrollUrl = \"\"; // disables infinite scroll\r\n\r\n runTermButtonInteraction(e.target);\r\n runFiltering(e);\r\n updateFilterButtons(e.target.getAttribute(\"href\"));\r\n }\r\n\r\n /* Tax button */\r\n if (e.target.classList.contains(\"js-taxonomy\")) {\r\n runTaxButtonInteraction(e.target);\r\n }\r\n\r\n /* Reset filter */\r\n if (e.target.classList.contains(\"Filter-button--reset\")) {\r\n resetFilterButtons();\r\n }\r\n\r\n /* Add grid loader for inspire me button */\r\n if (e.target.classList.contains(\"js-inspireButton\")) {\r\n document.body.classList.add(\"is-filtering\");\r\n }\r\n\r\n /* Close filter if clicked outside and filter is open */\r\n if (\r\n !e.target.classList.contains(\"Filter-button\") &&\r\n !e.target.classList.contains(\"Filter-button--term\") &&\r\n !e.target.classList.contains(\"Filter-button--reset\") &&\r\n !e.target.classList.contains(\"Filter-group\") &&\r\n !document.body.classList.contains(\"is-loading\")\r\n ) {\r\n const openGroup = document.querySelector(\".js-taxGroup.--open\");\r\n const activeButton = document.querySelector(\".js-taxonomy.--open\");\r\n\r\n if (openGroup && activeButton) {\r\n openGroup.classList.remove(\"--open\");\r\n activeButton.classList.remove(\"--open\");\r\n }\r\n }\r\n\r\n /* Open filter in mobile */\r\n if (e.target.classList.contains(\"Filter-openButton\")) {\r\n document.querySelector(\".Filter\").classList.toggle(\"--mobileOpen\");\r\n document.body.classList.toggle(\"--filter-open\");\r\n document.body.classList.add(\"--no-scroll\");\r\n e.target.classList.toggle(\"--open\");\r\n }\r\n\r\n /* Load more button */\r\n if (e.target.classList.contains(\"js-loadMore\")) {\r\n e.preventDefault();\r\n\r\n const url = e.target.getAttribute(\"href\");\r\n fetchAndLoadItems(url);\r\n\r\n e.target.classList.add(\"--hidden\");\r\n\r\n window.addEventListener(\"scroll\", () => {\r\n if (infiniteScrollUrl) {\r\n infiniteScrollListener(infiniteScrollUrl);\r\n }\r\n });\r\n }\r\n\r\n /* Open filter sub menu in mobile */\r\n if (e.target.classList.contains(\"js-filter-show-mobile\")) {\r\n const submenu = document.querySelector(\".js-filter-mobile-submenu\");\r\n if (subMenuCurrentWrapperIndex === 0) {\r\n subMenuCurrentWrapperIndex = -1;\r\n submenu.classList.add(\"--hidden\");\r\n } else {\r\n subMenuCurrentWrapperIndex = 0;\r\n submenu.classList.remove(\"--hidden\");\r\n }\r\n document\r\n .querySelector(\".js-filter-mobile-show-wrapper\")\r\n .classList.remove(\"--hidden\");\r\n document\r\n .querySelector(\".js-filter-mobile-sort-wrapper\")\r\n .classList.add(\"--hidden\");\r\n }\r\n\r\n if (e.target.classList.contains(\"js-filter-sort-mobile\")) {\r\n const submenu = document.querySelector(\".js-filter-mobile-submenu\");\r\n if (subMenuCurrentWrapperIndex === 1) {\r\n subMenuCurrentWrapperIndex = -1;\r\n submenu.classList.add(\"--hidden\");\r\n } else {\r\n subMenuCurrentWrapperIndex = 1;\r\n submenu.classList.remove(\"--hidden\");\r\n }\r\n document\r\n .querySelector(\".js-filter-mobile-show-wrapper\")\r\n .classList.add(\"--hidden\");\r\n document\r\n .querySelector(\".js-filter-mobile-sort-wrapper\")\r\n .classList.remove(\"--hidden\");\r\n }\r\n };\r\n\r\n /****** INITIATIONS *****/\r\n\r\n window.addEventListener(\"load\", () => {\r\n const hrefs = [...document.querySelectorAll(\".js-term\")].map((term) =>\r\n term.getAttribute(\"href\")\r\n );\r\n\r\n document.querySelector(\".js-search\").addEventListener(\"submit\", () => {\r\n document.body.classList.add(\"is-filtering\");\r\n });\r\n\r\n // document.querySelector(\".Filter-searchInput\").addEventListener(\"input\", (e) => {\r\n // resizeSearchInput(e);\r\n // });\r\n\r\n if (window.innerWidth > 1024) closeFilterOnScroll();\r\n if (shouldFilter) checkPostsReturned(hrefs);\r\n if (location.search && shouldFilter) updateFilterButtons(location.search);\r\n\r\n window.addEventListener(\"click\", addClickEventListeners);\r\n });\r\n}\r\n","document.addEventListener(\"DOMContentLoaded\", () => {\r\n const guide = document.querySelector(\".Guide\");\r\n if (!guide) return;\r\n\r\n const guideTitles = document.querySelectorAll(\".Guide-title\");\r\n const guideTitlesContainer = document.querySelector(\".Guide-titles\");\r\n const letters = document.querySelectorAll(\".Guide-letter\");\r\n const filterButtons = document.querySelectorAll(\".js-filterButton\");\r\n const backArrows = document.querySelectorAll(\".Guide-backArrow\");\r\n\r\n const breakpoint = 768;\r\n let manuallySelectedLetter = null;\r\n\r\n const updateLetter = (letter) => {\r\n letters.forEach(el => el.classList.toggle(\"--active\", el.textContent.trim() === letter));\r\n };\r\n\r\n const adjustPaddingBottom = () => {\r\n if (window.innerWidth <= breakpoint || !guideTitles.length) {\r\n guideTitlesContainer.style.paddingBottom = \"\";\r\n return;\r\n }\r\n\r\n const lastGuideTitle = guideTitles[guideTitles.length - 1];\r\n if (!lastGuideTitle) return;\r\n\r\n const guideTitleHeight = lastGuideTitle.getBoundingClientRect().height;\r\n const numOfLastLetters = [...guideTitles].filter(title => title.textContent.trim()[0] === lastGuideTitle.textContent.trim()[0]).length;\r\n\r\n guideTitlesContainer.style.paddingBottom = `${guideTitleHeight * (14.5 - numOfLastLetters)}px`;\r\n };\r\n\r\n // Optimize Resize Event Listener\r\n let resizeTimeout;\r\n window.addEventListener(\"resize\", () => {\r\n clearTimeout(resizeTimeout);\r\n resizeTimeout = setTimeout(() => {\r\n adjustPaddingBottom();\r\n handleHashChange();\r\n }, 150);\r\n });\r\n\r\n adjustPaddingBottom();\r\n\r\n // **Intersection Observer**\r\n const observer = new IntersectionObserver(entries => {\r\n entries.forEach(entry => {\r\n if (entry.isIntersecting && !manuallySelectedLetter) {\r\n updateLetter(entry.target.textContent.trim()[0]);\r\n }\r\n });\r\n });\r\n\r\n guideTitles.forEach(title => observer.observe(title));\r\n\r\n guideTitlesContainer?.addEventListener(\"click\", (e) => {\r\n if (!e.target.classList.contains(\"Guide-title\")) return;\r\n guideTitles.forEach(title => title.classList.remove(\"--active\"));\r\n e.target.classList.add(\"--active\");\r\n showGuideContent(e.target, window.innerWidth <= breakpoint);\r\n });\r\n\r\n letters.forEach(letterEl => {\r\n letterEl.addEventListener(\"click\", function () {\r\n manuallySelectedLetter = this.textContent.trim();\r\n updateLetter(manuallySelectedLetter);\r\n setTimeout(() => (manuallySelectedLetter = null), 3000);\r\n });\r\n });\r\n\r\n filterButtons.forEach(button => {\r\n button.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n const isActive = button.classList.contains(\"--active\");\r\n\r\n filterButtons.forEach(btn => btn.classList.remove(\"--active\"));\r\n guideTitles.forEach(title => (title.style.display = \"none\"));\r\n\r\n if (!isActive) {\r\n button.classList.add(\"--active\");\r\n guideTitles.forEach(title => {\r\n if (title.dataset.group === button.dataset.group) {\r\n title.style.display = \"block\";\r\n }\r\n });\r\n } else {\r\n guideTitles.forEach(title => (title.style.display = \"block\"));\r\n }\r\n });\r\n });\r\n\r\n const showGuideContent = (element, isMobile = false) => {\r\n if (!element.classList.contains(\"Guide-title\")) return;\r\n\r\n const dataId = element.dataset.id;\r\n if (!dataId) return;\r\n\r\n const prevActive = document.querySelector(\".Guide-content.--active\");\r\n if (prevActive?.dataset.id === dataId) return;\r\n\r\n prevActive?.classList.remove(\"--active\");\r\n\r\n // Remove hash from URL\r\n history.replaceState(null, document.title, location.href.split(\"#\")[0]);\r\n\r\n const contentWrapper = document.querySelector(`.Guide-content[data-id='${dataId}']`);\r\n if (!contentWrapper) return;\r\n\r\n contentWrapper.classList.add(\"--active\");\r\n document.body.classList.add(\"no-scroll\");\r\n\r\n contentWrapper.querySelectorAll(\".js-guideImages\").forEach(img => {\r\n if (img.dataset.src) img.src = img.dataset.src;\r\n if (img.dataset.srcset) img.srcset = img.dataset.srcset;\r\n });\r\n\r\n // **Update active letter when clicking a title**\r\n updateLetter(element.textContent.trim()[0]);\r\n\r\n if (isMobile) {\r\n contentWrapper.removeEventListener(\"click\", removeActiveGuideContent);\r\n contentWrapper.addEventListener(\"click\", removeActiveGuideContent);\r\n }\r\n\r\n if (element.dataset.slug) {\r\n history.replaceState(null, \"\", element.dataset.slug);\r\n }\r\n };\r\n\r\n const removeActiveGuideContent = (event) => {\r\n if (!event.target.classList.contains(\"Guide-backArrow\")) return; // ⬅ **Only close when clicking backArrow**\r\n event.stopPropagation();\r\n\r\n const contentWrapper = event.target.closest(\".Guide-content\");\r\n if (!contentWrapper) return;\r\n\r\n contentWrapper.classList.add(\"--closing\");\r\n contentWrapper.classList.remove(\"--active\");\r\n\r\n document.body.classList.remove(\"no-scroll\");\r\n\r\n // Delay height reset after transition (matching CSS duration)\r\n setTimeout(() => {\r\n contentWrapper.classList.remove(\"--closing\");\r\n }, 350);\r\n\r\n // Remove hash immediately\r\n history.replaceState(null, document.title, location.href.split(\"#\")[0]);\r\n };\r\n\r\n // **Close Guide-content on Back Arrow Click**\r\n backArrows.forEach(arrow => {\r\n arrow.addEventListener(\"click\", removeActiveGuideContent);\r\n });\r\n\r\n const handleHashChange = () => {\r\n if (!window.location.hash) return;\r\n\r\n guideTitles.forEach(guideTitle => {\r\n if (guideTitle.dataset.slug === window.location.hash) {\r\n scrollToElement(guideTitle, \"3.5rem\", \"6rem\");\r\n showGuideContent(guideTitle, window.innerWidth <= breakpoint);\r\n guideTitle.classList.add(\"--active\");\r\n }\r\n });\r\n };\r\n\r\n window.addEventListener(\"hashchange\", handleHashChange);\r\n\r\n const InitAlphabet = () => {\r\n letters.forEach(letter => {\r\n letter.addEventListener(\"click\", () => {\r\n const letterValue = letter.textContent.trim().toLowerCase();\r\n for (let title of guideTitles) {\r\n if (title.textContent.trim().toLowerCase().startsWith(letterValue)) {\r\n scrollToElement(title, \"3.5rem\", \"6rem\");\r\n break;\r\n }\r\n }\r\n });\r\n });\r\n };\r\n\r\n const scrollToElement = (element, desktopMargin, mobileMargin) => {\r\n element.style.scrollMarginTop = window.innerWidth <= 480 ? mobileMargin : desktopMargin;\r\n element.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\r\n };\r\n\r\n handleHashChange();\r\n InitAlphabet();\r\n});\r\n","document.addEventListener(\"DOMContentLoaded\", () => {\r\n const arrow = document.querySelector(\".js-arrow-down\");\r\n\r\n if (arrow) {\r\n arrow.addEventListener(\"click\", function () {\r\n let parentElement = this.closest(\"section\");\r\n let nextSibling = parentElement.nextElementSibling;\r\n\r\n if (nextSibling) {\r\n const offset = 40;\r\n const elementPosition =\r\n nextSibling.getBoundingClientRect().top + window.scrollY - offset;\r\n\r\n window.scrollTo({\r\n top: elementPosition,\r\n behavior: \"smooth\",\r\n });\r\n }\r\n });\r\n }\r\n\r\n window.onload = function () {\r\n setTimeout(() => {\r\n document.querySelector(\"body\").classList.remove(\"open\");\r\n document.querySelector(\".loading-screen\").classList.add(\"hide\");\r\n }, 800);\r\n }\r\n});\r\n","const focusedImages = document.querySelectorAll(\".js-gallery-focused\");\r\nconst galleryThumbnails = document.querySelectorAll(\".js-gallery-thumb\");\r\n\r\nif (focusedImages.length && galleryThumbnails.length) {\r\n if (galleryThumbnails.length > 1) {\r\n let timeout;\r\n\r\n const thumbEventListener = (image) => {\r\n const prev = document.querySelector(\".js-gallery-focused.--visible\");\r\n const id = image.getAttribute(\"data-id\");\r\n\r\n if (prev && prev.getAttribute(\"data-id\") === id) return;\r\n\r\n const next = document.querySelector(\r\n `.js-gallery-focused[data-id='${id}']`\r\n );\r\n if (next) {\r\n next.classList.add(\"--visible\");\r\n }\r\n if (prev) {\r\n prev.classList.remove(\"--visible\");\r\n }\r\n };\r\n\r\n window.addEventListener(\"click\", (e) => {\r\n if (e.target.classList.contains(\"js-gallery-thumb\")) {\r\n thumbEventListener(e.target);\r\n }\r\n });\r\n\r\n window.addEventListener(\"mouseover\", (e) => {\r\n if (e.target.classList.contains(\"js-gallery-thumb\")) {\r\n if (!timeout) {\r\n timeout = setTimeout(() => {\r\n thumbEventListener(e.target);\r\n }, 150);\r\n }\r\n }\r\n });\r\n\r\n window.addEventListener(\"mouseout\", (e) => {\r\n if (e.target.classList.contains(\"js-gallery-thumb\")) {\r\n if (timeout) {\r\n clearTimeout(timeout);\r\n timeout = null;\r\n }\r\n }\r\n });\r\n } else {\r\n focusedImages[0].parentNode.classList.add(\"--full-width\");\r\n galleryThumbnails[0].parentNode.classList.add(\"--hidden\");\r\n }\r\n}\r\n","/* -------------------------------------------\r\n IMAGE ZOOM \r\n------------------------------------------- */\r\n\r\nconst addZoomListeners = () => {\r\n if (window.innerWidth < 768) return;\r\n\r\n const zoomImageEls = document.querySelectorAll(\".js-imageZoom\");\r\n\r\n zoomImageEls.forEach((el) => {\r\n el.setAttribute(\r\n \"style\",\r\n `background-image:url(${el.getAttribute(\"data-zoom-source\")})`\r\n );\r\n el.classList.add(\"has-zoomlistener\");\r\n });\r\n\r\n if (zoomImageEls.length) {\r\n // const zoomImage = (e) => {\r\n // e.offsetX ? (offsetX = e.offsetX) : (offsetX = e.touches[0].pageX);\r\n // e.offsetY ? (offsetY = e.offsetY) : (offsetY = e.touches[0].pageY);\r\n // x = (offsetX / e.currentTarget.offsetWidth) * 100;\r\n // y = (offsetY / e.currentTarget.offsetHeight) * 100;\r\n // e.currentTarget.style.backgroundPosition = x + \"% \" + y + \"%\";\r\n // };\r\n\r\n const zoomImage = (e) => {\r\n let offsetX, offsetY; // Declare variables here\r\n if (e.offsetX) {\r\n offsetX = e.offsetX;\r\n offsetY = e.offsetY;\r\n } else if (e.touches && e.touches[0]) {\r\n offsetX = e.touches[0].pageX;\r\n offsetY = e.touches[0].pageY;\r\n } else {\r\n return; // If neither is available, exit the function gracefully\r\n }\r\n\r\n const x = (offsetX / e.currentTarget.offsetWidth) * 100;\r\n const y = (offsetY / e.currentTarget.offsetHeight) * 100;\r\n e.currentTarget.style.backgroundPosition = `${x}% ${y}%`;\r\n };\r\n\r\n zoomImageEls.forEach((el) =>\r\n el.addEventListener(\"mousemove\", (e) => {\r\n zoomImage(e);\r\n })\r\n );\r\n }\r\n};\r\n\r\nwindow.addEventListener(\"DOMContentLoaded\", () => {\r\n if (document.querySelector(\".js-imageZoom\")) {\r\n addZoomListeners();\r\n }\r\n});\r\n\r\nwindow.addEventListener(\"addImageZoom\", () => {\r\n if (document.querySelector(\".js-imageZoom\")) {\r\n addZoomListeners();\r\n }\r\n});\r\n\r\nconst addZoomListenerButtons = document.querySelectorAll(\".js-initZoom\");\r\n\r\nif (addZoomListenerButtons) {\r\n addZoomListenerButtons.forEach((btn) =>\r\n btn.addEventListener(\"click\", () => {\r\n setTimeout(() => {\r\n addZoomListeners();\r\n }, 1000);\r\n })\r\n );\r\n}\r\n","const filterButtonsSingleInspiration = document.querySelectorAll(\r\n \".js-filterButtonSingleInspiration\"\r\n);\r\n\r\nif (filterButtonsSingleInspiration.length > 0) {\r\n //Un-comment this to add the hover effect\r\n fetchAndBuildGuideData(filterButtonsSingleInspiration);\r\n}\r\n\r\nasync function fetchAndBuildGuideData(filterButtons) {\r\n try {\r\n const response = await fetch(\r\n `${window.location.origin}/wp-json/atta45/v1/all-guides`,\r\n {\r\n method: \"GET\",\r\n headers: { \"Content-Type\": \"application/json\" },\r\n }\r\n );\r\n //Get all guides from database\r\n const guidesData = await response.json();\r\n buildHoverGuide(guidesData, filterButtons);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n}\r\n\r\nfunction buildHoverGuide(guidesData, filterButtons) {\r\n const tabParent = document.querySelector(\".js-singleProjectTabs\");\r\n\r\n const hoverSection = document.createElement(\"section\");\r\n hoverSection.classList.add(\"SingleInspiration-guideHoverSection\");\r\n tabParent.appendChild(hoverSection);\r\n\r\n const contentWrapper = document.createElement(\"div\");\r\n contentWrapper.classList.add(\r\n \"SingleInspiration-guideHoverSection--contentWrapper\"\r\n );\r\n hoverSection.appendChild(contentWrapper);\r\n\r\n const imagesWrapper = document.createElement(\"div\");\r\n imagesWrapper.classList.add(\r\n \"SingleInspiration-guideHoverSection--imageWrapper\"\r\n );\r\n hoverSection.appendChild(imagesWrapper);\r\n\r\n const imgTags = [];\r\n\r\n for (let i = 0; i < 3; i++) {\r\n const figureTag = document.createElement(\"figure\");\r\n imagesWrapper.appendChild(figureTag);\r\n const imgTag = document.createElement(\"img\");\r\n imgTags.push(imgTag);\r\n imgTag.src = \"\";\r\n imgTag.style.display = \"none\";\r\n figureTag.appendChild(imgTag);\r\n }\r\n\r\n //Get \"en\" if english or something else if swedish\r\n let firstSubUrl = window.location.pathname.split(\"/\")[1];\r\n\r\n for (let i = 0; i < filterButtons.length; i++) {\r\n const filterButton = filterButtons[i];\r\n const guideWordId = filterButton.dataset.guideWordId;\r\n if (guideWordId === \"\") {\r\n continue;\r\n }\r\n\r\n for (let j = 0; j < guidesData.length; j++) {\r\n const guideItem = guidesData[j];\r\n if (guideItem[\"ID\"] != guideWordId) {\r\n continue;\r\n }\r\n\r\n filterButton.addEventListener(\"mouseenter\", () => {\r\n hoverSection.style.display = \"flex\";\r\n\r\n //only display the guideItem[post_content] or the guideItem[post_content_en]'s first paragrahp (

tag)\r\n\r\n let firstParagraph = guideItem[\"post_content\"].split(\"

\")[0];\r\n if (firstSubUrl === \"en\") {\r\n firstParagraph = guideItem[\"post_content_en\"].split(\"

\")[0];\r\n }\r\n\r\n contentWrapper.innerHTML = firstParagraph;\r\n const nrOfLoops = Math.min(3, guideItem[\"imageUrls\"].length);\r\n for (let k = 0; k < nrOfLoops; k++) {\r\n const imageUrl = guideItem[\"imageUrls\"][k];\r\n if (!imageUrl || imageUrl == \"\") {\r\n continue;\r\n }\r\n imgTags[k].src = imageUrl;\r\n imgTags[k].style.display = \"block\";\r\n }\r\n });\r\n\r\n filterButton.addEventListener(\"mouseleave\", () => {\r\n hoverSection.style.display = \"none\";\r\n imgTags.forEach((imgTag) => {\r\n imgTag.style.display = \"none\";\r\n });\r\n });\r\n }\r\n }\r\n}\r\n","const initLottie = (container, loop = false) => {\r\n return lottie.loadAnimation({\r\n container: container,\r\n renderer: \"svg\",\r\n loop: loop,\r\n autoplay: true,\r\n path: container.getAttribute(\"data-path\"),\r\n });\r\n};\r\n\r\nconst loaderContainer = document.querySelector(\".js-loader-lottie\");\r\n\r\nif (loaderContainer) {\r\n const loaderLottie = initLottie(loaderContainer, true);\r\n\r\n loaderLottie.addEventListener(\"DOMLoaded\", () => {\r\n loaderLottie.setSpeed(0.5);\r\n });\r\n}\r\n"]}