{"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 'casc-cesium-utils/private/create'\nimport { addEvt, cleanEvt, leftClick, noop, position, stopAndPrevent } from 'casc-cesium-utils/private/event'\nimport { clearSelection } from 'casc-cesium-utils/private/selection'\nimport { platform } from 'casc-cesium-utils/platform'\nimport { isKeyCode } from 'casc-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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"}