1 |
|
2 | function drag(container, options) {
|
3 | function move(pointerEvent) {
|
4 | const dims = container.getBoundingClientRect();
|
5 | const defaultView = container.ownerDocument.defaultView;
|
6 | const offsetX = dims.left + defaultView.pageXOffset;
|
7 | const offsetY = dims.top + defaultView.pageYOffset;
|
8 | const x = pointerEvent.pageX - offsetX;
|
9 | const y = pointerEvent.pageY - offsetY;
|
10 | if (options == null ? void 0 : options.onMove) {
|
11 | options.onMove(x, y);
|
12 | }
|
13 | }
|
14 | function stop() {
|
15 | document.removeEventListener("pointermove", move);
|
16 | document.removeEventListener("pointerup", stop);
|
17 | if (options == null ? void 0 : options.onStop) {
|
18 | options.onStop();
|
19 | }
|
20 | }
|
21 | document.addEventListener("pointermove", move, { passive: true });
|
22 | document.addEventListener("pointerup", stop);
|
23 | if (options == null ? void 0 : options.initialEvent) {
|
24 | move(options.initialEvent);
|
25 | }
|
26 | }
|
27 |
|
28 | export {
|
29 | drag
|
30 | };
|