@touchvue/ui 1.0.0-beta.52 → 1.0.0-beta.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/es/components/calendar/src/calendar.d.ts +8 -1
  2. package/es/components/calendar/src/calendar.vue.d.ts +9 -0
  3. package/es/components/cascader/src/cascader-item.vue.d.ts +5 -1
  4. package/es/components/cascader/src/cascader.vue.d.ts +0 -7
  5. package/es/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  6. package/es/components/datepicker/src/Picker.vue.d.ts +9 -0
  7. package/es/components/datepicker/src/date-picker.d.ts +1 -1
  8. package/es/components/datepicker/src/use-date-picker.d.ts +1 -0
  9. package/es/components/float/index.d.ts +15 -0
  10. package/es/components/float/src/Float.vue.d.ts +9 -0
  11. package/es/components/float/src/float.d.ts +4 -0
  12. package/es/components/icon/src/icon.vue.d.ts +2 -0
  13. package/es/components/slide/src/slide.vue.d.ts +4 -0
  14. package/es/components/tab/src/tab-item.vue.d.ts +2 -0
  15. package/es/components/timeline/src/timeline.vue.d.ts +5 -0
  16. package/es/directives/index.d.ts +2 -1
  17. package/es/directives/press/index.d.ts +2 -0
  18. package/es/directives/press/src/press.d.ts +20 -0
  19. package/es/index.d.mjs +1 -0
  20. package/es/index.d.mjs.map +1 -1
  21. package/es/index.mjs +1 -0
  22. package/es/index.mjs.map +1 -1
  23. package/es/packages/components/calendar/src/calendar.mjs +7 -0
  24. package/es/packages/components/calendar/src/calendar.mjs.map +1 -1
  25. package/es/packages/components/calendar/src/calendar.vue2.mjs +31 -38
  26. package/es/packages/components/calendar/src/calendar.vue2.mjs.map +1 -1
  27. package/es/packages/components/cascader/src/cascader-item.vue2.mjs +36 -84
  28. package/es/packages/components/cascader/src/cascader-item.vue2.mjs.map +1 -1
  29. package/es/packages/components/cascader/src/cascader.vue2.mjs +86 -28
  30. package/es/packages/components/cascader/src/cascader.vue2.mjs.map +1 -1
  31. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs +2 -3
  32. package/es/packages/components/checkboxes/src/Checkboxes.vue2.mjs.map +1 -1
  33. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs +9 -3
  34. package/es/packages/components/datepicker/src/DatePicker.vue2.mjs.map +1 -1
  35. package/es/packages/components/datepicker/src/Picker.vue2.mjs +4 -0
  36. package/es/packages/components/datepicker/src/Picker.vue2.mjs.map +1 -1
  37. package/es/packages/components/datepicker/src/date-picker.mjs.map +1 -1
  38. package/es/packages/components/datepicker/src/use-date-picker.mjs +8 -8
  39. package/es/packages/components/datepicker/src/use-date-picker.mjs.map +1 -1
  40. package/es/packages/components/float/src/Float.vue2.mjs +10 -3
  41. package/es/packages/components/float/src/Float.vue2.mjs.map +1 -1
  42. package/es/packages/components/float/src/float.mjs +1 -0
  43. package/es/packages/components/float/src/float.mjs.map +1 -1
  44. package/es/packages/components/header/src/header.vue2.mjs +1 -0
  45. package/es/packages/components/header/src/header.vue2.mjs.map +1 -1
  46. package/es/packages/components/icon/src/icon.vue2.mjs +7 -3
  47. package/es/packages/components/icon/src/icon.vue2.mjs.map +1 -1
  48. package/es/packages/components/index.d.mjs +1 -0
  49. package/es/packages/components/index.d.mjs.map +1 -1
  50. package/es/packages/components/index.mjs +1 -0
  51. package/es/packages/components/index.mjs.map +1 -1
  52. package/es/packages/components/input/src/input.vue2.mjs +9 -9
  53. package/es/packages/components/input/src/input.vue2.mjs.map +1 -1
  54. package/es/packages/components/select/src/select.vue2.mjs +0 -9
  55. package/es/packages/components/select/src/select.vue2.mjs.map +1 -1
  56. package/es/packages/components/slide/src/slide.vue2.mjs +3 -1
  57. package/es/packages/components/slide/src/slide.vue2.mjs.map +1 -1
  58. package/es/packages/components/tab/src/tab-item.vue2.mjs +3 -1
  59. package/es/packages/components/tab/src/tab-item.vue2.mjs.map +1 -1
  60. package/es/packages/components/tab/src/tab.vue2.mjs +54 -9
  61. package/es/packages/components/tab/src/tab.vue2.mjs.map +1 -1
  62. package/es/packages/components/tree/src/tree.vue2.mjs +2 -0
  63. package/es/packages/components/tree/src/tree.vue2.mjs.map +1 -1
  64. package/es/packages/directives/index.d.mjs +1 -0
  65. package/es/packages/directives/index.d.mjs.map +1 -1
  66. package/es/packages/directives/index.mjs +3 -3
  67. package/es/packages/directives/index.mjs.map +1 -1
  68. package/es/packages/directives/press/index.d.mjs +2 -0
  69. package/es/packages/directives/press/index.mjs +2 -0
  70. package/es/packages/directives/press/src/press.d.mjs +2 -0
  71. package/es/packages/directives/press/src/press.d.mjs.map +1 -0
  72. package/es/packages/directives/press/src/press.mjs +100 -0
  73. package/es/packages/directives/press/src/press.mjs.map +1 -0
  74. package/es/packages/locale/lang/en-US.mjs +6 -0
  75. package/es/packages/locale/lang/en-US.mjs.map +1 -1
  76. package/es/packages/locale/lang/zh-CN.mjs +6 -0
  77. package/es/packages/locale/lang/zh-CN.mjs.map +1 -1
  78. package/es/packages/utils/validate.mjs.map +1 -1
  79. package/lib/components/calendar/src/calendar.d.ts +8 -1
  80. package/lib/components/calendar/src/calendar.vue.d.ts +9 -0
  81. package/lib/components/cascader/src/cascader-item.vue.d.ts +5 -1
  82. package/lib/components/cascader/src/cascader.vue.d.ts +0 -7
  83. package/lib/components/datepicker/src/DatePicker.vue.d.ts +9 -0
  84. package/lib/components/datepicker/src/Picker.vue.d.ts +9 -0
  85. package/lib/components/datepicker/src/date-picker.d.ts +1 -1
  86. package/lib/components/datepicker/src/use-date-picker.d.ts +1 -0
  87. package/lib/components/float/index.d.ts +15 -0
  88. package/lib/components/float/src/Float.vue.d.ts +9 -0
  89. package/lib/components/float/src/float.d.ts +4 -0
  90. package/lib/components/icon/src/icon.vue.d.ts +2 -0
  91. package/lib/components/slide/src/slide.vue.d.ts +4 -0
  92. package/lib/components/tab/src/tab-item.vue.d.ts +2 -0
  93. package/lib/components/timeline/src/timeline.vue.d.ts +5 -0
  94. package/lib/directives/index.d.ts +2 -1
  95. package/lib/directives/press/index.d.ts +2 -0
  96. package/lib/directives/press/src/press.d.ts +20 -0
  97. package/lib/index.d.js +2 -0
  98. package/lib/index.d.js.map +1 -1
  99. package/lib/index.js +2 -0
  100. package/lib/index.js.map +1 -1
  101. package/lib/packages/components/calendar/src/calendar.js +7 -0
  102. package/lib/packages/components/calendar/src/calendar.js.map +1 -1
  103. package/lib/packages/components/calendar/src/calendar.vue2.js +31 -38
  104. package/lib/packages/components/calendar/src/calendar.vue2.js.map +1 -1
  105. package/lib/packages/components/cascader/src/cascader-item.vue2.js +35 -83
  106. package/lib/packages/components/cascader/src/cascader-item.vue2.js.map +1 -1
  107. package/lib/packages/components/cascader/src/cascader.vue2.js +85 -27
  108. package/lib/packages/components/cascader/src/cascader.vue2.js.map +1 -1
  109. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js +1 -2
  110. package/lib/packages/components/checkboxes/src/Checkboxes.vue2.js.map +1 -1
  111. package/lib/packages/components/datepicker/src/DatePicker.vue2.js +9 -3
  112. package/lib/packages/components/datepicker/src/DatePicker.vue2.js.map +1 -1
  113. package/lib/packages/components/datepicker/src/Picker.vue2.js +4 -0
  114. package/lib/packages/components/datepicker/src/Picker.vue2.js.map +1 -1
  115. package/lib/packages/components/datepicker/src/date-picker.js.map +1 -1
  116. package/lib/packages/components/datepicker/src/use-date-picker.js +8 -8
  117. package/lib/packages/components/datepicker/src/use-date-picker.js.map +1 -1
  118. package/lib/packages/components/float/src/Float.vue2.js +9 -2
  119. package/lib/packages/components/float/src/Float.vue2.js.map +1 -1
  120. package/lib/packages/components/float/src/float.js +1 -0
  121. package/lib/packages/components/float/src/float.js.map +1 -1
  122. package/lib/packages/components/header/src/header.vue2.js +1 -0
  123. package/lib/packages/components/header/src/header.vue2.js.map +1 -1
  124. package/lib/packages/components/icon/src/icon.vue2.js +7 -3
  125. package/lib/packages/components/icon/src/icon.vue2.js.map +1 -1
  126. package/lib/packages/components/index.d.js +2 -0
  127. package/lib/packages/components/index.d.js.map +1 -1
  128. package/lib/packages/components/index.js +2 -0
  129. package/lib/packages/components/index.js.map +1 -1
  130. package/lib/packages/components/input/src/input.vue2.js +9 -9
  131. package/lib/packages/components/input/src/input.vue2.js.map +1 -1
  132. package/lib/packages/components/select/src/select.vue2.js +0 -9
  133. package/lib/packages/components/select/src/select.vue2.js.map +1 -1
  134. package/lib/packages/components/slide/src/slide.vue2.js +3 -1
  135. package/lib/packages/components/slide/src/slide.vue2.js.map +1 -1
  136. package/lib/packages/components/tab/src/tab-item.vue2.js +3 -1
  137. package/lib/packages/components/tab/src/tab-item.vue2.js.map +1 -1
  138. package/lib/packages/components/tab/src/tab.vue2.js +53 -8
  139. package/lib/packages/components/tab/src/tab.vue2.js.map +1 -1
  140. package/lib/packages/components/tree/src/tree.vue2.js +2 -0
  141. package/lib/packages/components/tree/src/tree.vue2.js.map +1 -1
  142. package/lib/packages/directives/index.d.js +2 -0
  143. package/lib/packages/directives/index.d.js.map +1 -1
  144. package/lib/packages/directives/index.js +3 -2
  145. package/lib/packages/directives/index.js.map +1 -1
  146. package/lib/packages/directives/press/index.d.js +8 -0
  147. package/lib/packages/directives/press/index.js +8 -0
  148. package/lib/packages/directives/press/src/press.d.js +3 -0
  149. package/lib/packages/directives/press/src/press.d.js.map +1 -0
  150. package/lib/packages/directives/press/src/press.js +102 -0
  151. package/lib/packages/directives/press/src/press.js.map +1 -0
  152. package/lib/packages/locale/lang/en-US.js +6 -0
  153. package/lib/packages/locale/lang/en-US.js.map +1 -1
  154. package/lib/packages/locale/lang/zh-CN.js +6 -0
  155. package/lib/packages/locale/lang/zh-CN.js.map +1 -1
  156. package/lib/packages/utils/validate.js.map +1 -1
  157. package/package.json +1 -1
  158. package/theme/components/index.css +74 -18
  159. package/theme/index.css +74 -18
  160. package/theme/skin/default.css +74 -18
  161. package/es/directives/longtap/index.d.ts +0 -2
  162. package/es/directives/longtap/src/longtap.d.ts +0 -7
  163. package/es/packages/directives/longtap/index.d.mjs +0 -2
  164. package/es/packages/directives/longtap/index.mjs +0 -2
  165. package/es/packages/directives/longtap/src/longtap.d.mjs +0 -2
  166. package/es/packages/directives/longtap/src/longtap.d.mjs.map +0 -1
  167. package/es/packages/directives/longtap/src/longtap.mjs +0 -80
  168. package/es/packages/directives/longtap/src/longtap.mjs.map +0 -1
  169. package/lib/directives/longtap/index.d.ts +0 -2
  170. package/lib/directives/longtap/src/longtap.d.ts +0 -7
  171. package/lib/packages/directives/longtap/index.d.js +0 -8
  172. package/lib/packages/directives/longtap/index.js +0 -8
  173. package/lib/packages/directives/longtap/src/longtap.d.js +0 -3
  174. package/lib/packages/directives/longtap/src/longtap.d.js.map +0 -1
  175. package/lib/packages/directives/longtap/src/longtap.js +0 -82
  176. package/lib/packages/directives/longtap/src/longtap.js.map +0 -1
  177. /package/es/packages/directives/{longtap → press}/index.d.mjs.map +0 -0
  178. /package/es/packages/directives/{longtap → press}/index.mjs.map +0 -0
  179. /package/lib/packages/directives/{longtap → press}/index.d.js.map +0 -0
  180. /package/lib/packages/directives/{longtap → press}/index.js.map +0 -0
