{"version":3,"file":"internal-hooks-DqDpBreQ.cjs","names":[],"sources":["../src/components/internal-hooks.ts"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef } from 'react';\n\nexport const EVENT_PASSIVE_PARAMS = { capture: false, passive: true };\nexport const EVENT_CAPTURE_PARAMS = { capture: true, passive: false };\n\n/** Keyboard `key` events to trigger slider movement. */\nexport enum KeyboardEventKeys {\n  ARROW_LEFT = 'ArrowLeft',\n  ARROW_RIGHT = 'ArrowRight',\n  ARROW_UP = 'ArrowUp',\n  ARROW_DOWN = 'ArrowDown',\n}\n\n/**\n * Event listener binding hook.\n * @param eventName        Event to bind to.\n * @param handler          Callback handler.\n * @param element          Element to bind to.\n * @param handlerOptions  Event handler options.\n */\nexport const useEventListener = (\n  eventName: EventListener['name'],\n  handler: EventListener['caller'],\n  element: EventTarget | undefined | null,\n  handlerOptions: AddEventListenerOptions,\n): void => {\n  const savedHandler = useRef<EventListener['caller']>(undefined);\n\n  useEffect(() => {\n    savedHandler.current = handler;\n  }, [handler]);\n\n  useEffect(() => {\n    // Make sure element supports addEventListener.\n    if (!element?.addEventListener) return;\n\n    // Create event listener that calls handler function stored in ref.\n    const eventListener: EventListener = (event) => savedHandler.current?.(event);\n\n    element.addEventListener(eventName, eventListener, handlerOptions);\n\n    return (): void => {\n      element.removeEventListener(eventName, eventListener, handlerOptions);\n    };\n  }, [eventName, element, handlerOptions]);\n};\n"],"mappings":"uBAIA,MAAa,EAAuB,CAAE,QAAS,GAAO,QAAS,GAAM,CACxD,EAAuB,CAAE,QAAS,GAAM,QAAS,GAAO,CAGrE,IAAY,EAAL,SAAA,EAAA,OACL,GAAA,WAAA,YACA,EAAA,YAAA,aACA,EAAA,SAAA,UACA,EAAA,WAAA,kBACD,CASD,MAAa,GACX,EACA,EACA,EACA,IACS,CACT,IAAM,GAAA,EAAA,EAAA,QAA+C,IAAA,GAAU,EAE/D,EAAA,EAAA,eAAgB,CACd,EAAa,QAAU,GACtB,CAAC,EAAQ,CAAC,EAEb,EAAA,EAAA,eAAgB,CAEd,GAAI,CAAC,GAAS,iBAAkB,OAGhC,IAAM,EAAgC,GAAU,EAAa,UAAU,EAAM,CAI7E,OAFA,EAAQ,iBAAiB,EAAW,EAAe,EAAe,KAE/C,CACjB,EAAQ,oBAAoB,EAAW,EAAe,EAAe,GAEtE,CAAC,EAAW,EAAS,EAAe,CAAC"}