@graview/react 0.1.63 → 0.1.65
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/connectors.d.ts.map +1 -1
- package/dist/connectors.js +3 -0
- package/dist/connectors.js.map +1 -1
- package/dist/context.d.ts +29 -2
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +9 -4
- package/dist/context.js.map +1 -1
- package/dist/drawing.d.ts +2 -0
- package/dist/drawing.d.ts.map +1 -1
- package/dist/drawing.js +2 -0
- package/dist/drawing.js.map +1 -1
- package/dist/edge-signs.d.ts +25 -0
- package/dist/edge-signs.d.ts.map +1 -1
- package/dist/edge-signs.js +34 -0
- package/dist/edge-signs.js.map +1 -1
- package/dist/files.d.ts +11 -0
- package/dist/files.d.ts.map +1 -1
- package/dist/files.js +11 -0
- package/dist/files.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/menu-types.d.ts +3 -0
- package/dist/menu-types.d.ts.map +1 -1
- package/dist/occupants.d.ts.map +1 -1
- package/dist/occupants.js +58 -2
- package/dist/occupants.js.map +1 -1
- package/dist/popover.d.ts.map +1 -1
- package/dist/popover.js +19 -2
- package/dist/popover.js.map +1 -1
- package/dist/presence.d.ts +12 -1
- package/dist/presence.d.ts.map +1 -1
- package/dist/presence.js +29 -2
- package/dist/presence.js.map +1 -1
- package/dist/provider.d.ts +3 -2
- package/dist/provider.d.ts.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/provider.js.map +1 -1
- package/dist/resolved-view.d.ts.map +1 -1
- package/dist/resolved-view.js +2 -2
- package/dist/resolved-view.js.map +1 -1
- package/dist/scene-aim.d.ts +7 -0
- package/dist/scene-aim.d.ts.map +1 -0
- package/dist/scene-aim.js +166 -0
- package/dist/scene-aim.js.map +1 -0
- package/dist/scene-covered.d.ts.map +1 -1
- package/dist/scene-covered.js +41 -5
- package/dist/scene-covered.js.map +1 -1
- package/dist/scene-ground-menu.js +2 -2
- package/dist/scene-ground-menu.js.map +1 -1
- package/dist/scene-hand.d.ts +28 -2
- package/dist/scene-hand.d.ts.map +1 -1
- package/dist/scene-hand.js +262 -32
- package/dist/scene-hand.js.map +1 -1
- package/dist/scene-lines.d.ts.map +1 -1
- package/dist/scene-lines.js +3 -0
- package/dist/scene-lines.js.map +1 -1
- package/dist/scene-options.d.ts.map +1 -1
- package/dist/scene-options.js +16 -4
- package/dist/scene-options.js.map +1 -1
- package/dist/scene-root.d.ts.map +1 -1
- package/dist/scene-root.js +79 -9
- package/dist/scene-root.js.map +1 -1
- package/dist/seat-talk.d.ts +2 -2
- package/dist/seat-talk.d.ts.map +1 -1
- package/dist/view-host.d.ts +6 -1
- package/dist/view-host.d.ts.map +1 -1
- package/dist/view-host.js +18 -3
- package/dist/view-host.js.map +1 -1
- package/dist/view-places.d.ts +62 -0
- package/dist/view-places.d.ts.map +1 -0
- package/dist/view-places.js +54 -0
- package/dist/view-places.js.map +1 -0
- package/dist/view-sections.d.ts +8 -0
- package/dist/view-sections.d.ts.map +1 -0
- package/dist/view-sections.js +85 -0
- package/dist/view-sections.js.map +1 -0
- package/package.json +5 -5
package/dist/scene-hand.d.ts
CHANGED
|
@@ -46,12 +46,19 @@ export declare function useHeldDistrict(): {
|
|
|
46
46
|
* and combining that with CSS transforms crashes the renderer. It is not
|
|
47
47
|
* the default path and it is not the measured one.
|
|
48
48
|
*/
|
|
49
|
-
export declare function useWorldShift({ stage, pan, setView, settled, }: {
|
|
49
|
+
export declare function useWorldShift({ stage, pan, zoom, setView, settled, zoomTo, }: {
|
|
50
50
|
readonly stage: RefObject<HTMLElement | null>;
|
|
51
51
|
/** The view's pan: the transform comes off when this has taken the offset. */
|
|
52
52
|
readonly pan: ViewState["pan"];
|
|
53
|
+
/** The city's zoom: the transform comes off when this has taken a hand's zoom, too. */
|
|
54
|
+
readonly zoom: number;
|
|
53
55
|
readonly setView: (update: (current: ViewState) => ViewState) => void;
|
|
54
56
|
readonly settled: () => void;
|
|
57
|
+
/** Letting go of a zoom: the city zoomed by `ratio` about `about` (in the ground's pixels), written into the view once. */
|
|
58
|
+
readonly zoomTo: RefObject<(ratio: number, about: {
|
|
59
|
+
x: number;
|
|
60
|
+
y: number;
|
|
61
|
+
}) => void>;
|
|
55
62
|
}): {
|
|
56
63
|
shiftTo: (wanted: {
|
|
57
64
|
x: number;
|
|
@@ -60,20 +67,33 @@ export declare function useWorldShift({ stage, pan, setView, settled, }: {
|
|
|
60
67
|
x: number;
|
|
61
68
|
y: number;
|
|
62
69
|
}) => void;
|
|
70
|
+
zoomBy: (ratio: number, about: {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
}, dx: number, dy: number, least: number, most: number) => void;
|
|
63
74
|
settle: () => boolean;
|
|
75
|
+
drop: () => void;
|
|
64
76
|
settling: RefObject<boolean>;
|
|
65
77
|
offset: () => {
|
|
66
78
|
x: number;
|
|
67
79
|
y: number;
|
|
80
|
+
s: number;
|
|
68
81
|
};
|
|
69
82
|
};
|
|
83
|
+
/**
|
|
84
|
+
* WHETHER A PRESS LANDED IN SOMETHING OF A CARD'S THAT SCROLLS ON ITS OWN —
|
|
85
|
+
* a focused district's list, a long preview. A finger there scrolls it, and
|
|
86
|
+
* the browser takes the touch to do so; the card began to move under the
|
|
87
|
+
* same finger first, and was pinned wherever the scroll left it.
|
|
88
|
+
*/
|
|
89
|
+
export declare function inScroller(target: Element | null, card: Element): boolean;
|
|
70
90
|
/**
|
|
71
91
|
* THE GESTURES THEMSELVES. The threshold is what keeps a click a click:
|
|
72
92
|
* below it nothing has happened and the pointer-up is an ordinary
|
|
73
93
|
* selection; above it the gesture owns the pointer and the click that
|
|
74
94
|
* follows is swallowed.
|
|
75
95
|
*/
|
|
76
|
-
export declare function useSceneDrag({ view, panned, limit, panWithin, moveByTransform, setView, setDragging, noteMoved, shift, district, }: {
|
|
96
|
+
export declare function useSceneDrag({ view, panned, limit, panWithin, moveByTransform, setView, setDragging, noteMoved, shift, district, pinching, }: {
|
|
77
97
|
readonly view: ViewState;
|
|
78
98
|
/** The pan baked into the drawn cards: a card's pin is stored without it. */
|
|
79
99
|
readonly panned: {
|
|
@@ -102,11 +122,14 @@ export declare function useSceneDrag({ view, panned, limit, panWithin, moveByTra
|
|
|
102
122
|
readonly noteMoved: () => void;
|
|
103
123
|
readonly shift: ReturnType<typeof useWorldShift>;
|
|
104
124
|
readonly district: ReturnType<typeof useHeldDistrict>;
|
|
125
|
+
/** Two fingers are on the scene (`useWheelAndPinch`): they zoom, and no one finger's drag is begun or carried on. */
|
|
126
|
+
readonly pinching: RefObject<boolean>;
|
|
105
127
|
}): {
|
|
106
128
|
onGroundDown: (event: ReactPointerEvent<HTMLDivElement>) => void;
|
|
107
129
|
onCardDown: (node: SceneNode, event: ReactPointerEvent<HTMLElement>) => void;
|
|
108
130
|
onDragMove: (event: ReactPointerEvent<HTMLElement>) => void;
|
|
109
131
|
onDragUp: () => void;
|
|
132
|
+
onDragCancel: () => void;
|
|
110
133
|
swallow: RefObject<boolean>;
|
|
111
134
|
};
|
|
112
135
|
/**
|
|
@@ -121,5 +144,8 @@ export declare function useWheelAndPinch({ stage, view, setView, }: {
|
|
|
121
144
|
}): {
|
|
122
145
|
zoomAbout: RefObject<(factor: number, clientX?: number, clientY?: number) => void>;
|
|
123
146
|
panBy: RefObject<(dx: number, dy: number) => void>;
|
|
147
|
+
pinchBy: RefObject<(factor: number, clientX: number, clientY: number, dx: number, dy: number) => void>;
|
|
148
|
+
pinchDone: RefObject<() => void>;
|
|
149
|
+
pinching: RefObject<boolean>;
|
|
124
150
|
};
|
|
125
151
|
//# sourceMappingURL=scene-hand.d.ts.map
|
package/dist/scene-hand.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-hand.d.ts","sourceRoot":"","sources":["../src/scene-hand.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAA6D,KAAK,YAAY,IAAI,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1I,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkBjD,sFAAsF;AACtF,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH;;;;;;;GAOG;AACH,wBAAgB,OAAO,IAAI;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBlJ;AAED,wBAAgB,eAAe;;kBAII,IAAI;mBASL,IAAI,GAAG,IAAI;EAS5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,OAAO,EACP,OAAO,
|
|
1
|
+
{"version":3,"file":"scene-hand.d.ts","sourceRoot":"","sources":["../src/scene-hand.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEhF,OAAO,EAA6D,KAAK,YAAY,IAAI,iBAAiB,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1I,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkBjD,sFAAsF;AACtF,MAAM,WAAW,IAAI;IACnB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH;;;;;;;GAOG;AACH,wBAAgB,OAAO,IAAI;IAAE,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAkBlJ;AAED,wBAAgB,eAAe;;kBAII,IAAI;mBASL,IAAI,GAAG,IAAI;EAS5C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,GAAG,EACH,IAAI,EACJ,OAAO,EACP,OAAO,EACP,MAAM,GACP,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/B,uFAAuF;IACvF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,2HAA2H;IAC3H,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,CAAC;CACtF;sBA4CY;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,QAAQ;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;oBAYzD,MAAM,SAAS;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,MAAM,MAAM,MAAM,MAAM,SAAS,MAAM,QAAQ,MAAM;kBAWvE,OAAO;;;;;;;;EA6DvC;AAkDD;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAOzE;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,MAAM,EACN,KAAK,EACL,SAAS,EACT,eAAe,EACf,OAAO,EACP,WAAW,EACX,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM;QAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjE,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpH,gFAAgF;IAChF,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,KAAK,SAAS,KAAK,IAAI,CAAC;IACtE,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IACjD,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACtD,qHAAqH;IACrH,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;CACvC;0BAiB8B,iBAAiB,CAAC,cAAc,CAAC;uBAQpC,SAAS,SAAS,iBAAiB,CAAC,WAAW,CAAC;wBAiE/C,iBAAiB,CAAC,WAAW,CAAC;;;;EA+D1D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,IAAI,EACJ,OAAO,GACR,EAAE;IACD,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC9C,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;CAC7C;kCAkBmC,MAAM,YAAY,MAAM,YAAY,MAAM,KAAK,IAAI;0BAC3D,MAAM,MAAM,MAAM,KAAK,IAAI;gCAErB,MAAM,WAAW,MAAM,WAAW,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,IAAI;+BAE1E,IAAI;;EAkKpC"}
|
package/dist/scene-hand.js
CHANGED
|
@@ -75,18 +75,27 @@ export function useHeldDistrict() {
|
|
|
75
75
|
* and combining that with CSS transforms crashes the renderer. It is not
|
|
76
76
|
* the default path and it is not the measured one.
|
|
77
77
|
*/
|
|
78
|
-
export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
79
|
-
|
|
78
|
+
export function useWorldShift({ stage, pan, zoom, setView, settled, zoomTo, }) {
|
|
79
|
+
/*
|
|
80
|
+
* WHAT THE HAND HAS DONE TO THE PICTURE: moved it by (x, y), and — a pinch
|
|
81
|
+
* or a ctrl+wheel from altitude — grown it by `s` about the ground's
|
|
82
|
+
* corner. A zoom was a new layout per frame, thirty milliseconds of work
|
|
83
|
+
* each on a thousand records at a phone's speed; the picture grows under
|
|
84
|
+
* the fingers now, and only letting go draws the city at its new size.
|
|
85
|
+
*/
|
|
86
|
+
const live = useRef({ x: 0, y: 0, s: 1 });
|
|
80
87
|
const painting = useRef(0);
|
|
81
88
|
const settling = useRef(false);
|
|
82
89
|
const settledLive = useRef(settled);
|
|
83
90
|
settledLive.current = settled;
|
|
84
91
|
const layers = useCallback(() => [...(stage.current?.querySelectorAll("[data-graview-world]") ?? [])], [stage]);
|
|
85
|
-
const put = useCallback(({ x, y }) => {
|
|
86
|
-
const move = x === 0 && y === 0 ? "" : `translate3d(${x}px, ${y}px, 0)`;
|
|
87
|
-
for (const layer of layers())
|
|
92
|
+
const put = useCallback(({ x, y, s }) => {
|
|
93
|
+
const move = s !== 1 ? `translate3d(${x}px, ${y}px, 0) scale(${s})` : x === 0 && y === 0 ? "" : `translate3d(${x}px, ${y}px, 0)`;
|
|
94
|
+
for (const layer of layers()) {
|
|
88
95
|
layer.style.transform = move;
|
|
89
|
-
|
|
96
|
+
layer.style.transformOrigin = s !== 1 ? "0 0" : "";
|
|
97
|
+
}
|
|
98
|
+
handOnTheGround(stage.current, x, y, s);
|
|
90
99
|
}, [layers, stage]);
|
|
91
100
|
const paint = useCallback(() => {
|
|
92
101
|
if (painting.current !== 0)
|
|
@@ -98,20 +107,33 @@ export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
|
98
107
|
}, [put]);
|
|
99
108
|
const clear = useCallback(() => {
|
|
100
109
|
settling.current = false;
|
|
101
|
-
for (const layer of layers())
|
|
110
|
+
for (const layer of layers()) {
|
|
102
111
|
layer.style.transform = "";
|
|
103
|
-
|
|
112
|
+
layer.style.transformOrigin = "";
|
|
113
|
+
}
|
|
114
|
+
handOnTheGround(stage.current, 0, 0, 1);
|
|
104
115
|
settledLive.current();
|
|
105
116
|
}, [layers, stage]);
|
|
106
117
|
/** Where the hand has taken the picture, against where the view says it is. */
|
|
107
118
|
const shiftTo = useCallback((wanted, from) => {
|
|
108
|
-
live.current = { x: wanted.x - from.x, y: wanted.y - from.y };
|
|
119
|
+
live.current = { x: wanted.x - from.x, y: wanted.y - from.y, s: live.current.s };
|
|
120
|
+
paint();
|
|
121
|
+
}, [paint]);
|
|
122
|
+
/**
|
|
123
|
+
* The picture grown by `ratio` about `about` (the ground's pixels) and moved by (dx, dy) — held to `least`…`most`
|
|
124
|
+
* of the size the view has — painted, and not yet in the view.
|
|
125
|
+
*/
|
|
126
|
+
const zoomBy = useCallback((ratio, about, dx, dy, least, most) => {
|
|
127
|
+
const { x, y, s } = live.current;
|
|
128
|
+
const next = Math.max(least, Math.min(most, s * ratio));
|
|
129
|
+
const r = next / s;
|
|
130
|
+
live.current = { x: x * r + about.x * (1 - r) + dx, y: y * r + about.y * (1 - r) + dy, s: next };
|
|
109
131
|
paint();
|
|
110
132
|
}, [paint]);
|
|
111
133
|
/** Letting go: the offset becomes the view's own pan. False when there was none. */
|
|
112
134
|
const settle = useCallback(() => {
|
|
113
|
-
const { x, y } = live.current;
|
|
114
|
-
if (x === 0 && y === 0)
|
|
135
|
+
const { x, y, s } = live.current;
|
|
136
|
+
if (x === 0 && y === 0 && s === 1)
|
|
115
137
|
return false;
|
|
116
138
|
/*
|
|
117
139
|
* WHERE THE HAND LAST WAS, PAINTED NOW: a move after the last frame is
|
|
@@ -122,13 +144,19 @@ export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
|
122
144
|
if (painting.current !== 0)
|
|
123
145
|
cancelAnimationFrame(painting.current);
|
|
124
146
|
painting.current = 0;
|
|
125
|
-
put({ x, y });
|
|
126
|
-
live.current = { x: 0, y: 0 };
|
|
147
|
+
put({ x, y, s });
|
|
148
|
+
live.current = { x: 0, y: 0, s: 1 };
|
|
127
149
|
settling.current = true;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
}
|
|
150
|
+
if (Math.abs(s - 1) > 1e-4) {
|
|
151
|
+
// A picture grown by s and moved by (x, y) is the city zoomed by s about the one point that stayed where it was.
|
|
152
|
+
zoomTo.current(s, { x: x / (1 - s), y: y / (1 - s) });
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
setView((current) => {
|
|
156
|
+
const at = current.pan ?? { x: 0, y: 0 };
|
|
157
|
+
return withPan(current, { x: at.x + x, y: at.y + y });
|
|
158
|
+
});
|
|
159
|
+
}
|
|
132
160
|
/*
|
|
133
161
|
* AND IF THE VIEW NEVER ARRIVES, LET GO ANYWAY. A scene whose view is
|
|
134
162
|
* controlled from outside may decline the change, and then nothing
|
|
@@ -141,7 +169,7 @@ export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
|
141
169
|
clear();
|
|
142
170
|
}, 300);
|
|
143
171
|
return true;
|
|
144
|
-
}, [setView, clear, put]);
|
|
172
|
+
}, [setView, clear, put, zoomTo]);
|
|
145
173
|
/*
|
|
146
174
|
* CLEARED ONLY ONCE THE WORLD HAS ACTUALLY MOVED. Clearing the transform
|
|
147
175
|
* in the same breath as the state change put the picture back where it
|
|
@@ -150,10 +178,23 @@ export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
|
150
178
|
useLayoutEffect(() => {
|
|
151
179
|
if (settling.current)
|
|
152
180
|
clear();
|
|
153
|
-
}, [pan, clear]);
|
|
181
|
+
}, [pan, zoom, clear]);
|
|
182
|
+
/*
|
|
183
|
+
* THE BROWSER TOOK THE HAND. A `pointercancel` says the touch became the
|
|
184
|
+
* browser's — a list inside a card scrolling under the finger — and what
|
|
185
|
+
* the hand had moved so far was never meant: the picture goes back to
|
|
186
|
+
* where the view has it, and nothing is written.
|
|
187
|
+
*/
|
|
188
|
+
const drop = useCallback(() => {
|
|
189
|
+
if (painting.current !== 0)
|
|
190
|
+
cancelAnimationFrame(painting.current);
|
|
191
|
+
painting.current = 0;
|
|
192
|
+
live.current = { x: 0, y: 0, s: 1 };
|
|
193
|
+
clear();
|
|
194
|
+
}, [clear]);
|
|
154
195
|
/** The offset the hand has made so far, not yet in the view. */
|
|
155
196
|
const offset = useCallback(() => live.current, []);
|
|
156
|
-
return { shiftTo, settle, settling, offset };
|
|
197
|
+
return { shiftTo, zoomBy, settle, drop, settling, offset };
|
|
157
198
|
}
|
|
158
199
|
/**
|
|
159
200
|
* THE GROUND MOVES WITH THE PICTURE. The lattice the city stands on is
|
|
@@ -170,27 +211,62 @@ export function useWorldShift({ stage, pan, setView, settled, }) {
|
|
|
170
211
|
* ground it recalculated the style of every element in the scene each
|
|
171
212
|
* frame — six hundred milliseconds of a forty-move drag at a quarter speed.
|
|
172
213
|
*/
|
|
173
|
-
function handOnTheGround(ground, x, y) {
|
|
214
|
+
function handOnTheGround(ground, x, y, s) {
|
|
174
215
|
// Both grids under the picture: the lattice from altitude and the fine measure on the ground (`.graview-measure`).
|
|
175
216
|
for (const grid of ground?.querySelectorAll(":scope > .graview-lattice, :scope > .graview-measure") ?? []) {
|
|
176
|
-
|
|
217
|
+
/*
|
|
218
|
+
* A ZOOM GROWS THE LATTICE WITH THE CITY: its cell by as much, and its
|
|
219
|
+
* anchor — where cell (0,0) meets the canvas — carried where the
|
|
220
|
+
* transform carries that point. Said on the lattice alone, as the move is.
|
|
221
|
+
*/
|
|
222
|
+
const lattice = s !== 1 && grid.classList.contains("graview-lattice") && ground ? latticeOf(ground) : null;
|
|
223
|
+
if (lattice)
|
|
224
|
+
grid.style.setProperty("--graview-lattice-cell", `${(lattice.cell * s).toFixed(2)}px`);
|
|
225
|
+
else
|
|
226
|
+
grid.style.removeProperty("--graview-lattice-cell");
|
|
227
|
+
const hx = lattice ? lattice.x * (s - 1) + x : x;
|
|
228
|
+
const hy = lattice ? lattice.y * (s - 1) + y : y;
|
|
229
|
+
if (hx === 0 && hy === 0) {
|
|
177
230
|
grid.style.removeProperty("--graview-hand-x");
|
|
178
231
|
grid.style.removeProperty("--graview-hand-y");
|
|
179
232
|
continue;
|
|
180
233
|
}
|
|
181
|
-
grid.style.setProperty("--graview-hand-x", `${
|
|
182
|
-
grid.style.setProperty("--graview-hand-y", `${
|
|
234
|
+
grid.style.setProperty("--graview-hand-x", `${hx}px`);
|
|
235
|
+
grid.style.setProperty("--graview-hand-y", `${hy}px`);
|
|
183
236
|
}
|
|
184
237
|
}
|
|
238
|
+
/** The lattice as the ground says it: its cell and its anchor, in pixels; none when the ground draws no city. */
|
|
239
|
+
function latticeOf(ground) {
|
|
240
|
+
const cell = parseFloat(ground.style.getPropertyValue("--graview-lattice-cell"));
|
|
241
|
+
if (!Number.isFinite(cell))
|
|
242
|
+
return null;
|
|
243
|
+
return { cell, x: parseFloat(ground.style.getPropertyValue("--graview-lattice-x")) || 0, y: parseFloat(ground.style.getPropertyValue("--graview-lattice-y")) || 0 };
|
|
244
|
+
}
|
|
185
245
|
/** How far a pointer has to travel before a press is a drag: below it, a click is a click. */
|
|
186
246
|
const DRAG_THRESHOLD = 4;
|
|
247
|
+
/**
|
|
248
|
+
* WHETHER A PRESS LANDED IN SOMETHING OF A CARD'S THAT SCROLLS ON ITS OWN —
|
|
249
|
+
* a focused district's list, a long preview. A finger there scrolls it, and
|
|
250
|
+
* the browser takes the touch to do so; the card began to move under the
|
|
251
|
+
* same finger first, and was pinned wherever the scroll left it.
|
|
252
|
+
*/
|
|
253
|
+
export function inScroller(target, card) {
|
|
254
|
+
for (let at = target; at && at !== card; at = at.parentElement) {
|
|
255
|
+
const style = getComputedStyle(at);
|
|
256
|
+
if (/(auto|scroll)/.test(style.overflowY) && at.scrollHeight > at.clientHeight + 1)
|
|
257
|
+
return true;
|
|
258
|
+
if (/(auto|scroll)/.test(style.overflowX) && at.scrollWidth > at.clientWidth + 1)
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
187
263
|
/**
|
|
188
264
|
* THE GESTURES THEMSELVES. The threshold is what keeps a click a click:
|
|
189
265
|
* below it nothing has happened and the pointer-up is an ordinary
|
|
190
266
|
* selection; above it the gesture owns the pointer and the click that
|
|
191
267
|
* follows is swallowed.
|
|
192
268
|
*/
|
|
193
|
-
export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform, setView, setDragging, noteMoved, shift, district, }) {
|
|
269
|
+
export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform, setView, setDragging, noteMoved, shift, district, pinching, }) {
|
|
194
270
|
/** Set for the click a drag is about to produce, so a drag that ends on a card does not also select it. */
|
|
195
271
|
const swallow = useRef(false);
|
|
196
272
|
const gesture = useRef(null);
|
|
@@ -199,7 +275,7 @@ export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform,
|
|
|
199
275
|
gesture.current = { kind: "pan", fromX: event.clientX, fromY: event.clientY, baseX: pan.x, baseY: pan.y, moved: false };
|
|
200
276
|
};
|
|
201
277
|
const onGroundDown = (event) => {
|
|
202
|
-
if (event.button !== 0)
|
|
278
|
+
if (event.button !== 0 || pinching.current)
|
|
203
279
|
return;
|
|
204
280
|
// Only the ground itself. A card, a chip or anything a view drew keeps
|
|
205
281
|
// whatever meaning it already had.
|
|
@@ -208,7 +284,15 @@ export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform,
|
|
|
208
284
|
panFrom(event);
|
|
209
285
|
};
|
|
210
286
|
const onCardDown = (node, event) => {
|
|
211
|
-
if (event.button !== 0)
|
|
287
|
+
if (event.button !== 0 || pinching.current)
|
|
288
|
+
return;
|
|
289
|
+
/*
|
|
290
|
+
* A FINGER IN A LIST THAT SCROLLS SCROLLS IT. The card moving under the
|
|
291
|
+
* same finger, and pinned where the scroll left it, was a focused
|
|
292
|
+
* district's list that could not be read on a phone without dragging
|
|
293
|
+
* the district about. A mouse keeps its drag: it scrolls with the wheel.
|
|
294
|
+
*/
|
|
295
|
+
if (event.pointerType !== "mouse" && inScroller(event.target, event.currentTarget))
|
|
212
296
|
return;
|
|
213
297
|
/*
|
|
214
298
|
* A PICTURE IS NOT A THING YOU REARRANGE — you look around it. A drag
|
|
@@ -246,10 +330,35 @@ export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform,
|
|
|
246
330
|
moved: false,
|
|
247
331
|
};
|
|
248
332
|
};
|
|
333
|
+
/*
|
|
334
|
+
* A GESTURE LET GO OF WITHOUT ENDING: a second finger came down, and the
|
|
335
|
+
* two of them zoom (`keep` — what the first finger panned stays panned),
|
|
336
|
+
* or the browser took the touch (`pointercancel`), and nothing it moved
|
|
337
|
+
* is kept. Either way no click that follows chooses anything.
|
|
338
|
+
*/
|
|
339
|
+
const abandon = (keep) => {
|
|
340
|
+
const drag = gesture.current;
|
|
341
|
+
gesture.current = null;
|
|
342
|
+
district.release();
|
|
343
|
+
if (keep)
|
|
344
|
+
shift.settle();
|
|
345
|
+
else
|
|
346
|
+
shift.drop();
|
|
347
|
+
if (drag) {
|
|
348
|
+
swallow.current = true;
|
|
349
|
+
setTimeout(() => (swallow.current = false), 0);
|
|
350
|
+
}
|
|
351
|
+
if (!shift.settling.current)
|
|
352
|
+
setDragging(false);
|
|
353
|
+
};
|
|
249
354
|
const onDragMove = (event) => {
|
|
250
355
|
const drag = gesture.current;
|
|
251
356
|
if (!drag)
|
|
252
357
|
return;
|
|
358
|
+
if (pinching.current) {
|
|
359
|
+
abandon(true);
|
|
360
|
+
return;
|
|
361
|
+
}
|
|
253
362
|
const dx = event.clientX - drag.fromX;
|
|
254
363
|
const dy = event.clientY - drag.fromY;
|
|
255
364
|
if (!drag.moved) {
|
|
@@ -262,7 +371,12 @@ export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform,
|
|
|
262
371
|
* the click and double-click that followed to the host, and
|
|
263
372
|
* double-clicking a task opened the card instead of traveling into it.
|
|
264
373
|
*/
|
|
265
|
-
|
|
374
|
+
try {
|
|
375
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
376
|
+
}
|
|
377
|
+
catch {
|
|
378
|
+
// A pointer the browser no longer holds (lifted already, or never its own): the drag goes on without the capture.
|
|
379
|
+
}
|
|
266
380
|
}
|
|
267
381
|
if (drag.kind === "pan") {
|
|
268
382
|
// A little way over a picture that fits, and as far as the city reaches when it is bigger.
|
|
@@ -300,7 +414,12 @@ export function useSceneDrag({ view, panned, limit, panWithin, moveByTransform,
|
|
|
300
414
|
return;
|
|
301
415
|
setDragging(false);
|
|
302
416
|
};
|
|
303
|
-
|
|
417
|
+
/** The browser took the touch: whatever the hand moved goes back, and nothing is written. */
|
|
418
|
+
const onDragCancel = () => {
|
|
419
|
+
if (gesture.current)
|
|
420
|
+
abandon(false);
|
|
421
|
+
};
|
|
422
|
+
return { onGroundDown, onCardDown, onDragMove, onDragUp, onDragCancel, swallow };
|
|
304
423
|
}
|
|
305
424
|
/**
|
|
306
425
|
* THE WHEEL AND THE PINCH. `zoomAbout` and `panBy` are filled in by the
|
|
@@ -327,6 +446,14 @@ export function useWheelAndPinch({ stage, view, setView, }) {
|
|
|
327
446
|
*/
|
|
328
447
|
const zoomAbout = useRef(() => { });
|
|
329
448
|
const panBy = useRef(() => { });
|
|
449
|
+
/** Two fingers' move from altitude: zoomed by `factor` about where they were, then moved as far as their middle moved. */
|
|
450
|
+
const pinchBy = useRef(() => { });
|
|
451
|
+
/** The last finger lifted: what the fingers did to the picture goes into the view. */
|
|
452
|
+
const pinchDone = useRef(() => { });
|
|
453
|
+
/** Whether two fingers are on the scene, from the second one down until the last one lifts. */
|
|
454
|
+
const pinching = useRef(false);
|
|
455
|
+
/** The fingers on the scene, where they last were, and what their moves owe the view this frame. */
|
|
456
|
+
const touch = useRef({ fingers: new Map(), pinch: null, owed: null, owing: 0 });
|
|
330
457
|
useEffect(() => {
|
|
331
458
|
const element = stage.current;
|
|
332
459
|
if (!element)
|
|
@@ -357,8 +484,8 @@ export function useWheelAndPinch({ stage, view, setView, }) {
|
|
|
357
484
|
held.charge = 0;
|
|
358
485
|
return;
|
|
359
486
|
}
|
|
360
|
-
// A mouse notch (a hundred) is a step and a half; a trackpad's few units are a nudge.
|
|
361
|
-
|
|
487
|
+
// A mouse notch (a hundred) is a step and a half; a trackpad's few units are a nudge. Held as the hand's until the wheel rests.
|
|
488
|
+
pinchBy.current(Math.exp(-event.deltaY * 0.004), event.clientX, event.clientY, 0, 0);
|
|
362
489
|
return;
|
|
363
490
|
}
|
|
364
491
|
if (!up)
|
|
@@ -370,12 +497,102 @@ export function useWheelAndPinch({ stage, view, setView, }) {
|
|
|
370
497
|
event.preventDefault();
|
|
371
498
|
panBy.current(-event.deltaX, -event.deltaY);
|
|
372
499
|
};
|
|
500
|
+
/*
|
|
501
|
+
* TWO FINGERS ON A TOUCH SCREEN, read from their pointers. Chrome on a
|
|
502
|
+
* phone hands a pinch over as nothing but two touches — no ctrl+wheel,
|
|
503
|
+
* no GestureEvent — so with `touch-action: none` on the ground a pinch
|
|
504
|
+
* did not zoom at all: the first finger panned the city, and a second
|
|
505
|
+
* finger coming down re-based the pan under it. Safari speaks
|
|
506
|
+
* GestureEvent as well as the pointers; while two fingers are down the
|
|
507
|
+
* pointers are the one reading, so the city is not zoomed twice.
|
|
508
|
+
*
|
|
509
|
+
* Read here, on the stage itself, so it is heard before React's own
|
|
510
|
+
* handlers on the cards and the ground: by the time a card hears the
|
|
511
|
+
* second finger, `pinching` already says it is a pinch.
|
|
512
|
+
*/
|
|
513
|
+
/*
|
|
514
|
+
* KEPT ACROSS THE LISTENERS BEING ATTACHED AGAIN: the effect runs again
|
|
515
|
+
* when the scene's `setView` does, which the pinch's own first change of
|
|
516
|
+
* the view can bring about, and fingers held in the effect were then
|
|
517
|
+
* forgotten after the first frame of a pinch.
|
|
518
|
+
*/
|
|
519
|
+
const hand = touch.current;
|
|
520
|
+
const fingers = hand.fingers;
|
|
521
|
+
const pay = () => {
|
|
522
|
+
hand.owing = 0;
|
|
523
|
+
const due = hand.owed;
|
|
524
|
+
hand.owed = null;
|
|
525
|
+
if (due)
|
|
526
|
+
pinchBy.current(due.factor, due.x, due.y, due.dx, due.dy);
|
|
527
|
+
};
|
|
528
|
+
const spread = () => {
|
|
529
|
+
const [a, b] = [...fingers.values()];
|
|
530
|
+
return { apart: Math.max(1, Math.hypot(a.x - b.x, a.y - b.y)), mid: { x: (a.x + b.x) / 2, y: (a.y + b.y) / 2 } };
|
|
531
|
+
};
|
|
532
|
+
const onFingerDown = (event) => {
|
|
533
|
+
if (event.pointerType !== "touch")
|
|
534
|
+
return;
|
|
535
|
+
// The first finger of a new touch: whatever an earlier touch left behind (a lift never heard) is gone.
|
|
536
|
+
if (event.isPrimary) {
|
|
537
|
+
fingers.clear();
|
|
538
|
+
hand.pinch = null;
|
|
539
|
+
pinching.current = false;
|
|
540
|
+
}
|
|
541
|
+
fingers.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
542
|
+
if (fingers.size !== 2)
|
|
543
|
+
return;
|
|
544
|
+
const { apart, mid } = spread();
|
|
545
|
+
hand.pinch = { from: apart, last: apart, mid };
|
|
546
|
+
pinching.current = true;
|
|
547
|
+
};
|
|
548
|
+
const onFingerMove = (event) => {
|
|
549
|
+
if (!fingers.has(event.pointerId))
|
|
550
|
+
return;
|
|
551
|
+
fingers.set(event.pointerId, { x: event.clientX, y: event.clientY });
|
|
552
|
+
const pinch = hand.pinch;
|
|
553
|
+
if (!pinch || fingers.size !== 2)
|
|
554
|
+
return;
|
|
555
|
+
const { apart, mid } = spread();
|
|
556
|
+
const held = altitude.current;
|
|
557
|
+
if (!(held.view.overview ?? false)) {
|
|
558
|
+
// From the ground, fingers together rise, as the trackpad's pinch does.
|
|
559
|
+
if (apart / pinch.from < 0.72)
|
|
560
|
+
step(true, performance.now());
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
const owed = (hand.owed ??= { factor: 1, x: pinch.mid.x, y: pinch.mid.y, dx: 0, dy: 0 });
|
|
564
|
+
owed.factor *= apart / pinch.last;
|
|
565
|
+
owed.dx += mid.x - pinch.mid.x;
|
|
566
|
+
owed.dy += mid.y - pinch.mid.y;
|
|
567
|
+
if (hand.owing === 0)
|
|
568
|
+
hand.owing = requestAnimationFrame(pay);
|
|
569
|
+
}
|
|
570
|
+
pinch.last = apart;
|
|
571
|
+
pinch.mid = mid;
|
|
572
|
+
};
|
|
573
|
+
const onFingerUp = (event) => {
|
|
574
|
+
if (!fingers.delete(event.pointerId))
|
|
575
|
+
return;
|
|
576
|
+
if (fingers.size < 2)
|
|
577
|
+
hand.pinch = null;
|
|
578
|
+
if (fingers.size > 0)
|
|
579
|
+
return;
|
|
580
|
+
// The last finger lifted: what is owed lands now, and the next finger down is a drag again.
|
|
581
|
+
if (hand.owing !== 0)
|
|
582
|
+
cancelAnimationFrame(hand.owing);
|
|
583
|
+
pay();
|
|
584
|
+
pinching.current = false;
|
|
585
|
+
pinchDone.current();
|
|
586
|
+
};
|
|
373
587
|
const onGestureStart = (event) => {
|
|
374
588
|
event.preventDefault();
|
|
375
589
|
altitude.current.lastScale = 1;
|
|
376
590
|
};
|
|
377
591
|
const onGesture = (event) => {
|
|
378
592
|
event.preventDefault();
|
|
593
|
+
// Two fingers on a touch screen are read from their pointers (above).
|
|
594
|
+
if (pinching.current || fingers.size > 1)
|
|
595
|
+
return;
|
|
379
596
|
const held = altitude.current;
|
|
380
597
|
const scale = event.scale ?? 1;
|
|
381
598
|
if (!(held.view.overview ?? false)) {
|
|
@@ -391,12 +608,25 @@ export function useWheelAndPinch({ stage, view, setView, }) {
|
|
|
391
608
|
element.addEventListener("wheel", onWheel, { passive: false });
|
|
392
609
|
element.addEventListener("gesturestart", onGestureStart);
|
|
393
610
|
element.addEventListener("gesturechange", onGesture);
|
|
611
|
+
element.addEventListener("pointerdown", onFingerDown);
|
|
612
|
+
element.addEventListener("pointermove", onFingerMove);
|
|
613
|
+
element.addEventListener("pointerup", onFingerUp);
|
|
614
|
+
element.addEventListener("pointercancel", onFingerUp);
|
|
394
615
|
return () => {
|
|
616
|
+
// What the fingers owe still lands: the next listeners pick up the same hand.
|
|
617
|
+
if (hand.owing !== 0) {
|
|
618
|
+
cancelAnimationFrame(hand.owing);
|
|
619
|
+
pay();
|
|
620
|
+
}
|
|
621
|
+
element.removeEventListener("pointerdown", onFingerDown);
|
|
622
|
+
element.removeEventListener("pointermove", onFingerMove);
|
|
623
|
+
element.removeEventListener("pointerup", onFingerUp);
|
|
624
|
+
element.removeEventListener("pointercancel", onFingerUp);
|
|
395
625
|
element.removeEventListener("wheel", onWheel);
|
|
396
626
|
element.removeEventListener("gesturestart", onGestureStart);
|
|
397
627
|
element.removeEventListener("gesturechange", onGesture);
|
|
398
628
|
};
|
|
399
629
|
}, [setView, stage]);
|
|
400
|
-
return { zoomAbout, panBy };
|
|
630
|
+
return { zoomAbout, panBy, pinchBy, pinchDone, pinching };
|
|
401
631
|
}
|
|
402
632
|
//# sourceMappingURL=scene-hand.js.map
|
package/dist/scene-hand.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-hand.js","sourceRoot":"","sources":["../src/scene-hand.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scene-hand.js","sourceRoot":"","sources":["../src/scene-hand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-lines.d.ts","sourceRoot":"","sources":["../src/scene-lines.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAGjI,OAAO,EAAE,KAAK,kBAAkB,EAAmB,MAAM,iBAAiB,CAAC;AAI3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAGvF;AAED,wBAAgB,KAAK,CAAC,CAAC,SAAS,SAAS,EAAE,EACzC,KAAK,EACL,KAAK,EACL,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,EACL,UAAU,EACV,UAAU,EACV,MAAM,EACN,OAAe,EACf,WAAW,EACX,OAAc,EACd,MAAc,GACf,EAAE;IACD,0HAA0H;IAC1H,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,2GAA2G;IAC3G,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,QAAQ,EAAE;QAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE,CAAC;IACnD,QAAQ,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAAC,MAAM,EAAE,CAAC,CAAA;KAAE,CAAC;IACnE,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7E,QAAQ,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,YAAY,GAAG,SAAS,CAAC;IACvF,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,gIAAgI;IAChI,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,sCA6PA;
|
|
1
|
+
{"version":3,"file":"scene-lines.d.ts","sourceRoot":"","sources":["../src/scene-lines.tsx"],"names":[],"mappings":"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"}
|
package/dist/scene-lines.js
CHANGED
|
@@ -824,6 +824,9 @@ function SelectionTies({ stageRef, nodes, scheme, selection, store, graphNodes,
|
|
|
824
824
|
event.stopPropagation();
|
|
825
825
|
onPickEdge(line.edgeId, { x: event.clientX, y: event.clientY });
|
|
826
826
|
}, onContextMenu: (event) => {
|
|
827
|
+
// Option held: the browser's own menu.
|
|
828
|
+
if (event.altKey)
|
|
829
|
+
return;
|
|
827
830
|
event.preventDefault();
|
|
828
831
|
event.stopPropagation();
|
|
829
832
|
onPickEdge(line.edgeId, { x: event.clientX, y: event.clientY });
|