{"version":3,"file":"usePovioTestimonials-DjOmMSHJ.js","names":["RefObject","useEffect","useState","usePovioTestimonials","sectionRef","t0","$","_c","iot","undefined","t1","Symbol","for","previousDisabled","nextDisabled","controls","setControls","t2","t3","section","current","pin","parentElement","slides","querySelectorAll","names","list","querySelector","swiper","previous","next","desktop","window","matchMedia","reduced","removers","slideCount","length","blurred","activeSlide","activeSnap","dragStart","dragOffset","listen","target","type","listener","options","addEventListener","push","removeEventListener","panelsFor","_temp","clearPanels","slide_0","panel","slide","animation","getAnimations","cancel","style","removeProperty","activateName","index","nameIndex","name","entries","classList","toggle","switchSlide","index_0","immediate","outgoing","incoming","slideIndex","slide_1","selected","panel_0","animation_0","matches","opacity","visibility","filter","panelIndex","panel_1","animation_1","animate","duration","delay","easing","fill","onfinish","panelIndex_0","panel_2","animation_2","snapPositions","firstSlide","visual","width","offsetWidth","peek","getComputedStyle","gap","Number","parseFloat","columnGap","margin","marginRight","positions","offset","index_1","syncControls","goToSnap","index_2","positions_0","Math","min","max","transition","transform","floor","updateScroll","remove","add","distance","innerHeight","progress","getBoundingClientRect","top","hold","selected_0","start","index_3","end","reset","event","pointer","PointerEvent","clientX","setPointerCapture","pointerId","event_0","pointer_0","hasPointerCapture","finishDrag","event_1","pointer_1","releasePointerCapture","positions_1","dragged","selected_1","index_4","position","abs","passive"],"sources":["../../src/components/features/povio/usePovioTestimonials.ts"],"sourcesContent":["import { type RefObject, useEffect, useState } from \"react\";\n\nexport function usePovioTestimonials(sectionRef: RefObject<HTMLElement | null>, iot = false) {\n  const [controls, setControls] = useState({ previousDisabled: true, nextDisabled: false });\n\n  useEffect(() => {\n    const section = sectionRef.current;\n    if (!section) {\n      return;\n    }\n    const pin = section.parentElement;\n    const slides = [...section.querySelectorAll<HTMLElement>(\"[data-testimonial-slide]\")];\n    const names = [...section.querySelectorAll<HTMLElement>(\"[data-name-item]\")];\n    const list = section.querySelector<HTMLElement>(\".testimonial_slider_list\");\n    const swiper = section.querySelector<HTMLElement>(\"[data-testimonial-swiper]\");\n    const previous = section.querySelector<HTMLButtonElement>(\"[data-nav-prev]\");\n    const next = section.querySelector<HTMLButtonElement>(\"[data-nav-next]\");\n    const desktop = window.matchMedia(\"(min-width: 992px)\");\n    const reduced = window.matchMedia(\"(prefers-reduced-motion: reduce)\");\n    const removers: (() => void)[] = [];\n    const slideCount = slides.length;\n    const transitionGap = 0.1;\n    const blurred = iot ? \"blur(4px)\" : \"blur(8px)\";\n    let activeSlide = 0;\n    let activeSnap = 0;\n    let dragStart = 0;\n    let dragOffset = 0;\n\n    const listen = (\n      target: EventTarget,\n      type: string,\n      listener: (event: Event) => void,\n      options?: AddEventListenerOptions,\n    ) => {\n      target.addEventListener(type, listener, options);\n      removers.push(() => target.removeEventListener(type, listener, options));\n    };\n    const panelsFor = (slide: HTMLElement) => [\n      ...slide.querySelectorAll<HTMLElement>(\".testimonial_slide_visual, .testimonial_slide_content\"),\n    ];\n    const clearPanels = () => {\n      for (const slide of slides) {\n        for (const panel of panelsFor(slide)) {\n          for (const animation of panel.getAnimations()) {\n            animation.cancel();\n          }\n          panel.style.removeProperty(\"opacity\");\n          panel.style.removeProperty(\"visibility\");\n          panel.style.removeProperty(\"filter\");\n        }\n      }\n      list?.style.removeProperty(\"transform\");\n    };\n    const activateName = (index: number) => {\n      for (const [nameIndex, name] of names.entries()) {\n        name.classList.toggle(\"is-active\", nameIndex === index);\n        name.style.removeProperty(\"opacity\");\n      }\n    };\n    const switchSlide = (index: number, immediate: boolean) => {\n      const outgoing = slides[activeSlide];\n      const incoming = slides[index];\n      for (const [slideIndex, slide] of slides.entries()) {\n        const selected = slideIndex === index;\n        for (const panel of panelsFor(slide)) {\n          for (const animation of panel.getAnimations()) {\n            animation.cancel();\n          }\n          if (immediate || reduced.matches || (slide !== outgoing && slide !== incoming)) {\n            panel.style.opacity = selected ? \"1\" : \"0\";\n            panel.style.visibility = selected ? \"visible\" : \"hidden\";\n            panel.style.filter = selected ? \"none\" : \"blur(8px)\";\n          }\n        }\n      }\n      if (immediate || reduced.matches || !outgoing || !incoming || outgoing === incoming) {\n        return;\n      }\n      for (const [panelIndex, panel] of panelsFor(outgoing).entries()) {\n        panel.style.visibility = \"visible\";\n        panel.style.opacity = \"1\";\n        panel.style.filter = \"none\";\n        const animation = panel.animate(\n          [\n            { opacity: 1, filter: \"blur(0px)\" },\n            { opacity: 0, filter: blurred },\n          ],\n          {\n            duration: iot ? [450, 400][panelIndex] : 500,\n            delay: panelIndex * (iot ? 40 : 60),\n            easing: \"cubic-bezier(0.455, 0.03, 0.515, 0.955)\",\n            fill: \"forwards\",\n          },\n        );\n        animation.onfinish = () => {\n          panel.style.opacity = \"0\";\n          panel.style.visibility = \"hidden\";\n          panel.style.filter = blurred;\n        };\n      }\n      for (const [panelIndex, panel] of panelsFor(incoming).entries()) {\n        panel.style.visibility = \"visible\";\n        panel.style.opacity = \"0\";\n        panel.style.filter = blurred;\n        const animation = panel.animate(\n          [\n            { opacity: 0, filter: blurred },\n            { opacity: 1, filter: \"blur(0px)\" },\n          ],\n          {\n            duration: iot ? [550, 500][panelIndex] : 650,\n            delay: iot ? 300 + panelIndex * 40 : 200 + panelIndex * 60,\n            easing: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n            fill: \"forwards\",\n          },\n        );\n        animation.onfinish = () => {\n          panel.style.opacity = \"1\";\n          panel.style.visibility = \"visible\";\n          panel.style.filter = \"none\";\n        };\n      }\n    };\n    const snapPositions = () => {\n      const [firstSlide] = slides;\n      const visual = firstSlide?.querySelector<HTMLElement>(\".testimonial_slide_visual\");\n      if (!swiper || !firstSlide || !visual) {\n        return [];\n      }\n      const width = visual.offsetWidth;\n      const peek = iot ? swiper.offsetWidth - width : 0;\n      const style = getComputedStyle(firstSlide);\n      const gap = Number.parseFloat(style.columnGap) || Number.parseFloat(style.gap) || 0;\n      const margin = Number.parseFloat(style.marginRight) || 0;\n      const positions: number[] = [];\n      let offset = 0;\n      for (let index = 0; index < slideCount; index++) {\n        positions.push(-offset, -(offset + width + gap - peek));\n        offset += width * 2 + gap + (index === slideCount - 1 ? 0 : margin);\n      }\n      return positions;\n    };\n    const syncControls = () => {\n      const previousDisabled = activeSnap === 0;\n      const nextDisabled = activeSnap === snapPositions().length - 1;\n      setControls((current) =>\n        current.previousDisabled === previousDisabled && current.nextDisabled === nextDisabled\n          ? current\n          : { previousDisabled, nextDisabled },\n      );\n    };\n    const goToSnap = (index: number) => {\n      const positions = snapPositions();\n      if (list && positions.length > 0) {\n        activeSnap = Math.min(positions.length - 1, Math.max(0, index));\n        list.style.transition = reduced.matches ? \"none\" : \"transform 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955)\";\n        list.style.transform = `translateX(${positions[activeSnap]}px)`;\n        activateName(Math.floor(activeSnap / 2));\n        syncControls();\n      }\n    };\n    const updateScroll = () => {\n      if (!pin) {\n        return;\n      }\n      if (!desktop.matches || reduced.matches) {\n        pin.classList.remove(\"is-scroll\");\n        return;\n      }\n      pin.classList.add(\"is-scroll\");\n      const distance = window.innerHeight * (iot ? slideCount - 1 : slideCount);\n      const progress = Math.min(1, Math.max(0, -pin.getBoundingClientRect().top / distance));\n      const hold = (1 - (slideCount - 1) * transitionGap) / slideCount;\n      let selected = slideCount - 1;\n      let start = 0;\n      for (let index = 0; index < slideCount - 1; index++) {\n        const end = start + hold;\n        if (progress < end + transitionGap / 2) {\n          selected = index;\n          break;\n        }\n        start = end + transitionGap;\n      }\n      if (selected !== activeSlide) {\n        switchSlide(selected, false);\n        activeSlide = selected;\n        activateName(selected);\n      }\n    };\n    const reset = () => {\n      clearPanels();\n      activeSlide = 0;\n      activeSnap = 0;\n      if (desktop.matches && !reduced.matches) {\n        switchSlide(0, true);\n        activateName(0);\n        updateScroll();\n      } else {\n        pin?.classList.remove(\"is-scroll\");\n        activateName(0);\n        goToSnap(0);\n      }\n    };\n\n    if (swiper) {\n      listen(swiper, \"pointerdown\", (event) => {\n        const pointer = event as PointerEvent;\n        if (!desktop.matches && list) {\n          dragStart = pointer.clientX;\n          dragOffset = snapPositions()[activeSnap] || 0;\n          list.style.transition = \"none\";\n          swiper.setPointerCapture(pointer.pointerId);\n        }\n      });\n      listen(swiper, \"pointermove\", (event) => {\n        const pointer = event as PointerEvent;\n        if (list && swiper.hasPointerCapture(pointer.pointerId)) {\n          list.style.transform = `translateX(${dragOffset + pointer.clientX - dragStart}px)`;\n        }\n      });\n      const finishDrag = (event: Event) => {\n        const pointer = event as PointerEvent;\n        if (!swiper.hasPointerCapture(pointer.pointerId)) {\n          return;\n        }\n        swiper.releasePointerCapture(pointer.pointerId);\n        const positions = snapPositions();\n        const dragged = dragOffset + pointer.clientX - dragStart;\n        let selected = 0;\n        for (const [index, position] of positions.entries()) {\n          if (Math.abs(position - dragged) < Math.abs(positions[selected] - dragged)) {\n            selected = index;\n          }\n        }\n        goToSnap(selected);\n      };\n      listen(swiper, \"pointerup\", finishDrag);\n      listen(swiper, \"pointercancel\", finishDrag);\n    }\n    if (previous) {\n      listen(previous, \"click\", () => goToSnap(activeSnap - 1));\n    }\n    if (next) {\n      listen(next, \"click\", () => goToSnap(activeSnap + 1));\n    }\n    listen(window, \"resize\", () => {\n      if (desktop.matches && !reduced.matches) {\n        updateScroll();\n      } else {\n        goToSnap(activeSnap);\n      }\n    });\n    listen(window, \"scroll\", updateScroll, { passive: true });\n    listen(desktop, \"change\", reset);\n    listen(reduced, \"change\", reset);\n    reset();\n    return () => {\n      for (const remove of removers) {\n        remove();\n      }\n      clearPanels();\n      list?.style.removeProperty(\"transition\");\n      pin?.classList.remove(\"is-scroll\");\n    };\n  }, [sectionRef, iot]);\n\n  return controls;\n}\n"],"mappings":"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"}