@plait/core 0.17.0 → 0.20.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/constants/index.d.ts +3 -0
- package/constants/resize.d.ts +3 -0
- package/esm2020/constants/index.mjs +5 -2
- package/esm2020/constants/resize.mjs +5 -0
- package/esm2020/plugins/with-selection.mjs +16 -5
- package/esm2020/utils/selected-element.mjs +3 -10
- package/esm2020/utils/tree.mjs +12 -1
- package/fesm2015/plait-core.mjs +36 -16
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +36 -16
- package/fesm2020/plait-core.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/with-selection.d.ts +4 -0
- package/styles/styles.scss +4 -0
- package/utils/tree.d.ts +3 -0
package/fesm2020/plait-core.mjs
CHANGED
|
@@ -42,6 +42,16 @@ function depthFirstRecursion(node, callback, recursion, isReverse) {
|
|
|
42
42
|
}
|
|
43
43
|
callback(node);
|
|
44
44
|
}
|
|
45
|
+
const getIsRecursionFunc = (board) => {
|
|
46
|
+
return (element) => {
|
|
47
|
+
if (PlaitBoard.isBoard(element) || board.isRecursion(element)) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
};
|
|
45
55
|
|
|
46
56
|
function getRectangleByElements(board, elements, recursion) {
|
|
47
57
|
const boundaryBox = {
|
|
@@ -845,6 +855,13 @@ const CLOSE_SQUARE_BRACKET = 221;
|
|
|
845
855
|
const SINGLE_QUOTE = 222;
|
|
846
856
|
const MAC_META = 224;
|
|
847
857
|
|
|
858
|
+
var ResizeCursorClass;
|
|
859
|
+
(function (ResizeCursorClass) {
|
|
860
|
+
ResizeCursorClass["ew-resize"] = "ew-resize";
|
|
861
|
+
})(ResizeCursorClass || (ResizeCursorClass = {}));
|
|
862
|
+
|
|
863
|
+
const ATTACHED_ELEMENT_CLASS_NAME = 'plait-board-attached';
|
|
864
|
+
|
|
848
865
|
const CLIP_BOARD_FORMAT_KEY = 'x-plait-fragment';
|
|
849
866
|
const HOST_CLASS_NAME = 'plait-board-container';
|
|
850
867
|
const SCROLL_BAR_WIDTH = 20;
|
|
@@ -853,8 +870,9 @@ const POINTER_BUTTON = {
|
|
|
853
870
|
MAIN: 0,
|
|
854
871
|
WHEEL: 1,
|
|
855
872
|
SECONDARY: 2,
|
|
856
|
-
TOUCH: -1
|
|
873
|
+
TOUCH: -1
|
|
857
874
|
};
|
|
875
|
+
const PRESS_AND_MOVE_BUFFER = 5;
|
|
858
876
|
|
|
859
877
|
const NS = 'http://www.w3.org/2000/svg';
|
|
860
878
|
function toPoint(x, y, container) {
|
|
@@ -941,14 +959,7 @@ const getHitElements = (board, selection, match = () => true) => {
|
|
|
941
959
|
})) {
|
|
942
960
|
selectedElements.push(node);
|
|
943
961
|
}
|
|
944
|
-
},
|
|
945
|
-
if (PlaitBoard.isBoard(node) || board.isRecursion(node)) {
|
|
946
|
-
return true;
|
|
947
|
-
}
|
|
948
|
-
else {
|
|
949
|
-
return false;
|
|
950
|
-
}
|
|
951
|
-
}, true);
|
|
962
|
+
}, getIsRecursionFunc(board), true);
|
|
952
963
|
return selectedElements;
|
|
953
964
|
};
|
|
954
965
|
const getHitElementOfRoot = (board, rootElements, range) => {
|
|
@@ -2239,8 +2250,6 @@ function withHandPointer(board) {
|
|
|
2239
2250
|
return board;
|
|
2240
2251
|
}
|
|
2241
2252
|
|
|
2242
|
-
const ATTACHED_ELEMENT_CLASS_NAME = 'plait-board-attached';
|
|
2243
|
-
|
|
2244
2253
|
function withSelection(board) {
|
|
2245
2254
|
const { mousedown, globalMousemove, globalMouseup, onChange } = board;
|
|
2246
2255
|
let start = null;
|
|
@@ -2248,7 +2257,12 @@ function withSelection(board) {
|
|
|
2248
2257
|
let selectionMovingG;
|
|
2249
2258
|
let selectionOuterG;
|
|
2250
2259
|
let previousSelectedElements;
|
|
2260
|
+
// prevent text from being selected when user pressed main pointer and is moving
|
|
2261
|
+
let needPreventNativeSelectionWhenMoving = false;
|
|
2251
2262
|
board.mousedown = (event) => {
|
|
2263
|
+
if (event.target instanceof Element && !event.target.closest('.plait-richtext-container')) {
|
|
2264
|
+
needPreventNativeSelectionWhenMoving = true;
|
|
2265
|
+
}
|
|
2252
2266
|
if (!isMainPointer(event)) {
|
|
2253
2267
|
mousedown(event);
|
|
2254
2268
|
return;
|
|
@@ -2268,14 +2282,13 @@ function withSelection(board) {
|
|
|
2268
2282
|
!options.isDisabledSelect) {
|
|
2269
2283
|
start = point;
|
|
2270
2284
|
}
|
|
2271
|
-
if (PlaitBoard.isPointer(board, PlaitPointerType.selection) && hitElements.length === 0 && !PlaitBoard.hasBeenTextEditing(board)) {
|
|
2272
|
-
// prevent text from being selected
|
|
2273
|
-
event.preventDefault();
|
|
2274
|
-
}
|
|
2275
2285
|
Transforms.setSelection(board, { ranges: [range] });
|
|
2276
2286
|
mousedown(event);
|
|
2277
2287
|
};
|
|
2278
2288
|
board.globalMousemove = (event) => {
|
|
2289
|
+
if (needPreventNativeSelectionWhenMoving) {
|
|
2290
|
+
preventNativeSelection(board, event);
|
|
2291
|
+
}
|
|
2279
2292
|
if (start) {
|
|
2280
2293
|
const movedTarget = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
2281
2294
|
const { x, y, width, height } = RectangleClient.toRectangleClient([start, movedTarget]);
|
|
@@ -2318,6 +2331,7 @@ function withSelection(board) {
|
|
|
2318
2331
|
}
|
|
2319
2332
|
start = null;
|
|
2320
2333
|
end = null;
|
|
2334
|
+
needPreventNativeSelectionWhenMoving = false;
|
|
2321
2335
|
globalMouseup(event);
|
|
2322
2336
|
};
|
|
2323
2337
|
board.onChange = () => {
|
|
@@ -2399,6 +2413,12 @@ function createSelectionOuterG(board, selectElements) {
|
|
|
2399
2413
|
fillStyle: 'solid'
|
|
2400
2414
|
});
|
|
2401
2415
|
}
|
|
2416
|
+
/**
|
|
2417
|
+
* prevent text from being selected
|
|
2418
|
+
*/
|
|
2419
|
+
const preventNativeSelection = (board, event) => {
|
|
2420
|
+
event.preventDefault();
|
|
2421
|
+
};
|
|
2402
2422
|
|
|
2403
2423
|
function withViewport(board) {
|
|
2404
2424
|
const { onChange } = board;
|
|
@@ -3283,5 +3303,5 @@ function createModModifierKeys() {
|
|
|
3283
3303
|
* Generated bundle index. Do not edit.
|
|
3284
3304
|
*/
|
|
3285
3305
|
|
|
3286
|
-
export { A, ALT, APOSTROPHE, 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_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, 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, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, 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, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
3306
|
+
export { A, 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_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, 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, PlaitChildrenElement, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitModule, 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, 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, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createSVG, createSelectionOuterG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRoundRectangle, fakeNodeWeakMap, getBoardRectangle, getElementHostBBox, getHitElementOfRoot, getHitElements, getIsRecursionFunc, getMovingElements, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHitElements, isInPlaitBoard, isMainPointer, isNullOrUndefined, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, preventNativeSelection, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setIsFromScrolling, setIsFromViewportChange, setSVGViewBox, setSelectionMoving, shouldClear, shouldMerge, shouldSave, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
3287
3307
|
//# sourceMappingURL=plait-core.mjs.map
|