@plait/core 0.68.0 → 0.69.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/esm2022/plugins/with-moving.mjs +3 -11
- package/esm2022/plugins/with-selection.mjs +6 -5
- package/esm2022/utils/dom/foreign.mjs +4 -4
- package/esm2022/utils/index.mjs +1 -2
- package/fesm2022/plait-core.mjs +9 -61
- package/fesm2022/plait-core.mjs.map +1 -1
- package/package.json +1 -1
- package/utils/index.d.ts +0 -1
- package/esm2022/utils/touch.mjs +0 -47
- package/utils/touch.d.ts +0 -16
package/package.json
CHANGED
package/utils/index.d.ts
CHANGED
package/esm2022/utils/touch.mjs
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
-
import { createG } from './dom/common';
|
|
3
|
-
export const BOARD_TO_TOUCH_REF = new WeakMap();
|
|
4
|
-
export const isPreventTouchMove = (board) => {
|
|
5
|
-
return !!BOARD_TO_TOUCH_REF.get(board);
|
|
6
|
-
};
|
|
7
|
-
export const preventTouchMove = (board, event, state) => {
|
|
8
|
-
const hostElement = PlaitBoard.getElementHost(board);
|
|
9
|
-
const activeHostElement = PlaitBoard.getElementActiveHost(board);
|
|
10
|
-
if (state) {
|
|
11
|
-
if ((event.target instanceof HTMLElement || event.target instanceof SVGElement) &&
|
|
12
|
-
(hostElement.contains(event.target) || activeHostElement.contains(event.target))) {
|
|
13
|
-
BOARD_TO_TOUCH_REF.set(board, { state, target: event.target instanceof SVGElement ? event.target : undefined });
|
|
14
|
-
}
|
|
15
|
-
else {
|
|
16
|
-
BOARD_TO_TOUCH_REF.set(board, { state, target: undefined });
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
else {
|
|
20
|
-
const ref = BOARD_TO_TOUCH_REF.get(board);
|
|
21
|
-
if (ref) {
|
|
22
|
-
BOARD_TO_TOUCH_REF.delete(board);
|
|
23
|
-
ref.host?.remove();
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
/**
|
|
28
|
-
* some intersection maybe cause target is removed from current browser window,
|
|
29
|
-
* after it was removed touch move event will not be fired
|
|
30
|
-
* so scroll behavior will can not be prevented in mobile browser device
|
|
31
|
-
* this function will prevent target element being remove.
|
|
32
|
-
*/
|
|
33
|
-
export const handleTouchTarget = (board) => {
|
|
34
|
-
const touchRef = BOARD_TO_TOUCH_REF.get(board);
|
|
35
|
-
if (touchRef &&
|
|
36
|
-
touchRef.target &&
|
|
37
|
-
!PlaitBoard.getElementHost(board).contains(touchRef.target) &&
|
|
38
|
-
!PlaitBoard.getElementActiveHost(board).contains(touchRef.target)) {
|
|
39
|
-
touchRef.target.style.opacity = '0';
|
|
40
|
-
const host = createG();
|
|
41
|
-
host.appendChild(touchRef.target);
|
|
42
|
-
touchRef.host = host;
|
|
43
|
-
host.classList.add('touch-target');
|
|
44
|
-
PlaitBoard.getElementActiveHost(board).append(host);
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy91dGlscy90b3VjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQVF2QyxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNwRCxPQUFPLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDM0MsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQW1CLEVBQUUsS0FBYyxFQUFFLEVBQUU7SUFDdkYsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxNQUFNLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRSxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFDSSxDQUFDLEtBQUssQ0FBQyxNQUFNLFlBQVksV0FBVyxJQUFJLEtBQUssQ0FBQyxNQUFNLFlBQVksVUFBVSxDQUFDO1lBQzNFLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUNsRixDQUFDO1lBQ0Msa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sWUFBWSxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDcEgsQ0FBQzthQUFNLENBQUM7WUFDSixrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sR0FBRyxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRjs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ25ELE1BQU0sUUFBUSxHQUFHLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMvQyxJQUNJLFFBQVE7UUFDUixRQUFRLENBQUMsTUFBTTtRQUNmLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUMzRCxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUNuRSxDQUFDO1FBQ0MsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQztRQUNwQyxNQUFNLElBQUksR0FBRyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNuQyxVQUFVLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hELENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBjcmVhdGVHIH0gZnJvbSAnLi9kb20vY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBUb3VjaFJlZiB7XG4gICAgdGFyZ2V0PzogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuICAgIHN0YXRlOiBib29sZWFuO1xuICAgIGhvc3Q/OiBTVkdHRWxlbWVudDtcbn1cblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1RPVUNIX1JFRiA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFRvdWNoUmVmPigpO1xuXG5leHBvcnQgY29uc3QgaXNQcmV2ZW50VG91Y2hNb3ZlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuICEhQk9BUkRfVE9fVE9VQ0hfUkVGLmdldChib2FyZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcHJldmVudFRvdWNoTW92ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZXZlbnQ6IFBvaW50ZXJFdmVudCwgc3RhdGU6IGJvb2xlYW4pID0+IHtcbiAgICBjb25zdCBob3N0RWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEhvc3QoYm9hcmQpO1xuICAgIGNvbnN0IGFjdGl2ZUhvc3RFbGVtZW50ID0gUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdChib2FyZCk7XG4gICAgaWYgKHN0YXRlKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCB8fCBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBTVkdFbGVtZW50KSAmJlxuICAgICAgICAgICAgKGhvc3RFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldCkgfHwgYWN0aXZlSG9zdEVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBCT0FSRF9UT19UT1VDSF9SRUYuc2V0KGJvYXJkLCB7IHN0YXRlLCB0YXJnZXQ6IGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIFNWR0VsZW1lbnQgPyBldmVudC50YXJnZXQgOiB1bmRlZmluZWQgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBCT0FSRF9UT19UT1VDSF9SRUYuc2V0KGJvYXJkLCB7IHN0YXRlLCB0YXJnZXQ6IHVuZGVmaW5lZCB9KTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IEJPQVJEX1RPX1RPVUNIX1JFRi5nZXQoYm9hcmQpO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICBCT0FSRF9UT19UT1VDSF9SRUYuZGVsZXRlKGJvYXJkKTtcbiAgICAgICAgICAgIHJlZi5ob3N0Py5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn07XG5cbi8qKlxuICogc29tZSBpbnRlcnNlY3Rpb24gbWF5YmUgY2F1c2UgdGFyZ2V0IGlzIHJlbW92ZWQgZnJvbSBjdXJyZW50IGJyb3dzZXIgd2luZG93LFxuICogYWZ0ZXIgaXQgd2FzIHJlbW92ZWQgdG91Y2ggbW92ZSBldmVudCB3aWxsIG5vdCBiZSBmaXJlZFxuICogc28gc2Nyb2xsIGJlaGF2aW9yIHdpbGwgY2FuIG5vdCBiZSBwcmV2ZW50ZWQgaW4gbW9iaWxlIGJyb3dzZXIgZGV2aWNlXG4gKiB0aGlzIGZ1bmN0aW9uIHdpbGwgcHJldmVudCB0YXJnZXQgZWxlbWVudCBiZWluZyByZW1vdmUuXG4gKi9cbmV4cG9ydCBjb25zdCBoYW5kbGVUb3VjaFRhcmdldCA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHRvdWNoUmVmID0gQk9BUkRfVE9fVE9VQ0hfUkVGLmdldChib2FyZCk7XG4gICAgaWYgKFxuICAgICAgICB0b3VjaFJlZiAmJlxuICAgICAgICB0b3VjaFJlZi50YXJnZXQgJiZcbiAgICAgICAgIVBsYWl0Qm9hcmQuZ2V0RWxlbWVudEhvc3QoYm9hcmQpLmNvbnRhaW5zKHRvdWNoUmVmLnRhcmdldCkgJiZcbiAgICAgICAgIVBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmNvbnRhaW5zKHRvdWNoUmVmLnRhcmdldClcbiAgICApIHtcbiAgICAgICAgdG91Y2hSZWYudGFyZ2V0LnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICAgIGNvbnN0IGhvc3QgPSBjcmVhdGVHKCk7XG4gICAgICAgIGhvc3QuYXBwZW5kQ2hpbGQodG91Y2hSZWYudGFyZ2V0KTtcbiAgICAgICAgdG91Y2hSZWYuaG9zdCA9IGhvc3Q7XG4gICAgICAgIGhvc3QuY2xhc3NMaXN0LmFkZCgndG91Y2gtdGFyZ2V0Jyk7XG4gICAgICAgIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QoYm9hcmQpLmFwcGVuZChob3N0KTtcbiAgICB9XG59O1xuIl19
|
package/utils/touch.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard } from '../interfaces/board';
|
|
2
|
-
export interface TouchRef {
|
|
3
|
-
target?: HTMLElement | SVGElement;
|
|
4
|
-
state: boolean;
|
|
5
|
-
host?: SVGGElement;
|
|
6
|
-
}
|
|
7
|
-
export declare const BOARD_TO_TOUCH_REF: WeakMap<PlaitBoard, TouchRef>;
|
|
8
|
-
export declare const isPreventTouchMove: (board: PlaitBoard) => boolean;
|
|
9
|
-
export declare const preventTouchMove: (board: PlaitBoard, event: PointerEvent, state: boolean) => void;
|
|
10
|
-
/**
|
|
11
|
-
* some intersection maybe cause target is removed from current browser window,
|
|
12
|
-
* after it was removed touch move event will not be fired
|
|
13
|
-
* so scroll behavior will can not be prevented in mobile browser device
|
|
14
|
-
* this function will prevent target element being remove.
|
|
15
|
-
*/
|
|
16
|
-
export declare const handleTouchTarget: (board: PlaitBoard) => void;
|