@plait/core 0.1.0 → 0.1.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.
Files changed (47) hide show
  1. package/board/board.component.d.ts +4 -17
  2. package/board/board.component.interface.d.ts +0 -2
  3. package/constants/selection.d.ts +1 -0
  4. package/esm2020/board/board.component.interface.mjs +1 -1
  5. package/esm2020/board/board.component.mjs +49 -248
  6. package/esm2020/constants/selection.mjs +2 -0
  7. package/esm2020/core/element/element.component.mjs +2 -2
  8. package/esm2020/interfaces/board.mjs +11 -2
  9. package/esm2020/interfaces/viewport.mjs +1 -1
  10. package/esm2020/plugins/create-board.mjs +2 -1
  11. package/esm2020/plugins/with-hand.mjs +9 -6
  12. package/esm2020/plugins/with-moving.mjs +91 -0
  13. package/esm2020/plugins/with-selection.mjs +54 -13
  14. package/esm2020/plugins/with-viewport.mjs +11 -0
  15. package/esm2020/public-api.mjs +3 -1
  16. package/esm2020/transforms/selection.mjs +10 -2
  17. package/esm2020/utils/board.mjs +7 -3
  18. package/esm2020/utils/common.mjs +15 -0
  19. package/esm2020/utils/element.mjs +3 -3
  20. package/esm2020/utils/helper.mjs +14 -1
  21. package/esm2020/utils/index.mjs +4 -2
  22. package/esm2020/utils/moving-element.mjs +15 -0
  23. package/esm2020/utils/selected-element.mjs +14 -1
  24. package/esm2020/utils/viewport.mjs +170 -0
  25. package/esm2020/utils/weak-maps.mjs +5 -1
  26. package/fesm2015/plait-core.mjs +567 -562
  27. package/fesm2015/plait-core.mjs.map +1 -1
  28. package/fesm2020/plait-core.mjs +567 -559
  29. package/fesm2020/plait-core.mjs.map +1 -1
  30. package/interfaces/board.d.ts +4 -10
  31. package/interfaces/viewport.d.ts +2 -2
  32. package/package.json +1 -1
  33. package/plugins/with-moving.d.ts +2 -0
  34. package/plugins/with-selection.d.ts +6 -1
  35. package/plugins/with-viewport.d.ts +2 -0
  36. package/public-api.d.ts +2 -0
  37. package/transforms/selection.d.ts +3 -0
  38. package/utils/board.d.ts +1 -1
  39. package/utils/common.d.ts +1 -0
  40. package/utils/helper.d.ts +9 -0
  41. package/utils/index.d.ts +3 -1
  42. package/utils/moving-element.d.ts +5 -0
  43. package/utils/selected-element.d.ts +2 -0
  44. package/utils/viewport.d.ts +29 -0
  45. package/utils/weak-maps.d.ts +3 -0
  46. package/esm2020/utils/matrix.mjs +0 -170
  47. package/utils/matrix.d.ts +0 -82
