react-sync-board 0.6.2 → 0.7.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.
- package/dist/cjs/index.js +287 -230
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +287 -230
- 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
|
@@ -4578,6 +4578,18 @@ var computeDistance = function computeDistance(_ref, _ref2) {
|
|
|
4578
4578
|
|
|
4579
4579
|
var empty = function empty() {};
|
|
4580
4580
|
|
|
4581
|
+
var stopPropagation = function stopPropagation(fn) {
|
|
4582
|
+
return function (arg) {
|
|
4583
|
+
var event = arg.event;
|
|
4584
|
+
|
|
4585
|
+
if (!event.isPropagationStopped()) {
|
|
4586
|
+
return fn(arg);
|
|
4587
|
+
}
|
|
4588
|
+
|
|
4589
|
+
return null;
|
|
4590
|
+
};
|
|
4591
|
+
};
|
|
4592
|
+
|
|
4581
4593
|
var protect = function protect(fn) {
|
|
4582
4594
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
4583
4595
|
var _args = arguments;
|
|
@@ -4608,6 +4620,35 @@ var protect = function protect(fn) {
|
|
|
4608
4620
|
}));
|
|
4609
4621
|
};
|
|
4610
4622
|
|
|
4623
|
+
var PromiseQueue = /*#__PURE__*/function () {
|
|
4624
|
+
function PromiseQueue() {
|
|
4625
|
+
_classCallCheck(this, PromiseQueue);
|
|
4626
|
+
|
|
4627
|
+
_defineProperty(this, "lastPromise", Promise.resolve(true));
|
|
4628
|
+
}
|
|
4629
|
+
|
|
4630
|
+
_createClass(PromiseQueue, [{
|
|
4631
|
+
key: "add",
|
|
4632
|
+
value: function add(operation) {
|
|
4633
|
+
var _this = this;
|
|
4634
|
+
|
|
4635
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
4636
|
+
args[_key - 1] = arguments[_key];
|
|
4637
|
+
}
|
|
4638
|
+
|
|
4639
|
+
return new Promise(function (resolve, reject) {
|
|
4640
|
+
_this.lastPromise = _this.lastPromise.then(function () {
|
|
4641
|
+
return stopPropagation(protect(operation)).apply(void 0, args);
|
|
4642
|
+
}).then(resolve)["catch"](reject);
|
|
4643
|
+
});
|
|
4644
|
+
}
|
|
4645
|
+
}]);
|
|
4646
|
+
|
|
4647
|
+
return PromiseQueue;
|
|
4648
|
+
}();
|
|
4649
|
+
|
|
4650
|
+
var promiseQueue = new PromiseQueue();
|
|
4651
|
+
|
|
4611
4652
|
var Gesture = function Gesture(_ref6) {
|
|
4612
4653
|
var children = _ref6.children,
|
|
4613
4654
|
_ref6$onDrag = _ref6.onDrag,
|
|
@@ -4624,57 +4665,25 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4624
4665
|
onLongTap = _ref6$onLongTap === void 0 ? empty : _ref6$onLongTap,
|
|
4625
4666
|
_ref6$onDoubleTap = _ref6.onDoubleTap,
|
|
4626
4667
|
onDoubleTap = _ref6$onDoubleTap === void 0 ? empty : _ref6$onDoubleTap,
|
|
4627
|
-
onZoom = _ref6.onZoom
|
|
4668
|
+
onZoom = _ref6.onZoom,
|
|
4669
|
+
_ref6$mainAction = _ref6.mainAction,
|
|
4670
|
+
mainAction = _ref6$mainAction === void 0 ? "drag" : _ref6$mainAction;
|
|
4628
4671
|
var wrapperRef = React__default['default'].useRef(null);
|
|
4629
4672
|
var stateRef = React__default['default'].useRef({
|
|
4630
4673
|
moving: false,
|
|
4631
4674
|
pointers: {},
|
|
4632
4675
|
mainPointer: undefined
|
|
4633
4676
|
});
|
|
4634
|
-
var
|
|
4635
|
-
|
|
4636
|
-
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4641
|
-
|
|
4642
|
-
|
|
4643
|
-
|
|
4644
|
-
|
|
4645
|
-
case 2:
|
|
4646
|
-
queueRef.current.shift();
|
|
4647
|
-
|
|
4648
|
-
if (!(queueRef.current.length !== 0)) {
|
|
4649
|
-
_context2.next = 6;
|
|
4650
|
-
break;
|
|
4651
|
-
}
|
|
4652
|
-
|
|
4653
|
-
_context2.next = 6;
|
|
4654
|
-
return protect(queueRef.current[0])();
|
|
4655
|
-
|
|
4656
|
-
case 6:
|
|
4657
|
-
case "end":
|
|
4658
|
-
return _context2.stop();
|
|
4659
|
-
}
|
|
4660
|
-
}
|
|
4661
|
-
}, _callee2);
|
|
4662
|
-
})));
|
|
4663
|
-
|
|
4664
|
-
if (queueRef.current.length === 1) {
|
|
4665
|
-
protect(queueRef.current[0])();
|
|
4666
|
-
}
|
|
4667
|
-
}, []);
|
|
4668
|
-
var onWheel = React__default['default'].useCallback(function (e) {
|
|
4669
|
-
var deltaX = e.deltaX,
|
|
4670
|
-
deltaY = e.deltaY,
|
|
4671
|
-
clientX = e.clientX,
|
|
4672
|
-
clientY = e.clientY,
|
|
4673
|
-
deltaMode = e.deltaMode,
|
|
4674
|
-
ctrlKey = e.ctrlKey,
|
|
4675
|
-
altKey = e.altKey,
|
|
4676
|
-
metaKey = e.metaKey,
|
|
4677
|
-
target = e.target; // On a MacOs trackpad, the pinch gesture sets the ctrlKey to true.
|
|
4677
|
+
var onWheel = React__default['default'].useCallback(function (event) {
|
|
4678
|
+
var deltaX = event.deltaX,
|
|
4679
|
+
deltaY = event.deltaY,
|
|
4680
|
+
clientX = event.clientX,
|
|
4681
|
+
clientY = event.clientY,
|
|
4682
|
+
deltaMode = event.deltaMode,
|
|
4683
|
+
ctrlKey = event.ctrlKey,
|
|
4684
|
+
altKey = event.altKey,
|
|
4685
|
+
metaKey = event.metaKey,
|
|
4686
|
+
target = event.target; // On a MacOs trackpad, the pinch gesture sets the ctrlKey to true.
|
|
4678
4687
|
// In that situation, we want to use the custom scaling, not the browser default zoom.
|
|
4679
4688
|
// Hence in this situation we avoid to return immediately.
|
|
4680
4689
|
|
|
@@ -4687,14 +4696,14 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4687
4696
|
|
|
4688
4697
|
|
|
4689
4698
|
if (isMacOS() && !ctrlKey) {
|
|
4690
|
-
|
|
4699
|
+
promiseQueue.add(onPan, {
|
|
4691
4700
|
deltaX: -2 * deltaX,
|
|
4692
4701
|
deltaY: -2 * deltaY,
|
|
4693
4702
|
button: 1,
|
|
4694
4703
|
ctrlKey: ctrlKey,
|
|
4695
4704
|
metaKey: metaKey,
|
|
4696
4705
|
target: target,
|
|
4697
|
-
event:
|
|
4706
|
+
event: event
|
|
4698
4707
|
});
|
|
4699
4708
|
} else {
|
|
4700
4709
|
// Quit if onZoom is not set
|
|
@@ -4716,25 +4725,25 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4716
4725
|
scale *= 2;
|
|
4717
4726
|
}
|
|
4718
4727
|
|
|
4719
|
-
|
|
4728
|
+
promiseQueue.add(onZoom, {
|
|
4720
4729
|
scale: scale,
|
|
4721
4730
|
clientX: clientX,
|
|
4722
4731
|
clientY: clientY,
|
|
4723
|
-
event:
|
|
4732
|
+
event: event
|
|
4724
4733
|
});
|
|
4725
4734
|
}
|
|
4726
|
-
}, [onPan, onZoom
|
|
4727
|
-
var onPointerDown = React__default['default'].useCallback(function (
|
|
4728
|
-
var target =
|
|
4729
|
-
button =
|
|
4730
|
-
clientX =
|
|
4731
|
-
clientY =
|
|
4732
|
-
pointerId =
|
|
4733
|
-
altKey =
|
|
4734
|
-
ctrlKey =
|
|
4735
|
-
metaKey =
|
|
4736
|
-
isPrimary =
|
|
4737
|
-
|
|
4735
|
+
}, [onPan, onZoom]);
|
|
4736
|
+
var onPointerDown = React__default['default'].useCallback(function (event) {
|
|
4737
|
+
var target = event.target,
|
|
4738
|
+
button = event.button,
|
|
4739
|
+
clientX = event.clientX,
|
|
4740
|
+
clientY = event.clientY,
|
|
4741
|
+
pointerId = event.pointerId,
|
|
4742
|
+
altKey = event.altKey,
|
|
4743
|
+
ctrlKey = event.ctrlKey,
|
|
4744
|
+
metaKey = event.metaKey,
|
|
4745
|
+
isPrimary = event.isPrimary; // Add pointer to map
|
|
4746
|
+
|
|
4738
4747
|
stateRef.current.pointers[pointerId] = {
|
|
4739
4748
|
clientX: clientX,
|
|
4740
4749
|
clientY: clientY
|
|
@@ -4755,7 +4764,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4755
4764
|
|
|
4756
4765
|
var newClientX = (clientX2 + clientX) / 2;
|
|
4757
4766
|
var newClientY = (clientY2 + clientY) / 2;
|
|
4758
|
-
var distance = computeDistance([clientX2, clientY2], [clientX, clientY]); // We update previous position as the new position is the center
|
|
4767
|
+
var distance = computeDistance([clientX2, clientY2], [clientX, clientY]); // We update previous position as the new position is the center between both fingers
|
|
4759
4768
|
|
|
4760
4769
|
Object.assign(stateRef.current, {
|
|
4761
4770
|
pressed: true,
|
|
@@ -4791,29 +4800,31 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4791
4800
|
prevX: clientX,
|
|
4792
4801
|
prevY: clientY,
|
|
4793
4802
|
currentButton: button,
|
|
4803
|
+
pointerDownEvent: event,
|
|
4794
4804
|
target: target,
|
|
4795
4805
|
timeStart: Date.now(),
|
|
4796
|
-
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
4797
|
-
return regeneratorRuntime.wrap(function
|
|
4806
|
+
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
4807
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
4798
4808
|
while (1) {
|
|
4799
|
-
switch (
|
|
4809
|
+
switch (_context2.prev = _context2.next) {
|
|
4800
4810
|
case 0:
|
|
4801
4811
|
stateRef.current.noTap = true;
|
|
4802
|
-
|
|
4812
|
+
promiseQueue.add(onLongTap, {
|
|
4803
4813
|
clientX: clientX,
|
|
4804
4814
|
clientY: clientY,
|
|
4805
4815
|
altKey: altKey,
|
|
4806
4816
|
ctrlKey: ctrlKey,
|
|
4807
4817
|
metaKey: metaKey,
|
|
4808
|
-
target: target
|
|
4818
|
+
target: target,
|
|
4819
|
+
event: event
|
|
4809
4820
|
});
|
|
4810
4821
|
|
|
4811
4822
|
case 2:
|
|
4812
4823
|
case "end":
|
|
4813
|
-
return
|
|
4824
|
+
return _context2.stop();
|
|
4814
4825
|
}
|
|
4815
4826
|
}
|
|
4816
|
-
},
|
|
4827
|
+
}, _callee2);
|
|
4817
4828
|
})), 750)
|
|
4818
4829
|
});
|
|
4819
4830
|
|
|
@@ -4823,16 +4834,17 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4823
4834
|
// eslint-disable-next-line no-console
|
|
4824
4835
|
console.log("Fail to capture pointer", e);
|
|
4825
4836
|
}
|
|
4826
|
-
}, [onLongTap
|
|
4827
|
-
var onPointerMove = React__default['default'].useCallback(function (
|
|
4837
|
+
}, [onLongTap]);
|
|
4838
|
+
var onPointerMove = React__default['default'].useCallback(function (event) {
|
|
4828
4839
|
if (stateRef.current.pressed) {
|
|
4829
|
-
var pointerId =
|
|
4830
|
-
eventClientX =
|
|
4831
|
-
eventClientY =
|
|
4832
|
-
altKey =
|
|
4833
|
-
ctrlKey =
|
|
4834
|
-
metaKey =
|
|
4835
|
-
|
|
4840
|
+
var pointerId = event.pointerId,
|
|
4841
|
+
eventClientX = event.clientX,
|
|
4842
|
+
eventClientY = event.clientY,
|
|
4843
|
+
altKey = event.altKey,
|
|
4844
|
+
ctrlKey = event.ctrlKey,
|
|
4845
|
+
metaKey = event.metaKey,
|
|
4846
|
+
buttons = event.buttons,
|
|
4847
|
+
pointerType = event.pointerType;
|
|
4836
4848
|
|
|
4837
4849
|
if (stateRef.current.mainPointer !== pointerId) {
|
|
4838
4850
|
// Event from other pointer
|
|
@@ -4865,13 +4877,20 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4865
4877
|
clientY = eventClientY;
|
|
4866
4878
|
} // We drag if
|
|
4867
4879
|
// On non touch device
|
|
4868
|
-
// -
|
|
4869
|
-
// -
|
|
4880
|
+
// - Only button is pressed (1)
|
|
4881
|
+
// - any special key is no pressed
|
|
4870
4882
|
// or on touch devices
|
|
4871
4883
|
// - We use only one finger
|
|
4872
4884
|
|
|
4873
4885
|
|
|
4874
|
-
var
|
|
4886
|
+
var altAction = altKey || ctrlKey || metaKey || buttons !== 1;
|
|
4887
|
+
|
|
4888
|
+
if (mainAction !== "drag") {
|
|
4889
|
+
altAction = !altAction;
|
|
4890
|
+
}
|
|
4891
|
+
|
|
4892
|
+
var shouldDrag = pointerType !== "touch" ? !altAction : !twoFingers;
|
|
4893
|
+
var shouldPan = pointerType !== "touch" ? altAction : twoFingers;
|
|
4875
4894
|
|
|
4876
4895
|
if (shouldDrag) {
|
|
4877
4896
|
// Send drag start on first move
|
|
@@ -4880,7 +4899,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4880
4899
|
stateRef.current.gestureStart = true; // Clear tap timeout
|
|
4881
4900
|
|
|
4882
4901
|
clearTimeout(stateRef.current.longTapTimeout);
|
|
4883
|
-
|
|
4902
|
+
promiseQueue.add(onDragStart, {
|
|
4884
4903
|
deltaX: 0,
|
|
4885
4904
|
deltaY: 0,
|
|
4886
4905
|
startX: stateRef.current.startX,
|
|
@@ -4894,17 +4913,16 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4894
4913
|
ctrlKey: ctrlKey,
|
|
4895
4914
|
metaKey: metaKey,
|
|
4896
4915
|
target: stateRef.current.target,
|
|
4897
|
-
event:
|
|
4916
|
+
event: stateRef.current.pointerDownEvent
|
|
4898
4917
|
});
|
|
4899
|
-
}
|
|
4900
|
-
|
|
4918
|
+
}
|
|
4901
4919
|
|
|
4902
4920
|
var deltaX = clientX - stateRef.current.prevX;
|
|
4903
4921
|
var deltaY = clientY - stateRef.current.prevY;
|
|
4904
4922
|
var distanceX = clientX - stateRef.current.startX;
|
|
4905
4923
|
var distanceY = clientY - stateRef.current.startY; // Drag event
|
|
4906
4924
|
|
|
4907
|
-
|
|
4925
|
+
promiseQueue.add(onDrag, {
|
|
4908
4926
|
deltaX: deltaX,
|
|
4909
4927
|
deltaY: deltaY,
|
|
4910
4928
|
startX: stateRef.current.startX,
|
|
@@ -4918,9 +4936,11 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4918
4936
|
ctrlKey: ctrlKey,
|
|
4919
4937
|
metaKey: metaKey,
|
|
4920
4938
|
target: stateRef.current.target,
|
|
4921
|
-
event:
|
|
4939
|
+
event: event
|
|
4922
4940
|
});
|
|
4923
|
-
}
|
|
4941
|
+
}
|
|
4942
|
+
|
|
4943
|
+
if (shouldPan) {
|
|
4924
4944
|
if (!stateRef.current.gestureStart) {
|
|
4925
4945
|
wrapperRef.current.style.cursor = "move";
|
|
4926
4946
|
stateRef.current.gestureStart = true; // Clear tap timeout on first move
|
|
@@ -4935,7 +4955,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4935
4955
|
|
|
4936
4956
|
var target = stateRef.current.target; // Pan event
|
|
4937
4957
|
|
|
4938
|
-
|
|
4958
|
+
promiseQueue.add(onPan, {
|
|
4939
4959
|
deltaX: _deltaX,
|
|
4940
4960
|
deltaY: _deltaY,
|
|
4941
4961
|
button: stateRef.current.currentButton,
|
|
@@ -4943,18 +4963,18 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4943
4963
|
ctrlKey: ctrlKey,
|
|
4944
4964
|
metaKey: metaKey,
|
|
4945
4965
|
target: target,
|
|
4946
|
-
event:
|
|
4966
|
+
event: event
|
|
4947
4967
|
});
|
|
4948
4968
|
|
|
4949
4969
|
if (twoFingers && distance !== stateRef.current.prevDistance && onZoom) {
|
|
4950
4970
|
var scale = stateRef.current.prevDistance - distance;
|
|
4951
4971
|
|
|
4952
4972
|
if (Math.abs(scale) > 0) {
|
|
4953
|
-
|
|
4973
|
+
promiseQueue.add(onZoom, {
|
|
4954
4974
|
scale: scale,
|
|
4955
4975
|
clientX: clientX,
|
|
4956
4976
|
clientY: clientY,
|
|
4957
|
-
event:
|
|
4977
|
+
event: event
|
|
4958
4978
|
});
|
|
4959
4979
|
stateRef.current.prevDistance = distance;
|
|
4960
4980
|
}
|
|
@@ -4964,15 +4984,15 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4964
4984
|
stateRef.current.prevX = clientX;
|
|
4965
4985
|
stateRef.current.prevY = clientY;
|
|
4966
4986
|
}
|
|
4967
|
-
}, [onDrag, onDragStart, onPan, onZoom
|
|
4968
|
-
var onPointerUp = React__default['default'].useCallback(function (
|
|
4969
|
-
var clientX =
|
|
4970
|
-
clientY =
|
|
4971
|
-
altKey =
|
|
4972
|
-
ctrlKey =
|
|
4973
|
-
metaKey =
|
|
4974
|
-
target =
|
|
4975
|
-
pointerId =
|
|
4987
|
+
}, [mainAction, onDrag, onDragStart, onPan, onZoom]);
|
|
4988
|
+
var onPointerUp = React__default['default'].useCallback(function (event) {
|
|
4989
|
+
var clientX = event.clientX,
|
|
4990
|
+
clientY = event.clientY,
|
|
4991
|
+
altKey = event.altKey,
|
|
4992
|
+
ctrlKey = event.ctrlKey,
|
|
4993
|
+
metaKey = event.metaKey,
|
|
4994
|
+
target = event.target,
|
|
4995
|
+
pointerId = event.pointerId;
|
|
4976
4996
|
|
|
4977
4997
|
if (!stateRef.current.pointers[pointerId]) {
|
|
4978
4998
|
// Pointer already gone previously with another event
|
|
@@ -5011,7 +5031,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5011
5031
|
if (stateRef.current.moving) {
|
|
5012
5032
|
// If we were moving, send drag end event
|
|
5013
5033
|
stateRef.current.moving = false;
|
|
5014
|
-
|
|
5034
|
+
promiseQueue.add(onDragEnd, {
|
|
5015
5035
|
deltaX: clientX - stateRef.current.prevX,
|
|
5016
5036
|
deltaY: clientY - stateRef.current.prevY,
|
|
5017
5037
|
startX: stateRef.current.startX,
|
|
@@ -5024,7 +5044,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5024
5044
|
altKey: altKey,
|
|
5025
5045
|
ctrlKey: ctrlKey,
|
|
5026
5046
|
metaKey: metaKey,
|
|
5027
|
-
event:
|
|
5047
|
+
event: event
|
|
5028
5048
|
});
|
|
5029
5049
|
wrapperRef.current.style.cursor = "auto";
|
|
5030
5050
|
} else {
|
|
@@ -5034,20 +5054,35 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5034
5054
|
stateRef.current.noTap = false;
|
|
5035
5055
|
} // Send tap event only if time less than 300ms
|
|
5036
5056
|
else if (stateRef.current.timeStart - now < 300) {
|
|
5037
|
-
|
|
5057
|
+
promiseQueue.add(onTap, {
|
|
5038
5058
|
clientX: clientX,
|
|
5039
5059
|
clientY: clientY,
|
|
5040
5060
|
altKey: altKey,
|
|
5041
5061
|
ctrlKey: ctrlKey,
|
|
5042
5062
|
metaKey: metaKey,
|
|
5043
|
-
target: target
|
|
5063
|
+
target: target,
|
|
5064
|
+
event: event
|
|
5044
5065
|
});
|
|
5045
5066
|
}
|
|
5046
5067
|
}
|
|
5047
|
-
}, [onDragEnd, onTap
|
|
5068
|
+
}, [onDragEnd, onTap]);
|
|
5048
5069
|
var onDoubleTapHandler = React__default['default'].useCallback(function (event) {
|
|
5049
|
-
|
|
5050
|
-
|
|
5070
|
+
var clientX = event.clientX,
|
|
5071
|
+
clientY = event.clientY,
|
|
5072
|
+
altKey = event.altKey,
|
|
5073
|
+
ctrlKey = event.ctrlKey,
|
|
5074
|
+
metaKey = event.metaKey,
|
|
5075
|
+
target = event.target;
|
|
5076
|
+
promiseQueue.add(onDoubleTap, {
|
|
5077
|
+
clientX: clientX,
|
|
5078
|
+
clientY: clientY,
|
|
5079
|
+
altKey: altKey,
|
|
5080
|
+
ctrlKey: ctrlKey,
|
|
5081
|
+
metaKey: metaKey,
|
|
5082
|
+
target: target,
|
|
5083
|
+
event: event
|
|
5084
|
+
});
|
|
5085
|
+
}, [onDoubleTap]);
|
|
5051
5086
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
5052
5087
|
onWheel: onWheel,
|
|
5053
5088
|
onPointerDown: onPointerDown,
|
|
@@ -5939,24 +5974,20 @@ var Selector = function Selector(_ref) {
|
|
|
5939
5974
|
}));
|
|
5940
5975
|
}, [setSelected]);
|
|
5941
5976
|
useThrottledEffect(updateSelected, [selector, updateSelected], 200);
|
|
5942
|
-
|
|
5943
|
-
var onDragStart = /*#__PURE__*/function () {
|
|
5977
|
+
var onDragStart = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
5944
5978
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(event) {
|
|
5945
|
-
var
|
|
5979
|
+
var foundElement;
|
|
5946
5980
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
5947
5981
|
while (1) {
|
|
5948
5982
|
switch (_context2.prev = _context2.next) {
|
|
5949
5983
|
case 0:
|
|
5950
|
-
|
|
5951
|
-
_context2.next = 3;
|
|
5984
|
+
_context2.next = 2;
|
|
5952
5985
|
return findElementUnderPointer(event);
|
|
5953
5986
|
|
|
5954
|
-
case
|
|
5987
|
+
case 2:
|
|
5955
5988
|
foundElement = _context2.sent;
|
|
5956
|
-
metaKeyPressed = altKey || ctrlKey || metaKey;
|
|
5957
|
-
goodButton = moveFirst ? button === 1 || button === 0 && metaKeyPressed : button === 0 && !metaKeyPressed;
|
|
5958
5989
|
|
|
5959
|
-
if (
|
|
5990
|
+
if (!foundElement) {
|
|
5960
5991
|
stateRef.current.moving = true;
|
|
5961
5992
|
setBoardState(function (prev) {
|
|
5962
5993
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -5966,7 +5997,7 @@ var Selector = function Selector(_ref) {
|
|
|
5966
5997
|
wrapperRef.current.style.cursor = "crosshair";
|
|
5967
5998
|
}
|
|
5968
5999
|
|
|
5969
|
-
case
|
|
6000
|
+
case 4:
|
|
5970
6001
|
case "end":
|
|
5971
6002
|
return _context2.stop();
|
|
5972
6003
|
}
|
|
@@ -5974,11 +6005,10 @@ var Selector = function Selector(_ref) {
|
|
|
5974
6005
|
}, _callee2);
|
|
5975
6006
|
}));
|
|
5976
6007
|
|
|
5977
|
-
return function
|
|
6008
|
+
return function (_x) {
|
|
5978
6009
|
return _ref4.apply(this, arguments);
|
|
5979
6010
|
};
|
|
5980
|
-
}();
|
|
5981
|
-
|
|
6011
|
+
}(), [findElementUnderPointer, setBoardState]);
|
|
5982
6012
|
var onDrag = recoil.useRecoilCallback(function (_ref5) {
|
|
5983
6013
|
var snapshot = _ref5.snapshot;
|
|
5984
6014
|
return /*#__PURE__*/function () {
|
|
@@ -6041,8 +6071,7 @@ var Selector = function Selector(_ref) {
|
|
|
6041
6071
|
};
|
|
6042
6072
|
}();
|
|
6043
6073
|
}, []);
|
|
6044
|
-
|
|
6045
|
-
var onDragEnd = function onDragEnd() {
|
|
6074
|
+
var onDragEnd = React__default['default'].useCallback(function () {
|
|
6046
6075
|
if (stateRef.current.moving) {
|
|
6047
6076
|
setBoardState(function (prev) {
|
|
6048
6077
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -6055,8 +6084,7 @@ var Selector = function Selector(_ref) {
|
|
|
6055
6084
|
});
|
|
6056
6085
|
wrapperRef.current.style.cursor = "auto";
|
|
6057
6086
|
}
|
|
6058
|
-
};
|
|
6059
|
-
|
|
6087
|
+
}, [setBoardState]);
|
|
6060
6088
|
var onLongTap = React__default['default'].useCallback(function (_ref8) {
|
|
6061
6089
|
var target = _ref8.target;
|
|
6062
6090
|
var foundElement = insideClass(target, "item");
|
|
@@ -6137,7 +6165,8 @@ var Selector = function Selector(_ref) {
|
|
|
6137
6165
|
onDrag: onDrag,
|
|
6138
6166
|
onDragEnd: onDragEnd,
|
|
6139
6167
|
onTap: onTap,
|
|
6140
|
-
onLongTap: onLongTap
|
|
6168
|
+
onLongTap: onLongTap,
|
|
6169
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
6141
6170
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6142
6171
|
ref: wrapperRef
|
|
6143
6172
|
}, selector.moving && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
@@ -6230,23 +6259,24 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6230
6259
|
var snapshot = _ref4.snapshot;
|
|
6231
6260
|
return /*#__PURE__*/function () {
|
|
6232
6261
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
6233
|
-
var deltaX, deltaY, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6262
|
+
var deltaX, deltaY, originalEvent, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6234
6263
|
|
|
6235
6264
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
6236
6265
|
while (1) {
|
|
6237
6266
|
switch (_context2.prev = _context2.next) {
|
|
6238
6267
|
case 0:
|
|
6239
|
-
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY;
|
|
6268
|
+
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY, originalEvent = _ref5.event;
|
|
6240
6269
|
|
|
6241
6270
|
if (!actionRef.current.moving) {
|
|
6242
|
-
_context2.next =
|
|
6271
|
+
_context2.next = 11;
|
|
6243
6272
|
break;
|
|
6244
6273
|
}
|
|
6245
6274
|
|
|
6246
|
-
|
|
6275
|
+
originalEvent.stopPropagation();
|
|
6276
|
+
_context2.next = 5;
|
|
6247
6277
|
return snapshot.getPromise(BoardTransformAtom);
|
|
6248
6278
|
|
|
6249
|
-
case
|
|
6279
|
+
case 5:
|
|
6250
6280
|
_yield$snapshot$getPr = _context2.sent;
|
|
6251
6281
|
scale = _yield$snapshot$getPr.scale;
|
|
6252
6282
|
moveX = actionRef.current.remainX + deltaX / scale;
|
|
@@ -6261,7 +6291,7 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6261
6291
|
}) : prev;
|
|
6262
6292
|
});
|
|
6263
6293
|
|
|
6264
|
-
case
|
|
6294
|
+
case 11:
|
|
6265
6295
|
case "end":
|
|
6266
6296
|
return _context2.stop();
|
|
6267
6297
|
}
|
|
@@ -6986,8 +7016,6 @@ var usePositionNavigator = function usePositionNavigator() {
|
|
|
6986
7016
|
return null;
|
|
6987
7017
|
};
|
|
6988
7018
|
|
|
6989
|
-
var SCALE_TOLERANCE = 0.8;
|
|
6990
|
-
|
|
6991
7019
|
var PanZoom = function PanZoom(_ref) {
|
|
6992
7020
|
var children = _ref.children,
|
|
6993
7021
|
_ref$moveFirst = _ref.moveFirst,
|
|
@@ -6997,7 +7025,8 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6997
7025
|
|
|
6998
7026
|
var _useDim = useDim(),
|
|
6999
7027
|
setDim = _useDim.setDim,
|
|
7000
|
-
|
|
7028
|
+
zoomToCenter = _useDim.zoomToCenter,
|
|
7029
|
+
zoomToExtent = _useDim.zoomToExtent;
|
|
7001
7030
|
|
|
7002
7031
|
var _useRecoilValue = recoil.useRecoilValue(ConfigurationAtom),
|
|
7003
7032
|
itemExtentGlobal = _useRecoilValue.itemExtent;
|
|
@@ -7013,10 +7042,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7013
7042
|
var getMouseInfo = useMousePosition(wrappedRef); // Hooks to save/restore position
|
|
7014
7043
|
|
|
7015
7044
|
usePositionNavigator();
|
|
7045
|
+
/**
|
|
7046
|
+
* Center board on startup
|
|
7047
|
+
*/
|
|
7048
|
+
|
|
7016
7049
|
var centerBoard = recoil.useRecoilCallback(function (_ref2) {
|
|
7017
7050
|
var snapshot = _ref2.snapshot;
|
|
7018
7051
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
7019
|
-
var _yield$snapshot$getPr,
|
|
7052
|
+
var _yield$snapshot$getPr, itemExtent;
|
|
7020
7053
|
|
|
7021
7054
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
7022
7055
|
while (1) {
|
|
@@ -7027,34 +7060,17 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7027
7060
|
|
|
7028
7061
|
case 2:
|
|
7029
7062
|
_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
|
-
});
|
|
7063
|
+
itemExtent = _yield$snapshot$getPr.itemExtent;
|
|
7064
|
+
zoomToExtent(itemExtent);
|
|
7049
7065
|
|
|
7050
|
-
case
|
|
7066
|
+
case 5:
|
|
7051
7067
|
case "end":
|
|
7052
7068
|
return _context.stop();
|
|
7053
7069
|
}
|
|
7054
7070
|
}
|
|
7055
7071
|
}, _callee);
|
|
7056
7072
|
}));
|
|
7057
|
-
}, [
|
|
7073
|
+
}, [zoomToExtent]);
|
|
7058
7074
|
React__default['default'].useEffect(function () {
|
|
7059
7075
|
if (!centered && itemExtentGlobal.left) {
|
|
7060
7076
|
// Center board on first valid extent
|
|
@@ -7066,7 +7082,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7066
7082
|
var clientX = _ref4.clientX,
|
|
7067
7083
|
clientY = _ref4.clientY,
|
|
7068
7084
|
scale = _ref4.scale;
|
|
7069
|
-
|
|
7085
|
+
zoomToCenter(1 - scale / 500, {
|
|
7070
7086
|
x: clientX,
|
|
7071
7087
|
y: clientY
|
|
7072
7088
|
}); // Update the board zooming state
|
|
@@ -7084,7 +7100,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7084
7100
|
zooming: true
|
|
7085
7101
|
}) : prev;
|
|
7086
7102
|
});
|
|
7087
|
-
}, [setBoardState,
|
|
7103
|
+
}, [setBoardState, zoomToCenter]);
|
|
7088
7104
|
var onPan = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
7089
7105
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
7090
7106
|
var deltaX, deltaY;
|
|
@@ -7126,14 +7142,6 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7126
7142
|
return _ref6.apply(this, arguments);
|
|
7127
7143
|
};
|
|
7128
7144
|
}(), [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]);
|
|
7137
7145
|
var onKeyDown = recoil.useRecoilCallback(function (_ref7) {
|
|
7138
7146
|
var snapshot = _ref7.snapshot;
|
|
7139
7147
|
return /*#__PURE__*/function () {
|
|
@@ -7218,14 +7226,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7218
7226
|
translateX: prev.translateX + moveX
|
|
7219
7227
|
});
|
|
7220
7228
|
});
|
|
7221
|
-
|
|
7229
|
+
zoomToCenter(zoom);
|
|
7222
7230
|
e.preventDefault();
|
|
7223
7231
|
|
|
7224
7232
|
case 31:
|
|
7225
7233
|
// Temporary zoom
|
|
7226
7234
|
if (e.key === " " && !e.repeat) {
|
|
7227
7235
|
if (getMouseInfo().hover) {
|
|
7228
|
-
|
|
7236
|
+
zoomToCenter(3, getMouseInfo());
|
|
7229
7237
|
}
|
|
7230
7238
|
}
|
|
7231
7239
|
|
|
@@ -7241,15 +7249,15 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7241
7249
|
return _ref8.apply(this, arguments);
|
|
7242
7250
|
};
|
|
7243
7251
|
}();
|
|
7244
|
-
}, [setDim,
|
|
7252
|
+
}, [setDim, zoomToCenter, getMouseInfo]);
|
|
7245
7253
|
var onKeyUp = React__default['default'].useCallback(function (e) {
|
|
7246
7254
|
// Ignore text in Input or Textarea
|
|
7247
7255
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return; // Zoom out on release
|
|
7248
7256
|
|
|
7249
7257
|
if (e.key === " " && getMouseInfo().hover) {
|
|
7250
|
-
|
|
7258
|
+
zoomToCenter(1 / 3, getMouseInfo());
|
|
7251
7259
|
}
|
|
7252
|
-
}, [getMouseInfo,
|
|
7260
|
+
}, [getMouseInfo, zoomToCenter]);
|
|
7253
7261
|
React__default['default'].useEffect(function () {
|
|
7254
7262
|
document.addEventListener("keydown", onKeyDown);
|
|
7255
7263
|
document.addEventListener("keyup", onKeyUp);
|
|
@@ -7261,7 +7269,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7261
7269
|
return /*#__PURE__*/React__default['default'].createElement(Gesture, {
|
|
7262
7270
|
onPan: onPan,
|
|
7263
7271
|
onZoom: onZoom,
|
|
7264
|
-
|
|
7272
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
7265
7273
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7266
7274
|
style: {
|
|
7267
7275
|
display: "inline-block",
|
|
@@ -7429,7 +7437,9 @@ var Board = function Board(_ref) {
|
|
|
7429
7437
|
moveFirst: moveFirst
|
|
7430
7438
|
}, /*#__PURE__*/React__default['default'].createElement(Selector, {
|
|
7431
7439
|
moveFirst: moveFirst
|
|
7432
|
-
}, /*#__PURE__*/React__default['default'].createElement(ActionPane,
|
|
7440
|
+
}, /*#__PURE__*/React__default['default'].createElement(ActionPane, {
|
|
7441
|
+
moveFirst: moveFirst
|
|
7442
|
+
}, /*#__PURE__*/React__default['default'].createElement(CursorPane, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7433
7443
|
onContextMenu: function onContextMenu(e) {
|
|
7434
7444
|
e.preventDefault();
|
|
7435
7445
|
},
|
|
@@ -7440,6 +7450,7 @@ var Board = function Board(_ref) {
|
|
|
7440
7450
|
|
|
7441
7451
|
var TOLERANCE = 100;
|
|
7442
7452
|
var MIN_SIZE = 1000;
|
|
7453
|
+
var SCALE_TOLERANCE = 0.8;
|
|
7443
7454
|
|
|
7444
7455
|
var translateBoundaries = function translateBoundaries(_ref) {
|
|
7445
7456
|
var x = _ref.x,
|
|
@@ -7557,7 +7568,7 @@ var useDim = function useDim() {
|
|
|
7557
7568
|
};
|
|
7558
7569
|
}();
|
|
7559
7570
|
}, [setDim]);
|
|
7560
|
-
var
|
|
7571
|
+
var zoomToCenter = recoil.useRecoilCallback(function (_ref5) {
|
|
7561
7572
|
var snapshot = _ref5.snapshot;
|
|
7562
7573
|
return /*#__PURE__*/function () {
|
|
7563
7574
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(factor, zoomCenter) {
|
|
@@ -7636,24 +7647,68 @@ var useDim = function useDim() {
|
|
|
7636
7647
|
};
|
|
7637
7648
|
}();
|
|
7638
7649
|
}, [setDim]);
|
|
7639
|
-
var
|
|
7650
|
+
var zoomToExtent = recoil.useRecoilCallback(function (_ref7) {
|
|
7640
7651
|
var snapshot = _ref7.snapshot;
|
|
7641
|
-
return /*#__PURE__*/
|
|
7642
|
-
var
|
|
7652
|
+
return /*#__PURE__*/function () {
|
|
7653
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref8) {
|
|
7654
|
+
var left, top, width, height, _yield$snapshot$getPr3, boardWrapperRect, scaleX, scaleY, newScale, scaleWithTolerance, centerX, centerY;
|
|
7643
7655
|
|
|
7644
|
-
|
|
7656
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
7657
|
+
while (1) {
|
|
7658
|
+
switch (_context3.prev = _context3.next) {
|
|
7659
|
+
case 0:
|
|
7660
|
+
left = _ref8.left, top = _ref8.top, width = _ref8.width, height = _ref8.height;
|
|
7661
|
+
_context3.next = 3;
|
|
7662
|
+
return snapshot.getPromise(ConfigurationAtom);
|
|
7663
|
+
|
|
7664
|
+
case 3:
|
|
7665
|
+
_yield$snapshot$getPr3 = _context3.sent;
|
|
7666
|
+
boardWrapperRect = _yield$snapshot$getPr3.boardWrapperRect;
|
|
7667
|
+
scaleX = boardWrapperRect.width / width;
|
|
7668
|
+
scaleY = boardWrapperRect.height / height;
|
|
7669
|
+
newScale = Math.min(scaleX, scaleY);
|
|
7670
|
+
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7671
|
+
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7672
|
+
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7673
|
+
setDim(function (prev) {
|
|
7674
|
+
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7675
|
+
translateX: centerX,
|
|
7676
|
+
translateY: centerY,
|
|
7677
|
+
scale: scaleWithTolerance
|
|
7678
|
+
});
|
|
7679
|
+
});
|
|
7680
|
+
|
|
7681
|
+
case 12:
|
|
7682
|
+
case "end":
|
|
7683
|
+
return _context3.stop();
|
|
7684
|
+
}
|
|
7685
|
+
}
|
|
7686
|
+
}, _callee3);
|
|
7687
|
+
}));
|
|
7688
|
+
|
|
7689
|
+
return function (_x4) {
|
|
7690
|
+
return _ref9.apply(this, arguments);
|
|
7691
|
+
};
|
|
7692
|
+
}();
|
|
7693
|
+
}, [setDim]);
|
|
7694
|
+
var updateScaleBoundaries = recoil.useRecoilCallback(function (_ref10) {
|
|
7695
|
+
var snapshot = _ref10.snapshot;
|
|
7696
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
7697
|
+
var _yield$snapshot$getPr4, _yield$snapshot$getPr5, width, height, boardWrapperRect, scaleX, scaleY, newScale;
|
|
7698
|
+
|
|
7699
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
7645
7700
|
while (1) {
|
|
7646
|
-
switch (
|
|
7701
|
+
switch (_context4.prev = _context4.next) {
|
|
7647
7702
|
case 0:
|
|
7648
|
-
|
|
7703
|
+
_context4.next = 2;
|
|
7649
7704
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7650
7705
|
|
|
7651
7706
|
case 2:
|
|
7652
|
-
_yield$snapshot$
|
|
7653
|
-
_yield$snapshot$
|
|
7654
|
-
width = _yield$snapshot$
|
|
7655
|
-
height = _yield$snapshot$
|
|
7656
|
-
boardWrapperRect = _yield$snapshot$
|
|
7707
|
+
_yield$snapshot$getPr4 = _context4.sent;
|
|
7708
|
+
_yield$snapshot$getPr5 = _yield$snapshot$getPr4.itemExtent;
|
|
7709
|
+
width = _yield$snapshot$getPr5.width;
|
|
7710
|
+
height = _yield$snapshot$getPr5.height;
|
|
7711
|
+
boardWrapperRect = _yield$snapshot$getPr4.boardWrapperRect;
|
|
7657
7712
|
scaleX = boardWrapperRect.width / width;
|
|
7658
7713
|
scaleY = boardWrapperRect.height / height;
|
|
7659
7714
|
newScale = Math.min(scaleX, scaleY);
|
|
@@ -7661,86 +7716,86 @@ var useDim = function useDim() {
|
|
|
7661
7716
|
|
|
7662
7717
|
case 11:
|
|
7663
7718
|
case "end":
|
|
7664
|
-
return
|
|
7719
|
+
return _context4.stop();
|
|
7665
7720
|
}
|
|
7666
7721
|
}
|
|
7667
|
-
},
|
|
7722
|
+
}, _callee4);
|
|
7668
7723
|
}));
|
|
7669
7724
|
}, []);
|
|
7670
|
-
var getCenterCoordinates = recoil.useRecoilCallback(function (
|
|
7671
|
-
var snapshot =
|
|
7672
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7673
|
-
var _yield$snapshot$
|
|
7725
|
+
var getCenterCoordinates = recoil.useRecoilCallback(function (_ref12) {
|
|
7726
|
+
var snapshot = _ref12.snapshot;
|
|
7727
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
7728
|
+
var _yield$snapshot$getPr6, boardWrapperRect, boardSize, _yield$snapshot$getPr7, translateX, translateY, scale;
|
|
7674
7729
|
|
|
7675
|
-
return regeneratorRuntime.wrap(function
|
|
7730
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
7676
7731
|
while (1) {
|
|
7677
|
-
switch (
|
|
7732
|
+
switch (_context5.prev = _context5.next) {
|
|
7678
7733
|
case 0:
|
|
7679
|
-
|
|
7734
|
+
_context5.next = 2;
|
|
7680
7735
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7681
7736
|
|
|
7682
7737
|
case 2:
|
|
7683
|
-
_yield$snapshot$
|
|
7684
|
-
boardWrapperRect = _yield$snapshot$
|
|
7685
|
-
boardSize = _yield$snapshot$
|
|
7686
|
-
|
|
7738
|
+
_yield$snapshot$getPr6 = _context5.sent;
|
|
7739
|
+
boardWrapperRect = _yield$snapshot$getPr6.boardWrapperRect;
|
|
7740
|
+
boardSize = _yield$snapshot$getPr6.boardSize;
|
|
7741
|
+
_context5.next = 7;
|
|
7687
7742
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7688
7743
|
|
|
7689
7744
|
case 7:
|
|
7690
|
-
_yield$snapshot$
|
|
7691
|
-
translateX = _yield$snapshot$
|
|
7692
|
-
translateY = _yield$snapshot$
|
|
7693
|
-
scale = _yield$snapshot$
|
|
7694
|
-
return
|
|
7745
|
+
_yield$snapshot$getPr7 = _context5.sent;
|
|
7746
|
+
translateX = _yield$snapshot$getPr7.translateX;
|
|
7747
|
+
translateY = _yield$snapshot$getPr7.translateY;
|
|
7748
|
+
scale = _yield$snapshot$getPr7.scale;
|
|
7749
|
+
return _context5.abrupt("return", {
|
|
7695
7750
|
x: (boardWrapperRect.width / 2 - translateX) / scale - boardSize / 2,
|
|
7696
7751
|
y: (boardWrapperRect.height / 2 - translateY) / scale - boardSize / 2
|
|
7697
7752
|
});
|
|
7698
7753
|
|
|
7699
7754
|
case 12:
|
|
7700
7755
|
case "end":
|
|
7701
|
-
return
|
|
7756
|
+
return _context5.stop();
|
|
7702
7757
|
}
|
|
7703
7758
|
}
|
|
7704
|
-
},
|
|
7759
|
+
}, _callee5);
|
|
7705
7760
|
}));
|
|
7706
7761
|
}, []);
|
|
7707
|
-
var updateItemExtent = recoil.useRecoilCallback(function (
|
|
7708
|
-
var snapshot =
|
|
7709
|
-
set =
|
|
7710
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7711
|
-
var itemIds, _yield$snapshot$
|
|
7762
|
+
var updateItemExtent = recoil.useRecoilCallback(function (_ref14) {
|
|
7763
|
+
var snapshot = _ref14.snapshot,
|
|
7764
|
+
set = _ref14.set;
|
|
7765
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
7766
|
+
var itemIds, _yield$snapshot$getPr8, boardWrapperRect, boardWrapper, boardSize, _yield$snapshot$getPr9, scale, translateX, translateY, _ref16, left, top, width, height, relativeExtent, delta, _delta;
|
|
7712
7767
|
|
|
7713
|
-
return regeneratorRuntime.wrap(function
|
|
7768
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
7714
7769
|
while (1) {
|
|
7715
|
-
switch (
|
|
7770
|
+
switch (_context6.prev = _context6.next) {
|
|
7716
7771
|
case 0:
|
|
7717
|
-
|
|
7772
|
+
_context6.next = 2;
|
|
7718
7773
|
return snapshot.getPromise(ItemListAtom);
|
|
7719
7774
|
|
|
7720
7775
|
case 2:
|
|
7721
|
-
itemIds =
|
|
7722
|
-
|
|
7776
|
+
itemIds = _context6.sent;
|
|
7777
|
+
_context6.next = 5;
|
|
7723
7778
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7724
7779
|
|
|
7725
7780
|
case 5:
|
|
7726
|
-
_yield$snapshot$
|
|
7727
|
-
boardWrapperRect = _yield$snapshot$
|
|
7728
|
-
boardWrapper = _yield$snapshot$
|
|
7729
|
-
boardSize = _yield$snapshot$
|
|
7730
|
-
|
|
7781
|
+
_yield$snapshot$getPr8 = _context6.sent;
|
|
7782
|
+
boardWrapperRect = _yield$snapshot$getPr8.boardWrapperRect;
|
|
7783
|
+
boardWrapper = _yield$snapshot$getPr8.boardWrapper;
|
|
7784
|
+
boardSize = _yield$snapshot$getPr8.boardSize;
|
|
7785
|
+
_context6.next = 11;
|
|
7731
7786
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7732
7787
|
|
|
7733
7788
|
case 11:
|
|
7734
|
-
_yield$snapshot$
|
|
7735
|
-
scale = _yield$snapshot$
|
|
7736
|
-
translateX = _yield$snapshot$
|
|
7737
|
-
translateY = _yield$snapshot$
|
|
7738
|
-
|
|
7789
|
+
_yield$snapshot$getPr9 = _context6.sent;
|
|
7790
|
+
scale = _yield$snapshot$getPr9.scale;
|
|
7791
|
+
translateX = _yield$snapshot$getPr9.translateX;
|
|
7792
|
+
translateY = _yield$snapshot$getPr9.translateY;
|
|
7793
|
+
_ref16 = getItemBoundingBox(itemIds, boardWrapper) || {
|
|
7739
7794
|
left: boardSize / 2 * scale + boardWrapperRect.left + translateX,
|
|
7740
7795
|
top: boardSize / 2 * scale + boardWrapperRect.top + translateY,
|
|
7741
7796
|
width: 0,
|
|
7742
7797
|
height: 0
|
|
7743
|
-
}, left =
|
|
7798
|
+
}, left = _ref16.left, top = _ref16.top, width = _ref16.width, height = _ref16.height;
|
|
7744
7799
|
relativeExtent = {
|
|
7745
7800
|
left: (left - boardWrapperRect.left - translateX) / scale,
|
|
7746
7801
|
top: (top - boardWrapperRect.top - translateY) / scale,
|
|
@@ -7772,10 +7827,10 @@ var useDim = function useDim() {
|
|
|
7772
7827
|
|
|
7773
7828
|
case 22:
|
|
7774
7829
|
case "end":
|
|
7775
|
-
return
|
|
7830
|
+
return _context6.stop();
|
|
7776
7831
|
}
|
|
7777
7832
|
}
|
|
7778
|
-
},
|
|
7833
|
+
}, _callee6);
|
|
7779
7834
|
}));
|
|
7780
7835
|
}, []);
|
|
7781
7836
|
var debouncedUpdateItemExtent = useDebouncedCallback(updateItemExtent, [], 300);
|
|
@@ -7787,7 +7842,9 @@ var useDim = function useDim() {
|
|
|
7787
7842
|
return {
|
|
7788
7843
|
setDim: setDimSafe,
|
|
7789
7844
|
getDim: getDim,
|
|
7790
|
-
zoomTo:
|
|
7845
|
+
zoomTo: zoomToCenter,
|
|
7846
|
+
zoomToCenter: zoomToCenter,
|
|
7847
|
+
zoomToExtent: zoomToExtent,
|
|
7791
7848
|
getCenter: getCenterCoordinates,
|
|
7792
7849
|
updateItemExtent: debouncedUpdateItemExtent
|
|
7793
7850
|
};
|