UNPKG

tdesign-mobile-vue

Version:
1 lines 5.47 kB
{"version":3,"file":"touch.mjs","sources":["../../../src/image-viewer/__test__/touch.ts"],"sourcesContent":["/**\n * https://github.com/vant-ui/vant/blob/dev/packages/vant/test/event.ts\n */\n\nimport { ComponentPublicInstance, nextTick } from 'vue';\nimport { VueWrapper, DOMWrapper } from '@vue/test-utils';\n\nfunction getTouch(el: Element | Window, x: number, y: number) {\n return {\n identifier: Date.now(),\n target: el,\n pageX: x,\n pageY: y,\n clientX: x,\n clientY: y,\n radiusX: 2.5,\n radiusY: 2.5,\n rotationAngle: 10,\n force: 0.5,\n };\n}\n\n// trigger pointer/touch event\nexport function trigger(\n wrapper: VueWrapper<ComponentPublicInstance<any, any, any>> | DOMWrapper<Element> | Element | Window,\n eventName: string,\n x = 0,\n y = 0,\n options: any = {},\n) {\n const el = 'element' in wrapper ? wrapper.element : wrapper;\n const touchList = options.touchList || [getTouch(el, x, y)];\n\n if (options.x || options.y) {\n touchList.push(getTouch(el, options.x, options.y));\n }\n\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent(eventName, true, true, {});\n\n Object.assign(event, {\n clientX: x,\n clientY: y,\n touches: touchList,\n targetTouches: touchList,\n changedTouches: touchList,\n });\n\n el.dispatchEvent(event);\n\n return nextTick();\n}\n\nfunction triggerTwoFingerTouchmove(el: Element | DOMWrapper<Element>, x: number, y: number) {\n trigger(el, 'touchmove', -x, -y, { x, y });\n}\n\n// simulate zoom\nexport function triggerZoom(el: Element | DOMWrapper<Element>, x: number, y: number, direction: 'in' | 'out' = 'in') {\n trigger(el, 'touchstart', 0, 0, { x, y });\n\n if (direction === 'in') {\n triggerTwoFingerTouchmove(el, x / 4, y / 4);\n triggerTwoFingerTouchmove(el, x / 3, y / 3);\n triggerTwoFingerTouchmove(el, x / 2, y / 2);\n triggerTwoFingerTouchmove(el, x, y);\n } else if (direction === 'out') {\n triggerTwoFingerTouchmove(el, x, y);\n triggerTwoFingerTouchmove(el, x / 2, y / 2);\n triggerTwoFingerTouchmove(el, x / 3, y / 3);\n triggerTwoFingerTouchmove(el, x / 4, y / 4);\n }\n\n trigger(el, 'touchend', 0, 0, { touchList: [] });\n}\n"],"names":["getTouch","el","x","y","identifier","Date","now","target","pageX","pageY","clientX","clientY","radiusX","radiusY","rotationAngle","force","trigger","wrapper","eventName","arguments","length","undefined","options","element","touchList","push","event","document","createEvent","initCustomEvent","Object","assign","touches","targetTouches","changedTouches","dispatchEvent","nextTick","triggerTwoFingerTouchmove","triggerZoom","direction"],"mappings":"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"}