@edv4h/usketch-plugin-viewport-nav 1.0.1 → 2.0.0

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/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { viewportNavPlugin } from "./plugin.js";
1
+ export { createViewportNavPlugin } from "./plugin.js";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export { viewportNavPlugin } from "./plugin.js";
1
+ export { createViewportNavPlugin } from "./plugin.js";
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { UsketchPlugin } from "@edv4h/usketch-shared";
2
- export declare const viewportNavPlugin: UsketchPlugin;
2
+ export declare function createViewportNavPlugin(): UsketchPlugin;
3
3
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKX,aAAa,EACb,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,iBAAiB,EAAE,aA8C/B,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKX,aAAa,EACb,MAAM,uBAAuB,CAAC;AAE/B,wBAAgB,uBAAuB,IAAI,aAAa,CAwDvD"}
package/dist/plugin.js CHANGED
@@ -1,42 +1,51 @@
1
- export const viewportNavPlugin = {
2
- id: "usketch-plugin-viewport-nav",
3
- name: "ビューポートナビゲーション",
4
- setup(ctx) {
5
- // ── Local pan state (scoped to this setup closure) ──
6
- let middlePanState = null;
7
- // ── Wheel: zoom & pan ──
8
- ctx.events.on("canvas:wheel", (event) => {
9
- if (event.ctrlKey || event.metaKey) {
10
- // Zoom toward cursor
11
- const viewport = ctx.store.getViewport();
12
- const factor = event.deltaY > 0 ? 0.9 : 1.1;
13
- ctx.store.zoomTo(viewport.zoom * factor, event.screenPoint);
14
- }
15
- else {
16
- // Pan
17
- ctx.store.panBy(-event.deltaX, -event.deltaY);
18
- }
19
- });
20
- // ── Middle-click pan ──
21
- ctx.events.on("canvas:middle-down", (event) => {
22
- middlePanState = {
23
- lastPoint: { x: event.screenPoint.x, y: event.screenPoint.y },
1
+ export function createViewportNavPlugin() {
2
+ return {
3
+ id: "usketch-plugin-viewport-nav",
4
+ name: "ビューポートナビゲーション",
5
+ setup(ctx) {
6
+ // ── Local pan state (scoped to this setup closure) ──
7
+ let middlePanState = null;
8
+ // ── Wheel: zoom & pan ──
9
+ const offWheel = ctx.events.on("canvas:wheel", (event) => {
10
+ if (event.ctrlKey || event.metaKey) {
11
+ // Zoom toward cursor
12
+ const viewport = ctx.store.getViewport();
13
+ const factor = event.deltaY > 0 ? 0.9 : 1.1;
14
+ ctx.store.zoomTo(viewport.zoom * factor, event.screenPoint);
15
+ }
16
+ else {
17
+ // Pan
18
+ ctx.store.panBy(-event.deltaX, -event.deltaY);
19
+ }
20
+ });
21
+ // ── Middle-click pan ──
22
+ const offMiddleDown = ctx.events.on("canvas:middle-down", (event) => {
23
+ middlePanState = {
24
+ lastPoint: { x: event.screenPoint.x, y: event.screenPoint.y },
25
+ };
26
+ });
27
+ const offPointerMove = ctx.events.on("canvas:pointermove", (event) => {
28
+ if (!middlePanState)
29
+ return;
30
+ const dx = event.screenPoint.x - middlePanState.lastPoint.x;
31
+ const dy = event.screenPoint.y - middlePanState.lastPoint.y;
32
+ ctx.store.panBy(dx, dy);
33
+ middlePanState.lastPoint = {
34
+ x: event.screenPoint.x,
35
+ y: event.screenPoint.y,
36
+ };
37
+ });
38
+ const offPointerUp = ctx.events.on("canvas:pointerup", (_event) => {
39
+ middlePanState = null;
40
+ });
41
+ return () => {
42
+ offWheel();
43
+ offMiddleDown();
44
+ offPointerMove();
45
+ offPointerUp();
46
+ middlePanState = null;
24
47
  };
25
- });
26
- ctx.events.on("canvas:pointermove", (event) => {
27
- if (!middlePanState)
28
- return;
29
- const dx = event.screenPoint.x - middlePanState.lastPoint.x;
30
- const dy = event.screenPoint.y - middlePanState.lastPoint.y;
31
- ctx.store.panBy(dx, dy);
32
- middlePanState.lastPoint = {
33
- x: event.screenPoint.x,
34
- y: event.screenPoint.y,
35
- };
36
- });
37
- ctx.events.on("canvas:pointerup", (_event) => {
38
- middlePanState = null;
39
- });
40
- },
41
- };
48
+ },
49
+ };
50
+ }
42
51
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC/C,EAAE,EAAE,6BAA6B;IACjC,IAAI,EAAE,eAAe;IAErB,KAAK,CAAC,GAAkB;QACvB,uDAAuD;QACvD,IAAI,cAAc,GAAgC,IAAI,CAAC;QAEvD,0BAA0B;QAC1B,GAAG,CAAC,MAAM,CAAC,EAAE,CAAmB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBACpC,qBAAqB;gBACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC5C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;YAC7D,CAAC;iBAAM,CAAC;gBACP,MAAM;gBACN,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC/C,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,yBAAyB;QACzB,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,cAAc,GAAG;gBAChB,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE;aAC7D,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;YACjE,IAAI,CAAC,cAAc;gBAAE,OAAO;YAE5B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;YAE5D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAExB,cAAc,CAAC,SAAS,GAAG;gBAC1B,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBACtB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;aACtB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;YAChE,cAAc,GAAG,IAAI,CAAC;QACvB,CAAC,CAAC,CAAC;IACJ,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAQA,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,EAAE,EAAE,6BAA6B;QACjC,IAAI,EAAE,eAAe;QAErB,KAAK,CAAC,GAAkB;YACvB,uDAAuD;YACvD,IAAI,cAAc,GAAgC,IAAI,CAAC;YAEvD,0BAA0B;YAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAmB,cAAc,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC1E,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBACpC,qBAAqB;oBACrB,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;oBACzC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;oBAC5C,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;gBAC7D,CAAC;qBAAM,CAAC;oBACP,MAAM;oBACN,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC/C,CAAC;YACF,CAAC,CAAC,CAAC;YAEH,yBAAyB;YACzB,MAAM,aAAa,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvF,cAAc,GAAG;oBAChB,SAAS,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE;iBAC7D,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;gBACxF,IAAI,CAAC,cAAc;oBAAE,OAAO;gBAE5B,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC;gBAE5D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBAExB,cAAc,CAAC,SAAS,GAAG;oBAC1B,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;oBACtB,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;iBACtB,CAAC;YACH,CAAC,CAAC,CAAC;YAEH,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAqB,kBAAkB,EAAE,CAAC,MAAM,EAAE,EAAE;gBACrF,cAAc,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACX,QAAQ,EAAE,CAAC;gBACX,aAAa,EAAE,CAAC;gBAChB,cAAc,EAAE,CAAC;gBACjB,YAAY,EAAE,CAAC;gBACf,cAAc,GAAG,IAAI,CAAC;YACvB,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-plugin-viewport-nav",
3
- "version": "1.0.1",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,9 +12,9 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@edv4h/usketch-core": "1.1.0",
16
- "@edv4h/usketch-shared": "2.0.0",
17
- "@edv4h/usketch-store": "2.0.0"
15
+ "@edv4h/usketch-core": "2.0.0",
16
+ "@edv4h/usketch-shared": "3.0.0",
17
+ "@edv4h/usketch-store": "2.0.1"
18
18
  },
19
19
  "devDependencies": {
20
20
  "typescript": "5.9.3",