@@ -0,0 +1,15 @@
1
+ let timerId = null;
2
+ export const throttleRAF = (fn) => {
3
+ const scheduleFunc = () => {
4
+ timerId = requestAnimationFrame(() => {
5
+ timerId = null;
6
+ fn();
7
+ });
8
+ };
9
+ if (timerId !== null) {
10
+ cancelAnimationFrame(timerId);
11
+ timerId = null;
12
+ }
13
+ scheduleFunc();
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL2NvbW1vbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxJQUFJLE9BQU8sR0FBa0IsSUFBSSxDQUFDO0FBRWxDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEVBQWMsRUFBRSxFQUFFO0lBQzFDLE1BQU0sWUFBWSxHQUFHLEdBQUcsRUFBRTtRQUN0QixPQUFPLEdBQUcscUJBQXFCLENBQUMsR0FBRyxFQUFFO1lBQ2pDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDZixFQUFFLEVBQUUsQ0FBQztRQUNULENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDO0lBQ0YsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ2xCLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlCLE9BQU8sR0FBRyxJQUFJLENBQUM7S0FDbEI7SUFDRCxZQUFZLEVBQUUsQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgdGltZXJJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbmV4cG9ydCBjb25zdCB0aHJvdHRsZVJBRiA9IChmbjogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IHNjaGVkdWxlRnVuYyA9ICgpID0+IHtcbiAgICAgICAgdGltZXJJZCA9IHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB0aW1lcklkID0gbnVsbDtcbiAgICAgICAgICAgIGZuKCk7XG4gICAgICAgIH0pO1xuICAgIH07XG4gICAgaWYgKHRpbWVySWQgIT09IG51bGwpIHtcbiAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUodGltZXJJZCk7XG4gICAgICAgIHRpbWVySWQgPSBudWxsO1xuICAgIH1cbiAgICBzY2hlZHVsZUZ1bmMoKTtcbn07XG4iXX0=
@@ -3,8 +3,8 @@ export function getRectangleByElements(board, elements, recursion) {
3
3
  const boundaryBox = {
4
4
  left: Number.MAX_VALUE,
5
5
  top: Number.MAX_VALUE,
6
- right: Number.MIN_VALUE,
7
- bottom: Number.MIN_VALUE
6
+ right: Number.NEGATIVE_INFINITY,
7
+ bottom: Number.NEGATIVE_INFINITY
8
8
  };
9
9
  const calcRectangleClient = (node) => {
10
10
  const nodeRectangle = board.getRectangle(node);
@@ -33,4 +33,4 @@ export function getRectangleByElements(board, elements, recursion) {
33
33
  export function getBoardRectangle(board) {
34
34
  return getRectangleByElements(board, board.children, true);
35
35
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy91dGlscy9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBaUIsRUFBRSxRQUF3QixFQUFFLFNBQWtCO0lBQ2xHLE1BQU0sV0FBVyxHQUFHO1FBQ2hCLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUztRQUN0QixHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxTQUFTO1FBQ3ZCLE1BQU0sRUFBRSxNQUFNLENBQUMsU0FBUztLQUMzQixDQUFDO0lBRUYsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQWtCLEVBQUUsRUFBRTtRQUMvQyxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQy9DLElBQUksYUFBYSxFQUFFO1lBQ2YsV0FBVyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9ELFdBQVcsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM3RCxXQUFXLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RixXQUFXLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM3RjtJQUNMLENBQUMsQ0FBQztJQUVGLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDdkIsSUFBSSxTQUFTLEVBQUU7WUFDWCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ25FO2FBQU07WUFDSCxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNoQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTztRQUNILENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSTtRQUNuQixDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQUc7UUFDbEIsS0FBSyxFQUFFLFdBQVcsQ0FBQyxLQUFLLEdBQUcsV0FBVyxDQUFDLElBQUk7UUFDM0MsTUFBTSxFQUFFLFdBQVcsQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLEdBQUc7S0FDL0MsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBaUI7SUFDL0MsT0FBTyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUMvRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGRlcHRoRmlyc3RSZWN1cnNpb24gfSBmcm9tICcuL3RyZWUnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLCByZWN1cnNpb246IGJvb2xlYW4pOiBSZWN0YW5nbGVDbGllbnQge1xuICAgIGNvbnN0IGJvdW5kYXJ5Qm94ID0ge1xuICAgICAgICBsZWZ0OiBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICB0b3A6IE51bWJlci5NQVhfVkFMVUUsXG4gICAgICAgIHJpZ2h0OiBOdW1iZXIuTUlOX1ZBTFVFLFxuICAgICAgICBib3R0b206IE51bWJlci5NSU5fVkFMVUVcbiAgICB9O1xuXG4gICAgY29uc3QgY2FsY1JlY3RhbmdsZUNsaWVudCA9IChub2RlOiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3Qgbm9kZVJlY3RhbmdsZSA9IGJvYXJkLmdldFJlY3RhbmdsZShub2RlKTtcbiAgICAgICAgaWYgKG5vZGVSZWN0YW5nbGUpIHtcbiAgICAgICAgICAgIGJvdW5kYXJ5Qm94LmxlZnQgPSBNYXRoLm1pbihib3VuZGFyeUJveC5sZWZ0LCBub2RlUmVjdGFuZ2xlLngpO1xuICAgICAgICAgICAgYm91bmRhcnlCb3gudG9wID0gTWF0aC5taW4oYm91bmRhcnlCb3gudG9wLCBub2RlUmVjdGFuZ2xlLnkpO1xuICAgICAgICAgICAgYm91bmRhcnlCb3gucmlnaHQgPSBNYXRoLm1heChib3VuZGFyeUJveC5yaWdodCwgbm9kZVJlY3RhbmdsZS54ICsgbm9kZVJlY3RhbmdsZS53aWR0aCk7XG4gICAgICAgICAgICBib3VuZGFyeUJveC5ib3R0b20gPSBNYXRoLm1heChib3VuZGFyeUJveC5ib3R0b20sIG5vZGVSZWN0YW5nbGUueSArIG5vZGVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBlbGVtZW50cy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICBpZiAocmVjdXJzaW9uKSB7XG4gICAgICAgICAgICBkZXB0aEZpcnN0UmVjdXJzaW9uKGVsZW1lbnQsIG5vZGUgPT4gY2FsY1JlY3RhbmdsZUNsaWVudChub2RlKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYWxjUmVjdGFuZ2xlQ2xpZW50KGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogYm91bmRhcnlCb3gubGVmdCxcbiAgICAgICAgeTogYm91bmRhcnlCb3gudG9wLFxuICAgICAgICB3aWR0aDogYm91bmRhcnlCb3gucmlnaHQgLSBib3VuZGFyeUJveC5sZWZ0LFxuICAgICAgICBoZWlnaHQ6IGJvdW5kYXJ5Qm94LmJvdHRvbSAtIGJvdW5kYXJ5Qm94LnRvcFxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb2FyZFJlY3RhbmdsZShib2FyZDogUGxhaXRCb2FyZCk6IFJlY3RhbmdsZUNsaWVudCB7XG4gICAgcmV0dXJuIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGJvYXJkLmNoaWxkcmVuLCB0cnVlKTtcbn1cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy91dGlscy9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsS0FBaUIsRUFBRSxRQUF3QixFQUFFLFNBQWtCO0lBQ2xHLE1BQU0sV0FBVyxHQUFHO1FBQ2hCLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUztRQUN0QixHQUFHLEVBQUUsTUFBTSxDQUFDLFNBQVM7UUFDckIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7UUFDL0IsTUFBTSxFQUFFLE1BQU0sQ0FBQyxpQkFBaUI7S0FDbkMsQ0FBQztJQUVGLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxJQUFrQixFQUFFLEVBQUU7UUFDL0MsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxJQUFJLGFBQWEsRUFBRTtZQUNmLFdBQVcsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRCxXQUFXLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDN0QsV0FBVyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkYsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0Y7SUFDTCxDQUFDLENBQUM7SUFFRixRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3ZCLElBQUksU0FBUyxFQUFFO1lBQ1gsbUJBQW1CLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNuRTthQUFNO1lBQ0gsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU87UUFDSCxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFDbkIsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxHQUFHO1FBQ2xCLEtBQUssRUFBRSxXQUFXLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJO1FBQzNDLE1BQU0sRUFBRSxXQUFXLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQyxHQUFHO0tBQy9DLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWlCO0lBQy9DLE9BQU8sc0JBQXNCLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBkZXB0aEZpcnN0UmVjdXJzaW9uIH0gZnJvbSAnLi90cmVlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgcmVjdXJzaW9uOiBib29sZWFuKTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICBjb25zdCBib3VuZGFyeUJveCA9IHtcbiAgICAgICAgbGVmdDogTnVtYmVyLk1BWF9WQUxVRSxcbiAgICAgICAgdG9wOiBOdW1iZXIuTUFYX1ZBTFVFLFxuICAgICAgICByaWdodDogTnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFxuICAgICAgICBib3R0b206IE51bWJlci5ORUdBVElWRV9JTkZJTklUWVxuICAgIH07XG5cbiAgICBjb25zdCBjYWxjUmVjdGFuZ2xlQ2xpZW50ID0gKG5vZGU6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgICAgICBjb25zdCBub2RlUmVjdGFuZ2xlID0gYm9hcmQuZ2V0UmVjdGFuZ2xlKG5vZGUpO1xuICAgICAgICBpZiAobm9kZVJlY3RhbmdsZSkge1xuICAgICAgICAgICAgYm91bmRhcnlCb3gubGVmdCA9IE1hdGgubWluKGJvdW5kYXJ5Qm94LmxlZnQsIG5vZGVSZWN0YW5nbGUueCk7XG4gICAgICAgICAgICBib3VuZGFyeUJveC50b3AgPSBNYXRoLm1pbihib3VuZGFyeUJveC50b3AsIG5vZGVSZWN0YW5nbGUueSk7XG4gICAgICAgICAgICBib3VuZGFyeUJveC5yaWdodCA9IE1hdGgubWF4KGJvdW5kYXJ5Qm94LnJpZ2h0LCBub2RlUmVjdGFuZ2xlLnggKyBub2RlUmVjdGFuZ2xlLndpZHRoKTtcbiAgICAgICAgICAgIGJvdW5kYXJ5Qm94LmJvdHRvbSA9IE1hdGgubWF4KGJvdW5kYXJ5Qm94LmJvdHRvbSwgbm9kZVJlY3RhbmdsZS55ICsgbm9kZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIGlmIChyZWN1cnNpb24pIHtcbiAgICAgICAgICAgIGRlcHRoRmlyc3RSZWN1cnNpb24oZWxlbWVudCwgbm9kZSA9PiBjYWxjUmVjdGFuZ2xlQ2xpZW50KG5vZGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNhbGNSZWN0YW5nbGVDbGllbnQoZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiBib3VuZGFyeUJveC5sZWZ0LFxuICAgICAgICB5OiBib3VuZGFyeUJveC50b3AsXG4gICAgICAgIHdpZHRoOiBib3VuZGFyeUJveC5yaWdodCAtIGJvdW5kYXJ5Qm94LmxlZnQsXG4gICAgICAgIGhlaWdodDogYm91bmRhcnlCb3guYm90dG9tIC0gYm91bmRhcnlCb3gudG9wXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJvYXJkUmVjdGFuZ2xlKGJvYXJkOiBQbGFpdEJvYXJkKTogUmVjdGFuZ2xlQ2xpZW50IHtcbiAgICByZXR1cm4gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xufVxuIl19
@@ -1,4 +1,17 @@
1
1
  export function isNullOrUndefined(value) {
2
2
  return value === null || value === undefined;
3
3
  }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVTtJQUN4QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbE9yVW5kZWZpbmVkKHZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cbiJdfQ==
4
+ /**
5
+ * 规范 point
6
+ * @param point
7
+ * @returns point
8
+ */
9
+ export function normalizePoint(point) {
10
+ return Array.isArray(point)
11
+ ? {
12
+ x: point[0],
13
+ y: point[1]
14
+ }
15
+ : point;
16
+ }
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsaUJBQWlCLENBQUMsS0FBVTtJQUN4QyxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsQ0FBQztBQUNqRCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsS0FBZTtJQUMxQyxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsQ0FBQztZQUNJLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDZDtRQUNILENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBpc051bGxPclVuZGVmaW5lZCh2YWx1ZTogYW55KSB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICog6KeE6IyDIHBvaW50XG4gKiBAcGFyYW0gcG9pbnRcbiAqIEByZXR1cm5zIHBvaW50XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBub3JtYWxpemVQb2ludChwb2ludDogbnVtYmVyW10pIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheShwb2ludClcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAgIHg6IHBvaW50WzBdLFxuICAgICAgICAgICAgICB5OiBwb2ludFsxXVxuICAgICAgICAgIH1cbiAgICAgICAgOiBwb2ludDtcbn1cbiJdfQ==
@@ -6,11 +6,13 @@ export * from './history';
6
6
  export * from './hotkeys';
7
7
  export * from './id-creator';
8
8
  export * from './math';
9
- export * from './matrix';
10
9
  export * from './weak-maps';
11
10
  export * from './selected-element';
12
11
  export * from './draw/rectangle';
13
12
  export * from './draw/arrow';
14
13
  export * from './tree';
15
14
  export * from './element';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9ib2FyZCc7XG5leHBvcnQgKiBmcm9tICcuL2RvbSc7XG5leHBvcnQgKiBmcm9tICcuL2Vudmlyb25tZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGlzdG9yeSc7XG5leHBvcnQgKiBmcm9tICcuL2hvdGtleXMnO1xuZXhwb3J0ICogZnJvbSAnLi9pZC1jcmVhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbWF0aCc7XG5leHBvcnQgKiBmcm9tICcuL21hdHJpeCc7XG5leHBvcnQgKiBmcm9tICcuL3dlYWstbWFwcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGVkLWVsZW1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kcmF3L3JlY3RhbmdsZSc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXcvYXJyb3cnO1xuZXhwb3J0ICogZnJvbSAnLi90cmVlJztcbmV4cG9ydCAqIGZyb20gJy4vZWxlbWVudCc7XG4iXX0=
15
+ export * from './viewport';
16
+ export * from './common';
17
+ export * from './moving-element';
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxPQUFPLENBQUM7QUFDdEIsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2JvYXJkJztcbmV4cG9ydCAqIGZyb20gJy4vZG9tJztcbmV4cG9ydCAqIGZyb20gJy4vZW52aXJvbm1lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oaXN0b3J5JztcbmV4cG9ydCAqIGZyb20gJy4vaG90a2V5cyc7XG5leHBvcnQgKiBmcm9tICcuL2lkLWNyZWF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tYXRoJztcbmV4cG9ydCAqIGZyb20gJy4vd2Vhay1tYXBzJztcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0ZWQtZWxlbWVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RyYXcvcmVjdGFuZ2xlJztcbmV4cG9ydCAqIGZyb20gJy4vZHJhdy9hcnJvdyc7XG5leHBvcnQgKiBmcm9tICcuL3RyZWUnO1xuZXhwb3J0ICogZnJvbSAnLi9lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vdmlld3BvcnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb3ZpbmctZWxlbWVudCc7XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { BOARD_TO_MOVING_ELEMENT } from './weak-maps';
2
+ export const getMovingElements = (board) => {
3
+ return BOARD_TO_MOVING_ELEMENT.get(board) || [];
4
+ };
5
+ export const addMovingElements = (board, elements) => {
6
+ const movingElements = getMovingElements(board);
7
+ cacheMovingElements(board, [...movingElements, ...elements]);
8
+ };
9
+ export const removeMovingElements = (board) => {
10
+ BOARD_TO_MOVING_ELEMENT.delete(board);
11
+ };
12
+ export const cacheMovingElements = (board, elements) => {
13
+ BOARD_TO_MOVING_ELEMENT.set(board, elements);
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92aW5nLWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdXRpbHMvbW92aW5nLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ25ELE9BQU8sdUJBQXVCLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUNwRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBd0IsRUFBRSxFQUFFO0lBQzdFLE1BQU0sY0FBYyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN0RCx1QkFBdUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXdCLEVBQUUsRUFBRTtJQUMvRSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2pELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQk9BUkRfVE9fTU9WSU5HX0VMRU1FTlQgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRNb3ZpbmdFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiBCT0FSRF9UT19NT1ZJTkdfRUxFTUVOVC5nZXQoYm9hcmQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZE1vdmluZ0VsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50czogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBtb3ZpbmdFbGVtZW50cyA9IGdldE1vdmluZ0VsZW1lbnRzKGJvYXJkKTtcbiAgICBjYWNoZU1vdmluZ0VsZW1lbnRzKGJvYXJkLCBbLi4ubW92aW5nRWxlbWVudHMsIC4uLmVsZW1lbnRzXSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlTW92aW5nRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBCT0FSRF9UT19NT1ZJTkdfRUxFTUVOVC5kZWxldGUoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGNhY2hlTW92aW5nRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIEJPQVJEX1RPX01PVklOR19FTEVNRU5ULnNldChib2FyZCwgZWxlbWVudHMpO1xufTtcbiJdfQ==
@@ -13,6 +13,19 @@ export const calcElementIntersectionSelection = (board) => {
13
13
  });
14
14
  return selectedElements;
15
15
  };
16
+ export const isIntersectionElements = (board, elements, ranges) => {
17
+ let isIntersectionElements = false;
18
+ if (elements.length) {
19
+ elements.map(item => {
20
+ if (!isIntersectionElements) {
21
+ isIntersectionElements = ranges.some(range => {
22
+ return board.isIntersectionSelection(item, range);
23
+ });
24
+ }
25
+ });
26
+ }
27
+ return isIntersectionElements;
28
+ };
16
29
  export const cacheSelectedElements = (board, selectedElements) => {
17
30
  BOARD_TO_SELECTED_ELEMENT.set(board, selectedElements);
18
31
  };
@@ -32,4 +45,4 @@ export const isSelectedElement = (board, element) => {
32
45
  const selectedElements = getSelectedElements(board);
33
46
  return !!selectedElements.find(value => value === element);
34
47
  };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy91dGlscy9zZWxlY3RlZC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXhELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztJQUM1QyxtQkFBbUIsQ0FBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDekMsSUFDSSxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUM1QixLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsRUFDSjtZQUNFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsZ0JBQWdDLEVBQUUsRUFBRTtJQUN6Rix5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDM0QsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDckQsT0FBTyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDM0UsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDakUsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUM5RSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE1BQU0sbUJBQW1CLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2hGLHFCQUFxQixDQUFDLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFxQixFQUFFLEVBQUU7SUFDMUUsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7QUFDL0QsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Tm9kZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvbm9kZSc7XG5pbXBvcnQgeyBkZXB0aEZpcnN0UmVjdXJzaW9uIH0gZnJvbSAnLi90cmVlJztcbmltcG9ydCB7IEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQgfSBmcm9tICcuL3dlYWstbWFwcyc7XG5cbmV4cG9ydCBjb25zdCBjYWxjRWxlbWVudEludGVyc2VjdGlvblNlbGVjdGlvbiA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdID0gW107XG4gICAgZGVwdGhGaXJzdFJlY3Vyc2lvbjxQbGFpdE5vZGU+KGJvYXJkLCBub2RlID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgUGxhaXRFbGVtZW50LmlzRWxlbWVudChub2RlKSAmJlxuICAgICAgICAgICAgYm9hcmQuc2VsZWN0aW9uPy5yYW5nZXMuc29tZShyYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJvYXJkLmlzSW50ZXJzZWN0aW9uU2VsZWN0aW9uKG5vZGUsIHJhbmdlKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2VsZWN0ZWRFbGVtZW50cy5wdXNoKG5vZGUpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRWxlbWVudHM7XG59O1xuXG5leHBvcnQgY29uc3QgY2FjaGVTZWxlY3RlZEVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQuc2V0KGJvYXJkLCBzZWxlY3RlZEVsZW1lbnRzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZEVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgcmV0dXJuIEJPQVJEX1RPX1NFTEVDVEVEX0VMRU1FTlQuZ2V0KGJvYXJkKSB8fCBbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBhZGRTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIFsuLi5zZWxlY3RlZEVsZW1lbnRzLCBlbGVtZW50XSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgY29uc3QgbmV3c2VsZWN0ZWRFbGVtZW50cyA9IHNlbGVjdGVkRWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IHZhbHVlICE9PSBlbGVtZW50KTtcbiAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIG5ld3NlbGVjdGVkRWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzU2VsZWN0ZWRFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgcmV0dXJuICEhc2VsZWN0ZWRFbGVtZW50cy5maW5kKHZhbHVlID0+IHZhbHVlID09PSBlbGVtZW50KTtcbn07XG4iXX0=
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy91dGlscy9zZWxlY3RlZC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3hELE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ2xFLE1BQU0sZ0JBQWdCLEdBQW1CLEVBQUUsQ0FBQztJQUM1QyxtQkFBbUIsQ0FBWSxLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUU7UUFDekMsSUFDSSxZQUFZLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztZQUM1QixLQUFLLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ2pDLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsRUFDSjtZQUNFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMvQjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsUUFBd0IsRUFBRSxNQUFlLEVBQUUsRUFBRTtJQUNuRyxJQUFJLHNCQUFzQixHQUFHLEtBQUssQ0FBQztJQUNuQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7UUFDakIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsc0JBQXNCLEVBQUU7Z0JBQ3pCLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3pDLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDdEQsQ0FBQyxDQUFDLENBQUM7YUFDTjtRQUNMLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFDRCxPQUFPLHNCQUFzQixDQUFDO0FBQ2xDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLENBQUMsS0FBaUIsRUFBRSxnQkFBZ0MsRUFBRSxFQUFFO0lBQ3pGLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUNyRCxPQUFPLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUMzRSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELHFCQUFxQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztBQUNqRSxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBcUIsRUFBRSxFQUFFO0lBQzlFLE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEQsTUFBTSxtQkFBbUIsR0FBRyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7SUFDaEYscUJBQXFCLENBQUMsS0FBSyxFQUFFLG1CQUFtQixDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQXFCLEVBQUUsRUFBRTtJQUMxRSxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BELE9BQU8sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQztBQUMvRCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ib2FyZCc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXROb2RlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9ub2RlJztcbmltcG9ydCB7IGRlcHRoRmlyc3RSZWN1cnNpb24gfSBmcm9tICcuL3RyZWUnO1xuaW1wb3J0IHsgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVCB9IGZyb20gJy4vd2Vhay1tYXBzJztcbmltcG9ydCB7IFJhbmdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9zZWxlY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgY2FsY0VsZW1lbnRJbnRlcnNlY3Rpb25TZWxlY3Rpb24gPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSA9IFtdO1xuICAgIGRlcHRoRmlyc3RSZWN1cnNpb248UGxhaXROb2RlPihib2FyZCwgbm9kZSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIFBsYWl0RWxlbWVudC5pc0VsZW1lbnQobm9kZSkgJiZcbiAgICAgICAgICAgIGJvYXJkLnNlbGVjdGlvbj8ucmFuZ2VzLnNvbWUocmFuZ2UgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBib2FyZC5pc0ludGVyc2VjdGlvblNlbGVjdGlvbihub2RlLCByYW5nZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHNlbGVjdGVkRWxlbWVudHMucHVzaChub2RlKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJzZWN0aW9uRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgcmFuZ2VzOiBSYW5nZVtdKSA9PiB7XG4gICAgbGV0IGlzSW50ZXJzZWN0aW9uRWxlbWVudHMgPSBmYWxzZTtcbiAgICBpZiAoZWxlbWVudHMubGVuZ3RoKSB7XG4gICAgICAgIGVsZW1lbnRzLm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIGlmICghaXNJbnRlcnNlY3Rpb25FbGVtZW50cykge1xuICAgICAgICAgICAgICAgIGlzSW50ZXJzZWN0aW9uRWxlbWVudHMgPSByYW5nZXMuc29tZShyYW5nZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBib2FyZC5pc0ludGVyc2VjdGlvblNlbGVjdGlvbihpdGVtLCByYW5nZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNJbnRlcnNlY3Rpb25FbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBjYWNoZVNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGVkRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5zZXQoYm9hcmQsIHNlbGVjdGVkRWxlbWVudHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVC5nZXQoYm9hcmQpIHx8IFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFNlbGVjdGVkRWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgWy4uLnNlbGVjdGVkRWxlbWVudHMsIGVsZW1lbnRdKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZW1vdmVTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICBjb25zdCBuZXdzZWxlY3RlZEVsZW1lbnRzID0gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gdmFsdWUgIT09IGVsZW1lbnQpO1xuICAgIGNhY2hlU2VsZWN0ZWRFbGVtZW50cyhib2FyZCwgbmV3c2VsZWN0ZWRFbGVtZW50cyk7XG59O1xuXG5leHBvcnQgY29uc3QgaXNTZWxlY3RlZEVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICByZXR1cm4gISFzZWxlY3RlZEVsZW1lbnRzLmZpbmQodmFsdWUgPT4gdmFsdWUgPT09IGVsZW1lbnQpO1xufTtcbiJdfQ==
@@ -0,0 +1,170 @@
1
+ import { SCROLL_BAR_WIDTH } from '../constants';
2
+ import { PlaitBoard } from '../interfaces';
3
+ import { Transforms } from '../transforms';
4
+ import { toPoint } from './dom';
5
+ import { getRectangleByElements } from './element';
6
+ import { distanceBetweenPointAndRectangle } from './math';
7
+ import { BOARD_TO_MOVING_POINT } from './weak-maps';
8
+ export function getViewportContainerRect(board) {
9
+ const { hideScrollbar } = board.options;
10
+ const scrollBarWidth = hideScrollbar ? SCROLL_BAR_WIDTH : 0;
11
+ const viewportRect = PlaitBoard.getBoardNativeElement(board).getBoundingClientRect();
12
+ return {
13
+ width: viewportRect.width + scrollBarWidth,
14
+ height: viewportRect.height + scrollBarWidth
15
+ };
16
+ }
17
+ export function getElementHostBBox(board, zoom) {
18
+ const childrenRect = getRectangleByElements(board, board.children, true);
19
+ const viewportContainerRect = getViewportContainerRect(board);
20
+ const containerWidth = viewportContainerRect.width / zoom;
21
+ const containerHeight = viewportContainerRect.height / zoom;
22
+ let left;
23
+ let right;
24
+ let top;
25
+ let bottom;
26
+ if (childrenRect.width < containerWidth) {
27
+ const centerX = Math.ceil(childrenRect.x + childrenRect.width / 2);
28
+ const halfContainerWidth = Math.ceil(containerWidth / 2);
29
+ left = centerX - halfContainerWidth;
30
+ right = centerX + halfContainerWidth;
31
+ }
32
+ else {
33
+ left = childrenRect.x;
34
+ right = childrenRect.x + childrenRect.width;
35
+ }
36
+ if (childrenRect.height < containerHeight) {
37
+ const centerY = Math.ceil(childrenRect.y + childrenRect.height / 2);
38
+ const halfContainerHeight = Math.ceil(containerHeight / 2);
39
+ top = centerY - halfContainerHeight;
40
+ bottom = centerY + halfContainerHeight;
41
+ }
42
+ else {
43
+ top = childrenRect.y;
44
+ bottom = childrenRect.y + childrenRect.height;
45
+ }
46
+ return {
47
+ left,
48
+ right,
49
+ top,
50
+ bottom
51
+ };
52
+ }
53
+ /**
54
+ * 验证缩放比是否符合限制,如果超出限制,则返回合适的缩放比
55
+ * @param zoom 缩放比
56
+ * @param minZoom 最小缩放比
57
+ * @param maxZoom 最大缩放比
58
+ * @returns 正确的缩放比
59
+ */
60
+ export function clampZoomLevel(zoom, minZoom = 0.2, maxZoom = 4) {
61
+ return zoom < minZoom ? minZoom : zoom > maxZoom ? maxZoom : zoom;
62
+ }
63
+ export function getViewBox(board, zoom) {
64
+ const { hideScrollbar } = board.options;
65
+ const scrollBarWidth = hideScrollbar ? SCROLL_BAR_WIDTH : 0;
66
+ const viewportContainerRect = getViewportContainerRect(board);
67
+ const elementHostBBox = getElementHostBBox(board, zoom);
68
+ const horizontalPadding = viewportContainerRect.width / 2;
69
+ const verticalPadding = viewportContainerRect.height / 2;
70
+ const viewportWidth = (elementHostBBox.right - elementHostBBox.left) * zoom + 2 * horizontalPadding + scrollBarWidth;
71
+ const viewportHeight = (elementHostBBox.bottom - elementHostBBox.top) * zoom + 2 * verticalPadding + scrollBarWidth;
72
+ const viewBox = [
73
+ elementHostBBox.left - horizontalPadding / zoom,
74
+ elementHostBBox.top - verticalPadding / zoom,
75
+ viewportWidth / zoom,
76
+ viewportHeight / zoom
77
+ ];
78
+ return viewBox;
79
+ }
80
+ export function setSVGViewBox(board, viewBox) {
81
+ const zoom = board.viewport.zoom;
82
+ const hostElement = PlaitBoard.getHost(board);
83
+ hostElement.style.display = 'block';
84
+ hostElement.style.width = `${viewBox[2] * zoom}px`;
85
+ hostElement.style.height = `${viewBox[3] * zoom}px`;
86
+ if (viewBox && viewBox[2] > 0 && viewBox[3] > 0) {
87
+ hostElement.setAttribute('viewBox', viewBox.join(' '));
88
+ }
89
+ }
90
+ export function updateViewportContainerOffset(board, origination) {
91
+ origination = origination ?? board.viewport.origination;
92
+ if (!origination)
93
+ return;
94
+ const { zoom } = board.viewport;
95
+ const viewBox = getViewBox(board, zoom);
96
+ const scrollLeft = (origination[0] - viewBox[0]) * zoom;
97
+ const scrollTop = (origination[1] - viewBox[1]) * zoom;
98
+ setViewportContainerScroll(board, scrollLeft, scrollTop);
99
+ }
100
+ export function setViewportContainerScroll(board, left, top) {
101
+ const viewportContainer = PlaitBoard.getViewportContainer(board);
102
+ viewportContainer.scrollLeft = Math.floor(left);
103
+ viewportContainer.scrollTop = Math.floor(top);
104
+ }
105
+ export function initializeViewport(board) {
106
+ const zoom = board.viewport.zoom;
107
+ const viewBox = getViewBox(board, zoom);
108
+ setSVGViewBox(board, viewBox);
109
+ }
110
+ export function initializeViewportContainerOffset(board) {
111
+ if (!board.viewport?.origination) {
112
+ const zoom = board.viewport.zoom;
113
+ const viewportContainerBox = PlaitBoard.getBoardNativeElement(board).getBoundingClientRect();
114
+ const viewBox = getViewBox(board, zoom);
115
+ const centerX = viewBox[0] + viewBox[2] / 2;
116
+ const centerY = viewBox[1] + viewBox[3] / 2;
117
+ const origination = [centerX - viewportContainerBox.width / 2 / zoom, centerY - viewportContainerBox.height / 2 / zoom];
118
+ updateViewportContainerOffset(board, origination);
119
+ return;
120
+ }
121
+ updateViewportContainerOffset(board);
122
+ }
123
+ export function setViewport(board, origination, zoom) {
124
+ zoom = zoom ?? board.viewport.zoom;
125
+ Transforms.setViewport(board, {
126
+ ...board.viewport,
127
+ zoom,
128
+ origination
129
+ });
130
+ }
131
+ export function changeZoom(board, newZoom, isCenter = true) {
132
+ newZoom = clampZoomLevel(newZoom);
133
+ const mousePoint = BOARD_TO_MOVING_POINT.get(board);
134
+ const nativeElement = PlaitBoard.getBoardNativeElement(board);
135
+ const rect = nativeElement.getBoundingClientRect();
136
+ const viewportContainerRect = getViewportContainerRect(board);
137
+ let focusPoint = [viewportContainerRect.width / 2, viewportContainerRect.height / 2];
138
+ if (!isCenter && mousePoint && distanceBetweenPointAndRectangle(mousePoint[0], mousePoint[1], rect) === 0) {
139
+ focusPoint = toPoint(mousePoint[0], mousePoint[1], nativeElement);
140
+ }
141
+ const { origination, zoom } = board.viewport;
142
+ const centerX = origination[0] + focusPoint[0] / zoom;
143
+ const centerY = origination[1] + focusPoint[1] / zoom;
144
+ const viewBox = getViewBox(board, newZoom);
145
+ const newOrigination = [centerX - focusPoint[0] / newZoom, centerY - focusPoint[1] / newZoom];
146
+ setSVGViewBox(board, viewBox);
147
+ setViewport(board, newOrigination, newZoom);
148
+ }
149
+ export function fitViewport(board) {
150
+ const viewportContainerRect = getViewportContainerRect(board);
151
+ const rootGroupBox = getRectangleByElements(board, board.children, true);
152
+ const zoom = board.viewport.zoom;
153
+ const autoFitPadding = 8;
154
+ const viewportWidth = viewportContainerRect.width - 2 * autoFitPadding;
155
+ const viewportHeight = viewportContainerRect.height - 2 * autoFitPadding;
156
+ let newZoom = zoom;
157
+ if (viewportWidth < rootGroupBox.width || viewportHeight < rootGroupBox.height) {
158
+ newZoom = Math.min(viewportWidth / rootGroupBox.width, viewportHeight / rootGroupBox.height);
159
+ }
160
+ else {
161
+ newZoom = 1;
162
+ }
163
+ const viewBox = getViewBox(board, newZoom);
164
+ const centerX = viewBox[0] + viewBox[2] / 2;
165
+ const centerY = viewBox[1] + viewBox[3] / 2;
166
+ const newOrigination = [centerX - viewportContainerRect.width / 2 / newZoom, centerY - viewportContainerRect.height / 2 / newZoom];
167
+ setViewport(board, newOrigination, newZoom);
168
+ }
169
+ export function scrollToRectangle(board, client) { }
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld3BvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvdXRpbHMvdmlld3BvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQW1CLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNoQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzFELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsS0FBaUI7SUFDdEQsTUFBTSxFQUFFLGFBQWEsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUM7SUFDeEMsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBRXJGLE9BQU87UUFDSCxLQUFLLEVBQUUsWUFBWSxDQUFDLEtBQUssR0FBRyxjQUFjO1FBQzFDLE1BQU0sRUFBRSxZQUFZLENBQUMsTUFBTSxHQUFHLGNBQWM7S0FDL0MsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBaUIsRUFBRSxJQUFZO0lBQzlELE1BQU0sWUFBWSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0lB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Q0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxNQUFNLGNBQWMsR0FBRyxDQUFDLE9BQU8sR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLE9BQU8sRUFBRSxPQUFPLEdBQUcscUJBQXFCLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUNuSSxXQUFXLENBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWlCLEVBQUUsTUFBdUIsSUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU0NST0xMX0JBUl9XSURUSCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRyYW5zZm9ybXMgfSBmcm9tICcuLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IHRvUG9pbnQgfSBmcm9tICcuL2RvbSc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzIH0gZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCB7IGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUmVjdGFuZ2xlIH0gZnJvbSAnLi9tYXRoJztcbmltcG9ydCB7IEJPQVJEX1RPX01PVklOR19QT0lOVCB9IGZyb20gJy4vd2Vhay1tYXBzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdwb3J0Q29udGFpbmVyUmVjdChib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIGNvbnN0IHsgaGlkZVNjcm9sbGJhciB9ID0gYm9hcmQub3B0aW9ucztcbiAgICBjb25zdCBzY3JvbGxCYXJXaWR0aCA9IGhpZGVTY3JvbGxiYXIgPyBTQ1JPTExfQkFSX1dJRFRIIDogMDtcbiAgICBjb25zdCB2aWV3cG9ydFJlY3QgPSBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogdmlld3BvcnRSZWN0LndpZHRoICsgc2Nyb2xsQmFyV2lkdGgsXG4gICAgICAgIGhlaWdodDogdmlld3BvcnRSZWN0LmhlaWdodCArIHNjcm9sbEJhcldpZHRoXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEVsZW1lbnRIb3N0QkJveChib2FyZDogUGxhaXRCb2FyZCwgem9vbTogbnVtYmVyKSB7XG4gICAgY29uc3QgY2hpbGRyZW5SZWN0ID0gZ2V0UmVjdGFuZ2xlQnlFbGVtZW50cyhib2FyZCwgYm9hcmQuY2hpbGRyZW4sIHRydWUpO1xuICAgIGNvbnN0IHZpZXdwb3J0Q29udGFpbmVyUmVjdCA9IGdldFZpZXdwb3J0Q29udGFpbmVyUmVjdChib2FyZCk7XG4gICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB2aWV3cG9ydENvbnRhaW5lclJlY3Qud2lkdGggLyB6b29tO1xuICAgIGNvbnN0IGNvbnRhaW5lckhlaWdodCA9IHZpZXdwb3J0Q29udGFpbmVyUmVjdC5oZWlnaHQgLyB6b29tO1xuICAgIGxldCBsZWZ0OiBudW1iZXI7XG4gICAgbGV0IHJpZ2h0OiBudW1iZXI7XG4gICAgbGV0IHRvcDogbnVtYmVyO1xuICAgIGxldCBib3R0b206IG51bWJlcjtcblxuICAgIGlmIChjaGlsZHJlblJlY3Qud2lkdGggPCBjb250YWluZXJXaWR0aCkge1xuICAgICAgICBjb25zdCBjZW50ZXJYID0gTWF0aC5jZWlsKGNoaWxkcmVuUmVjdC54ICsgY2hpbGRyZW5SZWN0LndpZHRoIC8gMik7XG4gICAgICAgIGNvbnN0IGhhbGZDb250YWluZXJXaWR0aCA9IE1hdGguY2VpbChjb250YWluZXJXaWR0aCAvIDIpO1xuICAgICAgICBsZWZ0ID0gY2VudGVyWCAtIGhhbGZDb250YWluZXJXaWR0aDtcbiAgICAgICAgcmlnaHQgPSBjZW50ZXJYICsgaGFsZkNvbnRhaW5lcldpZHRoO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGxlZnQgPSBjaGlsZHJlblJlY3QueDtcbiAgICAgICAgcmlnaHQgPSBjaGlsZHJlblJlY3QueCArIGNoaWxkcmVuUmVjdC53aWR0aDtcbiAgICB9XG4gICAgaWYgKGNoaWxkcmVuUmVjdC5oZWlnaHQgPCBjb250YWluZXJIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgY2VudGVyWSA9IE1hdGguY2VpbChjaGlsZHJlblJlY3QueSArIGNoaWxkcmVuUmVjdC5oZWlnaHQgLyAyKTtcbiAgICAgICAgY29uc3QgaGFsZkNvbnRhaW5lckhlaWdodCA9IE1hdGguY2VpbChjb250YWluZXJIZWlnaHQgLyAyKTtcbiAgICAgICAgdG9wID0gY2VudGVyWSAtIGhhbGZDb250YWluZXJIZWlnaHQ7XG4gICAgICAgIGJvdHRvbSA9IGNlbnRlclkgKyBoYWxmQ29udGFpbmVySGVpZ2h0O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRvcCA9IGNoaWxkcmVuUmVjdC55O1xuICAgICAgICBib3R0b20gPSBjaGlsZHJlblJlY3QueSArIGNoaWxkcmVuUmVjdC5oZWlnaHQ7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIGxlZnQsXG4gICAgICAgIHJpZ2h0LFxuICAgICAgICB0b3AsXG4gICAgICAgIGJvdHRvbVxuICAgIH07XG59XG5cbi8qKlxuICog6aqM6K+B57yp5pS+5q+U5piv5ZCm56ym5ZCI6ZmQ5Yi277yM5aaC5p6c6LaF5Ye66ZmQ5Yi277yM5YiZ6L+U5Zue5ZCI6YCC55qE57yp5pS+5q+UXG4gKiBAcGFyYW0gem9vbSDnvKnmlL7mr5RcbiAqIEBwYXJhbSBtaW5ab29tIOacgOWwj+e8qeaUvuavlFxuICogQHBhcmFtIG1heFpvb20g5pyA5aSn57yp5pS+5q+UXG4gKiBAcmV0dXJucyDmraPnoa7nmoTnvKnmlL7mr5RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsYW1wWm9vbUxldmVsKHpvb206IG51bWJlciwgbWluWm9vbSA9IDAuMiwgbWF4Wm9vbSA9IDQpIHtcbiAgICByZXR1cm4gem9vbSA8IG1pblpvb20gPyBtaW5ab29tIDogem9vbSA+IG1heFpvb20gPyBtYXhab29tIDogem9vbTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZpZXdCb3goYm9hcmQ6IFBsYWl0Qm9hcmQsIHpvb206IG51bWJlcikge1xuICAgIGNvbnN0IHsgaGlkZVNjcm9sbGJhciB9ID0gYm9hcmQub3B0aW9ucztcbiAgICBjb25zdCBzY3JvbGxCYXJXaWR0aCA9IGhpZGVTY3JvbGxiYXIgPyBTQ1JPTExfQkFSX1dJRFRIIDogMDtcbiAgICBjb25zdCB2aWV3cG9ydENvbnRhaW5lclJlY3QgPSBnZXRWaWV3cG9ydENvbnRhaW5lclJlY3QoYm9hcmQpO1xuICAgIGNvbnN0IGVsZW1lbnRIb3N0QkJveCA9IGdldEVsZW1lbnRIb3N0QkJveChib2FyZCwgem9vbSk7XG4gICAgY29uc3QgaG9yaXpvbnRhbFBhZGRpbmcgPSB2aWV3cG9ydENvbnRhaW5lclJlY3Qud2lkdGggLyAyO1xuICAgIGNvbnN0IHZlcnRpY2FsUGFkZGluZyA9IHZpZXdwb3J0Q29udGFpbmVyUmVjdC5oZWlnaHQgLyAyO1xuICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSAoZWxlbWVudEhvc3RCQm94LnJpZ2h0IC0gZWxlbWVudEhvc3RCQm94LmxlZnQpICogem9vbSArIDIgKiBob3Jpem9udGFsUGFkZGluZyArIHNjcm9sbEJhcldpZHRoO1xuICAgIGNvbnN0IHZpZXdwb3J0SGVpZ2h0ID0gKGVsZW1lbnRIb3N0QkJveC5ib3R0b20gLSBlbGVtZW50SG9zdEJCb3gudG9wKSAqIHpvb20gKyAyICogdmVydGljYWxQYWRkaW5nICsgc2Nyb2xsQmFyV2lkdGg7XG4gICAgY29uc3Qgdmlld0JveCA9IFtcbiAgICAgICAgZWxlbWVudEhvc3RCQm94LmxlZnQgLSBob3Jpem9udGFsUGFkZGluZyAvIHpvb20sXG4gICAgICAgIGVsZW1lbnRIb3N0QkJveC50b3AgLSB2ZXJ0aWNhbFBhZGRpbmcgLyB6b29tLFxuICAgICAgICB2aWV3cG9ydFdpZHRoIC8gem9vbSxcbiAgICAgICAgdmlld3BvcnRIZWlnaHQgLyB6b29tXG4gICAgXTtcbiAgICByZXR1cm4gdmlld0JveDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFNWR1ZpZXdCb3goYm9hcmQ6IFBsYWl0Qm9hcmQsIHZpZXdCb3g6IG51bWJlcltdKSB7XG4gICAgY29uc3Qgem9vbSA9IGJvYXJkLnZpZXdwb3J0Lnpvb207XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpO1xuICAgIGhvc3RFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snO1xuICAgIGhvc3RFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7dmlld0JveFsyXSAqIHpvb219cHhgO1xuICAgIGhvc3RFbGVtZW50LnN0eWxlLmhlaWdodCA9IGAke3ZpZXdCb3hbM10gKiB6b29tfXB4YDtcblxuICAgIGlmICh2aWV3Qm94ICYmIHZpZXdCb3hbMl0gPiAwICYmIHZpZXdCb3hbM10gPiAwKSB7XG4gICAgICAgIGhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZSgndmlld0JveCcsIHZpZXdCb3guam9pbignICcpKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVWaWV3cG9ydENvbnRhaW5lck9mZnNldChib2FyZDogUGxhaXRCb2FyZCwgb3JpZ2luYXRpb24/OiBudW1iZXJbXSkge1xuICAgIG9yaWdpbmF0aW9uID0gb3JpZ2luYXRpb24gPz8gYm9hcmQudmlld3BvcnQub3JpZ2luYXRpb247XG4gICAgaWYgKCFvcmlnaW5hdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgeyB6b29tIH0gPSBib2FyZC52aWV3cG9ydDtcbiAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveChib2FyZCwgem9vbSk7XG4gICAgY29uc3Qgc2Nyb2xsTGVmdCA9IChvcmlnaW5hdGlvbiFbMF0gLSB2aWV3Qm94WzBdKSAqIHpvb207XG4gICAgY29uc3Qgc2Nyb2xsVG9wID0gKG9yaWdpbmF0aW9uIVsxXSAtIHZpZXdCb3hbMV0pICogem9vbTtcbiAgICBzZXRWaWV3cG9ydENvbnRhaW5lclNjcm9sbChib2FyZCwgc2Nyb2xsTGVmdCwgc2Nyb2xsVG9wKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFZpZXdwb3J0Q29udGFpbmVyU2Nyb2xsKGJvYXJkOiBQbGFpdEJvYXJkLCBsZWZ0OiBudW1iZXIsIHRvcDogbnVtYmVyKSB7XG4gICAgY29uc3Qgdmlld3BvcnRDb250YWluZXIgPSBQbGFpdEJvYXJkLmdldFZpZXdwb3J0Q29udGFpbmVyKGJvYXJkKTtcbiAgICB2aWV3cG9ydENvbnRhaW5lci5zY3JvbGxMZWZ0ID0gTWF0aC5mbG9vcihsZWZ0KTtcbiAgICB2aWV3cG9ydENvbnRhaW5lci5zY3JvbGxUb3AgPSBNYXRoLmZsb29yKHRvcCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplVmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBjb25zdCB6b29tID0gYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICBjb25zdCB2aWV3Qm94ID0gZ2V0Vmlld0JveChib2FyZCwgem9vbSk7XG4gICAgc2V0U1ZHVmlld0JveChib2FyZCwgdmlld0JveCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplVmlld3BvcnRDb250YWluZXJPZmZzZXQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBpZiAoIWJvYXJkLnZpZXdwb3J0Py5vcmlnaW5hdGlvbikge1xuICAgICAgICBjb25zdCB6b29tID0gYm9hcmQudmlld3BvcnQuem9vbTtcblxuICAgICAgICBjb25zdCB2aWV3cG9ydENvbnRhaW5lckJveCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmROYXRpdmVFbGVtZW50KGJvYXJkKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgY29uc3Qgdmlld0JveCA9IGdldFZpZXdCb3goYm9hcmQsIHpvb20pO1xuICAgICAgICBjb25zdCBjZW50ZXJYID0gdmlld0JveFswXSArIHZpZXdCb3hbMl0gLyAyO1xuICAgICAgICBjb25zdCBjZW50ZXJZID0gdmlld0JveFsxXSArIHZpZXdCb3hbM10gLyAyO1xuICAgICAgICBjb25zdCBvcmlnaW5hdGlvbiA9IFtjZW50ZXJYIC0gdmlld3BvcnRDb250YWluZXJCb3gud2lkdGggLyAyIC8gem9vbSwgY2VudGVyWSAtIHZpZXdwb3J0Q29udGFpbmVyQm94LmhlaWdodCAvIDIgLyB6b29tXTtcbiAgICAgICAgdXBkYXRlVmlld3BvcnRDb250YWluZXJPZmZzZXQoYm9hcmQsIG9yaWdpbmF0aW9uKTtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB1cGRhdGVWaWV3cG9ydENvbnRhaW5lck9mZnNldChib2FyZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRWaWV3cG9ydChib2FyZDogUGxhaXRCb2FyZCwgb3JpZ2luYXRpb246IG51bWJlcltdLCB6b29tPzogbnVtYmVyKSB7XG4gICAgem9vbSA9IHpvb20gPz8gYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICBUcmFuc2Zvcm1zLnNldFZpZXdwb3J0KGJvYXJkLCB7XG4gICAgICAgIC4uLmJvYXJkLnZpZXdwb3J0LFxuICAgICAgICB6b29tLFxuICAgICAgICBvcmlnaW5hdGlvblxuICAgIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2hhbmdlWm9vbShib2FyZDogUGxhaXRCb2FyZCwgbmV3Wm9vbTogbnVtYmVyLCBpc0NlbnRlciA9IHRydWUpIHtcbiAgICBuZXdab29tID0gY2xhbXBab29tTGV2ZWwobmV3Wm9vbSk7XG5cbiAgICBjb25zdCBtb3VzZVBvaW50ID0gQk9BUkRfVE9fTU9WSU5HX1BPSU5ULmdldChib2FyZCk7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IFBsYWl0Qm9hcmQuZ2V0Qm9hcmROYXRpdmVFbGVtZW50KGJvYXJkKTtcbiAgICBjb25zdCByZWN0ID0gbmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCB2aWV3cG9ydENvbnRhaW5lclJlY3QgPSBnZXRWaWV3cG9ydENvbnRhaW5lclJlY3QoYm9hcmQpO1xuICAgIGxldCBmb2N1c1BvaW50ID0gW3ZpZXdwb3J0Q29udGFpbmVyUmVjdC53aWR0aCAvIDIsIHZpZXdwb3J0Q29udGFpbmVyUmVjdC5oZWlnaHQgLyAyXTtcblxuICAgIGlmICghaXNDZW50ZXIgJiYgbW91c2VQb2ludCAmJiBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFJlY3RhbmdsZShtb3VzZVBvaW50WzBdLCBtb3VzZVBvaW50WzFdLCByZWN0KSA9PT0gMCkge1xuICAgICAgICBmb2N1c1BvaW50ID0gdG9Qb2ludChtb3VzZVBvaW50WzBdLCBtb3VzZVBvaW50WzFdLCAobmF0aXZlRWxlbWVudCBhcyB1bmtub3duKSBhcyBTVkdFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCB7IG9yaWdpbmF0aW9uLCB6b29tIH0gPSBib2FyZC52aWV3cG9ydDtcbiAgICBjb25zdCBjZW50ZXJYID0gb3JpZ2luYXRpb24hWzBdICsgZm9jdXNQb2ludFswXSAvIHpvb207XG4gICAgY29uc3QgY2VudGVyWSA9IG9yaWdpbmF0aW9uIVsxXSArIGZvY3VzUG9pbnRbMV0gLyB6b29tO1xuICAgIGNvbnN0IHZpZXdCb3ggPSBnZXRWaWV3Qm94KGJvYXJkLCBuZXdab29tKTtcbiAgICBjb25zdCBuZXdPcmlnaW5hdGlvbiA9IFtjZW50ZXJYIC0gZm9jdXNQb2ludFswXSAvIG5ld1pvb20sIGNlbnRlclkgLSBmb2N1c1BvaW50WzFdIC8gbmV3Wm9vbV07XG5cbiAgICBzZXRTVkdWaWV3Qm94KGJvYXJkLCB2aWV3Qm94KTtcbiAgICBzZXRWaWV3cG9ydChib2FyZCwgbmV3T3JpZ2luYXRpb24sIG5ld1pvb20pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZml0Vmlld3BvcnQoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICBjb25zdCB2aWV3cG9ydENvbnRhaW5lclJlY3QgPSBnZXRWaWV3cG9ydENvbnRhaW5lclJlY3QoYm9hcmQpO1xuICAgIGNvbnN0IHJvb3RHcm91cEJveCA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGJvYXJkLmNoaWxkcmVuLCB0cnVlKTtcbiAgICBjb25zdCB6b29tID0gYm9hcmQudmlld3BvcnQuem9vbTtcbiAgICBjb25zdCBhdXRvRml0UGFkZGluZyA9IDg7XG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aCA9IHZpZXdwb3J0Q29udGFpbmVyUmVjdC53aWR0aCAtIDIgKiBhdXRvRml0UGFkZGluZztcbiAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IHZpZXdwb3J0Q29udGFpbmVyUmVjdC5oZWlnaHQgLSAyICogYXV0b0ZpdFBhZGRpbmc7XG5cbiAgICBsZXQgbmV3Wm9vbSA9IHpvb207XG4gICAgaWYgKHZpZXdwb3J0V2lkdGggPCByb290R3JvdXBCb3gud2lkdGggfHwgdmlld3BvcnRIZWlnaHQgPCByb290R3JvdXBCb3guaGVpZ2h0KSB7XG4gICAgICAgIG5ld1pvb20gPSBNYXRoLm1pbih2aWV3cG9ydFdpZHRoIC8gcm9vdEdyb3VwQm94LndpZHRoLCB2aWV3cG9ydEhlaWdodCAvIHJvb3RHcm91cEJveC5oZWlnaHQpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG5ld1pvb20gPSAxO1xuICAgIH1cblxuICAgIGNvbnN0IHZpZXdCb3ggPSBnZXRWaWV3Qm94KGJvYXJkLCBuZXdab29tKTtcbiAgICBjb25zdCBjZW50ZXJYID0gdmlld0JveFswXSArIHZpZXdCb3hbMl0gLyAyO1xuICAgIGNvbnN0IGNlbnRlclkgPSB2aWV3Qm94WzFdICsgdmlld0JveFszXSAvIDI7XG4gICAgY29uc3QgbmV3T3JpZ2luYXRpb24gPSBbY2VudGVyWCAtIHZpZXdwb3J0Q29udGFpbmVyUmVjdC53aWR0aCAvIDIgLyBuZXdab29tLCBjZW50ZXJZIC0gdmlld3BvcnRDb250YWluZXJSZWN0LmhlaWdodCAvIDIgLyBuZXdab29tXTtcbiAgICBzZXRWaWV3cG9ydChib2FyZCwgbmV3T3JpZ2luYXRpb24sIG5ld1pvb20pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2Nyb2xsVG9SZWN0YW5nbGUoYm9hcmQ6IFBsYWl0Qm9hcmQsIGNsaWVudDogUmVjdGFuZ2xlQ2xpZW50KSB7fVxuIl19
@@ -8,4 +8,8 @@ export const BOARD_TO_HOST = new WeakMap();
8
8
  export const BOARD_TO_ELEMENT_HOST = new WeakMap();
9
9
  export const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
10
10
  export const BOARD_TO_MOVING_POINT = new WeakMap();
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL3dlYWstbWFwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFpQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF1QyxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJvdWdoU1ZHIH0gZnJvbSAncm91Z2hqcy9iaW4vc3ZnJztcbmltcG9ydCB7IEJvYXJkQ29tcG9uZW50SW50ZXJmYWNlIH0gZnJvbSAnLi4vYm9hcmQvYm9hcmQuY29tcG9uZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuaW1wb3J0IHsgUGxhaXRCb2FyZCB9IGZyb20gJy4uL2ludGVyZmFjZXMvYm9hcmQnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3BvaW50JztcblxuLy8gcmVjb3JkIHJpY2h0ZXh0IHR5cGUgc3RhdHVzXG5leHBvcnQgY29uc3QgRkxVU0hJTkc6IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4gPSBuZXcgV2Vha01hcCgpO1xuXG5leHBvcnQgY29uc3QgSVNfVEVYVF9FRElUQUJMRSA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19PTl9DSEFOR0UgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCAoKSA9PiB2b2lkPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fQ09NUE9ORU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgQm9hcmRDb21wb25lbnRJbnRlcmZhY2U+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19ST1VHSF9TVkcgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBSb3VnaFNWRz4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0hPU1QgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBTVkdTVkdFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fRUxFTUVOVF9IT1NUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgU1ZHR0VsZW1lbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19TRUxFQ1RFRF9FTEVNRU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50W10+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19NT1ZJTkdfUE9JTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQb2ludD4oKTtcbiJdfQ==
11
+ export const BOARD_TO_IS_SELECTION_MOVING = new WeakMap();
12
+ // save no standard selected elements
13
+ export const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
14
+ export const BOARD_TO_MOVING_ELEMENT = new WeakMap();
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL3dlYWstbWFwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFpQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF1QyxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLE9BQU8sRUFBdUIsQ0FBQztBQUUvRSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7QUFFckYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBCb2FyZENvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uL2JvYXJkL2JvYXJkLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5cbi8vIHJlY29yZCByaWNodGV4dCB0eXBlIHN0YXR1c1xuZXhwb3J0IGNvbnN0IEZMVVNISU5HOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IElTX1RFWFRfRURJVEFCTEUgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fT05fQ0hBTkdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgKCkgPT4gdm9pZD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0NPTVBPTkVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIEJvYXJkQ29tcG9uZW50SW50ZXJmYWNlPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fUk9VR0hfU1ZHID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUm91Z2hTVkc+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19IT1NUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgU1ZHU1ZHRWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0VMRU1FTlRfSE9TVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFNWR0dFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudFtdPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX1BPSU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19JU19TRUxFQ1RJT05fTU9WSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4oKTtcblxuLy8gc2F2ZSBubyBzdGFuZGFyZCBzZWxlY3RlZCBlbGVtZW50c1xuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUyA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudFtdPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX0VMRU1FTlQgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnRbXT4oKTtcbiJdfQ==