@plait/core 0.88.1 → 0.89.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.
@@ -2508,7 +2508,36 @@ const isFromViewportChange = (board) => {
2508
2508
  const setIsFromViewportChange = (board, state) => {
2509
2509
  IS_FROM_VIEWPORT_CHANGE.set(board, state);
2510
2510
  };
2511
- function scrollToRectangle(board, client) { }
2511
+ // I do not know how to confirm if the keyboard is open and the height of keyboard
2512
+ // So I just divide the height of viewport by 2 when the keyboard is open
2513
+ const isInVisibleViewport = (board, client, isOpenKeyboard) => {
2514
+ const viewportContainerRect = PlaitBoard.getViewportContainer(board).getBoundingClientRect();
2515
+ const origination = getViewportOrigination(board);
2516
+ if (!origination) {
2517
+ return true;
2518
+ }
2519
+ const viewport = board.viewport;
2520
+ const visibleRectangle = {
2521
+ x: origination[0],
2522
+ y: origination[1],
2523
+ width: viewportContainerRect.width / viewport.zoom,
2524
+ height: viewportContainerRect.height / viewport.zoom / (isOpenKeyboard ? 2 : 1)
2525
+ };
2526
+ const isFirstPointIn = RectangleClient.isPointInRectangle(visibleRectangle, [client.x, client.y]);
2527
+ const isSecondPointIn = RectangleClient.isPointInRectangle(visibleRectangle, [client.x + client.width, client.y + client.height]);
2528
+ return isFirstPointIn && isSecondPointIn;
2529
+ };
2530
+ function scrollToVisibleWhenKeyboardOpening(board, client) {
2531
+ const center = RectangleClient.getCenterPoint(client);
2532
+ const viewportContainerRect = PlaitBoard.getViewportContainer(board).getBoundingClientRect();
2533
+ const viewport = board.viewport;
2534
+ const startY = center[1] - viewportContainerRect.height / 4 / viewport.zoom;
2535
+ const origination = getViewportOrigination(board);
2536
+ if (!origination) {
2537
+ return;
2538
+ }
2539
+ BoardTransforms.updateViewport(board, [origination[0], startY]);
2540
+ }
2512
2541
 
2513
2542
  function insertNode(board, node, path) {
2514
2543
  const operation = { type: 'insert_node', node, path };
@@ -3864,6 +3893,7 @@ const isTouchEvent = (event) => {
3864
3893
  const isMouseEvent = (event) => {
3865
3894
  return event.pointerType === 'mouse';
3866
3895
  };
3896
+ const isTouchDevice = () => 'ontouchstart' in window || navigator.maxTouchPoints;
3867
3897
 
3868
3898
  const addGroup = (board, elements) => {
3869
3899
  const selectedGroups = getHighestSelectedGroups(board, elements);
@@ -5674,6 +5704,9 @@ function createBoard(children, options) {
5674
5704
  pointerCancel: (pointer) => { },
5675
5705
  pointerOut: (pointer) => { },
5676
5706
  pointerLeave: (pointer) => { },
5707
+ touchStart: (event) => { },
5708
+ touchMove: (event) => { },
5709
+ touchEnd: (event) => { },
5677
5710
  globalPointerMove: (pointer) => { },
5678
5711
  globalPointerUp: (pointer) => { },
5679
5712
  drop: (event) => {
@@ -5711,12 +5744,18 @@ const isSmartHand = (board, event) => {
5711
5744
  };
5712
5745
 
5713
5746
  const ShortcutKey = 'Space';
5747
+ const SECONDARY_POINTER_MOVE_THRESHOLD = 5;
5748
+ const IS_HAND_MODE = new WeakMap();
5749
+ const isHandMode = (board) => {
5750
+ return IS_HAND_MODE.get(board) || false;
5751
+ };
5714
5752
  function withHandPointer(board) {
5715
5753
  const { pointerDown, pointerMove, globalPointerUp, keyDown, keyUp, pointerUp } = board;
5716
5754
  let isHandMoving = false;
5717
5755
  let movingPoint = null;
5718
5756
  let pointerDownEvent = null;
5719
5757
  let hasWheelPressed = false;
5758
+ let hasSecondaryPressed = false;
5720
5759
  let beingPressedShortcutKey = false;
5721
5760
  board.pointerDown = (event) => {
5722
5761
  const options = board.getPluginOptions(PlaitPluginKey.withHand);
@@ -5737,40 +5776,46 @@ function withHandPointer(board) {
5737
5776
  }
5738
5777
  else if (isWheelPointer(event)) {
5739
5778
  hasWheelPressed = true;
5740
- // Prevent the browser's default behavior of scrolling the page when the mouse wheel is pressed.
5741
5779
  event.preventDefault();
5742
5780
  movingPoint = {
5743
5781
  x: event.x,
5744
5782
  y: event.y
5745
5783
  };
5746
- isHandMoving = true;
5747
- PlaitBoard.getBoardContainer(board).classList.add('viewport-moving');
5784
+ enterHandMode();
5785
+ }
5786
+ else if (isSecondaryPointer(event)) {
5787
+ hasSecondaryPressed = true;
5788
+ movingPoint = {
5789
+ x: event.x,
5790
+ y: event.y
5791
+ };
5792
+ pointerDownEvent = event;
5748
5793
  }
5749
5794
  pointerDownEvent = event;
5750
5795
  pointerDown(event);
5751
5796
  };
5752
5797
  board.pointerMove = (event) => {
5753
5798
  const options = board.getPluginOptions(PlaitPluginKey.withHand);
5754
- // 阈值必须大于 withSelection 中 pointerMove 的 PRESS_AND_MOVE_BUFFER:
5755
- // 1. 首先检测是否满足进入拖选状态的条件
5756
- // 2. 仅当不满足拖选条件时,才会考虑触发 withHand 行为
5757
- // Must exceed the DRAG_SELECTION_PRESS_AND_MOVE_BUFFER threshold defined in withSelection's pointerMove.
5758
- // The system first checks for drag selection state eligibility
5759
- // withHand behavior is only triggered if drag selection state is not initiated.
5760
5799
  const triggerDistance = DRAG_SELECTION_PRESS_AND_MOVE_BUFFER + 4;
5800
+ if (hasSecondaryPressed && movingPoint && !isHandMoving && pointerDownEvent) {
5801
+ const distance = distanceBetweenPointAndPoint(pointerDownEvent.x, pointerDownEvent.y, event.x, event.y);
5802
+ if (distance > SECONDARY_POINTER_MOVE_THRESHOLD) {
5803
+ enterHandMode();
5804
+ }
5805
+ }
5761
5806
  if (movingPoint &&
5762
5807
  !isHandMoving &&
5763
5808
  !isSelectionMoving(board) &&
5764
5809
  pointerDownEvent &&
5765
5810
  distanceBetweenPointAndPoint(pointerDownEvent.x, pointerDownEvent.y, event.x, event.y) > triggerDistance &&
5766
5811
  !isMovingElements(board)) {
5767
- isHandMoving = true;
5768
- PlaitBoard.getBoardContainer(board).classList.add('viewport-moving');
5812
+ enterHandMode();
5769
5813
  }
5770
5814
  const canEnterHandMode = options?.isHandMode(board, event) ||
5771
5815
  PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
5772
5816
  isSmartHand(board, event) ||
5773
5817
  hasWheelPressed ||
5818
+ hasSecondaryPressed ||
5774
5819
  beingPressedShortcutKey;
5775
5820
  if (canEnterHandMode && isHandMoving && movingPoint && !isSelectionMoving(board) && !isMovingElements(board)) {
5776
5821
  const viewportContainer = PlaitBoard.getViewportContainer(board);
@@ -5792,9 +5837,9 @@ function withHandPointer(board) {
5792
5837
  if (movingPoint) {
5793
5838
  movingPoint = null;
5794
5839
  }
5795
- isHandMoving = false;
5796
- PlaitBoard.getBoardContainer(board).classList.remove('viewport-moving');
5840
+ exitHandMode();
5797
5841
  hasWheelPressed = false;
5842
+ hasSecondaryPressed = false;
5798
5843
  globalPointerUp(event);
5799
5844
  };
5800
5845
  board.keyDown = (event) => {
@@ -5816,6 +5861,18 @@ function withHandPointer(board) {
5816
5861
  }
5817
5862
  keyUp(event);
5818
5863
  };
5864
+ const enterHandMode = () => {
5865
+ isHandMoving = true;
5866
+ PlaitBoard.getBoardContainer(board).classList.add('viewport-moving');
5867
+ IS_HAND_MODE.set(board, true);
5868
+ };
5869
+ const exitHandMode = () => {
5870
+ isHandMoving = false;
5871
+ PlaitBoard.getBoardContainer(board).classList.remove('viewport-moving');
5872
+ setTimeout(() => {
5873
+ IS_HAND_MODE.set(board, false);
5874
+ }, 0);
5875
+ };
5819
5876
  return board;
5820
5877
  }
5821
5878
 
@@ -6196,7 +6253,7 @@ function isVerticalCross(rectangle, other) {
6196
6253
  }
6197
6254
 
6198
6255
  function withMoving(board) {
6199
- const { pointerDown, pointerMove, globalPointerUp, globalPointerMove, globalKeyDown, keyUp } = board;
6256
+ const { pointerDown, pointerMove, globalPointerUp, globalPointerMove, globalKeyDown, keyUp, touchStart, touchMove, touchEnd } = board;
6200
6257
  let offsetX = 0;
6201
6258
  let offsetY = 0;
6202
6259
  let isPreventDefault = false;
@@ -6241,7 +6298,7 @@ function withMoving(board) {
6241
6298
  return;
6242
6299
  }
6243
6300
  const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
6244
- hitTargetElement = getHitElementByPoint(board, point, el => board.isMovable(el));
6301
+ hitTargetElement = getHitElementByPoint(board, point, (el) => board.isMovable(el));
6245
6302
  selectedTargetElements = getSelectedTargetElements(board);
6246
6303
  isHitSelectedTarget = hitTargetElement && selectedTargetElements.includes(hitTargetElement);
6247
6304
  if (hitTargetElement && isHitSelectedTarget) {
@@ -6268,6 +6325,13 @@ function withMoving(board) {
6268
6325
  }
6269
6326
  pointerDown(event);
6270
6327
  };
6328
+ board.touchMove = (event) => {
6329
+ if (startPoint && activeElements.length) {
6330
+ event.preventDefault();
6331
+ return;
6332
+ }
6333
+ touchMove(event);
6334
+ };
6271
6335
  board.pointerMove = (event) => {
6272
6336
  if (startPoint && activeElements.length && !PlaitBoard.hasBeenTextEditing(board)) {
6273
6337
  if (!isPreventDefault) {
@@ -6329,7 +6393,7 @@ function withMoving(board) {
6329
6393
  }
6330
6394
  globalPointerMove(event);
6331
6395
  };
6332
- board.globalPointerUp = event => {
6396
+ board.globalPointerUp = (event) => {
6333
6397
  if (event.altKey && activeElements.length) {
6334
6398
  const validElements = getValidElements(board, activeElements);
6335
6399
  const rectangle = getRectangleByElements(board, validElements, false);
@@ -6402,8 +6466,8 @@ function withArrowMoving(board) {
6402
6466
  }
6403
6467
  function getSelectedTargetElements(board) {
6404
6468
  const selectedElements = getSelectedElements(board);
6405
- const movableElements = board.children.filter(item => board.isMovable(item));
6406
- const targetElements = selectedElements.filter(element => {
6469
+ const movableElements = board.children.filter((item) => board.isMovable(item));
6470
+ const targetElements = selectedElements.filter((element) => {
6407
6471
  return movableElements.includes(element);
6408
6472
  });
6409
6473
  const relatedElements = board.getRelatedFragment([]);
@@ -6411,14 +6475,14 @@ function getSelectedTargetElements(board) {
6411
6475
  return targetElements;
6412
6476
  }
6413
6477
  function getValidElements(board, activeElements) {
6414
- const validElements = [...activeElements].filter(element => !PlaitGroupElement.isGroup(element) && PlaitElement.isRootElement(element));
6478
+ const validElements = [...activeElements].filter((element) => !PlaitGroupElement.isGroup(element) && PlaitElement.isRootElement(element));
6415
6479
  return validElements;
6416
6480
  }
6417
6481
  function updatePoints(board, activeElements, offsetX, offsetY) {
6418
6482
  const validElements = getValidElements(board, activeElements);
6419
- const currentElements = validElements.map(element => {
6483
+ const currentElements = validElements.map((element) => {
6420
6484
  const points = element.points || [];
6421
- const newPoints = points.map(p => [p[0] + offsetX, p[1] + offsetY]);
6485
+ const newPoints = points.map((p) => [p[0] + offsetX, p[1] + offsetY]);
6422
6486
  const index = NODE_TO_INDEX.get(element);
6423
6487
  Transforms.setNode(board, {
6424
6488
  points: newPoints
@@ -6432,8 +6496,8 @@ function drawPendingNodesG(board, activeElements, offsetX, offsetY) {
6432
6496
  let pendingNodesG = null;
6433
6497
  const elements = [];
6434
6498
  const validElements = getValidElements(board, activeElements);
6435
- validElements.forEach(element => {
6436
- depthFirstRecursion(element, node => {
6499
+ validElements.forEach((element) => {
6500
+ depthFirstRecursion(element, (node) => {
6437
6501
  elements.push(node);
6438
6502
  }, () => true);
6439
6503
  });
@@ -6502,7 +6566,7 @@ function withRelatedFragment(board) {
6502
6566
  }
6503
6567
 
6504
6568
  function withSelection(board) {
6505
- const { pointerDown, pointerUp, pointerMove, globalPointerUp, onChange, afterChange, drawSelectionRectangle } = board;
6569
+ const { pointerDown, pointerUp, pointerMove, globalPointerUp, onChange, afterChange, touchStart, touchMove, touchEnd } = board;
6506
6570
  let screenStart = null;
6507
6571
  let screenEnd = null;
6508
6572
  let selectionMovingG;
@@ -6538,6 +6602,13 @@ function withSelection(board) {
6538
6602
  pointerDownEvent = event;
6539
6603
  pointerDown(event);
6540
6604
  };
6605
+ board.touchMove = (event) => {
6606
+ if (screenStart) {
6607
+ event.preventDefault();
6608
+ return;
6609
+ }
6610
+ touchMove(event);
6611
+ };
6541
6612
  board.pointerMove = (event) => {
6542
6613
  if (timerId &&
6543
6614
  pointerDownEvent &&
@@ -6902,5 +6973,5 @@ function createModModifierKeys() {
6902
6973
  * Generated bundle index. Do not edit.
6903
6974
  */
6904
6975
 
6905
- export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_AFTER_CHANGE, BOARD_TO_CONTEXT, 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, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DEFAULT_COLOR, DELETE, DOWN_ARROW, DRAG_SELECTION_PRESS_AND_MOVE_BUFFER, DarkThemeColor, DebugGenerator, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_REF, END, ENTER, EQUALS, ESCAPE, ElementFlavour, 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, HISTORY, HIT_DISTANCE_BUFFER, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_ALIVE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, IS_WINDOWS, J, K, KEY_TO_ELEMENT_MAP, L, LAST_MEDIA, LEFT_ARROW, ListRender, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MAX_ZOOM, MERGING, META, MIN_ZOOM, MUTE, N, NINE, NODE_TO_CONTAINER_G, NODE_TO_G, 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, PlaitBoardContext, PlaitElement, PlaitGroupElement, PlaitHistoryBoard, PlaitNode, PlaitOperation, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RESIZE_CURSORS, RESIZE_HANDLE_CLASS_NAME, RIGHT_ARROW, ROTATE_HANDLE_CLASS_NAME, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_BOUNDING_CLASS_NAME, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SNAPPING_STROKE_WIDTH, SNAP_TOLERANCE, SPACE, SPLITTING_ONCE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VIEWPORT_PADDING_RATIO, VOLUME_DOWN, VOLUME_UP, Viewport, W, WritableClipboardOperationType, WritableClipboardType, X, Y, Z, ZERO, ZOOM_STEP, addClipboardContext, addOrCreateClipboardContext, addSelectedElement, approximately, arrowPoints, buildPlaitHtml, cacheMovingElements, cacheSelectedElements, cacheSelectedElementsWithGroup, cacheSelectedElementsWithGroupOnShift, calcNewViewBox, calculateViewBox, canAddGroup, canRemoveGroup, canSetZIndex, catmullRomFitting, ceilToDecimal, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createBoard, createClipboardContext, createDebugGenerator, createFakeEvent, createForeignObject, createG, createGroup, createGroupRectangleG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createTestingBoard, createText, createTouchEvent, debounce, degreesToRadians, deleteFragment, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawDashedLines, drawLine, drawLinearPath, drawPendingNodesG, drawPointSnapLines, drawRectangle, drawRoundRectangle, drawSelectionRectangleG, drawSolidLines, duplicateElements, fakeNodeWeakMap, filterSelectedGroups, findElements, findIndex, findLastIndex, getAllElementsInGroup, getAllGroups, getAllMoveOptions, getAngleBetweenPoints, getAngleByElement, getBarPoint, getBoardRectangle, getBoundingRectangleByElements, getClipboardData, getClipboardFromHtml, getCrossingPointsBetweenEllipseAndSegment, getDataTransferClipboard, getDataTransferClipboardText, getEditingGroup, getElementById, getElementHostBBox, getElementMap, getElementsInGroup, getElementsInGroupByElement, getElementsIndices, getEllipseArcCenter, getEllipseTangentSlope, getGroupByElement, getHighestGroup, getHighestIndexOfElement, getHighestSelectedElements, getHighestSelectedGroup, getHighestSelectedGroups, getHitElementByPoint, getHitElementsByPoint, getHitElementsBySelection, getHitSelectedElements, getI18nValue, getIsRecursionFunc, getMinPointDelta, getMovingElements, getNearestDelta, getNearestPointBetweenPointAndArc, getNearestPointBetweenPointAndDiscreteSegments, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getNearestPointRectangle, getOffsetAfterRotate, getOneMoveOptions, getPointBetween, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, getProbablySupportsClipboardWriteText, getRealScrollBarWidth, getRectangleByAngle, getRectangleByElements, getRectangleByGroup, getRotatedBoundingRectangle, getSelectedElements, getSelectedGroups, getSelectedIsolatedElements, getSelectedIsolatedElementsCanAddToGroup, getSelectedTargetElements, getSelectionAngle, getSelectionOptions, getSnapRectangles, getTemporaryElements, getTemporaryRef, getTripleAxis, getValidElements, getVectorFromPointAndSlope, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnContextChanged, hasSameAngle, hasSelectedElementsInSameGroup, hasSetSelectionOperation, hasValidAngle, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isAxisChangedByAngle, isContextmenu, isDOMElement, isDOMNode, isDebug, isDragging, isFromScrolling, isFromViewportChange, isHandleSelection, isHitElement, isHitSelectedRectangle, isHorizontalDirection, isInPlaitBoard, isIndicesContinuous, isLineHitLine, isLineHitRectangle, isLineHitRectangleEdge, isMainPointer, isMobileDeviceEvent, isMouseEvent, isMovingElements, isNullOrUndefined, isPencilEvent, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isSecondaryPointer, isSelectedAllElementsInGroup, isSelectedElement, isSelectedElementOrGroup, isSelectionMoving, isSetSelectionOperation, isSetThemeOperation, isSetViewportOperation, isSingleLineHitRectangleEdge, isSnapPoint, isTouchEvent, isValidAngle, isVerticalDirection, isWheelPointer, mountElementG, moveElementsToNewPath, moveElementsToNewPathAfterAddGroup, nonGroupInHighestSelectedElements, normalizeAngle, normalizePoint, prepareElementBBox, radiansToDegrees, removeMovingElements, removeSelectedElement, replaceAngleBrackets, replaceSelectedElement, reverseReplaceAngleBrackets, rgbaToHEX, rotate, rotateAntiPointsByElement, rotateElements, rotatePoints, rotatePointsByAngle, rotatePointsByElement, rotatedDataPoints, scrollToRectangle, setAngleForG, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setDragging, setFragment, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectedElementsWithGroup, setSelectionMoving, setSelectionOptions, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, sortElements, stripHtml, temporaryDisableSelection, throttleRAF, toActivePoint, toActivePointFromViewBoxPoint, toActiveRectangleFromViewBoxRectangle, toDomPrecision, toFixed, toHostPoint, toHostPointFromViewBoxPoint, toImage, toScreenPointFromActivePoint, toScreenPointFromHostPoint, toViewBoxPoint, toViewBoxPoints, uniqueById, updateForeignObject, updateForeignObjectWidth, updatePoints, updateViewBox, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withArrowMoving, withBoard, withHandPointer, withHistory, withHotkey, withI18n, withMoving, withOptions, withRelatedFragment, withSelection };
6976
+ export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_AFTER_CHANGE, BOARD_TO_CONTEXT, 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, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DEFAULT_COLOR, DELETE, DOWN_ARROW, DRAG_SELECTION_PRESS_AND_MOVE_BUFFER, DarkThemeColor, DebugGenerator, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_REF, END, ENTER, EQUALS, ESCAPE, ElementFlavour, 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, HISTORY, HIT_DISTANCE_BUFFER, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_ALIVE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_DRAGGING, IS_EDGE_LEGACY, IS_FIREFOX, IS_HAND_MODE, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, IS_WINDOWS, J, K, KEY_TO_ELEMENT_MAP, L, LAST_MEDIA, LEFT_ARROW, ListRender, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MAX_ZOOM, MERGING, META, MIN_ZOOM, MUTE, N, NINE, NODE_TO_CONTAINER_G, NODE_TO_G, 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, PlaitBoardContext, PlaitElement, PlaitGroupElement, PlaitHistoryBoard, PlaitNode, PlaitOperation, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RESIZE_CURSORS, RESIZE_HANDLE_CLASS_NAME, RIGHT_ARROW, ROTATE_HANDLE_CLASS_NAME, RectangleClient, ResizeCursorClass, RetroThemeColor, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_BOUNDING_CLASS_NAME, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SNAPPING_STROKE_WIDTH, SNAP_TOLERANCE, SPACE, SPLITTING_ONCE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VIEWPORT_PADDING_RATIO, VOLUME_DOWN, VOLUME_UP, Viewport, W, WritableClipboardOperationType, WritableClipboardType, X, Y, Z, ZERO, ZOOM_STEP, addClipboardContext, addOrCreateClipboardContext, addSelectedElement, approximately, arrowPoints, buildPlaitHtml, cacheMovingElements, cacheSelectedElements, cacheSelectedElementsWithGroup, cacheSelectedElementsWithGroupOnShift, calcNewViewBox, calculateViewBox, canAddGroup, canRemoveGroup, canSetZIndex, catmullRomFitting, ceilToDecimal, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createBoard, createClipboardContext, createDebugGenerator, createFakeEvent, createForeignObject, createG, createGroup, createGroupRectangleG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createTestingBoard, createText, createTouchEvent, debounce, degreesToRadians, deleteFragment, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downloadImage, drawArrow, drawBezierPath, drawCircle, drawDashedLines, drawLine, drawLinearPath, drawPendingNodesG, drawPointSnapLines, drawRectangle, drawRoundRectangle, drawSelectionRectangleG, drawSolidLines, duplicateElements, fakeNodeWeakMap, filterSelectedGroups, findElements, findIndex, findLastIndex, getAllElementsInGroup, getAllGroups, getAllMoveOptions, getAngleBetweenPoints, getAngleByElement, getBarPoint, getBoardRectangle, getBoundingRectangleByElements, getClipboardData, getClipboardFromHtml, getCrossingPointsBetweenEllipseAndSegment, getDataTransferClipboard, getDataTransferClipboardText, getEditingGroup, getElementById, getElementHostBBox, getElementMap, getElementsInGroup, getElementsInGroupByElement, getElementsIndices, getEllipseArcCenter, getEllipseTangentSlope, getGroupByElement, getHighestGroup, getHighestIndexOfElement, getHighestSelectedElements, getHighestSelectedGroup, getHighestSelectedGroups, getHitElementByPoint, getHitElementsByPoint, getHitElementsBySelection, getHitSelectedElements, getI18nValue, getIsRecursionFunc, getMinPointDelta, getMovingElements, getNearestDelta, getNearestPointBetweenPointAndArc, getNearestPointBetweenPointAndDiscreteSegments, getNearestPointBetweenPointAndEllipse, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getNearestPointRectangle, getOffsetAfterRotate, getOneMoveOptions, getPointBetween, getProbablySupportsClipboardRead, getProbablySupportsClipboardWrite, getProbablySupportsClipboardWriteText, getRealScrollBarWidth, getRectangleByAngle, getRectangleByElements, getRectangleByGroup, getRotatedBoundingRectangle, getSelectedElements, getSelectedGroups, getSelectedIsolatedElements, getSelectedIsolatedElementsCanAddToGroup, getSelectedTargetElements, getSelectionAngle, getSelectionOptions, getSnapRectangles, getTemporaryElements, getTemporaryRef, getTripleAxis, getValidElements, getVectorFromPointAndSlope, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnContextChanged, hasSameAngle, hasSelectedElementsInSameGroup, hasSetSelectionOperation, hasValidAngle, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isAxisChangedByAngle, isContextmenu, isDOMElement, isDOMNode, isDebug, isDragging, isFromScrolling, isFromViewportChange, isHandMode, isHandleSelection, isHitElement, isHitSelectedRectangle, isHorizontalDirection, isInPlaitBoard, isInVisibleViewport, isIndicesContinuous, isLineHitLine, isLineHitRectangle, isLineHitRectangleEdge, isMainPointer, isMobileDeviceEvent, isMouseEvent, isMovingElements, isNullOrUndefined, isPencilEvent, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isSecondaryPointer, isSelectedAllElementsInGroup, isSelectedElement, isSelectedElementOrGroup, isSelectionMoving, isSetSelectionOperation, isSetThemeOperation, isSetViewportOperation, isSingleLineHitRectangleEdge, isSnapPoint, isTouchDevice, isTouchEvent, isValidAngle, isVerticalDirection, isWheelPointer, mountElementG, moveElementsToNewPath, moveElementsToNewPathAfterAddGroup, nonGroupInHighestSelectedElements, normalizeAngle, normalizePoint, prepareElementBBox, radiansToDegrees, removeMovingElements, removeSelectedElement, replaceAngleBrackets, replaceSelectedElement, reverseReplaceAngleBrackets, rgbaToHEX, rotate, rotateAntiPointsByElement, rotateElements, rotatePoints, rotatePointsByAngle, rotatePointsByElement, rotatedDataPoints, scrollToVisibleWhenKeyboardOpening, setAngleForG, setClipboardData, setDataTransferClipboard, setDataTransferClipboardText, setDragging, setFragment, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectedElementsWithGroup, setSelectionMoving, setSelectionOptions, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, sortElements, stripHtml, temporaryDisableSelection, throttleRAF, toActivePoint, toActivePointFromViewBoxPoint, toActiveRectangleFromViewBoxRectangle, toDomPrecision, toFixed, toHostPoint, toHostPointFromViewBoxPoint, toImage, toScreenPointFromActivePoint, toScreenPointFromHostPoint, toViewBoxPoint, toViewBoxPoints, uniqueById, updateForeignObject, updateForeignObjectWidth, updatePoints, updateViewBox, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withArrowMoving, withBoard, withHandPointer, withHistory, withHotkey, withI18n, withMoving, withOptions, withRelatedFragment, withSelection };
6906
6977
  //# sourceMappingURL=plait-core.mjs.map