react-sync-board 0.6.1 → 0.7.1
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 +288 -230
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +288 -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
|
|
@@ -4793,27 +4802,28 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4793
4802
|
currentButton: button,
|
|
4794
4803
|
target: target,
|
|
4795
4804
|
timeStart: Date.now(),
|
|
4796
|
-
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
4797
|
-
return regeneratorRuntime.wrap(function
|
|
4805
|
+
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
4806
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
4798
4807
|
while (1) {
|
|
4799
|
-
switch (
|
|
4808
|
+
switch (_context2.prev = _context2.next) {
|
|
4800
4809
|
case 0:
|
|
4801
4810
|
stateRef.current.noTap = true;
|
|
4802
|
-
|
|
4811
|
+
promiseQueue.add(onLongTap, {
|
|
4803
4812
|
clientX: clientX,
|
|
4804
4813
|
clientY: clientY,
|
|
4805
4814
|
altKey: altKey,
|
|
4806
4815
|
ctrlKey: ctrlKey,
|
|
4807
4816
|
metaKey: metaKey,
|
|
4808
|
-
target: target
|
|
4817
|
+
target: target,
|
|
4818
|
+
event: event
|
|
4809
4819
|
});
|
|
4810
4820
|
|
|
4811
4821
|
case 2:
|
|
4812
4822
|
case "end":
|
|
4813
|
-
return
|
|
4823
|
+
return _context2.stop();
|
|
4814
4824
|
}
|
|
4815
4825
|
}
|
|
4816
|
-
},
|
|
4826
|
+
}, _callee2);
|
|
4817
4827
|
})), 750)
|
|
4818
4828
|
});
|
|
4819
4829
|
|
|
@@ -4823,16 +4833,17 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4823
4833
|
// eslint-disable-next-line no-console
|
|
4824
4834
|
console.log("Fail to capture pointer", e);
|
|
4825
4835
|
}
|
|
4826
|
-
}, [onLongTap
|
|
4827
|
-
var onPointerMove = React__default['default'].useCallback(function (
|
|
4836
|
+
}, [onLongTap]);
|
|
4837
|
+
var onPointerMove = React__default['default'].useCallback(function (event) {
|
|
4828
4838
|
if (stateRef.current.pressed) {
|
|
4829
|
-
var pointerId =
|
|
4830
|
-
eventClientX =
|
|
4831
|
-
eventClientY =
|
|
4832
|
-
altKey =
|
|
4833
|
-
ctrlKey =
|
|
4834
|
-
metaKey =
|
|
4835
|
-
|
|
4839
|
+
var pointerId = event.pointerId,
|
|
4840
|
+
eventClientX = event.clientX,
|
|
4841
|
+
eventClientY = event.clientY,
|
|
4842
|
+
altKey = event.altKey,
|
|
4843
|
+
ctrlKey = event.ctrlKey,
|
|
4844
|
+
metaKey = event.metaKey,
|
|
4845
|
+
buttons = event.buttons,
|
|
4846
|
+
pointerType = event.pointerType;
|
|
4836
4847
|
|
|
4837
4848
|
if (stateRef.current.mainPointer !== pointerId) {
|
|
4838
4849
|
// Event from other pointer
|
|
@@ -4865,13 +4876,20 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4865
4876
|
clientY = eventClientY;
|
|
4866
4877
|
} // We drag if
|
|
4867
4878
|
// On non touch device
|
|
4868
|
-
// -
|
|
4869
|
-
// -
|
|
4879
|
+
// - Only button is pressed (1)
|
|
4880
|
+
// - any special key is no pressed
|
|
4870
4881
|
// or on touch devices
|
|
4871
4882
|
// - We use only one finger
|
|
4872
4883
|
|
|
4873
4884
|
|
|
4874
|
-
var
|
|
4885
|
+
var altAction = altKey || ctrlKey || metaKey || buttons !== 1;
|
|
4886
|
+
|
|
4887
|
+
if (mainAction !== "drag") {
|
|
4888
|
+
altAction = !altAction;
|
|
4889
|
+
}
|
|
4890
|
+
|
|
4891
|
+
var shouldDrag = pointerType !== "touch" ? !altAction : !twoFingers;
|
|
4892
|
+
var shouldPan = pointerType !== "touch" ? altAction : twoFingers;
|
|
4875
4893
|
|
|
4876
4894
|
if (shouldDrag) {
|
|
4877
4895
|
// Send drag start on first move
|
|
@@ -4880,7 +4898,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4880
4898
|
stateRef.current.gestureStart = true; // Clear tap timeout
|
|
4881
4899
|
|
|
4882
4900
|
clearTimeout(stateRef.current.longTapTimeout);
|
|
4883
|
-
|
|
4901
|
+
promiseQueue.add(onDragStart, {
|
|
4884
4902
|
deltaX: 0,
|
|
4885
4903
|
deltaY: 0,
|
|
4886
4904
|
startX: stateRef.current.startX,
|
|
@@ -4894,17 +4912,16 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4894
4912
|
ctrlKey: ctrlKey,
|
|
4895
4913
|
metaKey: metaKey,
|
|
4896
4914
|
target: stateRef.current.target,
|
|
4897
|
-
event:
|
|
4915
|
+
event: event
|
|
4898
4916
|
});
|
|
4899
|
-
}
|
|
4900
|
-
|
|
4917
|
+
}
|
|
4901
4918
|
|
|
4902
4919
|
var deltaX = clientX - stateRef.current.prevX;
|
|
4903
4920
|
var deltaY = clientY - stateRef.current.prevY;
|
|
4904
4921
|
var distanceX = clientX - stateRef.current.startX;
|
|
4905
4922
|
var distanceY = clientY - stateRef.current.startY; // Drag event
|
|
4906
4923
|
|
|
4907
|
-
|
|
4924
|
+
promiseQueue.add(onDrag, {
|
|
4908
4925
|
deltaX: deltaX,
|
|
4909
4926
|
deltaY: deltaY,
|
|
4910
4927
|
startX: stateRef.current.startX,
|
|
@@ -4918,9 +4935,11 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4918
4935
|
ctrlKey: ctrlKey,
|
|
4919
4936
|
metaKey: metaKey,
|
|
4920
4937
|
target: stateRef.current.target,
|
|
4921
|
-
event:
|
|
4938
|
+
event: event
|
|
4922
4939
|
});
|
|
4923
|
-
}
|
|
4940
|
+
}
|
|
4941
|
+
|
|
4942
|
+
if (shouldPan) {
|
|
4924
4943
|
if (!stateRef.current.gestureStart) {
|
|
4925
4944
|
wrapperRef.current.style.cursor = "move";
|
|
4926
4945
|
stateRef.current.gestureStart = true; // Clear tap timeout on first move
|
|
@@ -4935,7 +4954,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4935
4954
|
|
|
4936
4955
|
var target = stateRef.current.target; // Pan event
|
|
4937
4956
|
|
|
4938
|
-
|
|
4957
|
+
promiseQueue.add(onPan, {
|
|
4939
4958
|
deltaX: _deltaX,
|
|
4940
4959
|
deltaY: _deltaY,
|
|
4941
4960
|
button: stateRef.current.currentButton,
|
|
@@ -4943,18 +4962,18 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4943
4962
|
ctrlKey: ctrlKey,
|
|
4944
4963
|
metaKey: metaKey,
|
|
4945
4964
|
target: target,
|
|
4946
|
-
event:
|
|
4965
|
+
event: event
|
|
4947
4966
|
});
|
|
4948
4967
|
|
|
4949
4968
|
if (twoFingers && distance !== stateRef.current.prevDistance && onZoom) {
|
|
4950
4969
|
var scale = stateRef.current.prevDistance - distance;
|
|
4951
4970
|
|
|
4952
4971
|
if (Math.abs(scale) > 0) {
|
|
4953
|
-
|
|
4972
|
+
promiseQueue.add(onZoom, {
|
|
4954
4973
|
scale: scale,
|
|
4955
4974
|
clientX: clientX,
|
|
4956
4975
|
clientY: clientY,
|
|
4957
|
-
event:
|
|
4976
|
+
event: event
|
|
4958
4977
|
});
|
|
4959
4978
|
stateRef.current.prevDistance = distance;
|
|
4960
4979
|
}
|
|
@@ -4964,15 +4983,15 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4964
4983
|
stateRef.current.prevX = clientX;
|
|
4965
4984
|
stateRef.current.prevY = clientY;
|
|
4966
4985
|
}
|
|
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 =
|
|
4986
|
+
}, [mainAction, onDrag, onDragStart, onPan, onZoom]);
|
|
4987
|
+
var onPointerUp = React__default['default'].useCallback(function (event) {
|
|
4988
|
+
var clientX = event.clientX,
|
|
4989
|
+
clientY = event.clientY,
|
|
4990
|
+
altKey = event.altKey,
|
|
4991
|
+
ctrlKey = event.ctrlKey,
|
|
4992
|
+
metaKey = event.metaKey,
|
|
4993
|
+
target = event.target,
|
|
4994
|
+
pointerId = event.pointerId;
|
|
4976
4995
|
|
|
4977
4996
|
if (!stateRef.current.pointers[pointerId]) {
|
|
4978
4997
|
// Pointer already gone previously with another event
|
|
@@ -5011,7 +5030,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5011
5030
|
if (stateRef.current.moving) {
|
|
5012
5031
|
// If we were moving, send drag end event
|
|
5013
5032
|
stateRef.current.moving = false;
|
|
5014
|
-
|
|
5033
|
+
promiseQueue.add(onDragEnd, {
|
|
5015
5034
|
deltaX: clientX - stateRef.current.prevX,
|
|
5016
5035
|
deltaY: clientY - stateRef.current.prevY,
|
|
5017
5036
|
startX: stateRef.current.startX,
|
|
@@ -5024,7 +5043,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5024
5043
|
altKey: altKey,
|
|
5025
5044
|
ctrlKey: ctrlKey,
|
|
5026
5045
|
metaKey: metaKey,
|
|
5027
|
-
event:
|
|
5046
|
+
event: event
|
|
5028
5047
|
});
|
|
5029
5048
|
wrapperRef.current.style.cursor = "auto";
|
|
5030
5049
|
} else {
|
|
@@ -5034,20 +5053,35 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5034
5053
|
stateRef.current.noTap = false;
|
|
5035
5054
|
} // Send tap event only if time less than 300ms
|
|
5036
5055
|
else if (stateRef.current.timeStart - now < 300) {
|
|
5037
|
-
|
|
5056
|
+
promiseQueue.add(onTap, {
|
|
5038
5057
|
clientX: clientX,
|
|
5039
5058
|
clientY: clientY,
|
|
5040
5059
|
altKey: altKey,
|
|
5041
5060
|
ctrlKey: ctrlKey,
|
|
5042
5061
|
metaKey: metaKey,
|
|
5043
|
-
target: target
|
|
5062
|
+
target: target,
|
|
5063
|
+
event: event
|
|
5044
5064
|
});
|
|
5045
5065
|
}
|
|
5046
5066
|
}
|
|
5047
|
-
}, [onDragEnd, onTap
|
|
5067
|
+
}, [onDragEnd, onTap]);
|
|
5048
5068
|
var onDoubleTapHandler = React__default['default'].useCallback(function (event) {
|
|
5049
|
-
|
|
5050
|
-
|
|
5069
|
+
var clientX = event.clientX,
|
|
5070
|
+
clientY = event.clientY,
|
|
5071
|
+
altKey = event.altKey,
|
|
5072
|
+
ctrlKey = event.ctrlKey,
|
|
5073
|
+
metaKey = event.metaKey,
|
|
5074
|
+
target = event.target;
|
|
5075
|
+
promiseQueue.add(onDoubleTap, {
|
|
5076
|
+
clientX: clientX,
|
|
5077
|
+
clientY: clientY,
|
|
5078
|
+
altKey: altKey,
|
|
5079
|
+
ctrlKey: ctrlKey,
|
|
5080
|
+
metaKey: metaKey,
|
|
5081
|
+
target: target,
|
|
5082
|
+
event: event
|
|
5083
|
+
});
|
|
5084
|
+
}, [onDoubleTap]);
|
|
5051
5085
|
return /*#__PURE__*/React__default['default'].createElement("div", {
|
|
5052
5086
|
onWheel: onWheel,
|
|
5053
5087
|
onPointerDown: onPointerDown,
|
|
@@ -5118,7 +5152,7 @@ var _excluded$2 = ["type", "rotation", "id", "locked", "layer"],
|
|
|
5118
5152
|
_excluded3 = ["x", "y", "layer", "moving"];
|
|
5119
5153
|
|
|
5120
5154
|
var _templateObject$2;
|
|
5121
|
-
var ItemWrapper = newStyled.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n display: inline-block;\n transition: transform 150ms;\n user-select: none;\n padding: 2px;\n box-sizing: border-box;\n transform: rotate(", "deg);\n\n & .corner {\n position: absolute;\n width: 0px;\n height: 0px;\n }\n\n & .top-left {\n top: 0;\n left: 0;\n }\n & .top-right {\n top: 0;\n right: 0;\n }\n & .bottom-left {\n bottom: 0;\n left: 0;\n }\n & .bottom-right {\n bottom: 0;\n right: 0;\n }\n\n &.selected {\n border: 2px dashed #db5034;\n padding: 0px;\n cursor: pointer;\n }\n\n &.locked::after {\n content: \"\";\n position: absolute;\n width: 24px;\n height: 30px;\n top: 4px;\n right: 4px;\n opacity: 0.1;\n background-image: url(\"", "\");\n background-size: cover;\n user-select: none;\n }\n\n &.locked:hover::after {\n opacity: 0.3;\n }\n\n & .resize {\n position: absolute;\n\n width: 10px;\n height: 10px;\n border: 2px solid #db5034;\n background-color: #db5034;\n cursor: move;\n\n &.resize-width {\n cursor: ew-resize;\n right: -6px;\n top: calc(50% - 5px);\n }\n &.resize-height {\n cursor: ns-resize;\n bottom: -6px;\n left: calc(50% - 5px);\n }\n &.resize-ratio {\n cursor: nwse-resize;\n bottom: -6px;\n right: -6px;\n }\n }\n"])), function (_ref) {
|
|
5155
|
+
var ItemWrapper = newStyled.div(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral(["\n display: inline-block;\n transition: transform 150ms;\n user-select: none;\n padding: 2px;\n box-sizing: border-box;\n transform: rotate(", "deg);\n\n & .corner {\n position: absolute;\n width: 0px;\n height: 0px;\n }\n\n & .top-left {\n top: 0;\n left: 0;\n }\n & .top-right {\n top: 0;\n right: 0;\n }\n & .bottom-left {\n bottom: 0;\n left: 0;\n }\n & .bottom-right {\n bottom: 0;\n right: 0;\n }\n\n & .center {\n position: absolute;\n width: 0px;\n height: 0px;\n top: 50%;\n left: 50%;\n }\n\n &.selected {\n border: 2px dashed #db5034;\n padding: 0px;\n cursor: pointer;\n }\n\n &.locked::after {\n content: \"\";\n position: absolute;\n width: 24px;\n height: 30px;\n top: 4px;\n right: 4px;\n opacity: 0.1;\n background-image: url(\"", "\");\n background-size: cover;\n user-select: none;\n }\n\n &.locked:hover::after {\n opacity: 0.3;\n }\n\n & .resize {\n position: absolute;\n\n width: 10px;\n height: 10px;\n border: 2px solid #db5034;\n background-color: #db5034;\n cursor: move;\n\n &.resize-width {\n cursor: ew-resize;\n right: -6px;\n top: calc(50% - 5px);\n }\n &.resize-height {\n cursor: ns-resize;\n bottom: -6px;\n left: calc(50% - 5px);\n }\n &.resize-ratio {\n cursor: nwse-resize;\n bottom: -6px;\n right: -6px;\n }\n }\n"])), function (_ref) {
|
|
5122
5156
|
var rotation = _ref.rotation;
|
|
5123
5157
|
return rotation;
|
|
5124
5158
|
}, img);
|
|
@@ -5372,6 +5406,8 @@ var Item = function Item(_ref5) {
|
|
|
5372
5406
|
className: "corner bottom-right"
|
|
5373
5407
|
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
5374
5408
|
className: "corner bottom-left"
|
|
5409
|
+
}), /*#__PURE__*/React__default['default'].createElement("div", {
|
|
5410
|
+
className: "center"
|
|
5375
5411
|
}), isSelected && showResizeHandle && /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, resizeDirections.b && /*#__PURE__*/React__default['default'].createElement(ResizeHandler, {
|
|
5376
5412
|
className: "resize resize-ratio",
|
|
5377
5413
|
onResize: onResizeRatio
|
|
@@ -5937,24 +5973,20 @@ var Selector = function Selector(_ref) {
|
|
|
5937
5973
|
}));
|
|
5938
5974
|
}, [setSelected]);
|
|
5939
5975
|
useThrottledEffect(updateSelected, [selector, updateSelected], 200);
|
|
5940
|
-
|
|
5941
|
-
var onDragStart = /*#__PURE__*/function () {
|
|
5976
|
+
var onDragStart = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
5942
5977
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(event) {
|
|
5943
|
-
var
|
|
5978
|
+
var foundElement;
|
|
5944
5979
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
5945
5980
|
while (1) {
|
|
5946
5981
|
switch (_context2.prev = _context2.next) {
|
|
5947
5982
|
case 0:
|
|
5948
|
-
|
|
5949
|
-
_context2.next = 3;
|
|
5983
|
+
_context2.next = 2;
|
|
5950
5984
|
return findElementUnderPointer(event);
|
|
5951
5985
|
|
|
5952
|
-
case
|
|
5986
|
+
case 2:
|
|
5953
5987
|
foundElement = _context2.sent;
|
|
5954
|
-
metaKeyPressed = altKey || ctrlKey || metaKey;
|
|
5955
|
-
goodButton = moveFirst ? button === 1 || button === 0 && metaKeyPressed : button === 0 && !metaKeyPressed;
|
|
5956
5988
|
|
|
5957
|
-
if (
|
|
5989
|
+
if (!foundElement) {
|
|
5958
5990
|
stateRef.current.moving = true;
|
|
5959
5991
|
setBoardState(function (prev) {
|
|
5960
5992
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -5964,7 +5996,7 @@ var Selector = function Selector(_ref) {
|
|
|
5964
5996
|
wrapperRef.current.style.cursor = "crosshair";
|
|
5965
5997
|
}
|
|
5966
5998
|
|
|
5967
|
-
case
|
|
5999
|
+
case 4:
|
|
5968
6000
|
case "end":
|
|
5969
6001
|
return _context2.stop();
|
|
5970
6002
|
}
|
|
@@ -5972,11 +6004,10 @@ var Selector = function Selector(_ref) {
|
|
|
5972
6004
|
}, _callee2);
|
|
5973
6005
|
}));
|
|
5974
6006
|
|
|
5975
|
-
return function
|
|
6007
|
+
return function (_x) {
|
|
5976
6008
|
return _ref4.apply(this, arguments);
|
|
5977
6009
|
};
|
|
5978
|
-
}();
|
|
5979
|
-
|
|
6010
|
+
}(), [findElementUnderPointer, setBoardState]);
|
|
5980
6011
|
var onDrag = recoil.useRecoilCallback(function (_ref5) {
|
|
5981
6012
|
var snapshot = _ref5.snapshot;
|
|
5982
6013
|
return /*#__PURE__*/function () {
|
|
@@ -6039,8 +6070,7 @@ var Selector = function Selector(_ref) {
|
|
|
6039
6070
|
};
|
|
6040
6071
|
}();
|
|
6041
6072
|
}, []);
|
|
6042
|
-
|
|
6043
|
-
var onDragEnd = function onDragEnd() {
|
|
6073
|
+
var onDragEnd = React__default['default'].useCallback(function () {
|
|
6044
6074
|
if (stateRef.current.moving) {
|
|
6045
6075
|
setBoardState(function (prev) {
|
|
6046
6076
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -6053,8 +6083,7 @@ var Selector = function Selector(_ref) {
|
|
|
6053
6083
|
});
|
|
6054
6084
|
wrapperRef.current.style.cursor = "auto";
|
|
6055
6085
|
}
|
|
6056
|
-
};
|
|
6057
|
-
|
|
6086
|
+
}, [setBoardState]);
|
|
6058
6087
|
var onLongTap = React__default['default'].useCallback(function (_ref8) {
|
|
6059
6088
|
var target = _ref8.target;
|
|
6060
6089
|
var foundElement = insideClass(target, "item");
|
|
@@ -6135,7 +6164,8 @@ var Selector = function Selector(_ref) {
|
|
|
6135
6164
|
onDrag: onDrag,
|
|
6136
6165
|
onDragEnd: onDragEnd,
|
|
6137
6166
|
onTap: onTap,
|
|
6138
|
-
onLongTap: onLongTap
|
|
6167
|
+
onLongTap: onLongTap,
|
|
6168
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
6139
6169
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
6140
6170
|
ref: wrapperRef
|
|
6141
6171
|
}, selector.moving && /*#__PURE__*/React__default['default'].createElement("div", {
|
|
@@ -6228,23 +6258,24 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6228
6258
|
var snapshot = _ref4.snapshot;
|
|
6229
6259
|
return /*#__PURE__*/function () {
|
|
6230
6260
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
6231
|
-
var deltaX, deltaY, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6261
|
+
var deltaX, deltaY, originalEvent, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6232
6262
|
|
|
6233
6263
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
6234
6264
|
while (1) {
|
|
6235
6265
|
switch (_context2.prev = _context2.next) {
|
|
6236
6266
|
case 0:
|
|
6237
|
-
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY;
|
|
6267
|
+
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY, originalEvent = _ref5.event;
|
|
6238
6268
|
|
|
6239
6269
|
if (!actionRef.current.moving) {
|
|
6240
|
-
_context2.next =
|
|
6270
|
+
_context2.next = 11;
|
|
6241
6271
|
break;
|
|
6242
6272
|
}
|
|
6243
6273
|
|
|
6244
|
-
|
|
6274
|
+
originalEvent.stopPropagation();
|
|
6275
|
+
_context2.next = 5;
|
|
6245
6276
|
return snapshot.getPromise(BoardTransformAtom);
|
|
6246
6277
|
|
|
6247
|
-
case
|
|
6278
|
+
case 5:
|
|
6248
6279
|
_yield$snapshot$getPr = _context2.sent;
|
|
6249
6280
|
scale = _yield$snapshot$getPr.scale;
|
|
6250
6281
|
moveX = actionRef.current.remainX + deltaX / scale;
|
|
@@ -6259,7 +6290,7 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6259
6290
|
}) : prev;
|
|
6260
6291
|
});
|
|
6261
6292
|
|
|
6262
|
-
case
|
|
6293
|
+
case 11:
|
|
6263
6294
|
case "end":
|
|
6264
6295
|
return _context2.stop();
|
|
6265
6296
|
}
|
|
@@ -6984,8 +7015,6 @@ var usePositionNavigator = function usePositionNavigator() {
|
|
|
6984
7015
|
return null;
|
|
6985
7016
|
};
|
|
6986
7017
|
|
|
6987
|
-
var SCALE_TOLERANCE = 0.8;
|
|
6988
|
-
|
|
6989
7018
|
var PanZoom = function PanZoom(_ref) {
|
|
6990
7019
|
var children = _ref.children,
|
|
6991
7020
|
_ref$moveFirst = _ref.moveFirst,
|
|
@@ -6995,7 +7024,8 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6995
7024
|
|
|
6996
7025
|
var _useDim = useDim(),
|
|
6997
7026
|
setDim = _useDim.setDim,
|
|
6998
|
-
|
|
7027
|
+
zoomToCenter = _useDim.zoomToCenter,
|
|
7028
|
+
zoomToExtent = _useDim.zoomToExtent;
|
|
6999
7029
|
|
|
7000
7030
|
var _useRecoilValue = recoil.useRecoilValue(ConfigurationAtom),
|
|
7001
7031
|
itemExtentGlobal = _useRecoilValue.itemExtent;
|
|
@@ -7011,10 +7041,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7011
7041
|
var getMouseInfo = useMousePosition(wrappedRef); // Hooks to save/restore position
|
|
7012
7042
|
|
|
7013
7043
|
usePositionNavigator();
|
|
7044
|
+
/**
|
|
7045
|
+
* Center board on startup
|
|
7046
|
+
*/
|
|
7047
|
+
|
|
7014
7048
|
var centerBoard = recoil.useRecoilCallback(function (_ref2) {
|
|
7015
7049
|
var snapshot = _ref2.snapshot;
|
|
7016
7050
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
7017
|
-
var _yield$snapshot$getPr,
|
|
7051
|
+
var _yield$snapshot$getPr, itemExtent;
|
|
7018
7052
|
|
|
7019
7053
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
7020
7054
|
while (1) {
|
|
@@ -7025,34 +7059,17 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7025
7059
|
|
|
7026
7060
|
case 2:
|
|
7027
7061
|
_yield$snapshot$getPr = _context.sent;
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
top = _yield$snapshot$getPr2.top;
|
|
7031
|
-
width = _yield$snapshot$getPr2.width;
|
|
7032
|
-
height = _yield$snapshot$getPr2.height;
|
|
7033
|
-
boardWrapperRect = _yield$snapshot$getPr.boardWrapperRect;
|
|
7034
|
-
scaleX = boardWrapperRect.width / width;
|
|
7035
|
-
scaleY = boardWrapperRect.height / height;
|
|
7036
|
-
newScale = Math.min(scaleX, scaleY);
|
|
7037
|
-
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7038
|
-
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7039
|
-
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7040
|
-
setDim(function (prev) {
|
|
7041
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7042
|
-
translateX: centerX,
|
|
7043
|
-
translateY: centerY,
|
|
7044
|
-
scale: scaleWithTolerance
|
|
7045
|
-
});
|
|
7046
|
-
});
|
|
7062
|
+
itemExtent = _yield$snapshot$getPr.itemExtent;
|
|
7063
|
+
zoomToExtent(itemExtent);
|
|
7047
7064
|
|
|
7048
|
-
case
|
|
7065
|
+
case 5:
|
|
7049
7066
|
case "end":
|
|
7050
7067
|
return _context.stop();
|
|
7051
7068
|
}
|
|
7052
7069
|
}
|
|
7053
7070
|
}, _callee);
|
|
7054
7071
|
}));
|
|
7055
|
-
}, [
|
|
7072
|
+
}, [zoomToExtent]);
|
|
7056
7073
|
React__default['default'].useEffect(function () {
|
|
7057
7074
|
if (!centered && itemExtentGlobal.left) {
|
|
7058
7075
|
// Center board on first valid extent
|
|
@@ -7064,7 +7081,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7064
7081
|
var clientX = _ref4.clientX,
|
|
7065
7082
|
clientY = _ref4.clientY,
|
|
7066
7083
|
scale = _ref4.scale;
|
|
7067
|
-
|
|
7084
|
+
zoomToCenter(1 - scale / 500, {
|
|
7068
7085
|
x: clientX,
|
|
7069
7086
|
y: clientY
|
|
7070
7087
|
}); // Update the board zooming state
|
|
@@ -7082,7 +7099,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7082
7099
|
zooming: true
|
|
7083
7100
|
}) : prev;
|
|
7084
7101
|
});
|
|
7085
|
-
}, [setBoardState,
|
|
7102
|
+
}, [setBoardState, zoomToCenter]);
|
|
7086
7103
|
var onPan = React__default['default'].useCallback( /*#__PURE__*/function () {
|
|
7087
7104
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
7088
7105
|
var deltaX, deltaY;
|
|
@@ -7124,14 +7141,6 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7124
7141
|
return _ref6.apply(this, arguments);
|
|
7125
7142
|
};
|
|
7126
7143
|
}(), [setBoardState, setDim]);
|
|
7127
|
-
var onDrag = React__default['default'].useCallback(function (state) {
|
|
7128
|
-
var target = state.target;
|
|
7129
|
-
var outsideItem = !insideClass(target, "item") || insideClass(target, "locked");
|
|
7130
|
-
|
|
7131
|
-
if (moveFirst && outsideItem) {
|
|
7132
|
-
onPan(state);
|
|
7133
|
-
}
|
|
7134
|
-
}, [moveFirst, onPan]);
|
|
7135
7144
|
var onKeyDown = recoil.useRecoilCallback(function (_ref7) {
|
|
7136
7145
|
var snapshot = _ref7.snapshot;
|
|
7137
7146
|
return /*#__PURE__*/function () {
|
|
@@ -7216,14 +7225,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7216
7225
|
translateX: prev.translateX + moveX
|
|
7217
7226
|
});
|
|
7218
7227
|
});
|
|
7219
|
-
|
|
7228
|
+
zoomToCenter(zoom);
|
|
7220
7229
|
e.preventDefault();
|
|
7221
7230
|
|
|
7222
7231
|
case 31:
|
|
7223
7232
|
// Temporary zoom
|
|
7224
7233
|
if (e.key === " " && !e.repeat) {
|
|
7225
7234
|
if (getMouseInfo().hover) {
|
|
7226
|
-
|
|
7235
|
+
zoomToCenter(3, getMouseInfo());
|
|
7227
7236
|
}
|
|
7228
7237
|
}
|
|
7229
7238
|
|
|
@@ -7239,15 +7248,15 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7239
7248
|
return _ref8.apply(this, arguments);
|
|
7240
7249
|
};
|
|
7241
7250
|
}();
|
|
7242
|
-
}, [setDim,
|
|
7251
|
+
}, [setDim, zoomToCenter, getMouseInfo]);
|
|
7243
7252
|
var onKeyUp = React__default['default'].useCallback(function (e) {
|
|
7244
7253
|
// Ignore text in Input or Textarea
|
|
7245
7254
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return; // Zoom out on release
|
|
7246
7255
|
|
|
7247
7256
|
if (e.key === " " && getMouseInfo().hover) {
|
|
7248
|
-
|
|
7257
|
+
zoomToCenter(1 / 3, getMouseInfo());
|
|
7249
7258
|
}
|
|
7250
|
-
}, [getMouseInfo,
|
|
7259
|
+
}, [getMouseInfo, zoomToCenter]);
|
|
7251
7260
|
React__default['default'].useEffect(function () {
|
|
7252
7261
|
document.addEventListener("keydown", onKeyDown);
|
|
7253
7262
|
document.addEventListener("keyup", onKeyUp);
|
|
@@ -7259,7 +7268,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7259
7268
|
return /*#__PURE__*/React__default['default'].createElement(Gesture, {
|
|
7260
7269
|
onPan: onPan,
|
|
7261
7270
|
onZoom: onZoom,
|
|
7262
|
-
|
|
7271
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
7263
7272
|
}, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7264
7273
|
style: {
|
|
7265
7274
|
display: "inline-block",
|
|
@@ -7427,7 +7436,9 @@ var Board = function Board(_ref) {
|
|
|
7427
7436
|
moveFirst: moveFirst
|
|
7428
7437
|
}, /*#__PURE__*/React__default['default'].createElement(Selector, {
|
|
7429
7438
|
moveFirst: moveFirst
|
|
7430
|
-
}, /*#__PURE__*/React__default['default'].createElement(ActionPane,
|
|
7439
|
+
}, /*#__PURE__*/React__default['default'].createElement(ActionPane, {
|
|
7440
|
+
moveFirst: moveFirst
|
|
7441
|
+
}, /*#__PURE__*/React__default['default'].createElement(CursorPane, null, /*#__PURE__*/React__default['default'].createElement("div", {
|
|
7431
7442
|
onContextMenu: function onContextMenu(e) {
|
|
7432
7443
|
e.preventDefault();
|
|
7433
7444
|
},
|
|
@@ -7438,6 +7449,7 @@ var Board = function Board(_ref) {
|
|
|
7438
7449
|
|
|
7439
7450
|
var TOLERANCE = 100;
|
|
7440
7451
|
var MIN_SIZE = 1000;
|
|
7452
|
+
var SCALE_TOLERANCE = 0.8;
|
|
7441
7453
|
|
|
7442
7454
|
var translateBoundaries = function translateBoundaries(_ref) {
|
|
7443
7455
|
var x = _ref.x,
|
|
@@ -7555,7 +7567,7 @@ var useDim = function useDim() {
|
|
|
7555
7567
|
};
|
|
7556
7568
|
}();
|
|
7557
7569
|
}, [setDim]);
|
|
7558
|
-
var
|
|
7570
|
+
var zoomToCenter = recoil.useRecoilCallback(function (_ref5) {
|
|
7559
7571
|
var snapshot = _ref5.snapshot;
|
|
7560
7572
|
return /*#__PURE__*/function () {
|
|
7561
7573
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(factor, zoomCenter) {
|
|
@@ -7634,24 +7646,68 @@ var useDim = function useDim() {
|
|
|
7634
7646
|
};
|
|
7635
7647
|
}();
|
|
7636
7648
|
}, [setDim]);
|
|
7637
|
-
var
|
|
7649
|
+
var zoomToExtent = recoil.useRecoilCallback(function (_ref7) {
|
|
7638
7650
|
var snapshot = _ref7.snapshot;
|
|
7639
|
-
return /*#__PURE__*/
|
|
7640
|
-
var
|
|
7651
|
+
return /*#__PURE__*/function () {
|
|
7652
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref8) {
|
|
7653
|
+
var left, top, width, height, _yield$snapshot$getPr3, boardWrapperRect, scaleX, scaleY, newScale, scaleWithTolerance, centerX, centerY;
|
|
7641
7654
|
|
|
7642
|
-
|
|
7655
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
7656
|
+
while (1) {
|
|
7657
|
+
switch (_context3.prev = _context3.next) {
|
|
7658
|
+
case 0:
|
|
7659
|
+
left = _ref8.left, top = _ref8.top, width = _ref8.width, height = _ref8.height;
|
|
7660
|
+
_context3.next = 3;
|
|
7661
|
+
return snapshot.getPromise(ConfigurationAtom);
|
|
7662
|
+
|
|
7663
|
+
case 3:
|
|
7664
|
+
_yield$snapshot$getPr3 = _context3.sent;
|
|
7665
|
+
boardWrapperRect = _yield$snapshot$getPr3.boardWrapperRect;
|
|
7666
|
+
scaleX = boardWrapperRect.width / width;
|
|
7667
|
+
scaleY = boardWrapperRect.height / height;
|
|
7668
|
+
newScale = Math.min(scaleX, scaleY);
|
|
7669
|
+
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7670
|
+
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7671
|
+
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7672
|
+
setDim(function (prev) {
|
|
7673
|
+
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7674
|
+
translateX: centerX,
|
|
7675
|
+
translateY: centerY,
|
|
7676
|
+
scale: scaleWithTolerance
|
|
7677
|
+
});
|
|
7678
|
+
});
|
|
7679
|
+
|
|
7680
|
+
case 12:
|
|
7681
|
+
case "end":
|
|
7682
|
+
return _context3.stop();
|
|
7683
|
+
}
|
|
7684
|
+
}
|
|
7685
|
+
}, _callee3);
|
|
7686
|
+
}));
|
|
7687
|
+
|
|
7688
|
+
return function (_x4) {
|
|
7689
|
+
return _ref9.apply(this, arguments);
|
|
7690
|
+
};
|
|
7691
|
+
}();
|
|
7692
|
+
}, [setDim]);
|
|
7693
|
+
var updateScaleBoundaries = recoil.useRecoilCallback(function (_ref10) {
|
|
7694
|
+
var snapshot = _ref10.snapshot;
|
|
7695
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
7696
|
+
var _yield$snapshot$getPr4, _yield$snapshot$getPr5, width, height, boardWrapperRect, scaleX, scaleY, newScale;
|
|
7697
|
+
|
|
7698
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
7643
7699
|
while (1) {
|
|
7644
|
-
switch (
|
|
7700
|
+
switch (_context4.prev = _context4.next) {
|
|
7645
7701
|
case 0:
|
|
7646
|
-
|
|
7702
|
+
_context4.next = 2;
|
|
7647
7703
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7648
7704
|
|
|
7649
7705
|
case 2:
|
|
7650
|
-
_yield$snapshot$
|
|
7651
|
-
_yield$snapshot$
|
|
7652
|
-
width = _yield$snapshot$
|
|
7653
|
-
height = _yield$snapshot$
|
|
7654
|
-
boardWrapperRect = _yield$snapshot$
|
|
7706
|
+
_yield$snapshot$getPr4 = _context4.sent;
|
|
7707
|
+
_yield$snapshot$getPr5 = _yield$snapshot$getPr4.itemExtent;
|
|
7708
|
+
width = _yield$snapshot$getPr5.width;
|
|
7709
|
+
height = _yield$snapshot$getPr5.height;
|
|
7710
|
+
boardWrapperRect = _yield$snapshot$getPr4.boardWrapperRect;
|
|
7655
7711
|
scaleX = boardWrapperRect.width / width;
|
|
7656
7712
|
scaleY = boardWrapperRect.height / height;
|
|
7657
7713
|
newScale = Math.min(scaleX, scaleY);
|
|
@@ -7659,86 +7715,86 @@ var useDim = function useDim() {
|
|
|
7659
7715
|
|
|
7660
7716
|
case 11:
|
|
7661
7717
|
case "end":
|
|
7662
|
-
return
|
|
7718
|
+
return _context4.stop();
|
|
7663
7719
|
}
|
|
7664
7720
|
}
|
|
7665
|
-
},
|
|
7721
|
+
}, _callee4);
|
|
7666
7722
|
}));
|
|
7667
7723
|
}, []);
|
|
7668
|
-
var getCenterCoordinates = recoil.useRecoilCallback(function (
|
|
7669
|
-
var snapshot =
|
|
7670
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7671
|
-
var _yield$snapshot$
|
|
7724
|
+
var getCenterCoordinates = recoil.useRecoilCallback(function (_ref12) {
|
|
7725
|
+
var snapshot = _ref12.snapshot;
|
|
7726
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
7727
|
+
var _yield$snapshot$getPr6, boardWrapperRect, boardSize, _yield$snapshot$getPr7, translateX, translateY, scale;
|
|
7672
7728
|
|
|
7673
|
-
return regeneratorRuntime.wrap(function
|
|
7729
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
7674
7730
|
while (1) {
|
|
7675
|
-
switch (
|
|
7731
|
+
switch (_context5.prev = _context5.next) {
|
|
7676
7732
|
case 0:
|
|
7677
|
-
|
|
7733
|
+
_context5.next = 2;
|
|
7678
7734
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7679
7735
|
|
|
7680
7736
|
case 2:
|
|
7681
|
-
_yield$snapshot$
|
|
7682
|
-
boardWrapperRect = _yield$snapshot$
|
|
7683
|
-
boardSize = _yield$snapshot$
|
|
7684
|
-
|
|
7737
|
+
_yield$snapshot$getPr6 = _context5.sent;
|
|
7738
|
+
boardWrapperRect = _yield$snapshot$getPr6.boardWrapperRect;
|
|
7739
|
+
boardSize = _yield$snapshot$getPr6.boardSize;
|
|
7740
|
+
_context5.next = 7;
|
|
7685
7741
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7686
7742
|
|
|
7687
7743
|
case 7:
|
|
7688
|
-
_yield$snapshot$
|
|
7689
|
-
translateX = _yield$snapshot$
|
|
7690
|
-
translateY = _yield$snapshot$
|
|
7691
|
-
scale = _yield$snapshot$
|
|
7692
|
-
return
|
|
7744
|
+
_yield$snapshot$getPr7 = _context5.sent;
|
|
7745
|
+
translateX = _yield$snapshot$getPr7.translateX;
|
|
7746
|
+
translateY = _yield$snapshot$getPr7.translateY;
|
|
7747
|
+
scale = _yield$snapshot$getPr7.scale;
|
|
7748
|
+
return _context5.abrupt("return", {
|
|
7693
7749
|
x: (boardWrapperRect.width / 2 - translateX) / scale - boardSize / 2,
|
|
7694
7750
|
y: (boardWrapperRect.height / 2 - translateY) / scale - boardSize / 2
|
|
7695
7751
|
});
|
|
7696
7752
|
|
|
7697
7753
|
case 12:
|
|
7698
7754
|
case "end":
|
|
7699
|
-
return
|
|
7755
|
+
return _context5.stop();
|
|
7700
7756
|
}
|
|
7701
7757
|
}
|
|
7702
|
-
},
|
|
7758
|
+
}, _callee5);
|
|
7703
7759
|
}));
|
|
7704
7760
|
}, []);
|
|
7705
|
-
var updateItemExtent = recoil.useRecoilCallback(function (
|
|
7706
|
-
var snapshot =
|
|
7707
|
-
set =
|
|
7708
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7709
|
-
var itemIds, _yield$snapshot$
|
|
7761
|
+
var updateItemExtent = recoil.useRecoilCallback(function (_ref14) {
|
|
7762
|
+
var snapshot = _ref14.snapshot,
|
|
7763
|
+
set = _ref14.set;
|
|
7764
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
7765
|
+
var itemIds, _yield$snapshot$getPr8, boardWrapperRect, boardWrapper, boardSize, _yield$snapshot$getPr9, scale, translateX, translateY, _ref16, left, top, width, height, relativeExtent, delta, _delta;
|
|
7710
7766
|
|
|
7711
|
-
return regeneratorRuntime.wrap(function
|
|
7767
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
7712
7768
|
while (1) {
|
|
7713
|
-
switch (
|
|
7769
|
+
switch (_context6.prev = _context6.next) {
|
|
7714
7770
|
case 0:
|
|
7715
|
-
|
|
7771
|
+
_context6.next = 2;
|
|
7716
7772
|
return snapshot.getPromise(ItemListAtom);
|
|
7717
7773
|
|
|
7718
7774
|
case 2:
|
|
7719
|
-
itemIds =
|
|
7720
|
-
|
|
7775
|
+
itemIds = _context6.sent;
|
|
7776
|
+
_context6.next = 5;
|
|
7721
7777
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7722
7778
|
|
|
7723
7779
|
case 5:
|
|
7724
|
-
_yield$snapshot$
|
|
7725
|
-
boardWrapperRect = _yield$snapshot$
|
|
7726
|
-
boardWrapper = _yield$snapshot$
|
|
7727
|
-
boardSize = _yield$snapshot$
|
|
7728
|
-
|
|
7780
|
+
_yield$snapshot$getPr8 = _context6.sent;
|
|
7781
|
+
boardWrapperRect = _yield$snapshot$getPr8.boardWrapperRect;
|
|
7782
|
+
boardWrapper = _yield$snapshot$getPr8.boardWrapper;
|
|
7783
|
+
boardSize = _yield$snapshot$getPr8.boardSize;
|
|
7784
|
+
_context6.next = 11;
|
|
7729
7785
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7730
7786
|
|
|
7731
7787
|
case 11:
|
|
7732
|
-
_yield$snapshot$
|
|
7733
|
-
scale = _yield$snapshot$
|
|
7734
|
-
translateX = _yield$snapshot$
|
|
7735
|
-
translateY = _yield$snapshot$
|
|
7736
|
-
|
|
7788
|
+
_yield$snapshot$getPr9 = _context6.sent;
|
|
7789
|
+
scale = _yield$snapshot$getPr9.scale;
|
|
7790
|
+
translateX = _yield$snapshot$getPr9.translateX;
|
|
7791
|
+
translateY = _yield$snapshot$getPr9.translateY;
|
|
7792
|
+
_ref16 = getItemBoundingBox(itemIds, boardWrapper) || {
|
|
7737
7793
|
left: boardSize / 2 * scale + boardWrapperRect.left + translateX,
|
|
7738
7794
|
top: boardSize / 2 * scale + boardWrapperRect.top + translateY,
|
|
7739
7795
|
width: 0,
|
|
7740
7796
|
height: 0
|
|
7741
|
-
}, left =
|
|
7797
|
+
}, left = _ref16.left, top = _ref16.top, width = _ref16.width, height = _ref16.height;
|
|
7742
7798
|
relativeExtent = {
|
|
7743
7799
|
left: (left - boardWrapperRect.left - translateX) / scale,
|
|
7744
7800
|
top: (top - boardWrapperRect.top - translateY) / scale,
|
|
@@ -7770,10 +7826,10 @@ var useDim = function useDim() {
|
|
|
7770
7826
|
|
|
7771
7827
|
case 22:
|
|
7772
7828
|
case "end":
|
|
7773
|
-
return
|
|
7829
|
+
return _context6.stop();
|
|
7774
7830
|
}
|
|
7775
7831
|
}
|
|
7776
|
-
},
|
|
7832
|
+
}, _callee6);
|
|
7777
7833
|
}));
|
|
7778
7834
|
}, []);
|
|
7779
7835
|
var debouncedUpdateItemExtent = useDebouncedCallback(updateItemExtent, [], 300);
|
|
@@ -7785,7 +7841,9 @@ var useDim = function useDim() {
|
|
|
7785
7841
|
return {
|
|
7786
7842
|
setDim: setDimSafe,
|
|
7787
7843
|
getDim: getDim,
|
|
7788
|
-
zoomTo:
|
|
7844
|
+
zoomTo: zoomToCenter,
|
|
7845
|
+
zoomToCenter: zoomToCenter,
|
|
7846
|
+
zoomToExtent: zoomToExtent,
|
|
7789
7847
|
getCenter: getCenterCoordinates,
|
|
7790
7848
|
updateItemExtent: debouncedUpdateItemExtent
|
|
7791
7849
|
};
|