{"version":3,"file":"case-studies.7b009ffe.js","sources":["../../../src/js/_blocks/case-studies.ts"],"sourcesContent":["import {prm, mq} from '../_utilities/mediaQueries'\n\nexport default function (caseStudiesElements: NodeListOf) {\n caseStudiesElements.forEach((caseStudies) => {\n const singles = caseStudies.querySelectorAll(\n '.case-studies__single'\n )\n const images = caseStudies.querySelectorAll(\n '.case-studies__image'\n )\n\n const observerOptions = {\n threshold: 0.9,\n rootMargin: '-50px 0px',\n }\n\n const previousYs: number[] = []\n\n images.forEach((image) => {\n const singleId = Number(image.dataset.caseImageId)\n const single = singles[singleId]\n const arrow = single.querySelector(\n '.case-studies__single-arrow'\n )\n\n image.addEventListener('mouseover', () => showSingleArrow(arrow))\n image.addEventListener('mouseout', () => hideSingleArrow(arrow))\n\n image.addEventListener('focus', () => showSingleArrow(arrow))\n image.addEventListener('blur', () => hideSingleArrow(arrow))\n })\n\n if (!mq(prm)) {\n singles.forEach((element, index) => {\n previousYs[index] = -1\n\n const observer = new IntersectionObserver((entries) => {\n const image = caseStudies.querySelector(\n `.case-studies__image[data-case-image-id=\"${index}\"]`\n ) as HTMLImageElement\n\n entries.forEach((entry) => {\n const currentY = entry.boundingClientRect.y\n const previousY = previousYs[index]\n const direction = currentY < previousY ? 'up' : 'down'\n\n if (entry.isIntersecting) {\n image.classList.remove(\n 'case-studies__image--up',\n 'case-studies__image--down'\n )\n image.classList.add('case-studies__image--visible')\n } else if (direction === 'up') {\n image.classList.remove(\n 'case-studies__image--down',\n 'case-studies__image--visible'\n )\n image.classList.add('case-studies__image--up')\n } else {\n image.classList.remove(\n 'case-studies__image--up',\n 'case-studies__image--visible'\n )\n image.classList.add('case-studies__image--down')\n }\n\n previousYs[index] = currentY\n })\n }, observerOptions)\n\n observer.observe(element)\n })\n }\n })\n\n function showSingleArrow(arrow: HTMLElement | null) {\n arrow?.classList.remove('opacity-0')\n arrow?.classList.add('opacity-100')\n }\n function hideSingleArrow(arrow: HTMLElement | null) {\n arrow?.classList.remove('opacity-100')\n arrow?.classList.add('opacity-0')\n }\n}\n"],"names":["caseStudies","caseStudiesElements","singles","images","observerOptions","previousYs","image","singleId","arrow","showSingleArrow","hideSingleArrow","mq","prm","element","index","entries","entry","currentY","previousY","direction"],"mappings":"6CAEA,SAAAA,EAAyBC,EAA8C,CAC/CA,EAAA,QAASD,GAAgB,CACzC,MAAME,EAAUF,EAAY,iBACxB,uBAAA,EAEEG,EAASH,EAAY,iBACvB,sBAAA,EAGEI,EAAkB,CACpB,UAAW,GACX,WAAY,WAAA,EAGVC,EAAuB,CAAA,EAEtBF,EAAA,QAASG,GAAU,CACtB,MAAMC,EAAW,OAAOD,EAAM,QAAQ,WAAW,EAE3CE,EADSN,EAAQK,GACF,cACjB,6BAAA,EAGJD,EAAM,iBAAiB,YAAa,IAAMG,EAAgBD,CAAK,CAAC,EAChEF,EAAM,iBAAiB,WAAY,IAAMI,EAAgBF,CAAK,CAAC,EAE/DF,EAAM,iBAAiB,QAAS,IAAMG,EAAgBD,CAAK,CAAC,EAC5DF,EAAM,iBAAiB,OAAQ,IAAMI,EAAgBF,CAAK,CAAC,CAAA,CAC9D,EAEIG,EAAGC,CAAG,GACCV,EAAA,QAAQ,CAACW,EAASC,IAAU,CAChCT,EAAWS,GAAS,GAEH,IAAI,qBAAsBC,GAAY,CACnD,MAAMT,EAAQN,EAAY,cACtB,4CAA4Cc,KAAA,EAGxCC,EAAA,QAASC,GAAU,CACjB,MAAAC,EAAWD,EAAM,mBAAmB,EACpCE,EAAYb,EAAWS,GACvBK,EAAYF,EAAWC,EAAY,KAAO,OAE5CF,EAAM,gBACNV,EAAM,UAAU,OACZ,0BACA,2BAAA,EAEEA,EAAA,UAAU,IAAI,8BAA8B,GAC3Ca,IAAc,MACrBb,EAAM,UAAU,OACZ,4BACA,8BAAA,EAEEA,EAAA,UAAU,IAAI,yBAAyB,IAE7CA,EAAM,UAAU,OACZ,0BACA,8BAAA,EAEEA,EAAA,UAAU,IAAI,2BAA2B,GAGnDD,EAAWS,GAASG,CAAA,CACvB,GACFb,CAAe,EAET,QAAQS,CAAO,CAAA,CAC3B,CACL,CACH,EAED,SAASJ,EAAgBD,EAA2B,CACzCA,GAAA,MAAAA,EAAA,UAAU,OAAO,aACjBA,GAAA,MAAAA,EAAA,UAAU,IAAI,cACzB,CACA,SAASE,EAAgBF,EAA2B,CACzCA,GAAA,MAAAA,EAAA,UAAU,OAAO,eACjBA,GAAA,MAAAA,EAAA,UAAU,IAAI,YACzB,CACJ"}