@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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/core",
3
- "version": "0.68.0",
3
+ "version": "0.69.1",
4
4
  "peerDependencies": {
5
5
  "immer": "^10.0.3",
6
6
  "is-hotkey": "^0.2.0",
package/utils/index.d.ts CHANGED
@@ -22,7 +22,6 @@ export * from './clipboard/types';
22
22
  export * from './clipboard/clipboard';
23
23
  export * from './clipboard/common';
24
24
  export * from './clipboard';
25
- export * from './touch';
26
25
  export * from './dnd';
27
26
  export * from './to-point';
28
27
  export * from './group';
@@ -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;