tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 4.37 kB
Source Map (JSON)
{"version":3,"file":"useTouch.mjs","sources":["../../src/_util/useTouch.ts"],"sourcesContent":["/* eslint-disable no-undef */\n\nimport { ref } from 'vue';\n\nconst MIN_DISTANCE = 10;\n\ntype Direction = '' | 'vertical' | 'horizontal';\n\nfunction getDirection(x: number, y: number) {\n if (x > y && x > MIN_DISTANCE) {\n return 'horizontal';\n }\n if (y > x && y > MIN_DISTANCE) {\n return 'vertical';\n }\n return '';\n}\n\nexport function useTouch() {\n const startX = ref(0);\n const startY = ref(0);\n const deltaX = ref(0);\n const deltaY = ref(0);\n const offsetX = ref(0);\n const offsetY = ref(0);\n const direction = ref<Direction>('');\n\n const isVertical = () => direction.value === 'vertical';\n const isHorizontal = () => direction.value === 'horizontal';\n\n const reset = () => {\n deltaX.value = 0;\n deltaY.value = 0;\n offsetX.value = 0;\n offsetY.value = 0;\n direction.value = '';\n };\n\n const start = ((event: TouchEvent) => {\n reset();\n startX.value = event.touches[0].clientX;\n startY.value = event.touches[0].clientY;\n }) as EventListener;\n\n const move = ((event: TouchEvent) => {\n const touch = event.touches[0];\n // Fix: Safari back will set clientX to negative number\n deltaX.value = touch.clientX < 0 ? 0 : touch.clientX - startX.value;\n deltaY.value = touch.clientY - startY.value;\n offsetX.value = Math.abs(deltaX.value);\n offsetY.value = Math.abs(deltaY.value);\n\n if (!direction.value) {\n direction.value = getDirection(offsetX.value, offsetY.value);\n }\n }) as EventListener;\n\n return {\n move,\n start,\n reset,\n startX,\n startY,\n deltaX,\n deltaY,\n offsetX,\n offsetY,\n direction,\n isVertical,\n isHorizontal,\n };\n}\n"],"names":["MIN_DISTANCE","getDirection","x","y","useTouch","startX","ref","startY","deltaX","deltaY","offsetX","offsetY","direction","isVertical","value","isHorizontal","reset","start","event","touches","clientX","clientY","move","touch","Math","abs"],"mappings":"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"}