react-sync-board 0.6.2 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +170 -126
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +170 -126
- package/dist/esm/index.js.map +1 -1
- package/dist/react-sync-board.min.js +1 -1
- package/dist/react-sync-board.min.js.map +1 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -4624,7 +4624,9 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4624
4624
|
onLongTap = _ref6$onLongTap === void 0 ? empty : _ref6$onLongTap,
|
|
4625
4625
|
_ref6$onDoubleTap = _ref6.onDoubleTap,
|
|
4626
4626
|
onDoubleTap = _ref6$onDoubleTap === void 0 ? empty : _ref6$onDoubleTap,
|
|
4627
|
-
onZoom = _ref6.onZoom
|
|
4627
|
+
onZoom = _ref6.onZoom,
|
|
4628
|
+
_ref6$mainAction = _ref6.mainAction,
|
|
4629
|
+
mainAction = _ref6$mainAction === void 0 ? "drag" : _ref6$mainAction;
|
|
4628
4630
|
var wrapperRef = React__default['default'].useRef(null);
|
|
4629
4631
|
var stateRef = React__default['default'].useRef({
|
|
4630
4632
|
moving: false,
|
|
@@ -4832,6 +4834,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4832
4834
|
altKey = e.altKey,
|
|
4833
4835
|
ctrlKey = e.ctrlKey,
|
|
4834
4836
|
metaKey = e.metaKey,
|
|
4837
|
+
buttons = e.buttons,
|
|
4835
4838
|
pointerType = e.pointerType;
|
|
4836
4839
|
|
|
4837
4840
|
if (stateRef.current.mainPointer !== pointerId) {
|
|
@@ -4865,13 +4868,20 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4865
4868
|
clientY = eventClientY;
|
|
4866
4869
|
} // We drag if
|
|
4867
4870
|
// On non touch device
|
|
4868
|
-
// -
|
|
4869
|
-
// -
|
|
4871
|
+
// - Only button is pressed (1)
|
|
4872
|
+
// - any special key is no pressed
|
|
4870
4873
|
// or on touch devices
|
|
4871
4874
|
// - We use only one finger
|
|
4872
4875
|
|
|
4873
4876
|
|
|
4874
|
-
var
|
|
4877
|
+
var altAction = altKey || ctrlKey || metaKey || buttons !== 1;
|
|
4878
|
+
|
|
4879
|
+
if (mainAction !== "drag") {
|
|
4880
|
+
altAction = !altAction;
|
|
4881
|
+
}
|
|
4882
|
+
|
|
4883
|
+
var shouldDrag = pointerType !== "touch" ? !altAction : !twoFingers;
|
|
4884
|
+
var shouldPan = pointerType !== "touch" ? altAction : twoFingers;
|
|
4875
4885
|
|
|
4876
4886
|
if (shouldDrag) {
|
|
4877
4887
|
// Send drag start on first move
|
|
@@ -4920,7 +4930,9 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4920
4930
|
target: stateRef.current.target,
|
|
4921
4931
|
event: e
|
|
4922
4932
|
});
|
|
4923
|
-
}
|
|
4933
|
+
}
|
|
4934
|
+
|
|
4935
|
+
if (shouldPan) {
|
|
4924
4936
|
if (!stateRef.current.gestureStart) {
|
|
4925
4937
|
wrapperRef.current.style.cursor = "move";
|
|
4926
4938
|
stateRef.current.gestureStart = true; // Clear tap timeout on first move
|
|
@@ -4964,7 +4976,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4964
4976
|
stateRef.current.prevX = clientX;
|
|
4965
4977
|
stateRef.current.prevY = clientY;
|
|
4966
4978
|
}
|
|
4967
|
-
}, [onDrag, onDragStart, onPan, onZoom, queue]);
|
|
4979
|
+
}, [mainAction, onDrag, onDragStart, onPan, onZoom, queue]);
|
|
4968
4980
|
var onPointerUp = React__default['default'].useCallback(function (e) {
|
|
4969
4981
|
var clientX = e.clientX,
|
|
4970
4982
|
clientY = e.clientY,
|
|
@@ -5939,24 +5951,20 @@ var Selector = function Selector(_ref) {
|
|
|
5939
5951
|
}));
|
|
5940
5952
|
}, [setSelected]);
|
|
5941
5953
|
useThrottledEffect(updateSelected, [selector, updateSelected], 200);
|
|
5942
|
-
|
|
5943
|
-
var onDragStart = /*#__PURE__*/function () {
|
|
5954
|
+
var onDragStart = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
5944
5955
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(event) {
|
|
5945
|
-
var
|
|
5956
|
+
var foundElement;
|
|
5946
5957
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
5947
5958
|
while (1) {
|
|
5948
5959
|
switch (_context2.prev = _context2.next) {
|
|
5949
5960
|
case 0:
|
|
5950
|
-
|
|
5951
|
-
_context2.next = 3;
|
|
5961
|
+
_context2.next = 2;
|
|
5952
5962
|
return findElementUnderPointer(event);
|
|
5953
5963
|
|
|
5954
|
-
case
|
|
5964
|
+
case 2:
|
|
5955
5965
|
foundElement = _context2.sent;
|
|
5956
|
-
metaKeyPressed = altKey || ctrlKey || metaKey;
|
|
5957
|
-
goodButton = moveFirst ? button === 1 || button === 0 && metaKeyPressed : button === 0 && !metaKeyPressed;
|
|
5958
5966
|
|
|
5959
|
-
if (
|
|
5967
|
+
if (!foundElement) {
|
|
5960
5968
|
stateRef.current.moving = true;
|
|
5961
5969
|
setBoardState(function (prev) {
|
|
5962
5970
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -5966,7 +5974,7 @@ var Selector = function Selector(_ref) {
|
|
|
5966
5974
|
wrapperRef.current.style.cursor = "crosshair";
|
|
5967
5975
|
}
|
|
5968
5976
|
|
|
5969
|
-
case
|
|
5977
|
+
case 4:
|
|
5970
5978
|
case "end":
|
|
5971
5979
|
return _context2.stop();
|
|
5972
5980
|
}
|
|
@@ -5974,11 +5982,10 @@ var Selector = function Selector(_ref) {
|
|
|
5974
5982
|
}, _callee2);
|
|
5975
5983
|
}));
|
|
5976
5984
|
|
|
5977
|
-
return function
|
|
5985
|
+
return function (_x) {
|
|
5978
5986
|
return _ref4.apply(this, arguments);
|
|
5979
5987
|
};
|
|
5980
|
-
}();
|
|
5981
|
-
|
|
5988
|
+
}(), [findElementUnderPointer, setBoardState]);
|
|
5982
5989
|
var onDrag = recoil.useRecoilCallback(function (_ref5) {
|
|
5983
5990
|
var snapshot = _ref5.snapshot;
|
|
5984
5991
|
return /*#__PURE__*/function () {
|
|
@@ -6041,8 +6048,7 @@ var Selector = function Selector(_ref) {
|
|
|
6041
6048
|
};
|
|
6042
6049
|
}();
|
|
6043
6050
|
}, []);
|
|
6044
|
-
|
|
6045
|
-
var onDragEnd = function onDragEnd() {
|
|
6051
|
+
var onDragEnd = React__default['default'].useCallback(function () {
|
|
6046
6052
|
if (stateRef.current.moving) {
|
|
6047
6053
|
setBoardState(function (prev) {
|
|
6048
6054
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -6055,8 +6061,7 @@ var Selector = function Selector(_ref) {
|
|
|
6055
6061
|
});
|
|
6056
6062
|
wrapperRef.current.style.cursor = "auto";
|
|
6057
6063
|
}
|
|
6058
|
-
};
|
|
6059
|
-
|
|
6064
|
+
}, [setBoardState]);
|
|
6060
6065
|
var onLongTap = React__default['default'].useCallback(function (_ref8) {
|
|
6061
6066
|
var target = _ref8.target;
|
|
6062
6067
|
var foundElement = insideClass(target, "item");
|
|
@@ -6137,7 +6142,8 @@ var Selector = function Selector(_ref) {
|
|
|
6137
6142
|
onDrag: onDrag,
|
|
6138
6143
|
onDragEnd: onDragEnd,
|
|
6139
6144
|
onTap: onTap,
|
|
6140
|
-
onLongTap: onLongTap
|
|
6145
|
+
onLongTap: onLongTap,
|
|
6146
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
6141
6147
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6142
6148
|
ref: wrapperRef
|
|
6143
6149
|
}, selector.moving && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
@@ -6152,6 +6158,7 @@ var Selector = function Selector(_ref) {
|
|
|
6152
6158
|
|
|
6153
6159
|
var ActionPane = function ActionPane(_ref) {
|
|
6154
6160
|
var children = _ref.children;
|
|
6161
|
+
_ref.moveFirst;
|
|
6155
6162
|
|
|
6156
6163
|
var _useItemActions = useItemActions(),
|
|
6157
6164
|
moveItems = _useItemActions.moveItems,
|
|
@@ -6986,8 +6993,6 @@ var usePositionNavigator = function usePositionNavigator() {
|
|
|
6986
6993
|
return null;
|
|
6987
6994
|
};
|
|
6988
6995
|
|
|
6989
|
-
var SCALE_TOLERANCE = 0.8;
|
|
6990
|
-
|
|
6991
6996
|
var PanZoom = function PanZoom(_ref) {
|
|
6992
6997
|
var children = _ref.children,
|
|
6993
6998
|
_ref$moveFirst = _ref.moveFirst,
|
|
@@ -6997,7 +7002,8 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6997
7002
|
|
|
6998
7003
|
var _useDim = useDim(),
|
|
6999
7004
|
setDim = _useDim.setDim,
|
|
7000
|
-
|
|
7005
|
+
zoomToCenter = _useDim.zoomToCenter,
|
|
7006
|
+
zoomToExtent = _useDim.zoomToExtent;
|
|
7001
7007
|
|
|
7002
7008
|
var _useRecoilValue = recoil.useRecoilValue(ConfigurationAtom),
|
|
7003
7009
|
itemExtentGlobal = _useRecoilValue.itemExtent;
|
|
@@ -7013,10 +7019,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7013
7019
|
var getMouseInfo = useMousePosition(wrappedRef); // Hooks to save/restore position
|
|
7014
7020
|
|
|
7015
7021
|
usePositionNavigator();
|
|
7022
|
+
/**
|
|
7023
|
+
* Center board on startup
|
|
7024
|
+
*/
|
|
7025
|
+
|
|
7016
7026
|
var centerBoard = recoil.useRecoilCallback(function (_ref2) {
|
|
7017
7027
|
var snapshot = _ref2.snapshot;
|
|
7018
7028
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
7019
|
-
var _yield$snapshot$getPr,
|
|
7029
|
+
var _yield$snapshot$getPr, itemExtent;
|
|
7020
7030
|
|
|
7021
7031
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
7022
7032
|
while (1) {
|
|
@@ -7027,34 +7037,17 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7027
7037
|
|
|
7028
7038
|
case 2:
|
|
7029
7039
|
_yield$snapshot$getPr = _context.sent;
|
|
7030
|
-
|
|
7031
|
-
|
|
7032
|
-
top = _yield$snapshot$getPr2.top;
|
|
7033
|
-
width = _yield$snapshot$getPr2.width;
|
|
7034
|
-
height = _yield$snapshot$getPr2.height;
|
|
7035
|
-
boardWrapperRect = _yield$snapshot$getPr.boardWrapperRect;
|
|
7036
|
-
scaleX = boardWrapperRect.width / width;
|
|
7037
|
-
scaleY = boardWrapperRect.height / height;
|
|
7038
|
-
newScale = Math.min(scaleX, scaleY);
|
|
7039
|
-
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7040
|
-
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7041
|
-
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7042
|
-
setDim(function (prev) {
|
|
7043
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7044
|
-
translateX: centerX,
|
|
7045
|
-
translateY: centerY,
|
|
7046
|
-
scale: scaleWithTolerance
|
|
7047
|
-
});
|
|
7048
|
-
});
|
|
7040
|
+
itemExtent = _yield$snapshot$getPr.itemExtent;
|
|
7041
|
+
zoomToExtent(itemExtent);
|
|
7049
7042
|
|
|
7050
|
-
case
|
|
7043
|
+
case 5:
|
|
7051
7044
|
case "end":
|
|
7052
7045
|
return _context.stop();
|
|
7053
7046
|
}
|
|
7054
7047
|
}
|
|
7055
7048
|
}, _callee);
|
|
7056
7049
|
}));
|
|
7057
|
-
}, [
|
|
7050
|
+
}, [zoomToExtent]);
|
|
7058
7051
|
React__default['default'].useEffect(function () {
|
|
7059
7052
|
if (!centered && itemExtentGlobal.left) {
|
|
7060
7053
|
// Center board on first valid extent
|
|
@@ -7066,7 +7059,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7066
7059
|
var clientX = _ref4.clientX,
|
|
7067
7060
|
clientY = _ref4.clientY,
|
|
7068
7061
|
scale = _ref4.scale;
|
|
7069
|
-
|
|
7062
|
+
zoomToCenter(1 - scale / 500, {
|
|
7070
7063
|
x: clientX,
|
|
7071
7064
|
y: clientY
|
|
7072
7065
|
}); // Update the board zooming state
|
|
@@ -7084,15 +7077,25 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7084
7077
|
zooming: true
|
|
7085
7078
|
}) : prev;
|
|
7086
7079
|
});
|
|
7087
|
-
}, [setBoardState,
|
|
7080
|
+
}, [setBoardState, zoomToCenter]);
|
|
7088
7081
|
var onPan = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
7089
7082
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
7090
|
-
var deltaX, deltaY;
|
|
7083
|
+
var deltaX, deltaY, target, insideItem;
|
|
7091
7084
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
7092
7085
|
while (1) {
|
|
7093
7086
|
switch (_context2.prev = _context2.next) {
|
|
7094
7087
|
case 0:
|
|
7095
|
-
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY;
|
|
7088
|
+
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY, target = _ref5.target;
|
|
7089
|
+
insideItem = insideClass(target, "item") && !insideClass(target, "locked");
|
|
7090
|
+
|
|
7091
|
+
if (!(insideItem && moveFirst)) {
|
|
7092
|
+
_context2.next = 4;
|
|
7093
|
+
break;
|
|
7094
|
+
}
|
|
7095
|
+
|
|
7096
|
+
return _context2.abrupt("return");
|
|
7097
|
+
|
|
7098
|
+
case 4:
|
|
7096
7099
|
setDim(function (prev) {
|
|
7097
7100
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7098
7101
|
translateX: prev.translateX + deltaX,
|
|
@@ -7114,7 +7117,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7114
7117
|
}) : prev;
|
|
7115
7118
|
});
|
|
7116
7119
|
|
|
7117
|
-
case
|
|
7120
|
+
case 8:
|
|
7118
7121
|
case "end":
|
|
7119
7122
|
return _context2.stop();
|
|
7120
7123
|
}
|
|
@@ -7125,15 +7128,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7125
7128
|
return function (_x) {
|
|
7126
7129
|
return _ref6.apply(this, arguments);
|
|
7127
7130
|
};
|
|
7128
|
-
}(), [setBoardState, setDim]);
|
|
7129
|
-
var onDrag = React__default['default'].useCallback(function (state) {
|
|
7130
|
-
var target = state.target;
|
|
7131
|
-
var outsideItem = !insideClass(target, "item") || insideClass(target, "locked");
|
|
7132
|
-
|
|
7133
|
-
if (moveFirst && outsideItem) {
|
|
7134
|
-
onPan(state);
|
|
7135
|
-
}
|
|
7136
|
-
}, [moveFirst, onPan]);
|
|
7131
|
+
}(), [moveFirst, setBoardState, setDim]);
|
|
7137
7132
|
var onKeyDown = recoil.useRecoilCallback(function (_ref7) {
|
|
7138
7133
|
var snapshot = _ref7.snapshot;
|
|
7139
7134
|
return /*#__PURE__*/function () {
|
|
@@ -7218,14 +7213,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7218
7213
|
translateX: prev.translateX + moveX
|
|
7219
7214
|
});
|
|
7220
7215
|
});
|
|
7221
|
-
|
|
7216
|
+
zoomToCenter(zoom);
|
|
7222
7217
|
e.preventDefault();
|
|
7223
7218
|
|
|
7224
7219
|
case 31:
|
|
7225
7220
|
// Temporary zoom
|
|
7226
7221
|
if (e.key === " " && !e.repeat) {
|
|
7227
7222
|
if (getMouseInfo().hover) {
|
|
7228
|
-
|
|
7223
|
+
zoomToCenter(3, getMouseInfo());
|
|
7229
7224
|
}
|
|
7230
7225
|
}
|
|
7231
7226
|
|
|
@@ -7241,15 +7236,15 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7241
7236
|
return _ref8.apply(this, arguments);
|
|
7242
7237
|
};
|
|
7243
7238
|
}();
|
|
7244
|
-
}, [setDim,
|
|
7239
|
+
}, [setDim, zoomToCenter, getMouseInfo]);
|
|
7245
7240
|
var onKeyUp = React__default['default'].useCallback(function (e) {
|
|
7246
7241
|
// Ignore text in Input or Textarea
|
|
7247
7242
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return; // Zoom out on release
|
|
7248
7243
|
|
|
7249
7244
|
if (e.key === " " && getMouseInfo().hover) {
|
|
7250
|
-
|
|
7245
|
+
zoomToCenter(1 / 3, getMouseInfo());
|
|
7251
7246
|
}
|
|
7252
|
-
}, [getMouseInfo,
|
|
7247
|
+
}, [getMouseInfo, zoomToCenter]);
|
|
7253
7248
|
React__default['default'].useEffect(function () {
|
|
7254
7249
|
document.addEventListener("keydown", onKeyDown);
|
|
7255
7250
|
document.addEventListener("keyup", onKeyUp);
|
|
@@ -7261,7 +7256,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7261
7256
|
return /*#__PURE__*/React__default['default'].createElement(Gesture, {
|
|
7262
7257
|
onPan: onPan,
|
|
7263
7258
|
onZoom: onZoom,
|
|
7264
|
-
|
|
7259
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
7265
7260
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7266
7261
|
style: {
|
|
7267
7262
|
display: "inline-block",
|
|
@@ -7429,7 +7424,9 @@ var Board = function Board(_ref) {
|
|
|
7429
7424
|
moveFirst: moveFirst
|
|
7430
7425
|
}, /*#__PURE__*/React__default['default'].createElement(Selector, {
|
|
7431
7426
|
moveFirst: moveFirst
|
|
7432
|
-
}, /*#__PURE__*/React__default['default'].createElement(ActionPane,
|
|
7427
|
+
}, /*#__PURE__*/React__default['default'].createElement(ActionPane, {
|
|
7428
|
+
moveFirst: moveFirst
|
|
7429
|
+
}, /*#__PURE__*/React__default['default'].createElement(CursorPane, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7433
7430
|
onContextMenu: function onContextMenu(e) {
|
|
7434
7431
|
e.preventDefault();
|
|
7435
7432
|
},
|
|
@@ -7440,6 +7437,7 @@ var Board = function Board(_ref) {
|
|
|
7440
7437
|
|
|
7441
7438
|
var TOLERANCE = 100;
|
|
7442
7439
|
var MIN_SIZE = 1000;
|
|
7440
|
+
var SCALE_TOLERANCE = 0.8;
|
|
7443
7441
|
|
|
7444
7442
|
var translateBoundaries = function translateBoundaries(_ref) {
|
|
7445
7443
|
var x = _ref.x,
|
|
@@ -7557,7 +7555,7 @@ var useDim = function useDim() {
|
|
|
7557
7555
|
};
|
|
7558
7556
|
}();
|
|
7559
7557
|
}, [setDim]);
|
|
7560
|
-
var
|
|
7558
|
+
var zoomToCenter = recoil.useRecoilCallback(function (_ref5) {
|
|
7561
7559
|
var snapshot = _ref5.snapshot;
|
|
7562
7560
|
return /*#__PURE__*/function () {
|
|
7563
7561
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(factor, zoomCenter) {
|
|
@@ -7636,24 +7634,68 @@ var useDim = function useDim() {
|
|
|
7636
7634
|
};
|
|
7637
7635
|
}();
|
|
7638
7636
|
}, [setDim]);
|
|
7639
|
-
var
|
|
7637
|
+
var zoomToExtent = recoil.useRecoilCallback(function (_ref7) {
|
|
7640
7638
|
var snapshot = _ref7.snapshot;
|
|
7641
|
-
return /*#__PURE__*/
|
|
7642
|
-
var
|
|
7639
|
+
return /*#__PURE__*/function () {
|
|
7640
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref8) {
|
|
7641
|
+
var left, top, width, height, _yield$snapshot$getPr3, boardWrapperRect, scaleX, scaleY, newScale, scaleWithTolerance, centerX, centerY;
|
|
7643
7642
|
|
|
7644
|
-
|
|
7643
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
7644
|
+
while (1) {
|
|
7645
|
+
switch (_context3.prev = _context3.next) {
|
|
7646
|
+
case 0:
|
|
7647
|
+
left = _ref8.left, top = _ref8.top, width = _ref8.width, height = _ref8.height;
|
|
7648
|
+
_context3.next = 3;
|
|
7649
|
+
return snapshot.getPromise(ConfigurationAtom);
|
|
7650
|
+
|
|
7651
|
+
case 3:
|
|
7652
|
+
_yield$snapshot$getPr3 = _context3.sent;
|
|
7653
|
+
boardWrapperRect = _yield$snapshot$getPr3.boardWrapperRect;
|
|
7654
|
+
scaleX = boardWrapperRect.width / width;
|
|
7655
|
+
scaleY = boardWrapperRect.height / height;
|
|
7656
|
+
newScale = Math.min(scaleX, scaleY);
|
|
7657
|
+
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7658
|
+
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7659
|
+
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7660
|
+
setDim(function (prev) {
|
|
7661
|
+
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7662
|
+
translateX: centerX,
|
|
7663
|
+
translateY: centerY,
|
|
7664
|
+
scale: scaleWithTolerance
|
|
7665
|
+
});
|
|
7666
|
+
});
|
|
7667
|
+
|
|
7668
|
+
case 12:
|
|
7669
|
+
case "end":
|
|
7670
|
+
return _context3.stop();
|
|
7671
|
+
}
|
|
7672
|
+
}
|
|
7673
|
+
}, _callee3);
|
|
7674
|
+
}));
|
|
7675
|
+
|
|
7676
|
+
return function (_x4) {
|
|
7677
|
+
return _ref9.apply(this, arguments);
|
|
7678
|
+
};
|
|
7679
|
+
}();
|
|
7680
|
+
}, [setDim]);
|
|
7681
|
+
var updateScaleBoundaries = recoil.useRecoilCallback(function (_ref10) {
|
|
7682
|
+
var snapshot = _ref10.snapshot;
|
|
7683
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
7684
|
+
var _yield$snapshot$getPr4, _yield$snapshot$getPr5, width, height, boardWrapperRect, scaleX, scaleY, newScale;
|
|
7685
|
+
|
|
7686
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
7645
7687
|
while (1) {
|
|
7646
|
-
switch (
|
|
7688
|
+
switch (_context4.prev = _context4.next) {
|
|
7647
7689
|
case 0:
|
|
7648
|
-
|
|
7690
|
+
_context4.next = 2;
|
|
7649
7691
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7650
7692
|
|
|
7651
7693
|
case 2:
|
|
7652
|
-
_yield$snapshot$
|
|
7653
|
-
_yield$snapshot$
|
|
7654
|
-
width = _yield$snapshot$
|
|
7655
|
-
height = _yield$snapshot$
|
|
7656
|
-
boardWrapperRect = _yield$snapshot$
|
|
7694
|
+
_yield$snapshot$getPr4 = _context4.sent;
|
|
7695
|
+
_yield$snapshot$getPr5 = _yield$snapshot$getPr4.itemExtent;
|
|
7696
|
+
width = _yield$snapshot$getPr5.width;
|
|
7697
|
+
height = _yield$snapshot$getPr5.height;
|
|
7698
|
+
boardWrapperRect = _yield$snapshot$getPr4.boardWrapperRect;
|
|
7657
7699
|
scaleX = boardWrapperRect.width / width;
|
|
7658
7700
|
scaleY = boardWrapperRect.height / height;
|
|
7659
7701
|
newScale = Math.min(scaleX, scaleY);
|
|
@@ -7661,86 +7703,86 @@ var useDim = function useDim() {
|
|
|
7661
7703
|
|
|
7662
7704
|
case 11:
|
|
7663
7705
|
case "end":
|
|
7664
|
-
return
|
|
7706
|
+
return _context4.stop();
|
|
7665
7707
|
}
|
|
7666
7708
|
}
|
|
7667
|
-
},
|
|
7709
|
+
}, _callee4);
|
|
7668
7710
|
}));
|
|
7669
7711
|
}, []);
|
|
7670
|
-
var getCenterCoordinates = recoil.useRecoilCallback(function (
|
|
7671
|
-
var snapshot =
|
|
7672
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7673
|
-
var _yield$snapshot$
|
|
7712
|
+
var getCenterCoordinates = recoil.useRecoilCallback(function (_ref12) {
|
|
7713
|
+
var snapshot = _ref12.snapshot;
|
|
7714
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
7715
|
+
var _yield$snapshot$getPr6, boardWrapperRect, boardSize, _yield$snapshot$getPr7, translateX, translateY, scale;
|
|
7674
7716
|
|
|
7675
|
-
return regeneratorRuntime.wrap(function
|
|
7717
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
7676
7718
|
while (1) {
|
|
7677
|
-
switch (
|
|
7719
|
+
switch (_context5.prev = _context5.next) {
|
|
7678
7720
|
case 0:
|
|
7679
|
-
|
|
7721
|
+
_context5.next = 2;
|
|
7680
7722
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7681
7723
|
|
|
7682
7724
|
case 2:
|
|
7683
|
-
_yield$snapshot$
|
|
7684
|
-
boardWrapperRect = _yield$snapshot$
|
|
7685
|
-
boardSize = _yield$snapshot$
|
|
7686
|
-
|
|
7725
|
+
_yield$snapshot$getPr6 = _context5.sent;
|
|
7726
|
+
boardWrapperRect = _yield$snapshot$getPr6.boardWrapperRect;
|
|
7727
|
+
boardSize = _yield$snapshot$getPr6.boardSize;
|
|
7728
|
+
_context5.next = 7;
|
|
7687
7729
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7688
7730
|
|
|
7689
7731
|
case 7:
|
|
7690
|
-
_yield$snapshot$
|
|
7691
|
-
translateX = _yield$snapshot$
|
|
7692
|
-
translateY = _yield$snapshot$
|
|
7693
|
-
scale = _yield$snapshot$
|
|
7694
|
-
return
|
|
7732
|
+
_yield$snapshot$getPr7 = _context5.sent;
|
|
7733
|
+
translateX = _yield$snapshot$getPr7.translateX;
|
|
7734
|
+
translateY = _yield$snapshot$getPr7.translateY;
|
|
7735
|
+
scale = _yield$snapshot$getPr7.scale;
|
|
7736
|
+
return _context5.abrupt("return", {
|
|
7695
7737
|
x: (boardWrapperRect.width / 2 - translateX) / scale - boardSize / 2,
|
|
7696
7738
|
y: (boardWrapperRect.height / 2 - translateY) / scale - boardSize / 2
|
|
7697
7739
|
});
|
|
7698
7740
|
|
|
7699
7741
|
case 12:
|
|
7700
7742
|
case "end":
|
|
7701
|
-
return
|
|
7743
|
+
return _context5.stop();
|
|
7702
7744
|
}
|
|
7703
7745
|
}
|
|
7704
|
-
},
|
|
7746
|
+
}, _callee5);
|
|
7705
7747
|
}));
|
|
7706
7748
|
}, []);
|
|
7707
|
-
var updateItemExtent = recoil.useRecoilCallback(function (
|
|
7708
|
-
var snapshot =
|
|
7709
|
-
set =
|
|
7710
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7711
|
-
var itemIds, _yield$snapshot$
|
|
7749
|
+
var updateItemExtent = recoil.useRecoilCallback(function (_ref14) {
|
|
7750
|
+
var snapshot = _ref14.snapshot,
|
|
7751
|
+
set = _ref14.set;
|
|
7752
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
7753
|
+
var itemIds, _yield$snapshot$getPr8, boardWrapperRect, boardWrapper, boardSize, _yield$snapshot$getPr9, scale, translateX, translateY, _ref16, left, top, width, height, relativeExtent, delta, _delta;
|
|
7712
7754
|
|
|
7713
|
-
return regeneratorRuntime.wrap(function
|
|
7755
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
7714
7756
|
while (1) {
|
|
7715
|
-
switch (
|
|
7757
|
+
switch (_context6.prev = _context6.next) {
|
|
7716
7758
|
case 0:
|
|
7717
|
-
|
|
7759
|
+
_context6.next = 2;
|
|
7718
7760
|
return snapshot.getPromise(ItemListAtom);
|
|
7719
7761
|
|
|
7720
7762
|
case 2:
|
|
7721
|
-
itemIds =
|
|
7722
|
-
|
|
7763
|
+
itemIds = _context6.sent;
|
|
7764
|
+
_context6.next = 5;
|
|
7723
7765
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7724
7766
|
|
|
7725
7767
|
case 5:
|
|
7726
|
-
_yield$snapshot$
|
|
7727
|
-
boardWrapperRect = _yield$snapshot$
|
|
7728
|
-
boardWrapper = _yield$snapshot$
|
|
7729
|
-
boardSize = _yield$snapshot$
|
|
7730
|
-
|
|
7768
|
+
_yield$snapshot$getPr8 = _context6.sent;
|
|
7769
|
+
boardWrapperRect = _yield$snapshot$getPr8.boardWrapperRect;
|
|
7770
|
+
boardWrapper = _yield$snapshot$getPr8.boardWrapper;
|
|
7771
|
+
boardSize = _yield$snapshot$getPr8.boardSize;
|
|
7772
|
+
_context6.next = 11;
|
|
7731
7773
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7732
7774
|
|
|
7733
7775
|
case 11:
|
|
7734
|
-
_yield$snapshot$
|
|
7735
|
-
scale = _yield$snapshot$
|
|
7736
|
-
translateX = _yield$snapshot$
|
|
7737
|
-
translateY = _yield$snapshot$
|
|
7738
|
-
|
|
7776
|
+
_yield$snapshot$getPr9 = _context6.sent;
|
|
7777
|
+
scale = _yield$snapshot$getPr9.scale;
|
|
7778
|
+
translateX = _yield$snapshot$getPr9.translateX;
|
|
7779
|
+
translateY = _yield$snapshot$getPr9.translateY;
|
|
7780
|
+
_ref16 = getItemBoundingBox(itemIds, boardWrapper) || {
|
|
7739
7781
|
left: boardSize / 2 * scale + boardWrapperRect.left + translateX,
|
|
7740
7782
|
top: boardSize / 2 * scale + boardWrapperRect.top + translateY,
|
|
7741
7783
|
width: 0,
|
|
7742
7784
|
height: 0
|
|
7743
|
-
}, left =
|
|
7785
|
+
}, left = _ref16.left, top = _ref16.top, width = _ref16.width, height = _ref16.height;
|
|
7744
7786
|
relativeExtent = {
|
|
7745
7787
|
left: (left - boardWrapperRect.left - translateX) / scale,
|
|
7746
7788
|
top: (top - boardWrapperRect.top - translateY) / scale,
|
|
@@ -7772,10 +7814,10 @@ var useDim = function useDim() {
|
|
|
7772
7814
|
|
|
7773
7815
|
case 22:
|
|
7774
7816
|
case "end":
|
|
7775
|
-
return
|
|
7817
|
+
return _context6.stop();
|
|
7776
7818
|
}
|
|
7777
7819
|
}
|
|
7778
|
-
},
|
|
7820
|
+
}, _callee6);
|
|
7779
7821
|
}));
|
|
7780
7822
|
}, []);
|
|
7781
7823
|
var debouncedUpdateItemExtent = useDebouncedCallback(updateItemExtent, [], 300);
|
|
@@ -7787,7 +7829,9 @@ var useDim = function useDim() {
|
|
|
7787
7829
|
return {
|
|
7788
7830
|
setDim: setDimSafe,
|
|
7789
7831
|
getDim: getDim,
|
|
7790
|
-
zoomTo:
|
|
7832
|
+
zoomTo: zoomToCenter,
|
|
7833
|
+
zoomToCenter: zoomToCenter,
|
|
7834
|
+
zoomToExtent: zoomToExtent,
|
|
7791
7835
|
getCenter: getCenterCoordinates,
|
|
7792
7836
|
updateItemExtent: debouncedUpdateItemExtent
|
|
7793
7837
|
};
|