@plait/core 0.89.0 → 0.89.2

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) => {
@@ -5706,10 +5739,6 @@ function withBoard(board) {
5706
5739
  return board;
5707
5740
  }
5708
5741
 
5709
- const isSmartHand = (board, event) => {
5710
- return PlaitBoard.isPointer(board, PlaitPointerType.selection) && isMobileDeviceEvent(event);
5711
- };
5712
-
5713
5742
  const ShortcutKey = 'Space';
5714
5743
  const SECONDARY_POINTER_MOVE_THRESHOLD = 5;
5715
5744
  const IS_HAND_MODE = new WeakMap();
@@ -5726,12 +5755,7 @@ function withHandPointer(board) {
5726
5755
  let beingPressedShortcutKey = false;
5727
5756
  board.pointerDown = (event) => {
5728
5757
  const options = board.getPluginOptions(PlaitPluginKey.withHand);
5729
- const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
5730
- const isHitTarget = isHitElement(board, point);
5731
- const canEnterHandMode = options?.isHandMode(board, event) ||
5732
- PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
5733
- (isSmartHand(board, event) && !isHitTarget) ||
5734
- beingPressedShortcutKey;
5758
+ const canEnterHandMode = options?.isHandMode(board, event) || PlaitBoard.isPointer(board, PlaitPointerType.hand) || beingPressedShortcutKey;
5735
5759
  if (canEnterHandMode && isMainPointer(event)) {
5736
5760
  movingPoint = {
5737
5761
  x: event.x,
@@ -5780,7 +5804,6 @@ function withHandPointer(board) {
5780
5804
  }
5781
5805
  const canEnterHandMode = options?.isHandMode(board, event) ||
5782
5806
  PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
5783
- isSmartHand(board, event) ||
5784
5807
  hasWheelPressed ||
5785
5808
  hasSecondaryPressed ||
5786
5809
  beingPressedShortcutKey;
@@ -6220,7 +6243,7 @@ function isVerticalCross(rectangle, other) {
6220
6243
  }
6221
6244
 
6222
6245
  function withMoving(board) {
6223
- const { pointerDown, pointerMove, globalPointerUp, globalPointerMove, globalKeyDown, keyUp } = board;
6246
+ const { pointerDown, pointerMove, globalPointerUp, globalPointerMove, globalKeyDown, keyUp, touchStart, touchMove, touchEnd } = board;
6224
6247
  let offsetX = 0;
6225
6248
  let offsetY = 0;
6226
6249
  let isPreventDefault = false;
@@ -6232,6 +6255,7 @@ function withMoving(board) {
6232
6255
  let hitTargetElement = undefined;
6233
6256
  let isHitSelectedTarget = undefined;
6234
6257
  let pendingNodesG = null;
6258
+ let pointerId = null;
6235
6259
  board.globalKeyDown = (event) => {
6236
6260
  if (!PlaitBoard.isReadonly(board)) {
6237
6261
  if (isKeyHotkey('option', event)) {
@@ -6265,16 +6289,18 @@ function withMoving(board) {
6265
6289
  return;
6266
6290
  }
6267
6291
  const point = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
6268
- hitTargetElement = getHitElementByPoint(board, point, el => board.isMovable(el));
6292
+ hitTargetElement = getHitElementByPoint(board, point, (el) => board.isMovable(el));
6269
6293
  selectedTargetElements = getSelectedTargetElements(board);
6270
6294
  isHitSelectedTarget = hitTargetElement && selectedTargetElements.includes(hitTargetElement);
6271
6295
  if (hitTargetElement && isHitSelectedTarget) {
6272
6296
  startPoint = point;
6297
+ pointerId = event.pointerId;
6273
6298
  activeElements = selectedTargetElements;
6274
6299
  activeElementsRectangle = getRectangleByElements(board, activeElements, true);
6275
6300
  }
6276
6301
  else if (hitTargetElement) {
6277
6302
  startPoint = point;
6303
+ pointerId = event.pointerId;
6278
6304
  const relatedElements = board.getRelatedFragment([], [hitTargetElement]);
6279
6305
  activeElements = [...getElementsInGroupByElement(board, hitTargetElement), ...relatedElements];
6280
6306
  activeElementsRectangle = getRectangleByElements(board, activeElements, true);
@@ -6286,14 +6312,22 @@ function withMoving(board) {
6286
6312
  const isHitInTargetRectangle = targetRectangle && RectangleClient.isPointInRectangle(targetRectangle, point);
6287
6313
  if (isHitInTargetRectangle) {
6288
6314
  startPoint = point;
6315
+ pointerId = event.pointerId;
6289
6316
  activeElements = selectedTargetElements;
6290
6317
  activeElementsRectangle = targetRectangle;
6291
6318
  }
6292
6319
  }
6293
6320
  pointerDown(event);
6294
6321
  };
6322
+ board.touchMove = (event) => {
6323
+ if (startPoint && activeElements.length) {
6324
+ event.preventDefault();
6325
+ return;
6326
+ }
6327
+ touchMove(event);
6328
+ };
6295
6329
  board.pointerMove = (event) => {
6296
- if (startPoint && activeElements.length && !PlaitBoard.hasBeenTextEditing(board)) {
6330
+ if (startPoint && activeElements.length && !PlaitBoard.hasBeenTextEditing(board) && pointerId === event.pointerId) {
6297
6331
  if (!isPreventDefault) {
6298
6332
  isPreventDefault = true;
6299
6333
  }
@@ -6353,7 +6387,7 @@ function withMoving(board) {
6353
6387
  }
6354
6388
  globalPointerMove(event);
6355
6389
  };
6356
- board.globalPointerUp = event => {
6390
+ board.globalPointerUp = (event) => {
6357
6391
  if (event.altKey && activeElements.length) {
6358
6392
  const validElements = getValidElements(board, activeElements);
6359
6393
  const rectangle = getRectangleByElements(board, validElements, false);
@@ -6372,6 +6406,7 @@ function withMoving(board) {
6372
6406
  snapG?.remove();
6373
6407
  pendingNodesG?.remove();
6374
6408
  startPoint = null;
6409
+ pointerId = null;
6375
6410
  activeElementsRectangle = null;
6376
6411
  offsetX = 0;
6377
6412
  offsetY = 0;
@@ -6426,8 +6461,8 @@ function withArrowMoving(board) {
6426
6461
  }
6427
6462
  function getSelectedTargetElements(board) {
6428
6463
  const selectedElements = getSelectedElements(board);
6429
- const movableElements = board.children.filter(item => board.isMovable(item));
6430
- const targetElements = selectedElements.filter(element => {
6464
+ const movableElements = board.children.filter((item) => board.isMovable(item));
6465
+ const targetElements = selectedElements.filter((element) => {
6431
6466
  return movableElements.includes(element);
6432
6467
  });
6433
6468
  const relatedElements = board.getRelatedFragment([]);
@@ -6435,14 +6470,14 @@ function getSelectedTargetElements(board) {
6435
6470
  return targetElements;
6436
6471
  }
6437
6472
  function getValidElements(board, activeElements) {
6438
- const validElements = [...activeElements].filter(element => !PlaitGroupElement.isGroup(element) && PlaitElement.isRootElement(element));
6473
+ const validElements = [...activeElements].filter((element) => !PlaitGroupElement.isGroup(element) && PlaitElement.isRootElement(element));
6439
6474
  return validElements;
6440
6475
  }
6441
6476
  function updatePoints(board, activeElements, offsetX, offsetY) {
6442
6477
  const validElements = getValidElements(board, activeElements);
6443
- const currentElements = validElements.map(element => {
6478
+ const currentElements = validElements.map((element) => {
6444
6479
  const points = element.points || [];
6445
- const newPoints = points.map(p => [p[0] + offsetX, p[1] + offsetY]);
6480
+ const newPoints = points.map((p) => [p[0] + offsetX, p[1] + offsetY]);
6446
6481
  const index = NODE_TO_INDEX.get(element);
6447
6482
  Transforms.setNode(board, {
6448
6483
  points: newPoints
@@ -6456,8 +6491,8 @@ function drawPendingNodesG(board, activeElements, offsetX, offsetY) {
6456
6491
  let pendingNodesG = null;
6457
6492
  const elements = [];
6458
6493
  const validElements = getValidElements(board, activeElements);
6459
- validElements.forEach(element => {
6460
- depthFirstRecursion(element, node => {
6494
+ validElements.forEach((element) => {
6495
+ depthFirstRecursion(element, (node) => {
6461
6496
  elements.push(node);
6462
6497
  }, () => true);
6463
6498
  });
@@ -6526,7 +6561,7 @@ function withRelatedFragment(board) {
6526
6561
  }
6527
6562
 
6528
6563
  function withSelection(board) {
6529
- const { pointerDown, pointerUp, pointerMove, globalPointerUp, onChange, afterChange, drawSelectionRectangle } = board;
6564
+ const { pointerDown, pointerUp, pointerMove, globalPointerUp, onChange, afterChange, touchStart, touchMove, touchEnd } = board;
6530
6565
  let screenStart = null;
6531
6566
  let screenEnd = null;
6532
6567
  let selectionMovingG;
@@ -6550,10 +6585,14 @@ function withSelection(board) {
6550
6585
  options.isMultipleSelection &&
6551
6586
  !options.isDisabledSelection) {
6552
6587
  if (isMobileDeviceEvent(event)) {
6588
+ if (timerId) {
6589
+ clearTimeout(timerId);
6590
+ timerId = null;
6591
+ }
6553
6592
  timerId = setTimeout(() => {
6554
6593
  screenStart = [event.x, event.y];
6555
6594
  timerId = null;
6556
- }, 120);
6595
+ }, 400);
6557
6596
  }
6558
6597
  else {
6559
6598
  screenStart = [event.x, event.y];
@@ -6562,6 +6601,17 @@ function withSelection(board) {
6562
6601
  pointerDownEvent = event;
6563
6602
  pointerDown(event);
6564
6603
  };
6604
+ board.touchMove = (event) => {
6605
+ if (screenStart && event.touches.length > 1) {
6606
+ screenStart = null;
6607
+ selectionMovingG?.remove();
6608
+ }
6609
+ if (screenStart) {
6610
+ event.preventDefault();
6611
+ return;
6612
+ }
6613
+ touchMove(event);
6614
+ };
6565
6615
  board.pointerMove = (event) => {
6566
6616
  if (timerId &&
6567
6617
  pointerDownEvent &&
@@ -6926,5 +6976,5 @@ function createModModifierKeys() {
6926
6976
  * Generated bundle index. Do not edit.
6927
6977
  */
6928
6978
 
6929
- 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, 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 };
6979
+ 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 };
6930
6980
  //# sourceMappingURL=plait-core.mjs.map