@@ -1,80 +0,0 @@
1
- const LONG_PRESS_DURATION = 500;
2
- let handleStart = null;
3
- let handleMove = null;
4
- let handleEnd = null;
5
- let handleClick = null;
6
- const vLongtap = {
7
- // Vue3的mounted对应Vue2的bind
8
- mounted(el, binding) {
9
- el._longtapHandler = binding.value;
10
- if (typeof binding.value !== "function") {
11
- console.warn("[v-longtap] Binding value must be a function");
12
- return;
13
- }
14
- let timer = null;
15
- let startPos = { x: 0, y: 0 };
16
- const noSelectClass = ["to-dis", "type-select"];
17
- handleStart = (e) => {
18
- const touch = e.touches[0];
19
- startPos = { x: touch.clientX, y: touch.clientY };
20
- el.classList.add(...noSelectClass);
21
- timer = setTimeout(() => {
22
- var _a;
23
- (_a = el._longtapHandler) == null ? void 0 : _a.call(el, e);
24
- el._longTaped = true;
25
- e.preventDefault();
26
- }, LONG_PRESS_DURATION);
27
- };
28
- handleMove = (e) => {
29
- if (!timer)
30
- return;
31
- const touch = e.touches[0];
32
- const dx = touch.clientX - startPos.x;
33
- const dy = touch.clientY - startPos.y;
34
- if (Math.abs(dx) > 5 || Math.abs(dy) > 5) {
35
- clearTimeout(timer);
36
- timer = null;
37
- }
38
- };
39
- handleEnd = (e) => {
40
- el.classList.remove(...noSelectClass);
41
- if (timer) {
42
- clearTimeout(timer);
43
- timer = null;
44
- }
45
- el._longTaped = false;
46
- console.log(e);
47
- };
48
- handleClick = (e) => {
49
- if (el._longTaped) {
50
- el.classList.remove(...noSelectClass);
51
- e.stopImmediatePropagation();
52
- e.preventDefault();
53
- el._longTaped = false;
54
- }
55
- };
56
- el.addEventListener("touchstart", handleStart, { passive: false });
57
- el.addEventListener("touchmove", handleMove, { passive: true });
58
- el.addEventListener("touchend", handleEnd);
59
- el.addEventListener("touchcancel", handleEnd);
60
- el.addEventListener("click", handleClick, true);
61
- },
62
- // Vue3的updated对应Vue2的update
63
- updated(el, binding) {
64
- el._longtapHandler = binding.value;
65
- },
66
- // Vue3的unmounted对应Vue2的unbind
67
- unmounted(el) {
68
- if (!handleStart || !handleMove || !handleEnd || !handleClick) {
69
- return;
70
- }
71
- el.removeEventListener("touchstart", handleStart);
72
- el.removeEventListener("touchmove", handleMove);
73
- el.removeEventListener("touchend", handleEnd);
74
- el.removeEventListener("touchcancel", handleEnd);
75
- el.removeEventListener("click", handleClick);
76
- }
77
- };
78
-
79
- export { vLongtap };
80
- //# sourceMappingURL=longtap.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"longtap.mjs","sources":["../../../../../../packages/directives/longtap/src/longtap.ts"],"sourcesContent":["import type { DirectiveBinding, ObjectDirective } from 'vue'\n\n// 防止重复点击\nconst LONG_PRESS_DURATION = 500 // 长按判定时间(毫秒)\nlet handleStart: ((e: TouchEvent) => void) | null = null\nlet handleMove: ((e: TouchEvent) => void) | null = null\nlet handleEnd: ((e: TouchEvent) => void) | null = null\nlet handleClick: ((e: MouseEvent) => void) | null = null\n\ninterface LongTapElement extends HTMLElement {\n\t_longtapHandler?: (e: TouchEvent) => void\n\t_longTaped?: boolean\n}\n\n// 定义指令\nexport const vLongtap: ObjectDirective<LongTapElement> = {\n\t// Vue3的mounted对应Vue2的bind\n\tmounted(el: LongTapElement, binding: DirectiveBinding<(e: TouchEvent) => void>) {\n\t\tel._longtapHandler = binding.value\n\t\tif (typeof binding.value !== 'function') {\n\t\t\tconsole.warn('[v-longtap] Binding value must be a function')\n\t\t\treturn\n\t\t}\n\t\tlet timer: NodeJS.Timeout | null = null\n\t\tlet startPos = { x: 0, y: 0 }\n\t\tconst noSelectClass = ['to-dis', 'type-select']\n\n\t\t// 触摸开始处理\n\t\thandleStart = (e: TouchEvent) => {\n\t\t\t// 记录初始位置\n\t\t\tconst touch = e.touches[0]\n\t\t\tstartPos = { x: touch.clientX, y: touch.clientY }\n\t\t\t// 添加防选中样式\n\t\t\tel.classList.add(...noSelectClass)\n\t\t\t// 设置定时器\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\t// 触发长按回调\n\t\t\t\tel._longtapHandler?.(e)\n\t\t\t\t// 标记已触发长按\n\t\t\t\tel._longTaped = true\n\t\t\t\t// 在触发长按后阻止默认行为\n\t\t\t\te.preventDefault()\n\t\t\t}, LONG_PRESS_DURATION)\n\t\t}\n\n\t\t// 触摸移动处理(防止滑动误触发)\n\t\thandleMove = (e: TouchEvent) => {\n\t\t\tif (!timer) return\n\n\t\t\tconst touch = e.touches[0]\n\t\t\tconst dx = touch.clientX - startPos.x\n\t\t\tconst dy = touch.clientY - startPos.y\n\n\t\t\t// 移动超过阈值则取消长按\n\t\t\tif (Math.abs(dx) > 5 || Math.abs(dy) > 5) {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}\n\t\t}\n\n\t\t// 触摸结束处理\n\t\thandleEnd = (e: TouchEvent) => {\n\t\t\t// 清除样式和计时器\n\t\t\tel.classList.remove(...noSelectClass)\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}\n\t\t\tel._longTaped = false\n\t\t\tconsole.log(e)\n\t\t}\n\n\t\t// 点击事件拦截处理\n\t\thandleClick = (e: MouseEvent) => {\n\t\t\tif (el._longTaped) {\n\t\t\t\t// 清除样式和计时器\n\t\t\t\tel.classList.remove(...noSelectClass)\n\t\t\t\te.stopImmediatePropagation()\n\t\t\t\te.preventDefault()\n\t\t\t\tel._longTaped = false\n\t\t\t}\n\t\t}\n\n\t\t// 事件监听\n\t\tel.addEventListener('touchstart', handleStart, { passive: false })\n\t\tel.addEventListener('touchmove', handleMove, { passive: true })\n\t\tel.addEventListener('touchend', handleEnd)\n\t\tel.addEventListener('touchcancel', handleEnd)\n\t\tel.addEventListener('click', handleClick, true)\n\t},\n\t// Vue3的updated对应Vue2的update\n\tupdated(el: LongTapElement, binding: DirectiveBinding<(e: TouchEvent) => void>) {\n\t\tel._longtapHandler = binding.value // 数据更新时同步最新处理函数\n\t},\n\t// Vue3的unmounted对应Vue2的unbind\n\tunmounted(el: LongTapElement) {\n\t\tif (!handleStart || !handleMove || !handleEnd || !handleClick) {\n\t\t\treturn\n\t\t}\n\t\t// 清理所有事件监听\n\t\tel.removeEventListener('touchstart', handleStart)\n\t\tel.removeEventListener('touchmove', handleMove)\n\t\tel.removeEventListener('touchend', handleEnd)\n\t\tel.removeEventListener('touchcancel', handleEnd)\n\t\tel.removeEventListener('click', handleClick)\n\t}\n}\n"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { vLongtap } from './src/longtap';
2
- export { vLongtap };
@@ -1,7 +0,0 @@
1
- import type { ObjectDirective } from 'vue';
2
- interface LongTapElement extends HTMLElement {
3
- _longtapHandler?: (e: TouchEvent) => void;
4
- _longTaped?: boolean;
5
- }
6
- export declare const vLongtap: ObjectDirective<LongTapElement>;
7
- export {};
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- var longtap = require('./src/longtap.js');
4
-
5
-
6
-
7
- exports.vLongtap = longtap.vLongtap;
8
- //# sourceMappingURL=index.d.js.map
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- var longtap = require('./src/longtap.js');
4
-
5
-
6
-
7
- exports.vLongtap = longtap.vLongtap;
8
- //# sourceMappingURL=index.js.map
@@ -1,3 +0,0 @@
1
- 'use strict';
2
-
3
- //# sourceMappingURL=longtap.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"longtap.d.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,82 +0,0 @@
1
- 'use strict';
2
-
3
- const LONG_PRESS_DURATION = 500;
4
- let handleStart = null;
5
- let handleMove = null;
6
- let handleEnd = null;
7
- let handleClick = null;
8
- const vLongtap = {
9
- // Vue3的mounted对应Vue2的bind
10
- mounted(el, binding) {
11
- el._longtapHandler = binding.value;
12
- if (typeof binding.value !== "function") {
13
- console.warn("[v-longtap] Binding value must be a function");
14
- return;
15
- }
16
- let timer = null;
17
- let startPos = { x: 0, y: 0 };
18
- const noSelectClass = ["to-dis", "type-select"];
19
- handleStart = (e) => {
20
- const touch = e.touches[0];
21
- startPos = { x: touch.clientX, y: touch.clientY };
22
- el.classList.add(...noSelectClass);
23
- timer = setTimeout(() => {
24
- var _a;
25
- (_a = el._longtapHandler) == null ? void 0 : _a.call(el, e);
26
- el._longTaped = true;
27
- e.preventDefault();
28
- }, LONG_PRESS_DURATION);
29
- };
30
- handleMove = (e) => {
31
- if (!timer)
32
- return;
33
- const touch = e.touches[0];
34
- const dx = touch.clientX - startPos.x;
35
- const dy = touch.clientY - startPos.y;
36
- if (Math.abs(dx) > 5 || Math.abs(dy) > 5) {
37
- clearTimeout(timer);
38
- timer = null;
39
- }
40
- };
41
- handleEnd = (e) => {
42
- el.classList.remove(...noSelectClass);
43
- if (timer) {
44
- clearTimeout(timer);
45
- timer = null;
46
- }
47
- el._longTaped = false;
48
- console.log(e);
49
- };
50
- handleClick = (e) => {
51
- if (el._longTaped) {
52
- el.classList.remove(...noSelectClass);
53
- e.stopImmediatePropagation();
54
- e.preventDefault();
55
- el._longTaped = false;
56
- }
57
- };
58
- el.addEventListener("touchstart", handleStart, { passive: false });
59
- el.addEventListener("touchmove", handleMove, { passive: true });
60
- el.addEventListener("touchend", handleEnd);
61
- el.addEventListener("touchcancel", handleEnd);
62
- el.addEventListener("click", handleClick, true);
63
- },
64
- // Vue3的updated对应Vue2的update
65
- updated(el, binding) {
66
- el._longtapHandler = binding.value;
67
- },
68
- // Vue3的unmounted对应Vue2的unbind
69
- unmounted(el) {
70
- if (!handleStart || !handleMove || !handleEnd || !handleClick) {
71
- return;
72
- }
73
- el.removeEventListener("touchstart", handleStart);
74
- el.removeEventListener("touchmove", handleMove);
75
- el.removeEventListener("touchend", handleEnd);
76
- el.removeEventListener("touchcancel", handleEnd);
77
- el.removeEventListener("click", handleClick);
78
- }
79
- };
80
-
81
- exports.vLongtap = vLongtap;
82
- //# sourceMappingURL=longtap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"longtap.js","sources":["../../../../../../packages/directives/longtap/src/longtap.ts"],"sourcesContent":["import type { DirectiveBinding, ObjectDirective } from 'vue'\n\n// 防止重复点击\nconst LONG_PRESS_DURATION = 500 // 长按判定时间(毫秒)\nlet handleStart: ((e: TouchEvent) => void) | null = null\nlet handleMove: ((e: TouchEvent) => void) | null = null\nlet handleEnd: ((e: TouchEvent) => void) | null = null\nlet handleClick: ((e: MouseEvent) => void) | null = null\n\ninterface LongTapElement extends HTMLElement {\n\t_longtapHandler?: (e: TouchEvent) => void\n\t_longTaped?: boolean\n}\n\n// 定义指令\nexport const vLongtap: ObjectDirective<LongTapElement> = {\n\t// Vue3的mounted对应Vue2的bind\n\tmounted(el: LongTapElement, binding: DirectiveBinding<(e: TouchEvent) => void>) {\n\t\tel._longtapHandler = binding.value\n\t\tif (typeof binding.value !== 'function') {\n\t\t\tconsole.warn('[v-longtap] Binding value must be a function')\n\t\t\treturn\n\t\t}\n\t\tlet timer: NodeJS.Timeout | null = null\n\t\tlet startPos = { x: 0, y: 0 }\n\t\tconst noSelectClass = ['to-dis', 'type-select']\n\n\t\t// 触摸开始处理\n\t\thandleStart = (e: TouchEvent) => {\n\t\t\t// 记录初始位置\n\t\t\tconst touch = e.touches[0]\n\t\t\tstartPos = { x: touch.clientX, y: touch.clientY }\n\t\t\t// 添加防选中样式\n\t\t\tel.classList.add(...noSelectClass)\n\t\t\t// 设置定时器\n\t\t\ttimer = setTimeout(() => {\n\t\t\t\t// 触发长按回调\n\t\t\t\tel._longtapHandler?.(e)\n\t\t\t\t// 标记已触发长按\n\t\t\t\tel._longTaped = true\n\t\t\t\t// 在触发长按后阻止默认行为\n\t\t\t\te.preventDefault()\n\t\t\t}, LONG_PRESS_DURATION)\n\t\t}\n\n\t\t// 触摸移动处理(防止滑动误触发)\n\t\thandleMove = (e: TouchEvent) => {\n\t\t\tif (!timer) return\n\n\t\t\tconst touch = e.touches[0]\n\t\t\tconst dx = touch.clientX - startPos.x\n\t\t\tconst dy = touch.clientY - startPos.y\n\n\t\t\t// 移动超过阈值则取消长按\n\t\t\tif (Math.abs(dx) > 5 || Math.abs(dy) > 5) {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}\n\t\t}\n\n\t\t// 触摸结束处理\n\t\thandleEnd = (e: TouchEvent) => {\n\t\t\t// 清除样式和计时器\n\t\t\tel.classList.remove(...noSelectClass)\n\t\t\tif (timer) {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\ttimer = null\n\t\t\t}\n\t\t\tel._longTaped = false\n\t\t\tconsole.log(e)\n\t\t}\n\n\t\t// 点击事件拦截处理\n\t\thandleClick = (e: MouseEvent) => {\n\t\t\tif (el._longTaped) {\n\t\t\t\t// 清除样式和计时器\n\t\t\t\tel.classList.remove(...noSelectClass)\n\t\t\t\te.stopImmediatePropagation()\n\t\t\t\te.preventDefault()\n\t\t\t\tel._longTaped = false\n\t\t\t}\n\t\t}\n\n\t\t// 事件监听\n\t\tel.addEventListener('touchstart', handleStart, { passive: false })\n\t\tel.addEventListener('touchmove', handleMove, { passive: true })\n\t\tel.addEventListener('touchend', handleEnd)\n\t\tel.addEventListener('touchcancel', handleEnd)\n\t\tel.addEventListener('click', handleClick, true)\n\t},\n\t// Vue3的updated对应Vue2的update\n\tupdated(el: LongTapElement, binding: DirectiveBinding<(e: TouchEvent) => void>) {\n\t\tel._longtapHandler = binding.value // 数据更新时同步最新处理函数\n\t},\n\t// Vue3的unmounted对应Vue2的unbind\n\tunmounted(el: LongTapElement) {\n\t\tif (!handleStart || !handleMove || !handleEnd || !handleClick) {\n\t\t\treturn\n\t\t}\n\t\t// 清理所有事件监听\n\t\tel.removeEventListener('touchstart', handleStart)\n\t\tel.removeEventListener('touchmove', handleMove)\n\t\tel.removeEventListener('touchend', handleEnd)\n\t\tel.removeEventListener('touchcancel', handleEnd)\n\t\tel.removeEventListener('click', handleClick)\n\t}\n}\n"],"names":[],"mappings":";;AAGA,MAAM,mBAAsB,GAAA,GAAA,CAAA;AAC5B,IAAI,WAAgD,GAAA,IAAA,CAAA;AACpD,IAAI,UAA+C,GAAA,IAAA,CAAA;AACnD,IAAI,SAA8C,GAAA,IAAA,CAAA;AAClD,IAAI,WAAgD,GAAA,IAAA,CAAA;AAQ7C,MAAM,QAA4C,GAAA;AAAA;AAAA,EAExD,OAAA,CAAQ,IAAoB,OAAoD,EAAA;AAC/E,IAAA,EAAA,CAAG,kBAAkB,OAAQ,CAAA,KAAA,CAAA;AAC7B,IAAI,IAAA,OAAO,OAAQ,CAAA,KAAA,KAAU,UAAY,EAAA;AACxC,MAAA,OAAA,CAAQ,KAAK,8CAA8C,CAAA,CAAA;AAC3D,MAAA,OAAA;AAAA,KACD;AACA,IAAA,IAAI,KAA+B,GAAA,IAAA,CAAA;AACnC,IAAA,IAAI,QAAW,GAAA,EAAE,CAAG,EAAA,CAAA,EAAG,GAAG,CAAE,EAAA,CAAA;AAC5B,IAAM,MAAA,aAAA,GAAgB,CAAC,QAAA,EAAU,aAAa,CAAA,CAAA;AAG9C,IAAA,WAAA,GAAc,CAAC,CAAkB,KAAA;AAEhC,MAAM,MAAA,KAAA,GAAQ,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AACzB,MAAA,QAAA,GAAW,EAAE,CAAG,EAAA,KAAA,CAAM,OAAS,EAAA,CAAA,EAAG,MAAM,OAAQ,EAAA,CAAA;AAEhD,MAAG,EAAA,CAAA,SAAA,CAAU,GAAI,CAAA,GAAG,aAAa,CAAA,CAAA;AAEjC,MAAA,KAAA,GAAQ,WAAW,MAAM;AAnC5B,QAAA,IAAA,EAAA,CAAA;AAqCI,QAAA,CAAA,EAAA,GAAA,EAAA,CAAG,oBAAH,IAAqB,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA;AAErB,QAAA,EAAA,CAAG,UAAa,GAAA,IAAA,CAAA;AAEhB,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AAAA,SACf,mBAAmB,CAAA,CAAA;AAAA,KACvB,CAAA;AAGA,IAAA,UAAA,GAAa,CAAC,CAAkB,KAAA;AAC/B,MAAA,IAAI,CAAC,KAAA;AAAO,QAAA,OAAA;AAEZ,MAAM,MAAA,KAAA,GAAQ,CAAE,CAAA,OAAA,CAAQ,CAAC,CAAA,CAAA;AACzB,MAAM,MAAA,EAAA,GAAK,KAAM,CAAA,OAAA,GAAU,QAAS,CAAA,CAAA,CAAA;AACpC,MAAM,MAAA,EAAA,GAAK,KAAM,CAAA,OAAA,GAAU,QAAS,CAAA,CAAA,CAAA;AAGpC,MAAI,IAAA,IAAA,CAAK,IAAI,EAAE,CAAA,GAAI,KAAK,IAAK,CAAA,GAAA,CAAI,EAAE,CAAA,GAAI,CAAG,EAAA;AACzC,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,QAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,OACT;AAAA,KACD,CAAA;AAGA,IAAA,SAAA,GAAY,CAAC,CAAkB,KAAA;AAE9B,MAAG,EAAA,CAAA,SAAA,CAAU,MAAO,CAAA,GAAG,aAAa,CAAA,CAAA;AACpC,MAAA,IAAI,KAAO,EAAA;AACV,QAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,QAAQ,KAAA,GAAA,IAAA,CAAA;AAAA,OACT;AACA,MAAA,EAAA,CAAG,UAAa,GAAA,KAAA,CAAA;AAChB,MAAA,OAAA,CAAQ,IAAI,CAAC,CAAA,CAAA;AAAA,KACd,CAAA;AAGA,IAAA,WAAA,GAAc,CAAC,CAAkB,KAAA;AAChC,MAAA,IAAI,GAAG,UAAY,EAAA;AAElB,QAAG,EAAA,CAAA,SAAA,CAAU,MAAO,CAAA,GAAG,aAAa,CAAA,CAAA;AACpC,QAAA,CAAA,CAAE,wBAAyB,EAAA,CAAA;AAC3B,QAAA,CAAA,CAAE,cAAe,EAAA,CAAA;AACjB,QAAA,EAAA,CAAG,UAAa,GAAA,KAAA,CAAA;AAAA,OACjB;AAAA,KACD,CAAA;AAGA,IAAA,EAAA,CAAG,iBAAiB,YAAc,EAAA,WAAA,EAAa,EAAE,OAAA,EAAS,OAAO,CAAA,CAAA;AACjE,IAAA,EAAA,CAAG,iBAAiB,WAAa,EAAA,UAAA,EAAY,EAAE,OAAA,EAAS,MAAM,CAAA,CAAA;AAC9D,IAAG,EAAA,CAAA,gBAAA,CAAiB,YAAY,SAAS,CAAA,CAAA;AACzC,IAAG,EAAA,CAAA,gBAAA,CAAiB,eAAe,SAAS,CAAA,CAAA;AAC5C,IAAG,EAAA,CAAA,gBAAA,CAAiB,OAAS,EAAA,WAAA,EAAa,IAAI,CAAA,CAAA;AAAA,GAC/C;AAAA;AAAA,EAEA,OAAA,CAAQ,IAAoB,OAAoD,EAAA;AAC/E,IAAA,EAAA,CAAG,kBAAkB,OAAQ,CAAA,KAAA,CAAA;AAAA,GAC9B;AAAA;AAAA,EAEA,UAAU,EAAoB,EAAA;AAC7B,IAAA,IAAI,CAAC,WAAe,IAAA,CAAC,cAAc,CAAC,SAAA,IAAa,CAAC,WAAa,EAAA;AAC9D,MAAA,OAAA;AAAA,KACD;AAEA,IAAG,EAAA,CAAA,mBAAA,CAAoB,cAAc,WAAW,CAAA,CAAA;AAChD,IAAG,EAAA,CAAA,mBAAA,CAAoB,aAAa,UAAU,CAAA,CAAA;AAC9C,IAAG,EAAA,CAAA,mBAAA,CAAoB,YAAY,SAAS,CAAA,CAAA;AAC5C,IAAG,EAAA,CAAA,mBAAA,CAAoB,eAAe,SAAS,CAAA,CAAA;AAC/C,IAAG,EAAA,CAAA,mBAAA,CAAoB,SAAS,WAAW,CAAA,CAAA;AAAA,GAC5C;AACD;;;;"}