{"version":3,"file":"index.mjs","sources":["../../../../../packages/directives/touch-repeat/index.ts"],"sourcesContent":["/*\n * @Author: zouyaoji@https://github.com/zouyaoji\n * @Date: 2022-04-12 13:11:46\n * @LastEditTime: 2022-04-12 13:18:00\n * @LastEditors: zouyaoji\n * @Description:\n * @FilePath: \\vue-cesium@next\\packages\\directives\\touch-repeat\\index.ts\n */\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'\nimport { isKeyCode } from '@vue-cesium/utils/private/key-composition'\n\nconst keyCodes = {\n    esc: 27,\n    tab: 9,\n    enter: 13,\n    space: 32,\n    up: 38,\n    left: 37,\n    right: 39,\n    down: 40,\n    delete: [8, 46]\n  },\n  keyRegex = new RegExp(`^([\\\\d+]+|${Object.keys(keyCodes).join('|')})$`, 'i')\n\nfunction shouldEnd(evt, origin) {\n  const { top, left } = position(evt)\n\n  return Math.abs(left - origin.left) >= 7 || Math.abs(top - origin.top) >= 7\n}\n\nexport default createDirective({\n  name: 'touch-repeat',\n\n  beforeMount(el, { modifiers, value, arg, touchStart }) {\n    const keyboard = Object.keys(modifiers).reduce((acc, key) => {\n      if (keyRegex.test(key) === true) {\n        const keyCode = isNaN(parseInt(key, 10)) ? keyCodes[key.toLowerCase()] : parseInt(key, 10)\n        keyCode >= 0 && acc.push(keyCode)\n      }\n      return acc\n    }, [])\n\n    // early return, we don't need to do anything\n    if (modifiers.mouse !== true && platform().hasTouch !== true && keyboard.length === 0) {\n      return\n    }\n\n    const durations = typeof arg === 'string' && arg.length > 0 ? arg.split(':').map(val => parseInt(val, 10)) : [0, 600, 300]\n\n    const durationsLast = durations.length - 1\n\n    const ctx = {\n      keyboard,\n      handler: value,\n\n      noop,\n\n      mouseStart(evt) {\n        if (ctx.event === void 0 && 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      keyboardStart(evt) {\n        if (typeof ctx.handler === 'function' && isKeyCode(evt, keyboard) === true) {\n          if (durations[0] === 0 || ctx.event !== void 0) {\n            stopAndPrevent(evt)\n            el.focus()\n            if (ctx.event !== void 0) {\n              return\n            }\n          }\n\n          addEvt(ctx, 'temp', [\n            [document, 'keyup', 'end', 'notPassiveCapture'],\n            [document, 'click', 'end', 'notPassiveCapture']\n          ])\n          ctx.start(evt, false, 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          touchStart?.(evt)\n        }\n      },\n\n      start(evt, mouseEvent, keyboardEvent?) {\n        if (keyboardEvent !== true) {\n          ctx.origin = position(evt)\n        }\n\n        function styleCleanup(withDelay) {\n          ctx.styleCleanup = void 0\n\n          document.documentElement.style.cursor = ''\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        if (platform().isPhone === true) {\n          document.body.classList.add('non-selectable')\n          clearSelection()\n          ctx.styleCleanup = styleCleanup\n        }\n\n        ctx.event = {\n          touch: mouseEvent !== true && keyboardEvent !== true,\n          mouse: mouseEvent === true,\n          keyboard: keyboardEvent === true,\n          startTime: Date.now(),\n          repeatCount: 0\n        }\n\n        const fn = () => {\n          if (ctx.event === void 0) {\n            return\n          }\n\n          if (ctx.event.repeatCount === 0) {\n            ctx.event.evt = evt\n\n            if (keyboardEvent === true) {\n              ctx.event.keyCode = evt.keyCode\n            } else {\n              ctx.event.position = position(evt)\n            }\n\n            if (platform().isPhone !== true) {\n              document.documentElement.style.cursor = 'pointer'\n              document.body.classList.add('non-selectable')\n              clearSelection()\n              ctx.styleCleanup = styleCleanup\n            }\n          }\n\n          ctx.event.duration = Date.now() - ctx.event.startTime\n          ctx.event.repeatCount += 1\n\n          ctx.handler(ctx.event)\n\n          const index = durationsLast < ctx.event.repeatCount ? durationsLast : ctx.event.repeatCount\n\n          ctx.timer = setTimeout(fn, durations[index])\n        }\n\n        if (durations[0] === 0) {\n          fn()\n        } else {\n          ctx.timer = setTimeout(fn, durations[0])\n        }\n      },\n\n      move(evt) {\n        if (ctx.event !== void 0 && shouldEnd(evt, ctx.origin) === true) {\n          clearTimeout(ctx.timer)\n        }\n      },\n\n      end(evt) {\n        if (ctx.event === void 0) {\n          return\n        }\n\n        ctx.styleCleanup !== void 0 && ctx.styleCleanup(true)\n        evt !== void 0 && ctx.event.repeatCount > 0 && stopAndPrevent(evt)\n\n        cleanEvt(ctx, 'temp')\n        clearTimeout(ctx.timer)\n\n        ctx.event = void 0\n      }\n    } as any\n\n    el.__vctouchrepeat = 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    keyboard.length > 0 && addEvt(ctx, 'main', [[el, 'keydown', 'keyboardStart', `notPassive${modifiers.keyCapture === true ? 'Capture' : ''}`]])\n  },\n\n  updated(el, { oldValue, value }) {\n    const ctx = el.__vctouchrepeat\n\n    if (ctx !== void 0 && oldValue !== value) {\n      typeof value !== 'function' && ctx.end()\n      ctx.handler = value\n    }\n  },\n\n  beforeUnmount(el) {\n    const ctx = el.__vctouchrepeat\n\n    if (ctx !== void 0) {\n      clearTimeout(ctx.timer)\n\n      cleanEvt(ctx, 'main')\n      cleanEvt(ctx, 'temp')\n\n      ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n      delete el.__vctouchrepeat\n    }\n  }\n})\n"],"names":[],"mappings":"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"}