use-canvas-drag 0.2.1 → 0.3.1

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.
package/README.md CHANGED
@@ -147,8 +147,8 @@ const { isPanning } = useCanvasDrag({
147
147
  |------|------|------|
148
148
  | `x` | `number` | 相对于起始位置的 X 轴偏移 |
149
149
  | `y` | `number` | 相对于起始位置的 Y 轴偏移 |
150
- | `deltaX` | `number` | 相对于上一帧的 X 轴偏移 |
151
- | `deltaY` | `number` | 相对于上一帧的 Y 轴偏移 |
150
+ | `deltaX` | `number` | **帧间增量**:相对于上一帧的 X 轴偏移 |
151
+ | `deltaY` | `number` | **帧间增量**:相对于上一帧的 Y 轴偏移 |
152
152
 
153
153
  ### 返回值
154
154
 
package/dist/index.esm.js CHANGED
@@ -26,55 +26,66 @@ function s(i) {
26
26
  y: 0,
27
27
  scrollLeft: 0,
28
28
  scrollTop: 0
29
- }), m = e(() => o(Array.isArray(d) ? d : d ? [d] : void 0)), h = () => typeof a == "string" ? document.querySelector(a) : typeof a == "function" ? a() : a instanceof HTMLElement ? a : null, g = (e) => m.value.some((t) => {
29
+ }), m = n({
30
+ x: 0,
31
+ y: 0
32
+ }), h = e(() => o(Array.isArray(d) ? d : d ? [d] : void 0)), g = () => typeof a == "string" ? document.querySelector(a) : typeof a == "function" ? a() : a instanceof HTMLElement ? a : null, _ = (e) => h.value.some((t) => {
30
33
  if (t.button !== void 0 && t.button !== e.button) return !1;
31
34
  if (t.modifiers) {
32
35
  let n = t.modifiers;
33
36
  if (n.shift && !e.shiftKey || n.ctrl && !e.ctrlKey || n.alt && !e.altKey || n.meta && !e.metaKey) return !1;
34
37
  }
35
38
  return !0;
36
- }), _ = (e) => {
37
- if (!s || !g(e)) return;
38
- let t = h();
39
+ }), v = (e) => {
40
+ if (!s || !_(e)) return;
41
+ let t = g();
39
42
  t && (p.value = {
40
43
  x: e.clientX,
41
44
  y: e.clientY,
42
45
  scrollLeft: t.scrollLeft,
43
46
  scrollTop: t.scrollTop
44
- }, f.value = !0, t.style.cursor = "grabbing", t.style.userSelect = "none", e.preventDefault(), c?.(e), document.addEventListener("mousemove", v), document.addEventListener("mouseup", y));
45
- }, v = (e) => {
47
+ }, m.value = {
48
+ x: e.clientX,
49
+ y: e.clientY
50
+ }, f.value = !0, t.style.cursor = "grabbing", t.style.userSelect = "none", e.preventDefault(), c?.(e), document.addEventListener("mousemove", y), document.addEventListener("mouseup", b));
51
+ }, y = (e) => {
46
52
  if (!f.value) return;
47
- let t = h();
53
+ let t = g();
48
54
  if (!t) return;
49
- let n = e.clientX - p.value.x, r = e.clientY - p.value.y;
50
- t.scrollLeft = p.value.scrollLeft - n, t.scrollTop = p.value.scrollTop - r, l?.({
55
+ let n = e.clientX - p.value.x, r = e.clientY - p.value.y, i = e.clientX - m.value.x, a = e.clientY - m.value.y;
56
+ m.value = {
57
+ x: e.clientX,
58
+ y: e.clientY
59
+ }, t.scrollLeft = p.value.scrollLeft - n, t.scrollTop = p.value.scrollTop - r, l?.({
51
60
  x: n,
52
- y: r
61
+ y: r,
62
+ deltaX: i,
63
+ deltaY: a
53
64
  });
54
- }, y = (e) => {
65
+ }, b = (e) => {
55
66
  if (!f.value) return;
56
67
  f.value = !1;
57
- let t = h();
58
- t && (t.style.cursor = "auto", t.style.userSelect = ""), document.removeEventListener("mousemove", v), document.removeEventListener("mouseup", y), u?.();
59
- }, b = (e) => {
60
- !s || !g(e) || e.preventDefault();
61
- }, x = () => {
68
+ let t = g();
69
+ t && (t.style.cursor = "auto", t.style.userSelect = ""), document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", b), u?.();
70
+ }, x = (e) => {
71
+ !s || !_(e) || e.preventDefault();
72
+ }, S = () => {
62
73
  if (!f.value) return;
63
74
  f.value = !1;
64
- let e = h();
65
- e && (e.style.cursor = "auto", e.style.userSelect = ""), document.removeEventListener("mousemove", v), document.removeEventListener("mouseup", y), u?.();
75
+ let e = g();
76
+ e && (e.style.cursor = "auto", e.style.userSelect = ""), document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", b), u?.();
66
77
  };
67
78
  return r(() => s, (e) => {
68
- !e && f.value && x();
79
+ !e && f.value && S();
69
80
  }), t(() => {
70
- document.removeEventListener("mousemove", v), document.removeEventListener("mouseup", y);
81
+ document.removeEventListener("mousemove", y), document.removeEventListener("mouseup", b);
71
82
  }), {
72
83
  isPanning: f,
73
84
  handlers: {
74
- onMouseDown: _,
75
- onContextMenu: b
85
+ onMouseDown: v,
86
+ onContextMenu: x
76
87
  },
77
- stopPan: x
88
+ stopPan: S
78
89
  };
79
90
  }
80
91
  //#endregion
package/dist/index.umd.js CHANGED
@@ -1 +1 @@
1
- (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UseCanvasDrag={},e.Vue))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=[`right`],r={left:{button:0},right:{button:2},middle:{button:1},"shift-left":{button:0,modifiers:{shift:!0}},"ctrl-left":{button:0,modifiers:{ctrl:!0}},"alt-left":{button:0,modifiers:{alt:!0}}};function i(e){return e?e.map(e=>typeof e==`string`?r[e]??{button:-1}:e):n.map(e=>r[e])}function a(e){let{container:n,enabled:r=!0,onStartDrag:a,onDrag:o,onEndDrag:s,mode:c}=e,l=(0,t.ref)(!1),u=(0,t.ref)({x:0,y:0,scrollLeft:0,scrollTop:0}),d=(0,t.computed)(()=>i(Array.isArray(c)?c:c?[c]:void 0)),f=()=>typeof n==`string`?document.querySelector(n):typeof n==`function`?n():n instanceof HTMLElement?n:null,p=e=>d.value.some(t=>{if(t.button!==void 0&&t.button!==e.button)return!1;if(t.modifiers){let n=t.modifiers;if(n.shift&&!e.shiftKey||n.ctrl&&!e.ctrlKey||n.alt&&!e.altKey||n.meta&&!e.metaKey)return!1}return!0}),m=e=>{if(!r||!p(e))return;let t=f();t&&(u.value={x:e.clientX,y:e.clientY,scrollLeft:t.scrollLeft,scrollTop:t.scrollTop},l.value=!0,t.style.cursor=`grabbing`,t.style.userSelect=`none`,e.preventDefault(),a?.(e),document.addEventListener(`mousemove`,h),document.addEventListener(`mouseup`,g))},h=e=>{if(!l.value)return;let t=f();if(!t)return;let n=e.clientX-u.value.x,r=e.clientY-u.value.y;t.scrollLeft=u.value.scrollLeft-n,t.scrollTop=u.value.scrollTop-r,o?.({x:n,y:r})},g=e=>{if(!l.value)return;l.value=!1;let t=f();t&&(t.style.cursor=`auto`,t.style.userSelect=``),document.removeEventListener(`mousemove`,h),document.removeEventListener(`mouseup`,g),s?.()},_=e=>{!r||!p(e)||e.preventDefault()},v=()=>{if(!l.value)return;l.value=!1;let e=f();e&&(e.style.cursor=`auto`,e.style.userSelect=``),document.removeEventListener(`mousemove`,h),document.removeEventListener(`mouseup`,g),s?.()};return(0,t.watch)(()=>r,e=>{!e&&l.value&&v()}),(0,t.onUnmounted)(()=>{document.removeEventListener(`mousemove`,h),document.removeEventListener(`mouseup`,g)}),{isPanning:l,handlers:{onMouseDown:m,onContextMenu:_},stopPan:v}}e.useCanvasDrag=a});
1
+ (function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e.UseCanvasDrag={},e.Vue))})(this,function(e,t){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});var n=[`right`],r={left:{button:0},right:{button:2},middle:{button:1},"shift-left":{button:0,modifiers:{shift:!0}},"ctrl-left":{button:0,modifiers:{ctrl:!0}},"alt-left":{button:0,modifiers:{alt:!0}}};function i(e){return e?e.map(e=>typeof e==`string`?r[e]??{button:-1}:e):n.map(e=>r[e])}function a(e){let{container:n,enabled:r=!0,onStartDrag:a,onDrag:o,onEndDrag:s,mode:c}=e,l=(0,t.ref)(!1),u=(0,t.ref)({x:0,y:0,scrollLeft:0,scrollTop:0}),d=(0,t.ref)({x:0,y:0}),f=(0,t.computed)(()=>i(Array.isArray(c)?c:c?[c]:void 0)),p=()=>typeof n==`string`?document.querySelector(n):typeof n==`function`?n():n instanceof HTMLElement?n:null,m=e=>f.value.some(t=>{if(t.button!==void 0&&t.button!==e.button)return!1;if(t.modifiers){let n=t.modifiers;if(n.shift&&!e.shiftKey||n.ctrl&&!e.ctrlKey||n.alt&&!e.altKey||n.meta&&!e.metaKey)return!1}return!0}),h=e=>{if(!r||!m(e))return;let t=p();t&&(u.value={x:e.clientX,y:e.clientY,scrollLeft:t.scrollLeft,scrollTop:t.scrollTop},d.value={x:e.clientX,y:e.clientY},l.value=!0,t.style.cursor=`grabbing`,t.style.userSelect=`none`,e.preventDefault(),a?.(e),document.addEventListener(`mousemove`,g),document.addEventListener(`mouseup`,_))},g=e=>{if(!l.value)return;let t=p();if(!t)return;let n=e.clientX-u.value.x,r=e.clientY-u.value.y,i=e.clientX-d.value.x,a=e.clientY-d.value.y;d.value={x:e.clientX,y:e.clientY},t.scrollLeft=u.value.scrollLeft-n,t.scrollTop=u.value.scrollTop-r,o?.({x:n,y:r,deltaX:i,deltaY:a})},_=e=>{if(!l.value)return;l.value=!1;let t=p();t&&(t.style.cursor=`auto`,t.style.userSelect=``),document.removeEventListener(`mousemove`,g),document.removeEventListener(`mouseup`,_),s?.()},v=e=>{!r||!m(e)||e.preventDefault()},y=()=>{if(!l.value)return;l.value=!1;let e=p();e&&(e.style.cursor=`auto`,e.style.userSelect=``),document.removeEventListener(`mousemove`,g),document.removeEventListener(`mouseup`,_),s?.()};return(0,t.watch)(()=>r,e=>{!e&&l.value&&y()}),(0,t.onUnmounted)(()=>{document.removeEventListener(`mousemove`,g),document.removeEventListener(`mouseup`,_)}),{isPanning:l,handlers:{onMouseDown:h,onContextMenu:v},stopPan:y}}e.useCanvasDrag=a});
@@ -22,6 +22,8 @@ export interface CanvasDragOptions {
22
22
  onDrag?: (detail: {
23
23
  x: number;
24
24
  y: number;
25
+ deltaX: number;
26
+ deltaY: number;
25
27
  }) => void;
26
28
  /** 拖拽结束时触发 */
27
29
  onEndDrag?: () => void;
package/package.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "use-canvas-drag",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "description": "Vue3 画布拖拽组合式函数,支持多种触发方式",
5
5
  "main": "./dist/index.umd.js",
6
6
  "module": "./dist/index.esm.js",
7
- "types": "./dist/index.d.ts",
7
+ "types": "./dist/src/index.d.ts",
8
8
  "exports": {
9
- ".": {
10
- "import": "./dist/index.esm.js",
11
- "require": "./dist/index.umd.js",
12
- "types": "./dist/index.d.ts"
13
- }
14
- },
9
+ ".": {
10
+ "import": "./dist/index.esm.js",
11
+ "require": "./dist/index.umd.js",
12
+ "types": "./dist/src/index.d.ts"
13
+ }
14
+ },
15
15
  "files": [
16
16
  "dist"
17
17
  ],
package/dist/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export {}