@plait/core 0.28.0 → 0.30.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/esm2022/board/board.component.mjs +4 -4
- package/esm2022/core/children/children.component.mjs +4 -4
- package/esm2022/core/element/element.component.mjs +4 -4
- package/esm2022/core/element/plugin-element.mjs +4 -4
- package/esm2022/core/island/island-base.component.mjs +7 -7
- package/esm2022/interfaces/board.mjs +1 -1
- package/esm2022/interfaces/rectangle-client.mjs +33 -2
- package/esm2022/interfaces/selection.mjs +1 -1
- package/esm2022/plugins/create-board.mjs +5 -3
- package/esm2022/plugins/with-moving.mjs +11 -10
- package/esm2022/plugins/with-selection.mjs +10 -10
- package/esm2022/services/image-context.service.mjs +4 -4
- package/esm2022/transforms/general.mjs +2 -2
- package/esm2022/transforms/selection.mjs +2 -2
- package/esm2022/utils/selected-element.mjs +35 -33
- package/fesm2022/plait-core.mjs +111 -75
- package/fesm2022/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +4 -2
- package/interfaces/rectangle-client.d.ts +11 -1
- package/interfaces/selection.d.ts +2 -5
- package/package.json +1 -1
- package/utils/selected-element.d.ts +4 -4
|
@@ -2,43 +2,45 @@ import { PlaitBoard } from '../interfaces/board';
|
|
|
2
2
|
import { depthFirstRecursion, getIsRecursionFunc } from './tree';
|
|
3
3
|
import { BOARD_TO_SELECTED_ELEMENT } from './weak-maps';
|
|
4
4
|
import { Selection } from '../interfaces/selection';
|
|
5
|
-
export const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const isCollapsed =
|
|
5
|
+
export const getHitElementsBySelection = (board, selection, match = () => true) => {
|
|
6
|
+
const newSelection = selection || board.selection;
|
|
7
|
+
const rectangleHitElements = [];
|
|
8
|
+
const isCollapsed = newSelection && Selection.isCollapsed(newSelection);
|
|
9
|
+
if (isCollapsed) {
|
|
10
|
+
const hitElement = getHitElementByPoint(board, newSelection.anchor, match);
|
|
11
|
+
if (hitElement) {
|
|
12
|
+
return [hitElement];
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
depthFirstRecursion(board, node => {
|
|
19
|
+
if (!PlaitBoard.isBoard(node) && match(node) && board.isRectangleHit(node, newSelection)) {
|
|
20
|
+
rectangleHitElements.push(node);
|
|
21
|
+
}
|
|
22
|
+
}, getIsRecursionFunc(board), true);
|
|
23
|
+
return rectangleHitElements;
|
|
24
|
+
};
|
|
25
|
+
export const getHitElementByPoint = (board, point, match = () => true) => {
|
|
26
|
+
let rectangleHitElement = undefined;
|
|
27
|
+
let hitElement = undefined;
|
|
9
28
|
depthFirstRecursion(board, node => {
|
|
10
|
-
if (
|
|
29
|
+
if (hitElement) {
|
|
11
30
|
return;
|
|
12
31
|
}
|
|
13
|
-
if (
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
32
|
+
if (PlaitBoard.isBoard(node) || !match(node)) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (board.isHit(node, point)) {
|
|
36
|
+
hitElement = node;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (!rectangleHitElement && board.isRectangleHit(node, { anchor: point, focus: point })) {
|
|
40
|
+
rectangleHitElement = node;
|
|
20
41
|
}
|
|
21
42
|
}, getIsRecursionFunc(board), true);
|
|
22
|
-
return
|
|
23
|
-
};
|
|
24
|
-
export const getHitElementOfRoot = (board, rootElements, range) => {
|
|
25
|
-
const newRootElements = [...rootElements].reverse();
|
|
26
|
-
return newRootElements.find(item => {
|
|
27
|
-
return board.isHitSelection(item, range);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
export const isHitElements = (board, elements, ranges) => {
|
|
31
|
-
let isIntersectionElements = false;
|
|
32
|
-
if (elements.length) {
|
|
33
|
-
elements.map(item => {
|
|
34
|
-
if (!isIntersectionElements) {
|
|
35
|
-
isIntersectionElements = ranges.some(range => {
|
|
36
|
-
return board.isHitSelection(item, range);
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
return isIntersectionElements;
|
|
43
|
+
return hitElement || rectangleHitElement;
|
|
42
44
|
};
|
|
43
45
|
export const cacheSelectedElements = (board, selectedElements) => {
|
|
44
46
|
BOARD_TO_SELECTED_ELEMENT.set(board, selectedElements);
|
|
@@ -62,4 +64,4 @@ export const isSelectedElement = (board, element) => {
|
|
|
62
64
|
const selectedElements = getSelectedElements(board);
|
|
63
65
|
return !!selectedElements.find(value => value === element);
|
|
64
66
|
};
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL3V0aWxzL3NlbGVjdGVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBSXBELE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHLENBQ3JDLEtBQWlCLEVBQ2pCLFNBQXFCLEVBQ3JCLFFBQTRDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDeEQsRUFBRTtJQUNBLE1BQU0sWUFBWSxHQUFHLFNBQVMsSUFBSSxLQUFLLENBQUMsU0FBc0IsQ0FBQztJQUMvRCxNQUFNLG9CQUFvQixHQUFtQixFQUFFLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsWUFBWSxJQUFJLFNBQVMsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDeEUsSUFBSSxXQUFXLEVBQUU7UUFDYixNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzRSxJQUFJLFVBQVUsRUFBRTtZQUNaLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUN2QjthQUFNO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDYjtLQUNKO0lBQ0QsbUJBQW1CLENBQ2YsS0FBSyxFQUNMLElBQUksQ0FBQyxFQUFFO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxFQUFFO1lBQ3RGLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNuQztJQUNMLENBQUMsRUFDRCxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsRUFDekIsSUFBSSxDQUNQLENBQUM7SUFDRixPQUFPLG9CQUFvQixDQUFDO0FBQ2hDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQ2hDLEtBQWlCLEVBQ2pCLEtBQVksRUFDWixRQUE0QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQzlCLEVBQUU7SUFDMUIsSUFBSSxtQkFBbUIsR0FBNkIsU0FBUyxDQUFDO0lBQzlELElBQUksVUFBVSxHQUE2QixTQUFTLENBQUM7SUFDckQsbUJBQW1CLENBQ2YsS0FBSyxFQUNMLElBQUksQ0FBQyxFQUFFO1FBQ0gsSUFBSSxVQUFVLEVBQUU7WUFDWixPQUFPO1NBQ1Y7UUFDRCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDMUMsT0FBTztTQUNWO1FBQ0QsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRTtZQUMxQixVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUU7WUFDckYsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO1NBQzlCO0lBQ0wsQ0FBQyxFQUNELGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUN6QixJQUFJLENBQ1AsQ0FBQztJQUNGLE9BQU8sVUFBVSxJQUFJLG1CQUFtQixDQUFDO0FBQzdDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBaUIsRUFBRSxnQkFBZ0MsRUFBRSxFQUFFO0lBQ3pGLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxPQUFPLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUMzRSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEYscUJBQXFCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDdEQscUJBQXFCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDMUUsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgQW5jZXN0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzL25vZGUnO1xuaW1wb3J0IHsgZGVwdGhGaXJzdFJlY3Vyc2lvbiwgZ2V0SXNSZWN1cnNpb25GdW5jIH0gZnJvbSAnLi90cmVlJztcbmltcG9ydCB7IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBTZWxlY3Rpb24gfSBmcm9tICcuLi9pbnRlcmZhY2VzL3NlbGVjdGlvbic7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50JztcblxuZXhwb3J0IGNvbnN0IGdldEhpdEVsZW1lbnRzQnlTZWxlY3Rpb24gPSAoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgc2VsZWN0aW9uPzogU2VsZWN0aW9uLFxuICAgIG1hdGNoOiAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiBib29sZWFuID0gKCkgPT4gdHJ1ZVxuKSA9PiB7XG4gICAgY29uc3QgbmV3U2VsZWN0aW9uID0gc2VsZWN0aW9uIHx8IGJvYXJkLnNlbGVjdGlvbiBhcyBTZWxlY3Rpb247XG4gICAgY29uc3QgcmVjdGFuZ2xlSGl0RWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgY29uc3QgaXNDb2xsYXBzZWQgPSBuZXdTZWxlY3Rpb24gJiYgU2VsZWN0aW9uLmlzQ29sbGFwc2VkKG5ld1NlbGVjdGlvbik7XG4gICAgaWYgKGlzQ29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IGhpdEVsZW1lbnQgPSBnZXRIaXRFbGVtZW50QnlQb2ludChib2FyZCwgbmV3U2VsZWN0aW9uLmFuY2hvciwgbWF0Y2gpO1xuICAgICAgICBpZiAoaGl0RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIFtoaXRFbGVtZW50XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPEFuY2VzdG9yPihcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKCFQbGFpdEJvYXJkLmlzQm9hcmQobm9kZSkgJiYgbWF0Y2gobm9kZSkgJiYgYm9hcmQuaXNSZWN0YW5nbGVIaXQobm9kZSwgbmV3U2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgIHJlY3RhbmdsZUhpdEVsZW1lbnRzLnB1c2gobm9kZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGdldElzUmVjdXJzaW9uRnVuYyhib2FyZCksXG4gICAgICAgIHRydWVcbiAgICApO1xuICAgIHJldHVybiByZWN0YW5nbGVIaXRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRFbGVtZW50QnlQb2ludCA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICBwb2ludDogUG9pbnQsXG4gICAgbWF0Y2g6IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IGJvb2xlYW4gPSAoKSA9PiB0cnVlXG4pOiB1bmRlZmluZWQgfCBQbGFpdEVsZW1lbnQgPT4ge1xuICAgIGxldCByZWN0YW5nbGVIaXRFbGVtZW50OiBQbGFpdEVsZW1lbnQgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICAgbGV0IGhpdEVsZW1lbnQ6IFBsYWl0RWxlbWVudCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uPEFuY2VzdG9yPihcbiAgICAgICAgYm9hcmQsXG4gICAgICAgIG5vZGUgPT4ge1xuICAgICAgICAgICAgaWYgKGhpdEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoUGxhaXRCb2FyZC5pc0JvYXJkKG5vZGUpIHx8ICFtYXRjaChub2RlKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChib2FyZC5pc0hpdChub2RlLCBwb2ludCkpIHtcbiAgICAgICAgICAgICAgICBoaXRFbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXJlY3RhbmdsZUhpdEVsZW1lbnQgJiYgYm9hcmQuaXNSZWN0YW5nbGVIaXQobm9kZSwgeyBhbmNob3I6IHBvaW50LCBmb2N1czogcG9pbnQgfSkpIHtcbiAgICAgICAgICAgICAgICByZWN0YW5nbGVIaXRFbGVtZW50ID0gbm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0SXNSZWN1cnNpb25GdW5jKGJvYXJkKSxcbiAgICAgICAgdHJ1ZVxuICAgICk7XG4gICAgcmV0dXJuIGhpdEVsZW1lbnQgfHwgcmVjdGFuZ2xlSGl0RWxlbWVudDtcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5zZXQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5nZXQoYm9hcmQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgWy4uLnNlbGVjdGVkRWxlbWVudHMsIGVsZW1lbnRdKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCBuZXdTZWxlY3RlZEVsZW1lbnRzID0gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IGVsZW1lbnQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgbmV3U2VsZWN0ZWRFbGVtZW50cyk7XG59O1xuXG5leHBvcnQgY29uc3QgY2xlYXJTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIFtdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiAhIXNlbGVjdGVkRWxlbWVudHMuZmluZCh2YWx1ZSA9PiB2YWx1ZSA9PT0gZWxlbWVudCk7XG59O1xuIl19
|
package/fesm2022/plait-core.mjs
CHANGED
|
@@ -75,43 +75,45 @@ const Selection = {
|
|
|
75
75
|
}
|
|
76
76
|
};
|
|
77
77
|
|
|
78
|
-
const
|
|
79
|
-
const
|
|
80
|
-
const
|
|
81
|
-
const isCollapsed =
|
|
78
|
+
const getHitElementsBySelection = (board, selection, match = () => true) => {
|
|
79
|
+
const newSelection = selection || board.selection;
|
|
80
|
+
const rectangleHitElements = [];
|
|
81
|
+
const isCollapsed = newSelection && Selection.isCollapsed(newSelection);
|
|
82
|
+
if (isCollapsed) {
|
|
83
|
+
const hitElement = getHitElementByPoint(board, newSelection.anchor, match);
|
|
84
|
+
if (hitElement) {
|
|
85
|
+
return [hitElement];
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
return [];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
82
91
|
depthFirstRecursion(board, node => {
|
|
83
|
-
if (
|
|
92
|
+
if (!PlaitBoard.isBoard(node) && match(node) && board.isRectangleHit(node, newSelection)) {
|
|
93
|
+
rectangleHitElements.push(node);
|
|
94
|
+
}
|
|
95
|
+
}, getIsRecursionFunc(board), true);
|
|
96
|
+
return rectangleHitElements;
|
|
97
|
+
};
|
|
98
|
+
const getHitElementByPoint = (board, point, match = () => true) => {
|
|
99
|
+
let rectangleHitElement = undefined;
|
|
100
|
+
let hitElement = undefined;
|
|
101
|
+
depthFirstRecursion(board, node => {
|
|
102
|
+
if (hitElement) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
if (PlaitBoard.isBoard(node) || !match(node)) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (board.isHit(node, point)) {
|
|
109
|
+
hitElement = node;
|
|
84
110
|
return;
|
|
85
111
|
}
|
|
86
|
-
if (!
|
|
87
|
-
|
|
88
|
-
realSelection &&
|
|
89
|
-
realSelection.ranges.some(range => {
|
|
90
|
-
return board.isHitSelection(node, range);
|
|
91
|
-
})) {
|
|
92
|
-
selectedElements.push(node);
|
|
112
|
+
if (!rectangleHitElement && board.isRectangleHit(node, { anchor: point, focus: point })) {
|
|
113
|
+
rectangleHitElement = node;
|
|
93
114
|
}
|
|
94
115
|
}, getIsRecursionFunc(board), true);
|
|
95
|
-
return
|
|
96
|
-
};
|
|
97
|
-
const getHitElementOfRoot = (board, rootElements, range) => {
|
|
98
|
-
const newRootElements = [...rootElements].reverse();
|
|
99
|
-
return newRootElements.find(item => {
|
|
100
|
-
return board.isHitSelection(item, range);
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
const isHitElements = (board, elements, ranges) => {
|
|
104
|
-
let isIntersectionElements = false;
|
|
105
|
-
if (elements.length) {
|
|
106
|
-
elements.map(item => {
|
|
107
|
-
if (!isIntersectionElements) {
|
|
108
|
-
isIntersectionElements = ranges.some(range => {
|
|
109
|
-
return board.isHitSelection(item, range);
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
return isIntersectionElements;
|
|
116
|
+
return hitElement || rectangleHitElement;
|
|
115
117
|
};
|
|
116
118
|
const cacheSelectedElements = (board, selectedElements) => {
|
|
117
119
|
BOARD_TO_SELECTED_ELEMENT.set(board, selectedElements);
|
|
@@ -431,10 +433,10 @@ class PlaitPluginElementComponent {
|
|
|
431
433
|
removeSelectedElement(this.board, this.element);
|
|
432
434
|
(this.rootG || this.g).remove();
|
|
433
435
|
}
|
|
434
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
435
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
436
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitPluginElementComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
437
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PlaitPluginElementComponent, inputs: { context: "context" }, ngImport: i0 }); }
|
|
436
438
|
}
|
|
437
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
439
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitPluginElementComponent, decorators: [{
|
|
438
440
|
type: Directive
|
|
439
441
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { context: [{
|
|
440
442
|
type: Input
|
|
@@ -443,12 +445,24 @@ const ELEMENT_TO_COMPONENT = new WeakMap();
|
|
|
443
445
|
|
|
444
446
|
const RectangleClient = {
|
|
445
447
|
isHit: (origin, target) => {
|
|
448
|
+
return RectangleClient.isHitX(origin, target) && RectangleClient.isHitY(origin, target);
|
|
449
|
+
},
|
|
450
|
+
isHitX: (origin, target) => {
|
|
446
451
|
const minX = origin.x < target.x ? origin.x : target.x;
|
|
447
452
|
const maxX = origin.x + origin.width > target.x + target.width ? origin.x + origin.width : target.x + target.width;
|
|
453
|
+
// float calculate error( eg: 1.4210854715202004e-14 > 0)
|
|
454
|
+
if (Math.floor(maxX - minX - origin.width - target.width) <= 0) {
|
|
455
|
+
return true;
|
|
456
|
+
}
|
|
457
|
+
else {
|
|
458
|
+
return false;
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
isHitY: (origin, target) => {
|
|
448
462
|
const minY = origin.y < target.y ? origin.y : target.y;
|
|
449
463
|
const maxY = origin.y + origin.height > target.y + target.height ? origin.y + origin.height : target.y + target.height;
|
|
450
464
|
// float calculate error( eg: 1.4210854715202004e-14 > 0)
|
|
451
|
-
if (Math.floor(
|
|
465
|
+
if (Math.floor(maxY - minY - origin.height - target.height) <= 0) {
|
|
452
466
|
return true;
|
|
453
467
|
}
|
|
454
468
|
else {
|
|
@@ -506,6 +520,25 @@ const RectangleClient = {
|
|
|
506
520
|
},
|
|
507
521
|
getConnectionPoint: (rectangle, point) => {
|
|
508
522
|
return [rectangle.x + rectangle.width * point[0], rectangle.y + rectangle.height * point[1]];
|
|
523
|
+
},
|
|
524
|
+
expand(rectangle, left, top = left, right = left, bottom = top) {
|
|
525
|
+
return {
|
|
526
|
+
x: rectangle.x - left,
|
|
527
|
+
y: rectangle.y - top,
|
|
528
|
+
width: rectangle.width + left + right,
|
|
529
|
+
height: rectangle.height + top + bottom
|
|
530
|
+
};
|
|
531
|
+
},
|
|
532
|
+
getGapCenter(rectangle1, rectangle2, isHorizontal) {
|
|
533
|
+
const axis = isHorizontal ? 'y' : 'x';
|
|
534
|
+
const side = isHorizontal ? 'height' : 'width';
|
|
535
|
+
const align = [rectangle1[axis], rectangle1[axis] + rectangle1[side], rectangle2[axis], rectangle2[axis] + rectangle2[side]];
|
|
536
|
+
const sortArr = align.sort((a, b) => a - b);
|
|
537
|
+
return (sortArr[1] + sortArr[2]) / 2;
|
|
538
|
+
},
|
|
539
|
+
isPointInRectangle(rectangle, point) {
|
|
540
|
+
const x = point[0], y = point[1];
|
|
541
|
+
return x > rectangle.x && x < rectangle.x + rectangle.width && y > rectangle.y && y < rectangle.y + rectangle.height;
|
|
509
542
|
}
|
|
510
543
|
};
|
|
511
544
|
|
|
@@ -2160,7 +2193,7 @@ const applyToDraft = (board, selection, viewport, theme, op) => {
|
|
|
2160
2193
|
selection = op.newProperties;
|
|
2161
2194
|
}
|
|
2162
2195
|
else {
|
|
2163
|
-
selection
|
|
2196
|
+
selection = newProperties;
|
|
2164
2197
|
}
|
|
2165
2198
|
}
|
|
2166
2199
|
break;
|
|
@@ -2257,22 +2290,22 @@ function withSelection(board) {
|
|
|
2257
2290
|
}
|
|
2258
2291
|
const options = board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
2259
2292
|
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
2260
|
-
const
|
|
2261
|
-
const
|
|
2293
|
+
const selection = { anchor: point, focus: point };
|
|
2294
|
+
const hitElement = getHitElementByPoint(board, point);
|
|
2262
2295
|
const selectedElements = getSelectedElements(board);
|
|
2263
|
-
if (
|
|
2296
|
+
if (hitElement && selectedElements.includes(hitElement) && !options.isDisabledSelect) {
|
|
2264
2297
|
pointerDown(event);
|
|
2265
2298
|
return;
|
|
2266
2299
|
}
|
|
2267
2300
|
if (PlaitBoard.isPointer(board, PlaitPointerType.selection) &&
|
|
2268
|
-
|
|
2301
|
+
!hitElement &&
|
|
2269
2302
|
options.isMultiple &&
|
|
2270
2303
|
!options.isDisabledSelect) {
|
|
2271
2304
|
selectionRectangleG?.remove();
|
|
2272
2305
|
start = point;
|
|
2273
2306
|
preventTouchMove(board, event, true);
|
|
2274
2307
|
}
|
|
2275
|
-
Transforms.setSelection(board,
|
|
2308
|
+
Transforms.setSelection(board, selection);
|
|
2276
2309
|
pointerDown(event);
|
|
2277
2310
|
};
|
|
2278
2311
|
board.globalPointerMove = (event) => {
|
|
@@ -2288,7 +2321,7 @@ function withSelection(board) {
|
|
|
2288
2321
|
end = movedTarget;
|
|
2289
2322
|
throttleRAF(() => {
|
|
2290
2323
|
if (start && end) {
|
|
2291
|
-
Transforms.setSelection(board, {
|
|
2324
|
+
Transforms.setSelection(board, { anchor: start, focus: end });
|
|
2292
2325
|
}
|
|
2293
2326
|
});
|
|
2294
2327
|
setSelectionMoving(board);
|
|
@@ -2307,7 +2340,7 @@ function withSelection(board) {
|
|
|
2307
2340
|
if (start && end) {
|
|
2308
2341
|
selectionMovingG?.remove();
|
|
2309
2342
|
clearSelectionMoving(board);
|
|
2310
|
-
Transforms.setSelection(board, {
|
|
2343
|
+
Transforms.setSelection(board, { anchor: start, focus: end });
|
|
2311
2344
|
}
|
|
2312
2345
|
if (PlaitBoard.isFocus(board)) {
|
|
2313
2346
|
const isInBoard = event.target instanceof Node && PlaitBoard.getBoardContainer(board).contains(event.target);
|
|
@@ -2336,7 +2369,7 @@ function withSelection(board) {
|
|
|
2336
2369
|
if (board.operations.find(value => value.type === 'set_selection')) {
|
|
2337
2370
|
selectionRectangleG?.remove();
|
|
2338
2371
|
const temporaryElements = getTemporaryElements(board);
|
|
2339
|
-
let elements = temporaryElements ? temporaryElements :
|
|
2372
|
+
let elements = temporaryElements ? temporaryElements : getHitElementsBySelection(board);
|
|
2340
2373
|
if (!options.isMultiple && elements.length > 1) {
|
|
2341
2374
|
elements = [elements[0]];
|
|
2342
2375
|
}
|
|
@@ -2429,7 +2462,7 @@ const SelectionTransforms = {
|
|
|
2429
2462
|
};
|
|
2430
2463
|
function addSelectionWithTemporaryElements(board, elements) {
|
|
2431
2464
|
const timeoutId = setTimeout(() => {
|
|
2432
|
-
setSelection(board,
|
|
2465
|
+
setSelection(board, null);
|
|
2433
2466
|
}, 0);
|
|
2434
2467
|
let ref = getTemporaryRef(board);
|
|
2435
2468
|
if (ref) {
|
|
@@ -2692,7 +2725,8 @@ function createBoard(children, options) {
|
|
|
2692
2725
|
redrawElement: (context, previousContext) => { },
|
|
2693
2726
|
destroyElement: (context) => { },
|
|
2694
2727
|
isWithinSelection: element => false,
|
|
2695
|
-
|
|
2728
|
+
isRectangleHit: element => false,
|
|
2729
|
+
isHit: element => false,
|
|
2696
2730
|
isRecursion: element => true,
|
|
2697
2731
|
isMovable: element => false,
|
|
2698
2732
|
getRectangle: element => null,
|
|
@@ -2705,7 +2739,8 @@ function createBoard(children, options) {
|
|
|
2705
2739
|
pointerOut: pointer => { },
|
|
2706
2740
|
pointerLeave: pointer => { },
|
|
2707
2741
|
globalPointerMove: pointer => { },
|
|
2708
|
-
globalPointerUp: pointer => { }
|
|
2742
|
+
globalPointerUp: pointer => { },
|
|
2743
|
+
isImageBindingAllowed: (element) => false,
|
|
2709
2744
|
};
|
|
2710
2745
|
return board;
|
|
2711
2746
|
}
|
|
@@ -3265,17 +3300,18 @@ function withMoving(board) {
|
|
|
3265
3300
|
board.pointerDown = (event) => {
|
|
3266
3301
|
const host = BOARD_TO_HOST.get(board);
|
|
3267
3302
|
const point = transformPoint(board, toPoint(event.x, event.y, host));
|
|
3268
|
-
const range = { anchor: point, focus: point };
|
|
3269
3303
|
let movableElements = board.children.filter(item => board.isMovable(item));
|
|
3270
3304
|
if (movableElements.length && !isPreventTouchMove(board)) {
|
|
3271
3305
|
startPoint = point;
|
|
3272
|
-
const
|
|
3273
|
-
const hitElement =
|
|
3274
|
-
if (hitElement &&
|
|
3275
|
-
|
|
3276
|
-
|
|
3277
|
-
|
|
3278
|
-
|
|
3306
|
+
const selectedMovableElements = getSelectedElements(board).filter(item => movableElements.includes(item));
|
|
3307
|
+
const hitElement = getHitElementByPoint(board, point);
|
|
3308
|
+
if (hitElement && movableElements.includes(hitElement)) {
|
|
3309
|
+
if (selectedMovableElements.includes(hitElement)) {
|
|
3310
|
+
activeElements = selectedMovableElements;
|
|
3311
|
+
}
|
|
3312
|
+
else {
|
|
3313
|
+
activeElements = [hitElement];
|
|
3314
|
+
}
|
|
3279
3315
|
}
|
|
3280
3316
|
if (activeElements.length > 0) {
|
|
3281
3317
|
preventTouchMove(board, event, true);
|
|
@@ -3382,10 +3418,10 @@ class PlaitIslandBaseComponent {
|
|
|
3382
3418
|
markForCheck() {
|
|
3383
3419
|
this.cdr.markForCheck();
|
|
3384
3420
|
}
|
|
3385
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3386
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
3421
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitIslandBaseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3422
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PlaitIslandBaseComponent, host: { classAttribute: "plait-island-container" }, ngImport: i0 }); }
|
|
3387
3423
|
}
|
|
3388
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3424
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitIslandBaseComponent, decorators: [{
|
|
3389
3425
|
type: Directive,
|
|
3390
3426
|
args: [{
|
|
3391
3427
|
host: {
|
|
@@ -3418,10 +3454,10 @@ class PlaitIslandPopoverBaseComponent {
|
|
|
3418
3454
|
this.subscription?.unsubscribe();
|
|
3419
3455
|
this.islandOnDestroy();
|
|
3420
3456
|
}
|
|
3421
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3422
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.
|
|
3457
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitIslandPopoverBaseComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
3458
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: PlaitIslandPopoverBaseComponent, inputs: { board: "board" }, host: { classAttribute: "plait-island-popover-container" }, ngImport: i0 }); }
|
|
3423
3459
|
}
|
|
3424
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3460
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitIslandPopoverBaseComponent, decorators: [{
|
|
3425
3461
|
type: Directive,
|
|
3426
3462
|
args: [{
|
|
3427
3463
|
host: {
|
|
@@ -3513,10 +3549,10 @@ class PlaitContextService {
|
|
|
3513
3549
|
removeUploadingFile(fileEntry) {
|
|
3514
3550
|
this.uploadingFiles = this.uploadingFiles.filter(file => file.url !== fileEntry.url);
|
|
3515
3551
|
}
|
|
3516
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3517
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.
|
|
3552
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
3553
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitContextService }); }
|
|
3518
3554
|
}
|
|
3519
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3555
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitContextService, decorators: [{
|
|
3520
3556
|
type: Injectable
|
|
3521
3557
|
}] });
|
|
3522
3558
|
|
|
@@ -3593,10 +3629,10 @@ class PlaitElementComponent {
|
|
|
3593
3629
|
ngOnDestroy() {
|
|
3594
3630
|
this.board.destroyElement(this.getContext());
|
|
3595
3631
|
}
|
|
3596
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3597
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
3632
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitElementComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3633
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PlaitElementComponent, isStandalone: true, selector: "plait-element", inputs: { index: "index", element: "element", parent: "parent", board: "board", effect: "effect", parentG: "parentG" }, usesOnChanges: true, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3598
3634
|
}
|
|
3599
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3635
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitElementComponent, decorators: [{
|
|
3600
3636
|
type: Component,
|
|
3601
3637
|
args: [{
|
|
3602
3638
|
selector: 'plait-element',
|
|
@@ -3632,8 +3668,8 @@ class PlaitChildrenElementComponent {
|
|
|
3632
3668
|
this.parentG = PlaitBoard.getElementHost(this.board);
|
|
3633
3669
|
}
|
|
3634
3670
|
}
|
|
3635
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3636
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
3671
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitChildrenElementComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3672
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PlaitChildrenElementComponent, isStandalone: true, selector: "plait-children", inputs: { board: "board", parent: "parent", effect: "effect", parentG: "parentG" }, ngImport: i0, template: `
|
|
3637
3673
|
<plait-element
|
|
3638
3674
|
*ngFor="let item of parent.children; let index = index; trackBy: trackBy"
|
|
3639
3675
|
[index]="index"
|
|
@@ -3645,7 +3681,7 @@ class PlaitChildrenElementComponent {
|
|
|
3645
3681
|
></plait-element>
|
|
3646
3682
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: PlaitElementComponent, selector: "plait-element", inputs: ["index", "element", "parent", "board", "effect", "parentG"] }] }); }
|
|
3647
3683
|
}
|
|
3648
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
3684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitChildrenElementComponent, decorators: [{
|
|
3649
3685
|
type: Component,
|
|
3650
3686
|
args: [{
|
|
3651
3687
|
selector: 'plait-children',
|
|
@@ -3984,8 +4020,8 @@ class PlaitBoardComponent {
|
|
|
3984
4020
|
this.updateIslands();
|
|
3985
4021
|
});
|
|
3986
4022
|
}
|
|
3987
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.
|
|
3988
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.
|
|
4023
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitBoardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4024
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: PlaitBoardComponent, isStandalone: true, selector: "plait-board", inputs: { plaitValue: "plaitValue", plaitViewport: "plaitViewport", plaitPlugins: "plaitPlugins", plaitOptions: "plaitOptions", plaitTheme: "plaitTheme" }, outputs: { plaitChange: "plaitChange", plaitBoardInitialized: "plaitBoardInitialized" }, host: { properties: { "class": "this.hostClass", "class.readonly": "this.readonly", "class.focused": "this.isFocused", "class.disabled-scroll": "this.disabledScrollOnNonFocus" } }, providers: [PlaitContextService], queries: [{ propertyName: "islands", predicate: PlaitIslandBaseComponent, descendants: true }], viewQueries: [{ propertyName: "svg", first: true, predicate: ["svg"], descendants: true, static: true }, { propertyName: "viewportContainer", first: true, predicate: ["viewportContainer"], descendants: true, read: ElementRef, static: true }], usesOnChanges: true, ngImport: i0, template: `
|
|
3989
4025
|
<div class="viewport-container" #viewportContainer>
|
|
3990
4026
|
<svg #svg width="100%" height="100%" style="position: relative;" class="board-host-svg">
|
|
3991
4027
|
<g class="element-host"></g>
|
|
@@ -3997,7 +4033,7 @@ class PlaitBoardComponent {
|
|
|
3997
4033
|
<ng-content></ng-content>
|
|
3998
4034
|
`, isInline: true, dependencies: [{ kind: "component", type: PlaitChildrenElementComponent, selector: "plait-children", inputs: ["board", "parent", "effect", "parentG"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
3999
4035
|
}
|
|
4000
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.
|
|
4036
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: PlaitBoardComponent, decorators: [{
|
|
4001
4037
|
type: Component,
|
|
4002
4038
|
args: [{
|
|
4003
4039
|
selector: 'plait-board',
|
|
@@ -4222,5 +4258,5 @@ function createModModifierKeys() {
|
|
|
4222
4258
|
* Generated bundle index. Do not edit.
|
|
4223
4259
|
*/
|
|
4224
4260
|
|
|
4225
|
-
export { A, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox,
|
|
4261
|
+
export { A, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getTextFromClipboard, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isInPlaitBoard, isLineHitLine, isMainPointer, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setClipboardDataByMedia, setClipboardDataByText, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateForeignObjectWidth, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
4226
4262
|
//# sourceMappingURL=plait-core.mjs.map
|