xdesign-vue-next
Version:
XDesign Component for vue-next
1 lines • 4.84 kB
Source Map (JSON)
{"version":3,"file":"hooks.mjs","sources":["../../src/image-viewer/hooks.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { ImageScale } from './type';\n\ninterface InitTransform {\n translateX: number;\n translateY: number;\n}\n\nexport function useDrag(initTransform: InitTransform) {\n const transform = ref(initTransform);\n\n const mouseDownHandler = (e: MouseEvent) => {\n const { pageX: startX, pageY: startY } = e;\n const { translateX, translateY } = transform.value;\n const mouseMoveHandler = (e: MouseEvent) => {\n const { pageX, pageY } = e;\n transform.value = {\n translateX: translateX + pageX - startX,\n translateY: translateY + pageY - startY,\n };\n };\n const mouseUpHandler = () => {\n document.removeEventListener('mousemove', mouseMoveHandler);\n document.removeEventListener('mouseup', mouseUpHandler);\n };\n\n document.addEventListener('mousemove', mouseMoveHandler);\n document.addEventListener('mouseup', mouseUpHandler);\n };\n\n const resetTransform = () => {\n transform.value = { ...initTransform };\n };\n\n return { transform, mouseDownHandler, resetTransform };\n}\n\nexport function useMirror() {\n const mirror = ref(1);\n const onMirror = () => {\n mirror.value *= -1;\n };\n const resetMirror = () => {\n mirror.value = 1;\n };\n\n return { mirror, onMirror, resetMirror };\n}\n\nexport function useScale(imageScale: ImageScale = { max: 2, min: 0.5, step: 0.5 }) {\n const { max, min, step } = imageScale;\n const scale = ref(1);\n const onZoomIn = () => {\n setScale(scale.value + step);\n };\n const onZoomOut = () => {\n setScale(scale.value - step);\n };\n const resetScale = () => {\n scale.value = 1;\n };\n\n const setScale = (newScale: number) => {\n let value = newScale;\n if (newScale < min) {\n value = min;\n }\n if (newScale > max) {\n value = max;\n }\n scale.value = value;\n };\n\n return { scale, onZoomIn, onZoomOut, resetScale };\n}\n\nexport function useRotate() {\n const rotate = ref(0);\n const ROTATE_DEG = 90;\n\n const onRotate = () => {\n rotate.value += ROTATE_DEG;\n };\n const resetRotate = () => {\n rotate.value = 0;\n };\n\n return { rotate, onRotate, resetRotate };\n}\n"],"names":["translateX","translateY","document","transform","mouseDownHandler","resetTransform","mirror","onMirror","resetMirror","max","min","step","setScale","value","scale","onZoomIn","onZoomOut","resetScale","rotate","onRotate","resetRotate"],"mappings":";;;;;;;;;;;;AAQO,SAAA,OAAA,CAAA,aAAA,EAAA;AACC,EAAA,IAAA,SAAA,GAAA,GAAA,CAAA,aAAA,CAAA,CAAA;AAEA,EAAA,IAAA,gBAAA,GAAA,SAAA,gBAAA,CAAA,CAAA,EAAA;AACJ,IAAA,IAAA,MAAA,GAAA,CAAA,CAAA,KAAA;;AACA,IAAA,IAAA,gBAAA,GAAA,SAAA,CAAA,KAAA;;;AACM,IAAA,IAAA,gBAAA,GAAA,SAAA,gBAAA,CAAA,EAAA,EAAA;AACE,MAAA,IAAA,KAAA,GAAA,EAAA,CAAA,KAAA;;;AAEJA,QAAAA,UAAAA,EAAAA,UAAAA,GAAAA,KAAAA,GAAAA,MAAAA;AACAC,QAAAA,UAAAA,EAAAA,UAAAA,GAAAA,KAAAA,GAAAA,MAAAA;;;AAGJ,IAAA,IAAA,cAAA,GAAA,SAAA,cAAA,GAAA;AACWC,MAAAA,QAAAA,CAAAA,mBAAAA,CAAAA,WAAAA,EAAAA,gBAAAA,CAAAA,CAAAA;AACAA,MAAAA,QAAAA,CAAAA,mBAAAA,CAAAA,SAAAA,EAAAA,cAAAA,CAAAA,CAAAA;;AAGFA,IAAAA,QAAAA,CAAAA,gBAAAA,CAAAA,WAAAA,EAAAA,gBAAAA,CAAAA,CAAAA;AACAA,IAAAA,QAAAA,CAAAA,gBAAAA,CAAAA,SAAAA,EAAAA,cAAAA,CAAAA,CAAAA;;AAGX,EAAA,IAAA,cAAA,GAAA,SAAA,cAAA,GAAA;AACYC,IAAAA,SAAAA,CAAAA,KAAAA,GAAAA,aAAAA,CAAAA,EAAAA,EAAAA,aAAAA,CAAAA,CAAAA;;;AAGHA,IAAAA,SAAAA,EAAAA,SAAAA;AAAWC,IAAAA,gBAAAA,EAAAA,gBAAAA;AAAkBC,IAAAA,cAAAA,EAAAA,cAAAA;;AACxC,CAAA;AAEO,SAAA,SAAA,GAAA;AACC,EAAA,IAAA,MAAA,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACN,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,GAAA;AACEC,IAAAA,MAAAA,CAAAA,KAAAA,IAAAA,CAAAA,CAAAA,CAAAA;;AAEF,EAAA,IAAA,WAAA,GAAA,SAAA,WAAA,GAAA;;;;AAISA,IAAAA,MAAAA,EAAAA,MAAAA;AAAQC,IAAAA,QAAAA,EAAAA,QAAAA;AAAUC,IAAAA,WAAAA,EAAAA,WAAAA;;AAC7B,CAAA;AAEO,SAAA,QAAA,GAAA;;AAA6CC,IAAAA,GAAAA,EAAAA,CAAAA;AAAQC,IAAAA,GAAAA,EAAAA,GAAAA;AAAUC,IAAAA,IAAAA,EAAAA,GAAAA;;AACpE,EAAA,IAAA,GAAA,GAAA,UAAA,CAAA,GAAA;;;AACM,EAAA,IAAA,KAAA,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;AACN,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,GAAA;AACWC,IAAAA,QAAAA,CAAAA,KAAAA,CAAAA,KAAAA,GAAAA,IAAAA,CAAAA,CAAAA;;AAEX,EAAA,IAAA,SAAA,GAAA,SAAA,SAAA,GAAA;AACWA,IAAAA,QAAAA,CAAAA,KAAAA,CAAAA,KAAAA,GAAAA,IAAAA,CAAAA,CAAAA;;AAEX,EAAA,IAAA,UAAA,GAAA,SAAA,UAAA,GAAA;;;AAIM,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,CAAA,QAAA,EAAA;;;AAGMC,MAAAA,KAAAA,GAAAA,GAAAA,CAAAA;AACV,KAAA;;AAEUA,MAAAA,KAAAA,GAAAA,GAAAA,CAAAA;AACV,KAAA;;;;AAIOC,IAAAA,KAAAA,EAAAA,KAAAA;AAAOC,IAAAA,QAAAA,EAAAA,QAAAA;AAAUC,IAAAA,SAAAA,EAAAA,SAAAA;AAAWC,IAAAA,UAAAA,EAAAA,UAAAA;;AACvC,CAAA;AAEO,SAAA,SAAA,GAAA;AACC,EAAA,IAAA,MAAA,GAAA,GAAA,CAAA,CAAA,CAAA,CAAA;;AAGN,EAAA,IAAA,QAAA,GAAA,SAAA,QAAA,GAAA;;;AAGA,EAAA,IAAA,WAAA,GAAA,SAAA,WAAA,GAAA;;;;AAISC,IAAAA,MAAAA,EAAAA,MAAAA;AAAQC,IAAAA,QAAAA,EAAAA,QAAAA;AAAUC,IAAAA,WAAAA,EAAAA,WAAAA;;AAC7B;;;;"}