{"version":3,"file":"artikelsida.min.js","sources":["artikelsida.js"],"sourcesContent":["'use strict';\r\n\r\nfunction touchScroll(element) {\r\n let isDown = false;\r\n let startX;\r\n let scrollLeft;\r\n\r\n element.addEventListener('mousedown', (e) => {\r\n isDown = true;\r\n element.classList.add('slider-active');\r\n startX = e.pageX - element.offsetLeft;\r\n scrollLeft = element.scrollLeft;\r\n cancelMomentumTracking();\r\n });\r\n\r\n element.addEventListener('mouseleave', () => {\r\n isDown = false;\r\n element.classList.remove('slider-active');\r\n });\r\n\r\n element.addEventListener('mouseup', () => {\r\n isDown = false;\r\n element.classList.remove('slider-active');\r\n beginMomentumTracking();\r\n });\r\n\r\n element.addEventListener('mousemove', (e) => {\r\n if (!isDown) return;\r\n e.preventDefault();\r\n const x = e.pageX - element.offsetLeft;\r\n const walk = (x - startX) * 2; //scroll-fast\r\n var prevScrollLeft = element.scrollLeft;\r\n element.scrollLeft = scrollLeft - walk;\r\n velX = element.scrollLeft - prevScrollLeft;\r\n });\r\n\r\n element.addEventListener('wheel', (e) => {\r\n cancelMomentumTracking();\r\n });\r\n\r\n var velX = 0;\r\n var momentumID;\r\n\r\n function beginMomentumTracking() {\r\n cancelMomentumTracking();\r\n momentumID = requestAnimationFrame(momentumLoop);\r\n }\r\n function cancelMomentumTracking() {\r\n cancelAnimationFrame(momentumID);\r\n }\r\n function momentumLoop() {\r\n element.scrollLeft += velX;\r\n velX *= 0.95;\r\n if (Math.abs(velX) > 0.5) {\r\n momentumID = requestAnimationFrame(momentumLoop);\r\n }\r\n }\r\n}\r\n\r\n(function () {\r\n doljCTAVidScroll();\r\n hanteraBlankare();\r\n\r\n function doljCTAVidScroll() {\r\n const cta = document.getElementById('cta');\r\n const sticky = document.querySelector('.cta-sticky');\r\n\r\n if (cta) {\r\n const ctaObserver = new IntersectionObserver((entries, observer) => {\r\n for (let entry of entries) {\r\n if (entry.isIntersecting) {\r\n sticky.classList.add('d-none');\r\n break;\r\n } else if (entry.boundingClientRect.top > 0) {\r\n sticky.classList.remove('d-none');\r\n }\r\n }\r\n });\r\n ctaObserver.observe(cta);\r\n }\r\n }\r\n\r\n function hanteraBlankare() {\r\n const link = document.querySelector('.blankare-ledig-lokal');\r\n if (link && link.hash !== '') {\r\n link.addEventListener('click', function (e) {\r\n const hash = this.hash;\r\n const element = document.getElementById(hash.slice(1));\r\n if (element) {\r\n event.preventDefault();\r\n element.scrollIntoView({ behavior: 'smooth' });\r\n }\r\n });\r\n }\r\n }\r\n\r\n})();\r\n\r\n(function () {\r\n const cardlist = document.querySelectorAll('.cardlist');\r\n if (!cardlist.length > 0) return;\r\n\r\n const cards = document.querySelectorAll('.card');\r\n const style = document.createElement('style');\r\n\r\n const generateElements = (html) => {\r\n const template = document.createElement('template');\r\n template.innerHTML = html.trim();\r\n return template.content.children;\r\n }\r\n\r\n style.innerHTML =\r\n `.truncate:not(.expand) {-webkit-line-clamp: ${cards[0].getAttribute('data-truncate-lines')};}`;\r\n\r\n const ref = document.querySelector('script');\r\n ref.parentNode.insertBefore(style, ref);\r\n\r\n const puffBlock = () => {\r\n cards.forEach(card => {\r\n const cardBody = card.querySelector('.card-body-inner');\r\n const truncateAmount = parseInt(card.getAttribute('data-truncate-lines'), 10);\r\n const titleHasTwoRows = card.querySelector('h1, h2, h3, h4, h5, h6').offsetHeight > 40;\r\n const truncateLines = titleHasTwoRows ? truncateAmount-1 : truncateAmount;\r\n const lineHeight = parseFloat(window.getComputedStyle(cardBody).lineHeight)\r\n\r\n if (titleHasTwoRows) {\r\n cardBody.style.cssText = `-webkit-line-clamp: ${truncateLines};`;\r\n }\r\n \r\n const cardBodyHeight = lineHeight * truncateLines;\r\n\r\n if (cardBody.offsetHeight <= cardBodyHeight) return;\r\n\r\n const tagLength = cardBody.querySelectorAll('p').length\r\n cardBody.setAttribute('data-height', ((tagLength-1)*lineHeight) + cardBody.offsetHeight);\r\n cardBody.classList.add('truncate');\r\n cardBody.setAttribute('data-truncate-height', cardBody.offsetHeight);\r\n cardBody.style.height = `${cardBody.offsetHeight}px`;\r\n const svg = '';\r\n const cardFooter = generateElements(\r\n `
`\r\n );\r\n\r\n const button = cardFooter[0].querySelector('button');\r\n\r\n button.addEventListener('click', e => {\r\n if (!cardBody.classList.contains('expand')) {\r\n\r\n if (titleHasTwoRows) {\r\n cardBody.style.cssText = '-webkit-line-clamp: none;';\r\n }\r\n \r\n cardBody.classList.add('expand');\r\n cardBody.parentNode.classList.add('ActiveText');\r\n cardBody.style.height = 'auto';\r\n cardBody.style.paddingBottom = '20px';\r\n } else {\r\n \r\n if (titleHasTwoRows) {\r\n cardBody.style.cssText = `-webkit-line-clamp: ${truncateLines};`;\r\n }\r\n\r\n cardBody.classList.remove('expand');\r\n cardBody.parentNode.classList.remove('ActiveText');\r\n cardBody.style.height =\r\n `${cardBody.getAttribute('data-truncate-height')}px`;\r\n }\r\n });\r\n\r\n cardBody.after(cardFooter[0]);\r\n \r\n });\r\n\r\n cardlist.forEach(list => {\r\n if (list.classList.contains('has-slider')) {\r\n list.parentNode.classList.add('slider')\r\n list.addEventListener('mouseenter', () => touchScroll(list))\r\n }\r\n })\r\n }\r\n\r\n window.addEventListener('load', () => puffBlock());\r\n})()"],"names":["touchScroll","element","let","isDown","startX","scrollLeft","addEventListener","classList","add","e","pageX","offsetLeft","cancelMomentumTracking","remove","momentumID","requestAnimationFrame","momentumLoop","prevScrollLeft","preventDefault","walk","velX","cancelAnimationFrame","Math","abs","doljCTAVidScroll","cta","document","getElementById","sticky","querySelector","IntersectionObserver","entries","observer","entry","isIntersecting","boundingClientRect","top","observe","link","hash","this","slice","event","scrollIntoView","behavior","cardlist","querySelectorAll","length","cards","style","createElement","innerHTML","getAttribute","ref","parentNode","insertBefore","puffBlock","forEach","card","cardBody","truncateAmount","parseInt","titleHasTwoRows","offsetHeight","truncateLines","lineHeight","parseFloat","window","getComputedStyle","cardBodyHeight","cssText","tagLength","setAttribute","height","template","html","trim","cardFooter","content","children","contains","paddingBottom","after","list"],"mappings":"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"}