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/esm/index.js
CHANGED
|
@@ -4596,7 +4596,9 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4596
4596
|
onLongTap = _ref6$onLongTap === void 0 ? empty : _ref6$onLongTap,
|
|
4597
4597
|
_ref6$onDoubleTap = _ref6.onDoubleTap,
|
|
4598
4598
|
onDoubleTap = _ref6$onDoubleTap === void 0 ? empty : _ref6$onDoubleTap,
|
|
4599
|
-
onZoom = _ref6.onZoom
|
|
4599
|
+
onZoom = _ref6.onZoom,
|
|
4600
|
+
_ref6$mainAction = _ref6.mainAction,
|
|
4601
|
+
mainAction = _ref6$mainAction === void 0 ? "drag" : _ref6$mainAction;
|
|
4600
4602
|
var wrapperRef = React__default.useRef(null);
|
|
4601
4603
|
var stateRef = React__default.useRef({
|
|
4602
4604
|
moving: false,
|
|
@@ -4804,6 +4806,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4804
4806
|
altKey = e.altKey,
|
|
4805
4807
|
ctrlKey = e.ctrlKey,
|
|
4806
4808
|
metaKey = e.metaKey,
|
|
4809
|
+
buttons = e.buttons,
|
|
4807
4810
|
pointerType = e.pointerType;
|
|
4808
4811
|
|
|
4809
4812
|
if (stateRef.current.mainPointer !== pointerId) {
|
|
@@ -4837,13 +4840,20 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4837
4840
|
clientY = eventClientY;
|
|
4838
4841
|
} // We drag if
|
|
4839
4842
|
// On non touch device
|
|
4840
|
-
// -
|
|
4841
|
-
// -
|
|
4843
|
+
// - Only button is pressed (1)
|
|
4844
|
+
// - any special key is no pressed
|
|
4842
4845
|
// or on touch devices
|
|
4843
4846
|
// - We use only one finger
|
|
4844
4847
|
|
|
4845
4848
|
|
|
4846
|
-
var
|
|
4849
|
+
var altAction = altKey || ctrlKey || metaKey || buttons !== 1;
|
|
4850
|
+
|
|
4851
|
+
if (mainAction !== "drag") {
|
|
4852
|
+
altAction = !altAction;
|
|
4853
|
+
}
|
|
4854
|
+
|
|
4855
|
+
var shouldDrag = pointerType !== "touch" ? !altAction : !twoFingers;
|
|
4856
|
+
var shouldPan = pointerType !== "touch" ? altAction : twoFingers;
|
|
4847
4857
|
|
|
4848
4858
|
if (shouldDrag) {
|
|
4849
4859
|
// Send drag start on first move
|
|
@@ -4892,7 +4902,9 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4892
4902
|
target: stateRef.current.target,
|
|
4893
4903
|
event: e
|
|
4894
4904
|
});
|
|
4895
|
-
}
|
|
4905
|
+
}
|
|
4906
|
+
|
|
4907
|
+
if (shouldPan) {
|
|
4896
4908
|
if (!stateRef.current.gestureStart) {
|
|
4897
4909
|
wrapperRef.current.style.cursor = "move";
|
|
4898
4910
|
stateRef.current.gestureStart = true; // Clear tap timeout on first move
|
|
@@ -4936,7 +4948,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4936
4948
|
stateRef.current.prevX = clientX;
|
|
4937
4949
|
stateRef.current.prevY = clientY;
|
|
4938
4950
|
}
|
|
4939
|
-
}, [onDrag, onDragStart, onPan, onZoom, queue]);
|
|
4951
|
+
}, [mainAction, onDrag, onDragStart, onPan, onZoom, queue]);
|
|
4940
4952
|
var onPointerUp = React__default.useCallback(function (e) {
|
|
4941
4953
|
var clientX = e.clientX,
|
|
4942
4954
|
clientY = e.clientY,
|
|
@@ -5911,24 +5923,20 @@ var Selector = function Selector(_ref) {
|
|
|
5911
5923
|
}));
|
|
5912
5924
|
}, [setSelected]);
|
|
5913
5925
|
useThrottledEffect(updateSelected, [selector, updateSelected], 200);
|
|
5914
|
-
|
|
5915
|
-
var onDragStart = /*#__PURE__*/function () {
|
|
5926
|
+
var onDragStart = React__default.useCallback( /*#__PURE__*/function () {
|
|
5916
5927
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(event) {
|
|
5917
|
-
var
|
|
5928
|
+
var foundElement;
|
|
5918
5929
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
5919
5930
|
while (1) {
|
|
5920
5931
|
switch (_context2.prev = _context2.next) {
|
|
5921
5932
|
case 0:
|
|
5922
|
-
|
|
5923
|
-
_context2.next = 3;
|
|
5933
|
+
_context2.next = 2;
|
|
5924
5934
|
return findElementUnderPointer(event);
|
|
5925
5935
|
|
|
5926
|
-
case
|
|
5936
|
+
case 2:
|
|
5927
5937
|
foundElement = _context2.sent;
|
|
5928
|
-
metaKeyPressed = altKey || ctrlKey || metaKey;
|
|
5929
|
-
goodButton = moveFirst ? button === 1 || button === 0 && metaKeyPressed : button === 0 && !metaKeyPressed;
|
|
5930
5938
|
|
|
5931
|
-
if (
|
|
5939
|
+
if (!foundElement) {
|
|
5932
5940
|
stateRef.current.moving = true;
|
|
5933
5941
|
setBoardState(function (prev) {
|
|
5934
5942
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -5938,7 +5946,7 @@ var Selector = function Selector(_ref) {
|
|
|
5938
5946
|
wrapperRef.current.style.cursor = "crosshair";
|
|
5939
5947
|
}
|
|
5940
5948
|
|
|
5941
|
-
case
|
|
5949
|
+
case 4:
|
|
5942
5950
|
case "end":
|
|
5943
5951
|
return _context2.stop();
|
|
5944
5952
|
}
|
|
@@ -5946,11 +5954,10 @@ var Selector = function Selector(_ref) {
|
|
|
5946
5954
|
}, _callee2);
|
|
5947
5955
|
}));
|
|
5948
5956
|
|
|
5949
|
-
return function
|
|
5957
|
+
return function (_x) {
|
|
5950
5958
|
return _ref4.apply(this, arguments);
|
|
5951
5959
|
};
|
|
5952
|
-
}();
|
|
5953
|
-
|
|
5960
|
+
}(), [findElementUnderPointer, setBoardState]);
|
|
5954
5961
|
var onDrag = useRecoilCallback(function (_ref5) {
|
|
5955
5962
|
var snapshot = _ref5.snapshot;
|
|
5956
5963
|
return /*#__PURE__*/function () {
|
|
@@ -6013,8 +6020,7 @@ var Selector = function Selector(_ref) {
|
|
|
6013
6020
|
};
|
|
6014
6021
|
}();
|
|
6015
6022
|
}, []);
|
|
6016
|
-
|
|
6017
|
-
var onDragEnd = function onDragEnd() {
|
|
6023
|
+
var onDragEnd = React__default.useCallback(function () {
|
|
6018
6024
|
if (stateRef.current.moving) {
|
|
6019
6025
|
setBoardState(function (prev) {
|
|
6020
6026
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -6027,8 +6033,7 @@ var Selector = function Selector(_ref) {
|
|
|
6027
6033
|
});
|
|
6028
6034
|
wrapperRef.current.style.cursor = "auto";
|
|
6029
6035
|
}
|
|
6030
|
-
};
|
|
6031
|
-
|
|
6036
|
+
}, [setBoardState]);
|
|
6032
6037
|
var onLongTap = React__default.useCallback(function (_ref8) {
|
|
6033
6038
|
var target = _ref8.target;
|
|
6034
6039
|
var foundElement = insideClass(target, "item");
|
|
@@ -6109,7 +6114,8 @@ var Selector = function Selector(_ref) {
|
|
|
6109
6114
|
onDrag: onDrag,
|
|
6110
6115
|
onDragEnd: onDragEnd,
|
|
6111
6116
|
onTap: onTap,
|
|
6112
|
-
onLongTap: onLongTap
|
|
6117
|
+
onLongTap: onLongTap,
|
|
6118
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
6113
6119
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
6114
6120
|
ref: wrapperRef
|
|
6115
6121
|
}, selector.moving && /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -6124,6 +6130,7 @@ var Selector = function Selector(_ref) {
|
|
|
6124
6130
|
|
|
6125
6131
|
var ActionPane = function ActionPane(_ref) {
|
|
6126
6132
|
var children = _ref.children;
|
|
6133
|
+
_ref.moveFirst;
|
|
6127
6134
|
|
|
6128
6135
|
var _useItemActions = useItemActions(),
|
|
6129
6136
|
moveItems = _useItemActions.moveItems,
|
|
@@ -6958,8 +6965,6 @@ var usePositionNavigator = function usePositionNavigator() {
|
|
|
6958
6965
|
return null;
|
|
6959
6966
|
};
|
|
6960
6967
|
|
|
6961
|
-
var SCALE_TOLERANCE = 0.8;
|
|
6962
|
-
|
|
6963
6968
|
var PanZoom = function PanZoom(_ref) {
|
|
6964
6969
|
var children = _ref.children,
|
|
6965
6970
|
_ref$moveFirst = _ref.moveFirst,
|
|
@@ -6969,7 +6974,8 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6969
6974
|
|
|
6970
6975
|
var _useDim = useDim(),
|
|
6971
6976
|
setDim = _useDim.setDim,
|
|
6972
|
-
|
|
6977
|
+
zoomToCenter = _useDim.zoomToCenter,
|
|
6978
|
+
zoomToExtent = _useDim.zoomToExtent;
|
|
6973
6979
|
|
|
6974
6980
|
var _useRecoilValue = useRecoilValue(ConfigurationAtom),
|
|
6975
6981
|
itemExtentGlobal = _useRecoilValue.itemExtent;
|
|
@@ -6985,10 +6991,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6985
6991
|
var getMouseInfo = useMousePosition(wrappedRef); // Hooks to save/restore position
|
|
6986
6992
|
|
|
6987
6993
|
usePositionNavigator();
|
|
6994
|
+
/**
|
|
6995
|
+
* Center board on startup
|
|
6996
|
+
*/
|
|
6997
|
+
|
|
6988
6998
|
var centerBoard = useRecoilCallback(function (_ref2) {
|
|
6989
6999
|
var snapshot = _ref2.snapshot;
|
|
6990
7000
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
6991
|
-
var _yield$snapshot$getPr,
|
|
7001
|
+
var _yield$snapshot$getPr, itemExtent;
|
|
6992
7002
|
|
|
6993
7003
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
6994
7004
|
while (1) {
|
|
@@ -6999,34 +7009,17 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6999
7009
|
|
|
7000
7010
|
case 2:
|
|
7001
7011
|
_yield$snapshot$getPr = _context.sent;
|
|
7002
|
-
|
|
7003
|
-
|
|
7004
|
-
top = _yield$snapshot$getPr2.top;
|
|
7005
|
-
width = _yield$snapshot$getPr2.width;
|
|
7006
|
-
height = _yield$snapshot$getPr2.height;
|
|
7007
|
-
boardWrapperRect = _yield$snapshot$getPr.boardWrapperRect;
|
|
7008
|
-
scaleX = boardWrapperRect.width / width;
|
|
7009
|
-
scaleY = boardWrapperRect.height / height;
|
|
7010
|
-
newScale = Math.min(scaleX, scaleY);
|
|
7011
|
-
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7012
|
-
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7013
|
-
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7014
|
-
setDim(function (prev) {
|
|
7015
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7016
|
-
translateX: centerX,
|
|
7017
|
-
translateY: centerY,
|
|
7018
|
-
scale: scaleWithTolerance
|
|
7019
|
-
});
|
|
7020
|
-
});
|
|
7012
|
+
itemExtent = _yield$snapshot$getPr.itemExtent;
|
|
7013
|
+
zoomToExtent(itemExtent);
|
|
7021
7014
|
|
|
7022
|
-
case
|
|
7015
|
+
case 5:
|
|
7023
7016
|
case "end":
|
|
7024
7017
|
return _context.stop();
|
|
7025
7018
|
}
|
|
7026
7019
|
}
|
|
7027
7020
|
}, _callee);
|
|
7028
7021
|
}));
|
|
7029
|
-
}, [
|
|
7022
|
+
}, [zoomToExtent]);
|
|
7030
7023
|
React__default.useEffect(function () {
|
|
7031
7024
|
if (!centered && itemExtentGlobal.left) {
|
|
7032
7025
|
// Center board on first valid extent
|
|
@@ -7038,7 +7031,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7038
7031
|
var clientX = _ref4.clientX,
|
|
7039
7032
|
clientY = _ref4.clientY,
|
|
7040
7033
|
scale = _ref4.scale;
|
|
7041
|
-
|
|
7034
|
+
zoomToCenter(1 - scale / 500, {
|
|
7042
7035
|
x: clientX,
|
|
7043
7036
|
y: clientY
|
|
7044
7037
|
}); // Update the board zooming state
|
|
@@ -7056,15 +7049,25 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7056
7049
|
zooming: true
|
|
7057
7050
|
}) : prev;
|
|
7058
7051
|
});
|
|
7059
|
-
}, [setBoardState,
|
|
7052
|
+
}, [setBoardState, zoomToCenter]);
|
|
7060
7053
|
var onPan = React__default.useCallback( /*#__PURE__*/function () {
|
|
7061
7054
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
7062
|
-
var deltaX, deltaY;
|
|
7055
|
+
var deltaX, deltaY, target, insideItem;
|
|
7063
7056
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
7064
7057
|
while (1) {
|
|
7065
7058
|
switch (_context2.prev = _context2.next) {
|
|
7066
7059
|
case 0:
|
|
7067
|
-
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY;
|
|
7060
|
+
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY, target = _ref5.target;
|
|
7061
|
+
insideItem = insideClass(target, "item") && !insideClass(target, "locked");
|
|
7062
|
+
|
|
7063
|
+
if (!(insideItem && moveFirst)) {
|
|
7064
|
+
_context2.next = 4;
|
|
7065
|
+
break;
|
|
7066
|
+
}
|
|
7067
|
+
|
|
7068
|
+
return _context2.abrupt("return");
|
|
7069
|
+
|
|
7070
|
+
case 4:
|
|
7068
7071
|
setDim(function (prev) {
|
|
7069
7072
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7070
7073
|
translateX: prev.translateX + deltaX,
|
|
@@ -7086,7 +7089,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7086
7089
|
}) : prev;
|
|
7087
7090
|
});
|
|
7088
7091
|
|
|
7089
|
-
case
|
|
7092
|
+
case 8:
|
|
7090
7093
|
case "end":
|
|
7091
7094
|
return _context2.stop();
|
|
7092
7095
|
}
|
|
@@ -7097,15 +7100,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7097
7100
|
return function (_x) {
|
|
7098
7101
|
return _ref6.apply(this, arguments);
|
|
7099
7102
|
};
|
|
7100
|
-
}(), [setBoardState, setDim]);
|
|
7101
|
-
var onDrag = React__default.useCallback(function (state) {
|
|
7102
|
-
var target = state.target;
|
|
7103
|
-
var outsideItem = !insideClass(target, "item") || insideClass(target, "locked");
|
|
7104
|
-
|
|
7105
|
-
if (moveFirst && outsideItem) {
|
|
7106
|
-
onPan(state);
|
|
7107
|
-
}
|
|
7108
|
-
}, [moveFirst, onPan]);
|
|
7103
|
+
}(), [moveFirst, setBoardState, setDim]);
|
|
7109
7104
|
var onKeyDown = useRecoilCallback(function (_ref7) {
|
|
7110
7105
|
var snapshot = _ref7.snapshot;
|
|
7111
7106
|
return /*#__PURE__*/function () {
|
|
@@ -7190,14 +7185,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7190
7185
|
translateX: prev.translateX + moveX
|
|
7191
7186
|
});
|
|
7192
7187
|
});
|
|
7193
|
-
|
|
7188
|
+
zoomToCenter(zoom);
|
|
7194
7189
|
e.preventDefault();
|
|
7195
7190
|
|
|
7196
7191
|
case 31:
|
|
7197
7192
|
// Temporary zoom
|
|
7198
7193
|
if (e.key === " " && !e.repeat) {
|
|
7199
7194
|
if (getMouseInfo().hover) {
|
|
7200
|
-
|
|
7195
|
+
zoomToCenter(3, getMouseInfo());
|
|
7201
7196
|
}
|
|
7202
7197
|
}
|
|
7203
7198
|
|
|
@@ -7213,15 +7208,15 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7213
7208
|
return _ref8.apply(this, arguments);
|
|
7214
7209
|
};
|
|
7215
7210
|
}();
|
|
7216
|
-
}, [setDim,
|
|
7211
|
+
}, [setDim, zoomToCenter, getMouseInfo]);
|
|
7217
7212
|
var onKeyUp = React__default.useCallback(function (e) {
|
|
7218
7213
|
// Ignore text in Input or Textarea
|
|
7219
7214
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return; // Zoom out on release
|
|
7220
7215
|
|
|
7221
7216
|
if (e.key === " " && getMouseInfo().hover) {
|
|
7222
|
-
|
|
7217
|
+
zoomToCenter(1 / 3, getMouseInfo());
|
|
7223
7218
|
}
|
|
7224
|
-
}, [getMouseInfo,
|
|
7219
|
+
}, [getMouseInfo, zoomToCenter]);
|
|
7225
7220
|
React__default.useEffect(function () {
|
|
7226
7221
|
document.addEventListener("keydown", onKeyDown);
|
|
7227
7222
|
document.addEventListener("keyup", onKeyUp);
|
|
@@ -7233,7 +7228,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7233
7228
|
return /*#__PURE__*/React__default.createElement(Gesture, {
|
|
7234
7229
|
onPan: onPan,
|
|
7235
7230
|
onZoom: onZoom,
|
|
7236
|
-
|
|
7231
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
7237
7232
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7238
7233
|
style: {
|
|
7239
7234
|
display: "inline-block",
|
|
@@ -7401,7 +7396,9 @@ var Board = function Board(_ref) {
|
|
|
7401
7396
|
moveFirst: moveFirst
|
|
7402
7397
|
}, /*#__PURE__*/React__default.createElement(Selector, {
|
|
7403
7398
|
moveFirst: moveFirst
|
|
7404
|
-
}, /*#__PURE__*/React__default.createElement(ActionPane,
|
|
7399
|
+
}, /*#__PURE__*/React__default.createElement(ActionPane, {
|
|
7400
|
+
moveFirst: moveFirst
|
|
7401
|
+
}, /*#__PURE__*/React__default.createElement(CursorPane, null, /*#__PURE__*/React__default.createElement("div", {
|
|
7405
7402
|
onContextMenu: function onContextMenu(e) {
|
|
7406
7403
|
e.preventDefault();
|
|
7407
7404
|
},
|
|
@@ -7412,6 +7409,7 @@ var Board = function Board(_ref) {
|
|
|
7412
7409
|
|
|
7413
7410
|
var TOLERANCE = 100;
|
|
7414
7411
|
var MIN_SIZE = 1000;
|
|
7412
|
+
var SCALE_TOLERANCE = 0.8;
|
|
7415
7413
|
|
|
7416
7414
|
var translateBoundaries = function translateBoundaries(_ref) {
|
|
7417
7415
|
var x = _ref.x,
|
|
@@ -7529,7 +7527,7 @@ var useDim = function useDim() {
|
|
|
7529
7527
|
};
|
|
7530
7528
|
}();
|
|
7531
7529
|
}, [setDim]);
|
|
7532
|
-
var
|
|
7530
|
+
var zoomToCenter = useRecoilCallback(function (_ref5) {
|
|
7533
7531
|
var snapshot = _ref5.snapshot;
|
|
7534
7532
|
return /*#__PURE__*/function () {
|
|
7535
7533
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(factor, zoomCenter) {
|
|
@@ -7608,24 +7606,68 @@ var useDim = function useDim() {
|
|
|
7608
7606
|
};
|
|
7609
7607
|
}();
|
|
7610
7608
|
}, [setDim]);
|
|
7611
|
-
var
|
|
7609
|
+
var zoomToExtent = useRecoilCallback(function (_ref7) {
|
|
7612
7610
|
var snapshot = _ref7.snapshot;
|
|
7613
|
-
return /*#__PURE__*/
|
|
7614
|
-
var
|
|
7611
|
+
return /*#__PURE__*/function () {
|
|
7612
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref8) {
|
|
7613
|
+
var left, top, width, height, _yield$snapshot$getPr3, boardWrapperRect, scaleX, scaleY, newScale, scaleWithTolerance, centerX, centerY;
|
|
7615
7614
|
|
|
7616
|
-
|
|
7615
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
7616
|
+
while (1) {
|
|
7617
|
+
switch (_context3.prev = _context3.next) {
|
|
7618
|
+
case 0:
|
|
7619
|
+
left = _ref8.left, top = _ref8.top, width = _ref8.width, height = _ref8.height;
|
|
7620
|
+
_context3.next = 3;
|
|
7621
|
+
return snapshot.getPromise(ConfigurationAtom);
|
|
7622
|
+
|
|
7623
|
+
case 3:
|
|
7624
|
+
_yield$snapshot$getPr3 = _context3.sent;
|
|
7625
|
+
boardWrapperRect = _yield$snapshot$getPr3.boardWrapperRect;
|
|
7626
|
+
scaleX = boardWrapperRect.width / width;
|
|
7627
|
+
scaleY = boardWrapperRect.height / height;
|
|
7628
|
+
newScale = Math.min(scaleX, scaleY);
|
|
7629
|
+
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7630
|
+
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7631
|
+
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7632
|
+
setDim(function (prev) {
|
|
7633
|
+
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7634
|
+
translateX: centerX,
|
|
7635
|
+
translateY: centerY,
|
|
7636
|
+
scale: scaleWithTolerance
|
|
7637
|
+
});
|
|
7638
|
+
});
|
|
7639
|
+
|
|
7640
|
+
case 12:
|
|
7641
|
+
case "end":
|
|
7642
|
+
return _context3.stop();
|
|
7643
|
+
}
|
|
7644
|
+
}
|
|
7645
|
+
}, _callee3);
|
|
7646
|
+
}));
|
|
7647
|
+
|
|
7648
|
+
return function (_x4) {
|
|
7649
|
+
return _ref9.apply(this, arguments);
|
|
7650
|
+
};
|
|
7651
|
+
}();
|
|
7652
|
+
}, [setDim]);
|
|
7653
|
+
var updateScaleBoundaries = useRecoilCallback(function (_ref10) {
|
|
7654
|
+
var snapshot = _ref10.snapshot;
|
|
7655
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
7656
|
+
var _yield$snapshot$getPr4, _yield$snapshot$getPr5, width, height, boardWrapperRect, scaleX, scaleY, newScale;
|
|
7657
|
+
|
|
7658
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
7617
7659
|
while (1) {
|
|
7618
|
-
switch (
|
|
7660
|
+
switch (_context4.prev = _context4.next) {
|
|
7619
7661
|
case 0:
|
|
7620
|
-
|
|
7662
|
+
_context4.next = 2;
|
|
7621
7663
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7622
7664
|
|
|
7623
7665
|
case 2:
|
|
7624
|
-
_yield$snapshot$
|
|
7625
|
-
_yield$snapshot$
|
|
7626
|
-
width = _yield$snapshot$
|
|
7627
|
-
height = _yield$snapshot$
|
|
7628
|
-
boardWrapperRect = _yield$snapshot$
|
|
7666
|
+
_yield$snapshot$getPr4 = _context4.sent;
|
|
7667
|
+
_yield$snapshot$getPr5 = _yield$snapshot$getPr4.itemExtent;
|
|
7668
|
+
width = _yield$snapshot$getPr5.width;
|
|
7669
|
+
height = _yield$snapshot$getPr5.height;
|
|
7670
|
+
boardWrapperRect = _yield$snapshot$getPr4.boardWrapperRect;
|
|
7629
7671
|
scaleX = boardWrapperRect.width / width;
|
|
7630
7672
|
scaleY = boardWrapperRect.height / height;
|
|
7631
7673
|
newScale = Math.min(scaleX, scaleY);
|
|
@@ -7633,86 +7675,86 @@ var useDim = function useDim() {
|
|
|
7633
7675
|
|
|
7634
7676
|
case 11:
|
|
7635
7677
|
case "end":
|
|
7636
|
-
return
|
|
7678
|
+
return _context4.stop();
|
|
7637
7679
|
}
|
|
7638
7680
|
}
|
|
7639
|
-
},
|
|
7681
|
+
}, _callee4);
|
|
7640
7682
|
}));
|
|
7641
7683
|
}, []);
|
|
7642
|
-
var getCenterCoordinates = useRecoilCallback(function (
|
|
7643
|
-
var snapshot =
|
|
7644
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7645
|
-
var _yield$snapshot$
|
|
7684
|
+
var getCenterCoordinates = useRecoilCallback(function (_ref12) {
|
|
7685
|
+
var snapshot = _ref12.snapshot;
|
|
7686
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
7687
|
+
var _yield$snapshot$getPr6, boardWrapperRect, boardSize, _yield$snapshot$getPr7, translateX, translateY, scale;
|
|
7646
7688
|
|
|
7647
|
-
return regeneratorRuntime.wrap(function
|
|
7689
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
7648
7690
|
while (1) {
|
|
7649
|
-
switch (
|
|
7691
|
+
switch (_context5.prev = _context5.next) {
|
|
7650
7692
|
case 0:
|
|
7651
|
-
|
|
7693
|
+
_context5.next = 2;
|
|
7652
7694
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7653
7695
|
|
|
7654
7696
|
case 2:
|
|
7655
|
-
_yield$snapshot$
|
|
7656
|
-
boardWrapperRect = _yield$snapshot$
|
|
7657
|
-
boardSize = _yield$snapshot$
|
|
7658
|
-
|
|
7697
|
+
_yield$snapshot$getPr6 = _context5.sent;
|
|
7698
|
+
boardWrapperRect = _yield$snapshot$getPr6.boardWrapperRect;
|
|
7699
|
+
boardSize = _yield$snapshot$getPr6.boardSize;
|
|
7700
|
+
_context5.next = 7;
|
|
7659
7701
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7660
7702
|
|
|
7661
7703
|
case 7:
|
|
7662
|
-
_yield$snapshot$
|
|
7663
|
-
translateX = _yield$snapshot$
|
|
7664
|
-
translateY = _yield$snapshot$
|
|
7665
|
-
scale = _yield$snapshot$
|
|
7666
|
-
return
|
|
7704
|
+
_yield$snapshot$getPr7 = _context5.sent;
|
|
7705
|
+
translateX = _yield$snapshot$getPr7.translateX;
|
|
7706
|
+
translateY = _yield$snapshot$getPr7.translateY;
|
|
7707
|
+
scale = _yield$snapshot$getPr7.scale;
|
|
7708
|
+
return _context5.abrupt("return", {
|
|
7667
7709
|
x: (boardWrapperRect.width / 2 - translateX) / scale - boardSize / 2,
|
|
7668
7710
|
y: (boardWrapperRect.height / 2 - translateY) / scale - boardSize / 2
|
|
7669
7711
|
});
|
|
7670
7712
|
|
|
7671
7713
|
case 12:
|
|
7672
7714
|
case "end":
|
|
7673
|
-
return
|
|
7715
|
+
return _context5.stop();
|
|
7674
7716
|
}
|
|
7675
7717
|
}
|
|
7676
|
-
},
|
|
7718
|
+
}, _callee5);
|
|
7677
7719
|
}));
|
|
7678
7720
|
}, []);
|
|
7679
|
-
var updateItemExtent = useRecoilCallback(function (
|
|
7680
|
-
var snapshot =
|
|
7681
|
-
set =
|
|
7682
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7683
|
-
var itemIds, _yield$snapshot$
|
|
7721
|
+
var updateItemExtent = useRecoilCallback(function (_ref14) {
|
|
7722
|
+
var snapshot = _ref14.snapshot,
|
|
7723
|
+
set = _ref14.set;
|
|
7724
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
7725
|
+
var itemIds, _yield$snapshot$getPr8, boardWrapperRect, boardWrapper, boardSize, _yield$snapshot$getPr9, scale, translateX, translateY, _ref16, left, top, width, height, relativeExtent, delta, _delta;
|
|
7684
7726
|
|
|
7685
|
-
return regeneratorRuntime.wrap(function
|
|
7727
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
7686
7728
|
while (1) {
|
|
7687
|
-
switch (
|
|
7729
|
+
switch (_context6.prev = _context6.next) {
|
|
7688
7730
|
case 0:
|
|
7689
|
-
|
|
7731
|
+
_context6.next = 2;
|
|
7690
7732
|
return snapshot.getPromise(ItemListAtom);
|
|
7691
7733
|
|
|
7692
7734
|
case 2:
|
|
7693
|
-
itemIds =
|
|
7694
|
-
|
|
7735
|
+
itemIds = _context6.sent;
|
|
7736
|
+
_context6.next = 5;
|
|
7695
7737
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7696
7738
|
|
|
7697
7739
|
case 5:
|
|
7698
|
-
_yield$snapshot$
|
|
7699
|
-
boardWrapperRect = _yield$snapshot$
|
|
7700
|
-
boardWrapper = _yield$snapshot$
|
|
7701
|
-
boardSize = _yield$snapshot$
|
|
7702
|
-
|
|
7740
|
+
_yield$snapshot$getPr8 = _context6.sent;
|
|
7741
|
+
boardWrapperRect = _yield$snapshot$getPr8.boardWrapperRect;
|
|
7742
|
+
boardWrapper = _yield$snapshot$getPr8.boardWrapper;
|
|
7743
|
+
boardSize = _yield$snapshot$getPr8.boardSize;
|
|
7744
|
+
_context6.next = 11;
|
|
7703
7745
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7704
7746
|
|
|
7705
7747
|
case 11:
|
|
7706
|
-
_yield$snapshot$
|
|
7707
|
-
scale = _yield$snapshot$
|
|
7708
|
-
translateX = _yield$snapshot$
|
|
7709
|
-
translateY = _yield$snapshot$
|
|
7710
|
-
|
|
7748
|
+
_yield$snapshot$getPr9 = _context6.sent;
|
|
7749
|
+
scale = _yield$snapshot$getPr9.scale;
|
|
7750
|
+
translateX = _yield$snapshot$getPr9.translateX;
|
|
7751
|
+
translateY = _yield$snapshot$getPr9.translateY;
|
|
7752
|
+
_ref16 = getItemBoundingBox(itemIds, boardWrapper) || {
|
|
7711
7753
|
left: boardSize / 2 * scale + boardWrapperRect.left + translateX,
|
|
7712
7754
|
top: boardSize / 2 * scale + boardWrapperRect.top + translateY,
|
|
7713
7755
|
width: 0,
|
|
7714
7756
|
height: 0
|
|
7715
|
-
}, left =
|
|
7757
|
+
}, left = _ref16.left, top = _ref16.top, width = _ref16.width, height = _ref16.height;
|
|
7716
7758
|
relativeExtent = {
|
|
7717
7759
|
left: (left - boardWrapperRect.left - translateX) / scale,
|
|
7718
7760
|
top: (top - boardWrapperRect.top - translateY) / scale,
|
|
@@ -7744,10 +7786,10 @@ var useDim = function useDim() {
|
|
|
7744
7786
|
|
|
7745
7787
|
case 22:
|
|
7746
7788
|
case "end":
|
|
7747
|
-
return
|
|
7789
|
+
return _context6.stop();
|
|
7748
7790
|
}
|
|
7749
7791
|
}
|
|
7750
|
-
},
|
|
7792
|
+
}, _callee6);
|
|
7751
7793
|
}));
|
|
7752
7794
|
}, []);
|
|
7753
7795
|
var debouncedUpdateItemExtent = useDebouncedCallback(updateItemExtent, [], 300);
|
|
@@ -7759,7 +7801,9 @@ var useDim = function useDim() {
|
|
|
7759
7801
|
return {
|
|
7760
7802
|
setDim: setDimSafe,
|
|
7761
7803
|
getDim: getDim,
|
|
7762
|
-
zoomTo:
|
|
7804
|
+
zoomTo: zoomToCenter,
|
|
7805
|
+
zoomToCenter: zoomToCenter,
|
|
7806
|
+
zoomToExtent: zoomToExtent,
|
|
7763
7807
|
getCenter: getCenterCoordinates,
|
|
7764
7808
|
updateItemExtent: debouncedUpdateItemExtent
|
|
7765
7809
|
};
|