{"version":3,"sources":["../src/useZoomImageHover.ts"],"names":[],"mappings":";;;;;AAAA,SAAS,aAAa,WAAW,QAAQ,gBAAgB;AACzD,SAAS,wBAAwB,6BAA6B;AAKvD,SAAS,oBAAoB;AAClC,QAAM,SAAS,OAAiD;AAChE,QAAM,CAAC,gBAAgB,oBAAoB,IAAI,SAA8B;AAAA,IAC3E,SAAS;AAAA,IACT,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,kBAAkB,YAAY,IAAI,QAAkD;AACxF,WAAO,SAAS,QAAQ;AACxB,WAAO,UAAU,sBAAsB,GAAG,GAAG;AAC7C,yBAAqB,OAAO,QAAQ,SAAS,CAAC;AAE9C,WAAO,QAAQ,UAAU,CAAC,EAAE,MAAM,MAAM;AACtC,2BAAqB,KAAK;AAAA,IAC5B,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,YAAU,MAAM;AACd,WAAO,MAAM;AACX,aAAO,SAAS,QAAQ;AAAA,IAC1B;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,mBAAmB,OAAO,SAAS,YAAY;AAAA,EACjD;AACF","sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"preact/hooks\"\nimport { createZoomImageHover as _createZoomImageHover } from \"@zoom-image/core\"\nimport { noop } from \"./shared\"\n\nimport type { ZoomImageHoverState } from \"@zoom-image/core\"\n\nexport function useZoomImageHover() {\n  const result = useRef<ReturnType<typeof _createZoomImageHover>>()\n  const [zoomImageState, updateZoomImageState] = useState<ZoomImageHoverState>({\n    enabled: false,\n    zoomedImgStatus: \"idle\",\n  })\n\n  const createZoomImage = useCallback((...arg: Parameters<typeof _createZoomImageHover>) => {\n    result.current?.cleanup()\n    result.current = _createZoomImageHover(...arg)\n    updateZoomImageState(result.current.getState())\n\n    result.current.subscribe(({ state }) => {\n      updateZoomImageState(state)\n    })\n  }, [])\n\n  useEffect(() => {\n    return () => {\n      result.current?.cleanup()\n    }\n  }, [])\n\n  return {\n    createZoomImage,\n    zoomImageState,\n    setZoomImageState: result.current?.setState ?? noop,\n  }\n}\n"]}