@plait/mind 0.21.0 → 0.23.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@plait/mind",
3
- "version": "0.21.0",
3
+ "version": "0.23.0",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^15.2.2",
6
6
  "@angular/core": "^15.2.2"
@@ -0,0 +1,2 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ export declare const withNodeHoverDetect: (board: PlaitBoard) => PlaitBoard;
@@ -44,7 +44,7 @@ $primary: #4e8afa;
44
44
  opacity: 0.6;
45
45
  }
46
46
  }
47
- &.focused:not(.selection-moving):not(.element-moving):not(.abstract-resizing-horizontal):not(.abstract-resizing-vertical):not(.pointer-mind):not(.mind-node-dragging) {
47
+ &.focused:not(.selection-moving):not(.element-moving):not(.abstract-resizing-horizontal):not(.abstract-resizing-vertical):not(.pointer-mind):not(.mind-node-dragging):not(.mind-node-resizing) {
48
48
  .extend {
49
49
  cursor: pointer;
50
50
  &:hover {
@@ -87,6 +87,9 @@ $primary: #4e8afa;
87
87
  display: none;
88
88
  }
89
89
  }
90
+ .mind-node-image {
91
+ cursor: zoom-in;
92
+ }
90
93
  }
91
94
 
92
95
  &.viewport-moving {
@@ -132,7 +135,7 @@ $primary: #4e8afa;
132
135
 
133
136
  .mind-node-image {
134
137
  margin: 6px;
135
- display: block
138
+ display: block;
136
139
  }
137
140
 
138
141
  @include mixins.node-color();
@@ -1,3 +1,4 @@
1
1
  export * from './adjust-node';
2
2
  export * from './create-node';
3
3
  export * from './common';
4
+ export * from './image';
@@ -0,0 +1,9 @@
1
+ import { PlaitBoard } from '@plait/core';
2
+ import { MindElement } from '../../interfaces/element';
3
+ export interface NodeHoveredExtendRef {
4
+ element: MindElement;
5
+ }
6
+ export declare const mouseMoveHandle: (board: PlaitBoard, event: MouseEvent, nodeHoveredExtendRef: NodeHoveredExtendRef | null) => NodeHoveredExtendRef | null;
7
+ export declare const mouseLeaveHandle: (board: PlaitBoard, event: MouseEvent, nodeHoveredExtendRef: NodeHoveredExtendRef | null) => void;
8
+ export declare const addHovered: (element: MindElement) => void;
9
+ export declare const removeHovered: (element: MindElement) => void;
@@ -1,58 +0,0 @@
1
- import { PlaitBoard, PlaitElement, depthFirstRecursion, getIsRecursionFunc, throttleRAF, toPoint, transformPoint } from '@plait/core';
2
- import { MindElement } from '../interfaces/element';
3
- import { isHitMindElement } from '../utils/position/node';
4
- export const withNodeHover = (board) => {
5
- const { mousemove, mouseleave } = board;
6
- let hoveredMindElement = null;
7
- board.mousemove = (event) => {
8
- throttleRAF(() => {
9
- let target = null;
10
- const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
11
- depthFirstRecursion(board, element => {
12
- if (target) {
13
- return;
14
- }
15
- if (!MindElement.isMindElement(board, element)) {
16
- return;
17
- }
18
- const isHitElement = isHitMindElement(board, point, element);
19
- if (isHitElement) {
20
- target = element;
21
- }
22
- }, getIsRecursionFunc(board), true);
23
- if (hoveredMindElement && target && hoveredMindElement === target) {
24
- return;
25
- }
26
- if (hoveredMindElement) {
27
- removeHovered(hoveredMindElement);
28
- }
29
- if (target) {
30
- addHovered(target);
31
- hoveredMindElement = target;
32
- }
33
- else {
34
- hoveredMindElement = null;
35
- }
36
- });
37
- mousemove(event);
38
- };
39
- board.mouseleave = (event) => {
40
- if (hoveredMindElement) {
41
- removeHovered(hoveredMindElement);
42
- hoveredMindElement = null;
43
- }
44
- mouseleave(event);
45
- };
46
- return board;
47
- };
48
- export const addHovered = (element) => {
49
- const component = PlaitElement.getComponent(element);
50
- component.g.classList.add('hovered');
51
- };
52
- export const removeHovered = (element) => {
53
- const component = PlaitElement.getComponent(element);
54
- if (component && component.g) {
55
- component.g.classList.remove('hovered');
56
- }
57
- };
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1ub2RlLWhvdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbWluZC9zcmMvcGx1Z2lucy93aXRoLW5vZGUtaG92ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTFELE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUMvQyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUN4QyxJQUFJLGtCQUFrQixHQUF1QixJQUFJLENBQUM7SUFFbEQsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUNwQyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ2IsSUFBSSxNQUFNLEdBQXVCLElBQUksQ0FBQztZQUN0QyxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUYsbUJBQW1CLENBQ2QsS0FBZ0MsRUFDakMsT0FBTyxDQUFDLEVBQUU7Z0JBQ04sSUFBSSxNQUFNLEVBQUU7b0JBQ1IsT0FBTztpQkFDVjtnQkFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7b0JBQzVDLE9BQU87aUJBQ1Y7Z0JBQ0QsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDN0QsSUFBSSxZQUFZLEVBQUU7b0JBQ2QsTUFBTSxHQUFHLE9BQU8sQ0FBQztpQkFDcEI7WUFDTCxDQUFDLEVBQ0Qsa0JBQWtCLENBQUMsS0FBSyxDQUFDLEVBQ3pCLElBQUksQ0FDUCxDQUFDO1lBRUYsSUFBSSxrQkFBa0IsSUFBSSxNQUFNLElBQUksa0JBQWtCLEtBQUssTUFBTSxFQUFFO2dCQUMvRCxPQUFPO2FBQ1Y7WUFFRCxJQUFJLGtCQUFrQixFQUFFO2dCQUNwQixhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQzthQUNyQztZQUVELElBQUksTUFBTSxFQUFFO2dCQUNSLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkIsa0JBQWtCLEdBQUcsTUFBTSxDQUFDO2FBQy9CO2lCQUFNO2dCQUNILGtCQUFrQixHQUFHLElBQUksQ0FBQzthQUM3QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUMsQ0FBQztJQUVGLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDckMsSUFBSSxrQkFBa0IsRUFBRTtZQUNwQixhQUFhLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNsQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFDRCxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFO0lBQy9DLE1BQU0sU0FBUyxHQUFHLFlBQVksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQW9CLEVBQUUsRUFBRTtJQUNsRCxNQUFNLFNBQVMsR0FBRyxZQUFZLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JELElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxDQUFDLEVBQUU7UUFDMUIsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQzNDO0FBQ0wsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBkZXB0aEZpcnN0UmVjdXJzaW9uLCBnZXRJc1JlY3Vyc2lvbkZ1bmMsIHRocm90dGxlUkFGLCB0b1BvaW50LCB0cmFuc2Zvcm1Qb2ludCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IE1pbmRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IGlzSGl0TWluZEVsZW1lbnQgfSBmcm9tICcuLi91dGlscy9wb3NpdGlvbi9ub2RlJztcblxuZXhwb3J0IGNvbnN0IHdpdGhOb2RlSG92ZXIgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCB7IG1vdXNlbW92ZSwgbW91c2VsZWF2ZSB9ID0gYm9hcmQ7XG4gICAgbGV0IGhvdmVyZWRNaW5kRWxlbWVudDogTWluZEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGJvYXJkLm1vdXNlbW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICB0aHJvdHRsZVJBRigoKSA9PiB7XG4gICAgICAgICAgICBsZXQgdGFyZ2V0OiBNaW5kRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgcG9pbnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgICAgICBkZXB0aEZpcnN0UmVjdXJzaW9uKFxuICAgICAgICAgICAgICAgIChib2FyZCBhcyB1bmtub3duKSBhcyBNaW5kRWxlbWVudCxcbiAgICAgICAgICAgICAgICBlbGVtZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghTWluZEVsZW1lbnQuaXNNaW5kRWxlbWVudChib2FyZCwgZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBpc0hpdEVsZW1lbnQgPSBpc0hpdE1pbmRFbGVtZW50KGJvYXJkLCBwb2ludCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0hpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGdldElzUmVjdXJzaW9uRnVuYyhib2FyZCksXG4gICAgICAgICAgICAgICAgdHJ1ZVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGhvdmVyZWRNaW5kRWxlbWVudCAmJiB0YXJnZXQgJiYgaG92ZXJlZE1pbmRFbGVtZW50ID09PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChob3ZlcmVkTWluZEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVIb3ZlcmVkKGhvdmVyZWRNaW5kRWxlbWVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICBhZGRIb3ZlcmVkKHRhcmdldCk7XG4gICAgICAgICAgICAgICAgaG92ZXJlZE1pbmRFbGVtZW50ID0gdGFyZ2V0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBob3ZlcmVkTWluZEVsZW1lbnQgPSBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBtb3VzZW1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5tb3VzZWxlYXZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChob3ZlcmVkTWluZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJlbW92ZUhvdmVyZWQoaG92ZXJlZE1pbmRFbGVtZW50KTtcbiAgICAgICAgICAgIGhvdmVyZWRNaW5kRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbW91c2VsZWF2ZShldmVudCk7XG4gICAgfTtcblxuICAgIHJldHVybiBib2FyZDtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRIb3ZlcmVkID0gKGVsZW1lbnQ6IE1pbmRFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgY29tcG9uZW50ID0gUGxhaXRFbGVtZW50LmdldENvbXBvbmVudChlbGVtZW50KTtcbiAgICBjb21wb25lbnQuZy5jbGFzc0xpc3QuYWRkKCdob3ZlcmVkJyk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlSG92ZXJlZCA9IChlbGVtZW50OiBNaW5kRWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IGNvbXBvbmVudCA9IFBsYWl0RWxlbWVudC5nZXRDb21wb25lbnQoZWxlbWVudCk7XG4gICAgaWYgKGNvbXBvbmVudCAmJiBjb21wb25lbnQuZykge1xuICAgICAgICBjb21wb25lbnQuZy5jbGFzc0xpc3QucmVtb3ZlKCdob3ZlcmVkJyk7XG4gICAgfVxufTtcbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { PlaitBoard } from '@plait/core';
2
- import { MindElement } from '../interfaces/element';
3
- export declare const withNodeHover: (board: PlaitBoard) => PlaitBoard;
4
- export declare const addHovered: (element: MindElement) => void;
5
- export declare const removeHovered: (element: MindElement) => void;