@zoom-image/vue
Version:
Adapter of zoom image core for Vue
1 lines • 1.99 kB
Source Map (JSON)
{"version":3,"sources":["../src/useZoomImageWheel.ts"],"names":[],"mappings":";AAAA,SAAS,wBAAwB,6BAA6B;AAC9D,SAAS,aAAa,gBAAgB;AAI/B,SAAS,oBAAoB;AAClC,MAAI;AAEJ,QAAM,iBAAiB,SAA8B;AAAA,IACnD,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,kBAAkB;AAAA,IAClB,kBAAkB;AAAA,IAClB,iBAAiB;AAAA,EACnB,CAAC;AAED,QAAM,kBAAkB,IAAI,QAAkD;AAC5E,YAAQ,QAAQ;AAChB,aAAS,sBAAsB,GAAG,GAAG;AACrC,UAAM,eAAe,OAAO,SAAS;AACrC,eAAW,OAAO,cAAc;AAC9B,qBAAe,GAAG,IAAI,aAAa,GAAG;AAAA,IACxC;AAEA,WAAO,UAAU,CAAC,EAAE,kBAAkB,MAAM;AAC1C,iBAAW,OAAO,mBAAmB;AACnC,uBAAe,GAAG,IAAI,kBAAkB,GAAG;AAAA,MAC7C;AAAA,IACF,CAAC;AAAA,EACH;AAEA,cAAY,MAAM;AAChB,YAAQ,QAAQ;AAAA,EAClB,CAAC;AAED,QAAM,oBAAoB,CAAC,UAAqC;AAC9D,YAAQ,SAAS,KAAK;AAAA,EACxB;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF","sourcesContent":["import { createZoomImageWheel as _createZoomImageWheel } from \"@zoom-image/core\"\nimport { onUnmounted, reactive } from \"vue\"\n\nimport type { ZoomImageWheelState, ZoomImageWheelStateUpdate } from \"@zoom-image/core\"\n\nexport function useZoomImageWheel() {\n let result: ReturnType<typeof _createZoomImageWheel> | undefined\n\n const zoomImageState = reactive<ZoomImageWheelState>({\n currentZoom: 1,\n enable: false,\n currentPositionX: -1,\n currentPositionY: -1,\n currentRotation: 0,\n })\n\n const createZoomImage = (...arg: Parameters<typeof _createZoomImageWheel>) => {\n result?.cleanup()\n result = _createZoomImageWheel(...arg)\n const currentState = result.getState()\n for (const key in currentState) {\n zoomImageState[key] = currentState[key]\n }\n\n result.subscribe(({ updatedProperties }) => {\n for (const key in updatedProperties) {\n zoomImageState[key] = updatedProperties[key]\n }\n })\n }\n\n onUnmounted(() => {\n result?.cleanup()\n })\n\n const setZoomImageState = (state: ZoomImageWheelStateUpdate) => {\n result?.setState(state)\n }\n\n return {\n createZoomImage,\n zoomImageState,\n setZoomImageState,\n }\n}\n"]}