@dspacev-bundle/vue-cesium
Version:
Vue 3.x components for CesiumJS.
1 lines • 9.77 kB
Source Map (JSON)
{"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/touch-hold/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2022-04-11 22:57:24\n * @LastEditTime: 2022-04-12 17:02:57\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\directives\\touch-hold\\index.ts\n */\nimport { createDirective } from '@vue-cesium/utils/private/create'\nimport { addEvt, cleanEvt, leftClick, noop, position, stopAndPrevent } from '@vue-cesium/utils/private/event'\nimport { clearSelection } from '@vue-cesium/utils/private/selection'\nimport { platform } from '@vue-cesium/utils/platform'\n\nexport default createDirective({\n name: 'touch-hold',\n\n beforeMount(el, binding) {\n const { modifiers } = binding\n\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && platform().hasTouch !== true) {\n return\n }\n\n const ctx = {\n handler: binding.value,\n noop,\n\n mouseStart(evt) {\n if (typeof ctx.handler === 'function' && leftClick(evt) === true) {\n addEvt(ctx, 'temp', [\n [document, 'mousemove', 'move', 'passiveCapture'],\n [document, 'click', 'end', 'notPassiveCapture']\n ])\n ctx.start(evt, true)\n }\n },\n\n touchStart(evt) {\n if (evt.target !== void 0 && typeof ctx.handler === 'function') {\n const target = evt.target\n addEvt(ctx, 'temp', [\n [target, 'touchmove', 'move', 'passiveCapture'],\n [target, 'touchcancel', 'end', 'notPassiveCapture'],\n [target, 'touchend', 'end', 'notPassiveCapture']\n ])\n ctx.start(evt)\n binding?.touchStart?.(evt)\n }\n },\n\n start(evt, mouseEvent?) {\n ctx.origin = position(evt)\n\n const startTime = Date.now()\n\n if (platform().isPhone === true) {\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelay => {\n ctx.styleCleanup = void 0\n\n const remove = () => {\n document.body.classList.remove('non-selectable')\n }\n\n if (withDelay === true) {\n clearSelection()\n setTimeout(remove, 10)\n } else {\n remove()\n }\n }\n }\n\n ctx.triggered = false\n ctx.sensitivity = mouseEvent === true ? ctx.mouseSensitivity : ctx.touchSensitivity\n\n ctx.timer = setTimeout(() => {\n clearSelection()\n ctx.triggered = true\n\n ctx.handler({\n evt,\n touch: mouseEvent !== true,\n mouse: mouseEvent === true,\n position: ctx.origin,\n duration: Date.now() - startTime\n })\n }, ctx.duration)\n },\n\n move(evt) {\n const { top, left } = position(evt)\n if (Math.abs(left - ctx.origin.left) >= ctx.sensitivity || Math.abs(top - ctx.origin.top) >= ctx.sensitivity) {\n clearTimeout(ctx.timer)\n }\n },\n\n end(evt) {\n cleanEvt(ctx, 'temp')\n\n // delay needed otherwise selection still occurs\n ctx.styleCleanup !== void 0 && ctx.styleCleanup(ctx.triggered)\n\n if (ctx.triggered === true) {\n evt !== void 0 && stopAndPrevent(evt)\n } else {\n clearTimeout(ctx.timer)\n }\n\n binding?.touchEnd?.(evt)\n }\n } as any\n\n // duration in ms, touch in pixels, mouse in pixels\n const data = [600, 5, 7]\n\n if (typeof binding.arg === 'string' && binding.arg.length > 0) {\n binding.arg.split(':').forEach((val, index) => {\n const v = parseInt(val, 10)\n v && (data[index] = v)\n })\n }\n\n ;[ctx.duration, ctx.touchSensitivity, ctx.mouseSensitivity] = data\n\n el.__vctouchhold = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [[el, 'mousedown', 'mouseStart', `passive${modifiers.mouseCapture === true ? 'Capture' : ''}`]])\n\n platform().hasTouch === true &&\n addEvt(ctx, 'main', [\n [el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}`],\n [el, 'touchend', 'noop', 'notPassiveCapture']\n ])\n },\n\n updated(el, binding) {\n const ctx = el.__vctouchhold\n\n if (ctx !== void 0 && binding.oldValue !== binding.value) {\n typeof binding.value !== 'function' && ctx.end()\n ctx.handler = binding.value\n }\n },\n\n beforeUnmount(el) {\n const ctx = el.__vctouchhold\n\n if (ctx !== void 0) {\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n clearTimeout(ctx.timer)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__vctouchhold\n }\n }\n})\n"],"names":[],"mappings":"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"}