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/esm/index.js
CHANGED
|
@@ -4550,6 +4550,18 @@ var computeDistance = function computeDistance(_ref, _ref2) {
|
|
|
4550
4550
|
|
|
4551
4551
|
var empty = function empty() {};
|
|
4552
4552
|
|
|
4553
|
+
var stopPropagation = function stopPropagation(fn) {
|
|
4554
|
+
return function (arg) {
|
|
4555
|
+
var event = arg.event;
|
|
4556
|
+
|
|
4557
|
+
if (!event.isPropagationStopped()) {
|
|
4558
|
+
return fn(arg);
|
|
4559
|
+
}
|
|
4560
|
+
|
|
4561
|
+
return null;
|
|
4562
|
+
};
|
|
4563
|
+
};
|
|
4564
|
+
|
|
4553
4565
|
var protect = function protect(fn) {
|
|
4554
4566
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
4555
4567
|
var _args = arguments;
|
|
@@ -4580,6 +4592,35 @@ var protect = function protect(fn) {
|
|
|
4580
4592
|
}));
|
|
4581
4593
|
};
|
|
4582
4594
|
|
|
4595
|
+
var PromiseQueue = /*#__PURE__*/function () {
|
|
4596
|
+
function PromiseQueue() {
|
|
4597
|
+
_classCallCheck(this, PromiseQueue);
|
|
4598
|
+
|
|
4599
|
+
_defineProperty(this, "lastPromise", Promise.resolve(true));
|
|
4600
|
+
}
|
|
4601
|
+
|
|
4602
|
+
_createClass(PromiseQueue, [{
|
|
4603
|
+
key: "add",
|
|
4604
|
+
value: function add(operation) {
|
|
4605
|
+
var _this = this;
|
|
4606
|
+
|
|
4607
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
4608
|
+
args[_key - 1] = arguments[_key];
|
|
4609
|
+
}
|
|
4610
|
+
|
|
4611
|
+
return new Promise(function (resolve, reject) {
|
|
4612
|
+
_this.lastPromise = _this.lastPromise.then(function () {
|
|
4613
|
+
return stopPropagation(protect(operation)).apply(void 0, args);
|
|
4614
|
+
}).then(resolve)["catch"](reject);
|
|
4615
|
+
});
|
|
4616
|
+
}
|
|
4617
|
+
}]);
|
|
4618
|
+
|
|
4619
|
+
return PromiseQueue;
|
|
4620
|
+
}();
|
|
4621
|
+
|
|
4622
|
+
var promiseQueue = new PromiseQueue();
|
|
4623
|
+
|
|
4583
4624
|
var Gesture = function Gesture(_ref6) {
|
|
4584
4625
|
var children = _ref6.children,
|
|
4585
4626
|
_ref6$onDrag = _ref6.onDrag,
|
|
@@ -4596,57 +4637,25 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4596
4637
|
onLongTap = _ref6$onLongTap === void 0 ? empty : _ref6$onLongTap,
|
|
4597
4638
|
_ref6$onDoubleTap = _ref6.onDoubleTap,
|
|
4598
4639
|
onDoubleTap = _ref6$onDoubleTap === void 0 ? empty : _ref6$onDoubleTap,
|
|
4599
|
-
onZoom = _ref6.onZoom
|
|
4640
|
+
onZoom = _ref6.onZoom,
|
|
4641
|
+
_ref6$mainAction = _ref6.mainAction,
|
|
4642
|
+
mainAction = _ref6$mainAction === void 0 ? "drag" : _ref6$mainAction;
|
|
4600
4643
|
var wrapperRef = React__default.useRef(null);
|
|
4601
4644
|
var stateRef = React__default.useRef({
|
|
4602
4645
|
moving: false,
|
|
4603
4646
|
pointers: {},
|
|
4604
4647
|
mainPointer: undefined
|
|
4605
4648
|
});
|
|
4606
|
-
var
|
|
4607
|
-
|
|
4608
|
-
|
|
4609
|
-
|
|
4610
|
-
|
|
4611
|
-
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
case 2:
|
|
4618
|
-
queueRef.current.shift();
|
|
4619
|
-
|
|
4620
|
-
if (!(queueRef.current.length !== 0)) {
|
|
4621
|
-
_context2.next = 6;
|
|
4622
|
-
break;
|
|
4623
|
-
}
|
|
4624
|
-
|
|
4625
|
-
_context2.next = 6;
|
|
4626
|
-
return protect(queueRef.current[0])();
|
|
4627
|
-
|
|
4628
|
-
case 6:
|
|
4629
|
-
case "end":
|
|
4630
|
-
return _context2.stop();
|
|
4631
|
-
}
|
|
4632
|
-
}
|
|
4633
|
-
}, _callee2);
|
|
4634
|
-
})));
|
|
4635
|
-
|
|
4636
|
-
if (queueRef.current.length === 1) {
|
|
4637
|
-
protect(queueRef.current[0])();
|
|
4638
|
-
}
|
|
4639
|
-
}, []);
|
|
4640
|
-
var onWheel = React__default.useCallback(function (e) {
|
|
4641
|
-
var deltaX = e.deltaX,
|
|
4642
|
-
deltaY = e.deltaY,
|
|
4643
|
-
clientX = e.clientX,
|
|
4644
|
-
clientY = e.clientY,
|
|
4645
|
-
deltaMode = e.deltaMode,
|
|
4646
|
-
ctrlKey = e.ctrlKey,
|
|
4647
|
-
altKey = e.altKey,
|
|
4648
|
-
metaKey = e.metaKey,
|
|
4649
|
-
target = e.target; // On a MacOs trackpad, the pinch gesture sets the ctrlKey to true.
|
|
4649
|
+
var onWheel = React__default.useCallback(function (event) {
|
|
4650
|
+
var deltaX = event.deltaX,
|
|
4651
|
+
deltaY = event.deltaY,
|
|
4652
|
+
clientX = event.clientX,
|
|
4653
|
+
clientY = event.clientY,
|
|
4654
|
+
deltaMode = event.deltaMode,
|
|
4655
|
+
ctrlKey = event.ctrlKey,
|
|
4656
|
+
altKey = event.altKey,
|
|
4657
|
+
metaKey = event.metaKey,
|
|
4658
|
+
target = event.target; // On a MacOs trackpad, the pinch gesture sets the ctrlKey to true.
|
|
4650
4659
|
// In that situation, we want to use the custom scaling, not the browser default zoom.
|
|
4651
4660
|
// Hence in this situation we avoid to return immediately.
|
|
4652
4661
|
|
|
@@ -4659,14 +4668,14 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4659
4668
|
|
|
4660
4669
|
|
|
4661
4670
|
if (isMacOS() && !ctrlKey) {
|
|
4662
|
-
|
|
4671
|
+
promiseQueue.add(onPan, {
|
|
4663
4672
|
deltaX: -2 * deltaX,
|
|
4664
4673
|
deltaY: -2 * deltaY,
|
|
4665
4674
|
button: 1,
|
|
4666
4675
|
ctrlKey: ctrlKey,
|
|
4667
4676
|
metaKey: metaKey,
|
|
4668
4677
|
target: target,
|
|
4669
|
-
event:
|
|
4678
|
+
event: event
|
|
4670
4679
|
});
|
|
4671
4680
|
} else {
|
|
4672
4681
|
// Quit if onZoom is not set
|
|
@@ -4688,25 +4697,25 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4688
4697
|
scale *= 2;
|
|
4689
4698
|
}
|
|
4690
4699
|
|
|
4691
|
-
|
|
4700
|
+
promiseQueue.add(onZoom, {
|
|
4692
4701
|
scale: scale,
|
|
4693
4702
|
clientX: clientX,
|
|
4694
4703
|
clientY: clientY,
|
|
4695
|
-
event:
|
|
4704
|
+
event: event
|
|
4696
4705
|
});
|
|
4697
4706
|
}
|
|
4698
|
-
}, [onPan, onZoom
|
|
4699
|
-
var onPointerDown = React__default.useCallback(function (
|
|
4700
|
-
var target =
|
|
4701
|
-
button =
|
|
4702
|
-
clientX =
|
|
4703
|
-
clientY =
|
|
4704
|
-
pointerId =
|
|
4705
|
-
altKey =
|
|
4706
|
-
ctrlKey =
|
|
4707
|
-
metaKey =
|
|
4708
|
-
isPrimary =
|
|
4709
|
-
|
|
4707
|
+
}, [onPan, onZoom]);
|
|
4708
|
+
var onPointerDown = React__default.useCallback(function (event) {
|
|
4709
|
+
var target = event.target,
|
|
4710
|
+
button = event.button,
|
|
4711
|
+
clientX = event.clientX,
|
|
4712
|
+
clientY = event.clientY,
|
|
4713
|
+
pointerId = event.pointerId,
|
|
4714
|
+
altKey = event.altKey,
|
|
4715
|
+
ctrlKey = event.ctrlKey,
|
|
4716
|
+
metaKey = event.metaKey,
|
|
4717
|
+
isPrimary = event.isPrimary; // Add pointer to map
|
|
4718
|
+
|
|
4710
4719
|
stateRef.current.pointers[pointerId] = {
|
|
4711
4720
|
clientX: clientX,
|
|
4712
4721
|
clientY: clientY
|
|
@@ -4765,27 +4774,28 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4765
4774
|
currentButton: button,
|
|
4766
4775
|
target: target,
|
|
4767
4776
|
timeStart: Date.now(),
|
|
4768
|
-
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
4769
|
-
return regeneratorRuntime.wrap(function
|
|
4777
|
+
longTapTimeout: setTimeout( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
4778
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
4770
4779
|
while (1) {
|
|
4771
|
-
switch (
|
|
4780
|
+
switch (_context2.prev = _context2.next) {
|
|
4772
4781
|
case 0:
|
|
4773
4782
|
stateRef.current.noTap = true;
|
|
4774
|
-
|
|
4783
|
+
promiseQueue.add(onLongTap, {
|
|
4775
4784
|
clientX: clientX,
|
|
4776
4785
|
clientY: clientY,
|
|
4777
4786
|
altKey: altKey,
|
|
4778
4787
|
ctrlKey: ctrlKey,
|
|
4779
4788
|
metaKey: metaKey,
|
|
4780
|
-
target: target
|
|
4789
|
+
target: target,
|
|
4790
|
+
event: event
|
|
4781
4791
|
});
|
|
4782
4792
|
|
|
4783
4793
|
case 2:
|
|
4784
4794
|
case "end":
|
|
4785
|
-
return
|
|
4795
|
+
return _context2.stop();
|
|
4786
4796
|
}
|
|
4787
4797
|
}
|
|
4788
|
-
},
|
|
4798
|
+
}, _callee2);
|
|
4789
4799
|
})), 750)
|
|
4790
4800
|
});
|
|
4791
4801
|
|
|
@@ -4795,16 +4805,17 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4795
4805
|
// eslint-disable-next-line no-console
|
|
4796
4806
|
console.log("Fail to capture pointer", e);
|
|
4797
4807
|
}
|
|
4798
|
-
}, [onLongTap
|
|
4799
|
-
var onPointerMove = React__default.useCallback(function (
|
|
4808
|
+
}, [onLongTap]);
|
|
4809
|
+
var onPointerMove = React__default.useCallback(function (event) {
|
|
4800
4810
|
if (stateRef.current.pressed) {
|
|
4801
|
-
var pointerId =
|
|
4802
|
-
eventClientX =
|
|
4803
|
-
eventClientY =
|
|
4804
|
-
altKey =
|
|
4805
|
-
ctrlKey =
|
|
4806
|
-
metaKey =
|
|
4807
|
-
|
|
4811
|
+
var pointerId = event.pointerId,
|
|
4812
|
+
eventClientX = event.clientX,
|
|
4813
|
+
eventClientY = event.clientY,
|
|
4814
|
+
altKey = event.altKey,
|
|
4815
|
+
ctrlKey = event.ctrlKey,
|
|
4816
|
+
metaKey = event.metaKey,
|
|
4817
|
+
buttons = event.buttons,
|
|
4818
|
+
pointerType = event.pointerType;
|
|
4808
4819
|
|
|
4809
4820
|
if (stateRef.current.mainPointer !== pointerId) {
|
|
4810
4821
|
// Event from other pointer
|
|
@@ -4837,13 +4848,20 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4837
4848
|
clientY = eventClientY;
|
|
4838
4849
|
} // We drag if
|
|
4839
4850
|
// On non touch device
|
|
4840
|
-
// -
|
|
4841
|
-
// -
|
|
4851
|
+
// - Only button is pressed (1)
|
|
4852
|
+
// - any special key is no pressed
|
|
4842
4853
|
// or on touch devices
|
|
4843
4854
|
// - We use only one finger
|
|
4844
4855
|
|
|
4845
4856
|
|
|
4846
|
-
var
|
|
4857
|
+
var altAction = altKey || ctrlKey || metaKey || buttons !== 1;
|
|
4858
|
+
|
|
4859
|
+
if (mainAction !== "drag") {
|
|
4860
|
+
altAction = !altAction;
|
|
4861
|
+
}
|
|
4862
|
+
|
|
4863
|
+
var shouldDrag = pointerType !== "touch" ? !altAction : !twoFingers;
|
|
4864
|
+
var shouldPan = pointerType !== "touch" ? altAction : twoFingers;
|
|
4847
4865
|
|
|
4848
4866
|
if (shouldDrag) {
|
|
4849
4867
|
// Send drag start on first move
|
|
@@ -4852,7 +4870,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4852
4870
|
stateRef.current.gestureStart = true; // Clear tap timeout
|
|
4853
4871
|
|
|
4854
4872
|
clearTimeout(stateRef.current.longTapTimeout);
|
|
4855
|
-
|
|
4873
|
+
promiseQueue.add(onDragStart, {
|
|
4856
4874
|
deltaX: 0,
|
|
4857
4875
|
deltaY: 0,
|
|
4858
4876
|
startX: stateRef.current.startX,
|
|
@@ -4866,17 +4884,16 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4866
4884
|
ctrlKey: ctrlKey,
|
|
4867
4885
|
metaKey: metaKey,
|
|
4868
4886
|
target: stateRef.current.target,
|
|
4869
|
-
event:
|
|
4887
|
+
event: event
|
|
4870
4888
|
});
|
|
4871
|
-
}
|
|
4872
|
-
|
|
4889
|
+
}
|
|
4873
4890
|
|
|
4874
4891
|
var deltaX = clientX - stateRef.current.prevX;
|
|
4875
4892
|
var deltaY = clientY - stateRef.current.prevY;
|
|
4876
4893
|
var distanceX = clientX - stateRef.current.startX;
|
|
4877
4894
|
var distanceY = clientY - stateRef.current.startY; // Drag event
|
|
4878
4895
|
|
|
4879
|
-
|
|
4896
|
+
promiseQueue.add(onDrag, {
|
|
4880
4897
|
deltaX: deltaX,
|
|
4881
4898
|
deltaY: deltaY,
|
|
4882
4899
|
startX: stateRef.current.startX,
|
|
@@ -4890,9 +4907,11 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4890
4907
|
ctrlKey: ctrlKey,
|
|
4891
4908
|
metaKey: metaKey,
|
|
4892
4909
|
target: stateRef.current.target,
|
|
4893
|
-
event:
|
|
4910
|
+
event: event
|
|
4894
4911
|
});
|
|
4895
|
-
}
|
|
4912
|
+
}
|
|
4913
|
+
|
|
4914
|
+
if (shouldPan) {
|
|
4896
4915
|
if (!stateRef.current.gestureStart) {
|
|
4897
4916
|
wrapperRef.current.style.cursor = "move";
|
|
4898
4917
|
stateRef.current.gestureStart = true; // Clear tap timeout on first move
|
|
@@ -4907,7 +4926,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4907
4926
|
|
|
4908
4927
|
var target = stateRef.current.target; // Pan event
|
|
4909
4928
|
|
|
4910
|
-
|
|
4929
|
+
promiseQueue.add(onPan, {
|
|
4911
4930
|
deltaX: _deltaX,
|
|
4912
4931
|
deltaY: _deltaY,
|
|
4913
4932
|
button: stateRef.current.currentButton,
|
|
@@ -4915,18 +4934,18 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4915
4934
|
ctrlKey: ctrlKey,
|
|
4916
4935
|
metaKey: metaKey,
|
|
4917
4936
|
target: target,
|
|
4918
|
-
event:
|
|
4937
|
+
event: event
|
|
4919
4938
|
});
|
|
4920
4939
|
|
|
4921
4940
|
if (twoFingers && distance !== stateRef.current.prevDistance && onZoom) {
|
|
4922
4941
|
var scale = stateRef.current.prevDistance - distance;
|
|
4923
4942
|
|
|
4924
4943
|
if (Math.abs(scale) > 0) {
|
|
4925
|
-
|
|
4944
|
+
promiseQueue.add(onZoom, {
|
|
4926
4945
|
scale: scale,
|
|
4927
4946
|
clientX: clientX,
|
|
4928
4947
|
clientY: clientY,
|
|
4929
|
-
event:
|
|
4948
|
+
event: event
|
|
4930
4949
|
});
|
|
4931
4950
|
stateRef.current.prevDistance = distance;
|
|
4932
4951
|
}
|
|
@@ -4936,15 +4955,15 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4936
4955
|
stateRef.current.prevX = clientX;
|
|
4937
4956
|
stateRef.current.prevY = clientY;
|
|
4938
4957
|
}
|
|
4939
|
-
}, [onDrag, onDragStart, onPan, onZoom
|
|
4940
|
-
var onPointerUp = React__default.useCallback(function (
|
|
4941
|
-
var clientX =
|
|
4942
|
-
clientY =
|
|
4943
|
-
altKey =
|
|
4944
|
-
ctrlKey =
|
|
4945
|
-
metaKey =
|
|
4946
|
-
target =
|
|
4947
|
-
pointerId =
|
|
4958
|
+
}, [mainAction, onDrag, onDragStart, onPan, onZoom]);
|
|
4959
|
+
var onPointerUp = React__default.useCallback(function (event) {
|
|
4960
|
+
var clientX = event.clientX,
|
|
4961
|
+
clientY = event.clientY,
|
|
4962
|
+
altKey = event.altKey,
|
|
4963
|
+
ctrlKey = event.ctrlKey,
|
|
4964
|
+
metaKey = event.metaKey,
|
|
4965
|
+
target = event.target,
|
|
4966
|
+
pointerId = event.pointerId;
|
|
4948
4967
|
|
|
4949
4968
|
if (!stateRef.current.pointers[pointerId]) {
|
|
4950
4969
|
// Pointer already gone previously with another event
|
|
@@ -4983,7 +5002,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4983
5002
|
if (stateRef.current.moving) {
|
|
4984
5003
|
// If we were moving, send drag end event
|
|
4985
5004
|
stateRef.current.moving = false;
|
|
4986
|
-
|
|
5005
|
+
promiseQueue.add(onDragEnd, {
|
|
4987
5006
|
deltaX: clientX - stateRef.current.prevX,
|
|
4988
5007
|
deltaY: clientY - stateRef.current.prevY,
|
|
4989
5008
|
startX: stateRef.current.startX,
|
|
@@ -4996,7 +5015,7 @@ var Gesture = function Gesture(_ref6) {
|
|
|
4996
5015
|
altKey: altKey,
|
|
4997
5016
|
ctrlKey: ctrlKey,
|
|
4998
5017
|
metaKey: metaKey,
|
|
4999
|
-
event:
|
|
5018
|
+
event: event
|
|
5000
5019
|
});
|
|
5001
5020
|
wrapperRef.current.style.cursor = "auto";
|
|
5002
5021
|
} else {
|
|
@@ -5006,20 +5025,35 @@ var Gesture = function Gesture(_ref6) {
|
|
|
5006
5025
|
stateRef.current.noTap = false;
|
|
5007
5026
|
} // Send tap event only if time less than 300ms
|
|
5008
5027
|
else if (stateRef.current.timeStart - now < 300) {
|
|
5009
|
-
|
|
5028
|
+
promiseQueue.add(onTap, {
|
|
5010
5029
|
clientX: clientX,
|
|
5011
5030
|
clientY: clientY,
|
|
5012
5031
|
altKey: altKey,
|
|
5013
5032
|
ctrlKey: ctrlKey,
|
|
5014
5033
|
metaKey: metaKey,
|
|
5015
|
-
target: target
|
|
5034
|
+
target: target,
|
|
5035
|
+
event: event
|
|
5016
5036
|
});
|
|
5017
5037
|
}
|
|
5018
5038
|
}
|
|
5019
|
-
}, [onDragEnd, onTap
|
|
5039
|
+
}, [onDragEnd, onTap]);
|
|
5020
5040
|
var onDoubleTapHandler = React__default.useCallback(function (event) {
|
|
5021
|
-
|
|
5022
|
-
|
|
5041
|
+
var clientX = event.clientX,
|
|
5042
|
+
clientY = event.clientY,
|
|
5043
|
+
altKey = event.altKey,
|
|
5044
|
+
ctrlKey = event.ctrlKey,
|
|
5045
|
+
metaKey = event.metaKey,
|
|
5046
|
+
target = event.target;
|
|
5047
|
+
promiseQueue.add(onDoubleTap, {
|
|
5048
|
+
clientX: clientX,
|
|
5049
|
+
clientY: clientY,
|
|
5050
|
+
altKey: altKey,
|
|
5051
|
+
ctrlKey: ctrlKey,
|
|
5052
|
+
metaKey: metaKey,
|
|
5053
|
+
target: target,
|
|
5054
|
+
event: event
|
|
5055
|
+
});
|
|
5056
|
+
}, [onDoubleTap]);
|
|
5023
5057
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
5024
5058
|
onWheel: onWheel,
|
|
5025
5059
|
onPointerDown: onPointerDown,
|
|
@@ -5090,7 +5124,7 @@ var _excluded$2 = ["type", "rotation", "id", "locked", "layer"],
|
|
|
5090
5124
|
_excluded3 = ["x", "y", "layer", "moving"];
|
|
5091
5125
|
|
|
5092
5126
|
var _templateObject$2;
|
|
5093
|
-
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) {
|
|
5127
|
+
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) {
|
|
5094
5128
|
var rotation = _ref.rotation;
|
|
5095
5129
|
return rotation;
|
|
5096
5130
|
}, img);
|
|
@@ -5344,6 +5378,8 @@ var Item = function Item(_ref5) {
|
|
|
5344
5378
|
className: "corner bottom-right"
|
|
5345
5379
|
}), /*#__PURE__*/React__default.createElement("div", {
|
|
5346
5380
|
className: "corner bottom-left"
|
|
5381
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
5382
|
+
className: "center"
|
|
5347
5383
|
}), isSelected && showResizeHandle && /*#__PURE__*/React__default.createElement(React__default.Fragment, null, resizeDirections.b && /*#__PURE__*/React__default.createElement(ResizeHandler, {
|
|
5348
5384
|
className: "resize resize-ratio",
|
|
5349
5385
|
onResize: onResizeRatio
|
|
@@ -5909,24 +5945,20 @@ var Selector = function Selector(_ref) {
|
|
|
5909
5945
|
}));
|
|
5910
5946
|
}, [setSelected]);
|
|
5911
5947
|
useThrottledEffect(updateSelected, [selector, updateSelected], 200);
|
|
5912
|
-
|
|
5913
|
-
var onDragStart = /*#__PURE__*/function () {
|
|
5948
|
+
var onDragStart = React__default.useCallback( /*#__PURE__*/function () {
|
|
5914
5949
|
var _ref4 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(event) {
|
|
5915
|
-
var
|
|
5950
|
+
var foundElement;
|
|
5916
5951
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
5917
5952
|
while (1) {
|
|
5918
5953
|
switch (_context2.prev = _context2.next) {
|
|
5919
5954
|
case 0:
|
|
5920
|
-
|
|
5921
|
-
_context2.next = 3;
|
|
5955
|
+
_context2.next = 2;
|
|
5922
5956
|
return findElementUnderPointer(event);
|
|
5923
5957
|
|
|
5924
|
-
case
|
|
5958
|
+
case 2:
|
|
5925
5959
|
foundElement = _context2.sent;
|
|
5926
|
-
metaKeyPressed = altKey || ctrlKey || metaKey;
|
|
5927
|
-
goodButton = moveFirst ? button === 1 || button === 0 && metaKeyPressed : button === 0 && !metaKeyPressed;
|
|
5928
5960
|
|
|
5929
|
-
if (
|
|
5961
|
+
if (!foundElement) {
|
|
5930
5962
|
stateRef.current.moving = true;
|
|
5931
5963
|
setBoardState(function (prev) {
|
|
5932
5964
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -5936,7 +5968,7 @@ var Selector = function Selector(_ref) {
|
|
|
5936
5968
|
wrapperRef.current.style.cursor = "crosshair";
|
|
5937
5969
|
}
|
|
5938
5970
|
|
|
5939
|
-
case
|
|
5971
|
+
case 4:
|
|
5940
5972
|
case "end":
|
|
5941
5973
|
return _context2.stop();
|
|
5942
5974
|
}
|
|
@@ -5944,11 +5976,10 @@ var Selector = function Selector(_ref) {
|
|
|
5944
5976
|
}, _callee2);
|
|
5945
5977
|
}));
|
|
5946
5978
|
|
|
5947
|
-
return function
|
|
5979
|
+
return function (_x) {
|
|
5948
5980
|
return _ref4.apply(this, arguments);
|
|
5949
5981
|
};
|
|
5950
|
-
}();
|
|
5951
|
-
|
|
5982
|
+
}(), [findElementUnderPointer, setBoardState]);
|
|
5952
5983
|
var onDrag = useRecoilCallback(function (_ref5) {
|
|
5953
5984
|
var snapshot = _ref5.snapshot;
|
|
5954
5985
|
return /*#__PURE__*/function () {
|
|
@@ -6011,8 +6042,7 @@ var Selector = function Selector(_ref) {
|
|
|
6011
6042
|
};
|
|
6012
6043
|
}();
|
|
6013
6044
|
}, []);
|
|
6014
|
-
|
|
6015
|
-
var onDragEnd = function onDragEnd() {
|
|
6045
|
+
var onDragEnd = React__default.useCallback(function () {
|
|
6016
6046
|
if (stateRef.current.moving) {
|
|
6017
6047
|
setBoardState(function (prev) {
|
|
6018
6048
|
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
@@ -6025,8 +6055,7 @@ var Selector = function Selector(_ref) {
|
|
|
6025
6055
|
});
|
|
6026
6056
|
wrapperRef.current.style.cursor = "auto";
|
|
6027
6057
|
}
|
|
6028
|
-
};
|
|
6029
|
-
|
|
6058
|
+
}, [setBoardState]);
|
|
6030
6059
|
var onLongTap = React__default.useCallback(function (_ref8) {
|
|
6031
6060
|
var target = _ref8.target;
|
|
6032
6061
|
var foundElement = insideClass(target, "item");
|
|
@@ -6107,7 +6136,8 @@ var Selector = function Selector(_ref) {
|
|
|
6107
6136
|
onDrag: onDrag,
|
|
6108
6137
|
onDragEnd: onDragEnd,
|
|
6109
6138
|
onTap: onTap,
|
|
6110
|
-
onLongTap: onLongTap
|
|
6139
|
+
onLongTap: onLongTap,
|
|
6140
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
6111
6141
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
6112
6142
|
ref: wrapperRef
|
|
6113
6143
|
}, selector.moving && /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -6200,23 +6230,24 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6200
6230
|
var snapshot = _ref4.snapshot;
|
|
6201
6231
|
return /*#__PURE__*/function () {
|
|
6202
6232
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
6203
|
-
var deltaX, deltaY, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6233
|
+
var deltaX, deltaY, originalEvent, _yield$snapshot$getPr, scale, moveX, moveY;
|
|
6204
6234
|
|
|
6205
6235
|
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
6206
6236
|
while (1) {
|
|
6207
6237
|
switch (_context2.prev = _context2.next) {
|
|
6208
6238
|
case 0:
|
|
6209
|
-
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY;
|
|
6239
|
+
deltaX = _ref5.deltaX, deltaY = _ref5.deltaY, originalEvent = _ref5.event;
|
|
6210
6240
|
|
|
6211
6241
|
if (!actionRef.current.moving) {
|
|
6212
|
-
_context2.next =
|
|
6242
|
+
_context2.next = 11;
|
|
6213
6243
|
break;
|
|
6214
6244
|
}
|
|
6215
6245
|
|
|
6216
|
-
|
|
6246
|
+
originalEvent.stopPropagation();
|
|
6247
|
+
_context2.next = 5;
|
|
6217
6248
|
return snapshot.getPromise(BoardTransformAtom);
|
|
6218
6249
|
|
|
6219
|
-
case
|
|
6250
|
+
case 5:
|
|
6220
6251
|
_yield$snapshot$getPr = _context2.sent;
|
|
6221
6252
|
scale = _yield$snapshot$getPr.scale;
|
|
6222
6253
|
moveX = actionRef.current.remainX + deltaX / scale;
|
|
@@ -6231,7 +6262,7 @@ var ActionPane = function ActionPane(_ref) {
|
|
|
6231
6262
|
}) : prev;
|
|
6232
6263
|
});
|
|
6233
6264
|
|
|
6234
|
-
case
|
|
6265
|
+
case 11:
|
|
6235
6266
|
case "end":
|
|
6236
6267
|
return _context2.stop();
|
|
6237
6268
|
}
|
|
@@ -6956,8 +6987,6 @@ var usePositionNavigator = function usePositionNavigator() {
|
|
|
6956
6987
|
return null;
|
|
6957
6988
|
};
|
|
6958
6989
|
|
|
6959
|
-
var SCALE_TOLERANCE = 0.8;
|
|
6960
|
-
|
|
6961
6990
|
var PanZoom = function PanZoom(_ref) {
|
|
6962
6991
|
var children = _ref.children,
|
|
6963
6992
|
_ref$moveFirst = _ref.moveFirst,
|
|
@@ -6967,7 +6996,8 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6967
6996
|
|
|
6968
6997
|
var _useDim = useDim(),
|
|
6969
6998
|
setDim = _useDim.setDim,
|
|
6970
|
-
|
|
6999
|
+
zoomToCenter = _useDim.zoomToCenter,
|
|
7000
|
+
zoomToExtent = _useDim.zoomToExtent;
|
|
6971
7001
|
|
|
6972
7002
|
var _useRecoilValue = useRecoilValue(ConfigurationAtom),
|
|
6973
7003
|
itemExtentGlobal = _useRecoilValue.itemExtent;
|
|
@@ -6983,10 +7013,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6983
7013
|
var getMouseInfo = useMousePosition(wrappedRef); // Hooks to save/restore position
|
|
6984
7014
|
|
|
6985
7015
|
usePositionNavigator();
|
|
7016
|
+
/**
|
|
7017
|
+
* Center board on startup
|
|
7018
|
+
*/
|
|
7019
|
+
|
|
6986
7020
|
var centerBoard = useRecoilCallback(function (_ref2) {
|
|
6987
7021
|
var snapshot = _ref2.snapshot;
|
|
6988
7022
|
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
6989
|
-
var _yield$snapshot$getPr,
|
|
7023
|
+
var _yield$snapshot$getPr, itemExtent;
|
|
6990
7024
|
|
|
6991
7025
|
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
6992
7026
|
while (1) {
|
|
@@ -6997,34 +7031,17 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
6997
7031
|
|
|
6998
7032
|
case 2:
|
|
6999
7033
|
_yield$snapshot$getPr = _context.sent;
|
|
7000
|
-
|
|
7001
|
-
|
|
7002
|
-
top = _yield$snapshot$getPr2.top;
|
|
7003
|
-
width = _yield$snapshot$getPr2.width;
|
|
7004
|
-
height = _yield$snapshot$getPr2.height;
|
|
7005
|
-
boardWrapperRect = _yield$snapshot$getPr.boardWrapperRect;
|
|
7006
|
-
scaleX = boardWrapperRect.width / width;
|
|
7007
|
-
scaleY = boardWrapperRect.height / height;
|
|
7008
|
-
newScale = Math.min(scaleX, scaleY);
|
|
7009
|
-
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7010
|
-
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7011
|
-
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7012
|
-
setDim(function (prev) {
|
|
7013
|
-
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7014
|
-
translateX: centerX,
|
|
7015
|
-
translateY: centerY,
|
|
7016
|
-
scale: scaleWithTolerance
|
|
7017
|
-
});
|
|
7018
|
-
});
|
|
7034
|
+
itemExtent = _yield$snapshot$getPr.itemExtent;
|
|
7035
|
+
zoomToExtent(itemExtent);
|
|
7019
7036
|
|
|
7020
|
-
case
|
|
7037
|
+
case 5:
|
|
7021
7038
|
case "end":
|
|
7022
7039
|
return _context.stop();
|
|
7023
7040
|
}
|
|
7024
7041
|
}
|
|
7025
7042
|
}, _callee);
|
|
7026
7043
|
}));
|
|
7027
|
-
}, [
|
|
7044
|
+
}, [zoomToExtent]);
|
|
7028
7045
|
React__default.useEffect(function () {
|
|
7029
7046
|
if (!centered && itemExtentGlobal.left) {
|
|
7030
7047
|
// Center board on first valid extent
|
|
@@ -7036,7 +7053,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7036
7053
|
var clientX = _ref4.clientX,
|
|
7037
7054
|
clientY = _ref4.clientY,
|
|
7038
7055
|
scale = _ref4.scale;
|
|
7039
|
-
|
|
7056
|
+
zoomToCenter(1 - scale / 500, {
|
|
7040
7057
|
x: clientX,
|
|
7041
7058
|
y: clientY
|
|
7042
7059
|
}); // Update the board zooming state
|
|
@@ -7054,7 +7071,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7054
7071
|
zooming: true
|
|
7055
7072
|
}) : prev;
|
|
7056
7073
|
});
|
|
7057
|
-
}, [setBoardState,
|
|
7074
|
+
}, [setBoardState, zoomToCenter]);
|
|
7058
7075
|
var onPan = React__default.useCallback( /*#__PURE__*/function () {
|
|
7059
7076
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(_ref5) {
|
|
7060
7077
|
var deltaX, deltaY;
|
|
@@ -7096,14 +7113,6 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7096
7113
|
return _ref6.apply(this, arguments);
|
|
7097
7114
|
};
|
|
7098
7115
|
}(), [setBoardState, setDim]);
|
|
7099
|
-
var onDrag = React__default.useCallback(function (state) {
|
|
7100
|
-
var target = state.target;
|
|
7101
|
-
var outsideItem = !insideClass(target, "item") || insideClass(target, "locked");
|
|
7102
|
-
|
|
7103
|
-
if (moveFirst && outsideItem) {
|
|
7104
|
-
onPan(state);
|
|
7105
|
-
}
|
|
7106
|
-
}, [moveFirst, onPan]);
|
|
7107
7116
|
var onKeyDown = useRecoilCallback(function (_ref7) {
|
|
7108
7117
|
var snapshot = _ref7.snapshot;
|
|
7109
7118
|
return /*#__PURE__*/function () {
|
|
@@ -7188,14 +7197,14 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7188
7197
|
translateX: prev.translateX + moveX
|
|
7189
7198
|
});
|
|
7190
7199
|
});
|
|
7191
|
-
|
|
7200
|
+
zoomToCenter(zoom);
|
|
7192
7201
|
e.preventDefault();
|
|
7193
7202
|
|
|
7194
7203
|
case 31:
|
|
7195
7204
|
// Temporary zoom
|
|
7196
7205
|
if (e.key === " " && !e.repeat) {
|
|
7197
7206
|
if (getMouseInfo().hover) {
|
|
7198
|
-
|
|
7207
|
+
zoomToCenter(3, getMouseInfo());
|
|
7199
7208
|
}
|
|
7200
7209
|
}
|
|
7201
7210
|
|
|
@@ -7211,15 +7220,15 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7211
7220
|
return _ref8.apply(this, arguments);
|
|
7212
7221
|
};
|
|
7213
7222
|
}();
|
|
7214
|
-
}, [setDim,
|
|
7223
|
+
}, [setDim, zoomToCenter, getMouseInfo]);
|
|
7215
7224
|
var onKeyUp = React__default.useCallback(function (e) {
|
|
7216
7225
|
// Ignore text in Input or Textarea
|
|
7217
7226
|
if (["INPUT", "TEXTAREA"].includes(e.target.tagName)) return; // Zoom out on release
|
|
7218
7227
|
|
|
7219
7228
|
if (e.key === " " && getMouseInfo().hover) {
|
|
7220
|
-
|
|
7229
|
+
zoomToCenter(1 / 3, getMouseInfo());
|
|
7221
7230
|
}
|
|
7222
|
-
}, [getMouseInfo,
|
|
7231
|
+
}, [getMouseInfo, zoomToCenter]);
|
|
7223
7232
|
React__default.useEffect(function () {
|
|
7224
7233
|
document.addEventListener("keydown", onKeyDown);
|
|
7225
7234
|
document.addEventListener("keyup", onKeyUp);
|
|
@@ -7231,7 +7240,7 @@ var PanZoom = function PanZoom(_ref) {
|
|
|
7231
7240
|
return /*#__PURE__*/React__default.createElement(Gesture, {
|
|
7232
7241
|
onPan: onPan,
|
|
7233
7242
|
onZoom: onZoom,
|
|
7234
|
-
|
|
7243
|
+
mainAction: moveFirst ? "pan" : "drag"
|
|
7235
7244
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
7236
7245
|
style: {
|
|
7237
7246
|
display: "inline-block",
|
|
@@ -7399,7 +7408,9 @@ var Board = function Board(_ref) {
|
|
|
7399
7408
|
moveFirst: moveFirst
|
|
7400
7409
|
}, /*#__PURE__*/React__default.createElement(Selector, {
|
|
7401
7410
|
moveFirst: moveFirst
|
|
7402
|
-
}, /*#__PURE__*/React__default.createElement(ActionPane,
|
|
7411
|
+
}, /*#__PURE__*/React__default.createElement(ActionPane, {
|
|
7412
|
+
moveFirst: moveFirst
|
|
7413
|
+
}, /*#__PURE__*/React__default.createElement(CursorPane, null, /*#__PURE__*/React__default.createElement("div", {
|
|
7403
7414
|
onContextMenu: function onContextMenu(e) {
|
|
7404
7415
|
e.preventDefault();
|
|
7405
7416
|
},
|
|
@@ -7410,6 +7421,7 @@ var Board = function Board(_ref) {
|
|
|
7410
7421
|
|
|
7411
7422
|
var TOLERANCE = 100;
|
|
7412
7423
|
var MIN_SIZE = 1000;
|
|
7424
|
+
var SCALE_TOLERANCE = 0.8;
|
|
7413
7425
|
|
|
7414
7426
|
var translateBoundaries = function translateBoundaries(_ref) {
|
|
7415
7427
|
var x = _ref.x,
|
|
@@ -7527,7 +7539,7 @@ var useDim = function useDim() {
|
|
|
7527
7539
|
};
|
|
7528
7540
|
}();
|
|
7529
7541
|
}, [setDim]);
|
|
7530
|
-
var
|
|
7542
|
+
var zoomToCenter = useRecoilCallback(function (_ref5) {
|
|
7531
7543
|
var snapshot = _ref5.snapshot;
|
|
7532
7544
|
return /*#__PURE__*/function () {
|
|
7533
7545
|
var _ref6 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2(factor, zoomCenter) {
|
|
@@ -7606,24 +7618,68 @@ var useDim = function useDim() {
|
|
|
7606
7618
|
};
|
|
7607
7619
|
}();
|
|
7608
7620
|
}, [setDim]);
|
|
7609
|
-
var
|
|
7621
|
+
var zoomToExtent = useRecoilCallback(function (_ref7) {
|
|
7610
7622
|
var snapshot = _ref7.snapshot;
|
|
7611
|
-
return /*#__PURE__*/
|
|
7612
|
-
var
|
|
7623
|
+
return /*#__PURE__*/function () {
|
|
7624
|
+
var _ref9 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3(_ref8) {
|
|
7625
|
+
var left, top, width, height, _yield$snapshot$getPr3, boardWrapperRect, scaleX, scaleY, newScale, scaleWithTolerance, centerX, centerY;
|
|
7613
7626
|
|
|
7614
|
-
|
|
7627
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
7628
|
+
while (1) {
|
|
7629
|
+
switch (_context3.prev = _context3.next) {
|
|
7630
|
+
case 0:
|
|
7631
|
+
left = _ref8.left, top = _ref8.top, width = _ref8.width, height = _ref8.height;
|
|
7632
|
+
_context3.next = 3;
|
|
7633
|
+
return snapshot.getPromise(ConfigurationAtom);
|
|
7634
|
+
|
|
7635
|
+
case 3:
|
|
7636
|
+
_yield$snapshot$getPr3 = _context3.sent;
|
|
7637
|
+
boardWrapperRect = _yield$snapshot$getPr3.boardWrapperRect;
|
|
7638
|
+
scaleX = boardWrapperRect.width / width;
|
|
7639
|
+
scaleY = boardWrapperRect.height / height;
|
|
7640
|
+
newScale = Math.min(scaleX, scaleY);
|
|
7641
|
+
scaleWithTolerance = newScale * SCALE_TOLERANCE;
|
|
7642
|
+
centerX = boardWrapperRect.width / 2 - (left + width / 2) * scaleWithTolerance;
|
|
7643
|
+
centerY = boardWrapperRect.height / 2 - (top + height / 2) * scaleWithTolerance;
|
|
7644
|
+
setDim(function (prev) {
|
|
7645
|
+
return _objectSpread2(_objectSpread2({}, prev), {}, {
|
|
7646
|
+
translateX: centerX,
|
|
7647
|
+
translateY: centerY,
|
|
7648
|
+
scale: scaleWithTolerance
|
|
7649
|
+
});
|
|
7650
|
+
});
|
|
7651
|
+
|
|
7652
|
+
case 12:
|
|
7653
|
+
case "end":
|
|
7654
|
+
return _context3.stop();
|
|
7655
|
+
}
|
|
7656
|
+
}
|
|
7657
|
+
}, _callee3);
|
|
7658
|
+
}));
|
|
7659
|
+
|
|
7660
|
+
return function (_x4) {
|
|
7661
|
+
return _ref9.apply(this, arguments);
|
|
7662
|
+
};
|
|
7663
|
+
}();
|
|
7664
|
+
}, [setDim]);
|
|
7665
|
+
var updateScaleBoundaries = useRecoilCallback(function (_ref10) {
|
|
7666
|
+
var snapshot = _ref10.snapshot;
|
|
7667
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
7668
|
+
var _yield$snapshot$getPr4, _yield$snapshot$getPr5, width, height, boardWrapperRect, scaleX, scaleY, newScale;
|
|
7669
|
+
|
|
7670
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
7615
7671
|
while (1) {
|
|
7616
|
-
switch (
|
|
7672
|
+
switch (_context4.prev = _context4.next) {
|
|
7617
7673
|
case 0:
|
|
7618
|
-
|
|
7674
|
+
_context4.next = 2;
|
|
7619
7675
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7620
7676
|
|
|
7621
7677
|
case 2:
|
|
7622
|
-
_yield$snapshot$
|
|
7623
|
-
_yield$snapshot$
|
|
7624
|
-
width = _yield$snapshot$
|
|
7625
|
-
height = _yield$snapshot$
|
|
7626
|
-
boardWrapperRect = _yield$snapshot$
|
|
7678
|
+
_yield$snapshot$getPr4 = _context4.sent;
|
|
7679
|
+
_yield$snapshot$getPr5 = _yield$snapshot$getPr4.itemExtent;
|
|
7680
|
+
width = _yield$snapshot$getPr5.width;
|
|
7681
|
+
height = _yield$snapshot$getPr5.height;
|
|
7682
|
+
boardWrapperRect = _yield$snapshot$getPr4.boardWrapperRect;
|
|
7627
7683
|
scaleX = boardWrapperRect.width / width;
|
|
7628
7684
|
scaleY = boardWrapperRect.height / height;
|
|
7629
7685
|
newScale = Math.min(scaleX, scaleY);
|
|
@@ -7631,86 +7687,86 @@ var useDim = function useDim() {
|
|
|
7631
7687
|
|
|
7632
7688
|
case 11:
|
|
7633
7689
|
case "end":
|
|
7634
|
-
return
|
|
7690
|
+
return _context4.stop();
|
|
7635
7691
|
}
|
|
7636
7692
|
}
|
|
7637
|
-
},
|
|
7693
|
+
}, _callee4);
|
|
7638
7694
|
}));
|
|
7639
7695
|
}, []);
|
|
7640
|
-
var getCenterCoordinates = useRecoilCallback(function (
|
|
7641
|
-
var snapshot =
|
|
7642
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7643
|
-
var _yield$snapshot$
|
|
7696
|
+
var getCenterCoordinates = useRecoilCallback(function (_ref12) {
|
|
7697
|
+
var snapshot = _ref12.snapshot;
|
|
7698
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee5() {
|
|
7699
|
+
var _yield$snapshot$getPr6, boardWrapperRect, boardSize, _yield$snapshot$getPr7, translateX, translateY, scale;
|
|
7644
7700
|
|
|
7645
|
-
return regeneratorRuntime.wrap(function
|
|
7701
|
+
return regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
7646
7702
|
while (1) {
|
|
7647
|
-
switch (
|
|
7703
|
+
switch (_context5.prev = _context5.next) {
|
|
7648
7704
|
case 0:
|
|
7649
|
-
|
|
7705
|
+
_context5.next = 2;
|
|
7650
7706
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7651
7707
|
|
|
7652
7708
|
case 2:
|
|
7653
|
-
_yield$snapshot$
|
|
7654
|
-
boardWrapperRect = _yield$snapshot$
|
|
7655
|
-
boardSize = _yield$snapshot$
|
|
7656
|
-
|
|
7709
|
+
_yield$snapshot$getPr6 = _context5.sent;
|
|
7710
|
+
boardWrapperRect = _yield$snapshot$getPr6.boardWrapperRect;
|
|
7711
|
+
boardSize = _yield$snapshot$getPr6.boardSize;
|
|
7712
|
+
_context5.next = 7;
|
|
7657
7713
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7658
7714
|
|
|
7659
7715
|
case 7:
|
|
7660
|
-
_yield$snapshot$
|
|
7661
|
-
translateX = _yield$snapshot$
|
|
7662
|
-
translateY = _yield$snapshot$
|
|
7663
|
-
scale = _yield$snapshot$
|
|
7664
|
-
return
|
|
7716
|
+
_yield$snapshot$getPr7 = _context5.sent;
|
|
7717
|
+
translateX = _yield$snapshot$getPr7.translateX;
|
|
7718
|
+
translateY = _yield$snapshot$getPr7.translateY;
|
|
7719
|
+
scale = _yield$snapshot$getPr7.scale;
|
|
7720
|
+
return _context5.abrupt("return", {
|
|
7665
7721
|
x: (boardWrapperRect.width / 2 - translateX) / scale - boardSize / 2,
|
|
7666
7722
|
y: (boardWrapperRect.height / 2 - translateY) / scale - boardSize / 2
|
|
7667
7723
|
});
|
|
7668
7724
|
|
|
7669
7725
|
case 12:
|
|
7670
7726
|
case "end":
|
|
7671
|
-
return
|
|
7727
|
+
return _context5.stop();
|
|
7672
7728
|
}
|
|
7673
7729
|
}
|
|
7674
|
-
},
|
|
7730
|
+
}, _callee5);
|
|
7675
7731
|
}));
|
|
7676
7732
|
}, []);
|
|
7677
|
-
var updateItemExtent = useRecoilCallback(function (
|
|
7678
|
-
var snapshot =
|
|
7679
|
-
set =
|
|
7680
|
-
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function
|
|
7681
|
-
var itemIds, _yield$snapshot$
|
|
7733
|
+
var updateItemExtent = useRecoilCallback(function (_ref14) {
|
|
7734
|
+
var snapshot = _ref14.snapshot,
|
|
7735
|
+
set = _ref14.set;
|
|
7736
|
+
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee6() {
|
|
7737
|
+
var itemIds, _yield$snapshot$getPr8, boardWrapperRect, boardWrapper, boardSize, _yield$snapshot$getPr9, scale, translateX, translateY, _ref16, left, top, width, height, relativeExtent, delta, _delta;
|
|
7682
7738
|
|
|
7683
|
-
return regeneratorRuntime.wrap(function
|
|
7739
|
+
return regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
7684
7740
|
while (1) {
|
|
7685
|
-
switch (
|
|
7741
|
+
switch (_context6.prev = _context6.next) {
|
|
7686
7742
|
case 0:
|
|
7687
|
-
|
|
7743
|
+
_context6.next = 2;
|
|
7688
7744
|
return snapshot.getPromise(ItemListAtom);
|
|
7689
7745
|
|
|
7690
7746
|
case 2:
|
|
7691
|
-
itemIds =
|
|
7692
|
-
|
|
7747
|
+
itemIds = _context6.sent;
|
|
7748
|
+
_context6.next = 5;
|
|
7693
7749
|
return snapshot.getPromise(ConfigurationAtom);
|
|
7694
7750
|
|
|
7695
7751
|
case 5:
|
|
7696
|
-
_yield$snapshot$
|
|
7697
|
-
boardWrapperRect = _yield$snapshot$
|
|
7698
|
-
boardWrapper = _yield$snapshot$
|
|
7699
|
-
boardSize = _yield$snapshot$
|
|
7700
|
-
|
|
7752
|
+
_yield$snapshot$getPr8 = _context6.sent;
|
|
7753
|
+
boardWrapperRect = _yield$snapshot$getPr8.boardWrapperRect;
|
|
7754
|
+
boardWrapper = _yield$snapshot$getPr8.boardWrapper;
|
|
7755
|
+
boardSize = _yield$snapshot$getPr8.boardSize;
|
|
7756
|
+
_context6.next = 11;
|
|
7701
7757
|
return snapshot.getPromise(BoardTransformAtom);
|
|
7702
7758
|
|
|
7703
7759
|
case 11:
|
|
7704
|
-
_yield$snapshot$
|
|
7705
|
-
scale = _yield$snapshot$
|
|
7706
|
-
translateX = _yield$snapshot$
|
|
7707
|
-
translateY = _yield$snapshot$
|
|
7708
|
-
|
|
7760
|
+
_yield$snapshot$getPr9 = _context6.sent;
|
|
7761
|
+
scale = _yield$snapshot$getPr9.scale;
|
|
7762
|
+
translateX = _yield$snapshot$getPr9.translateX;
|
|
7763
|
+
translateY = _yield$snapshot$getPr9.translateY;
|
|
7764
|
+
_ref16 = getItemBoundingBox(itemIds, boardWrapper) || {
|
|
7709
7765
|
left: boardSize / 2 * scale + boardWrapperRect.left + translateX,
|
|
7710
7766
|
top: boardSize / 2 * scale + boardWrapperRect.top + translateY,
|
|
7711
7767
|
width: 0,
|
|
7712
7768
|
height: 0
|
|
7713
|
-
}, left =
|
|
7769
|
+
}, left = _ref16.left, top = _ref16.top, width = _ref16.width, height = _ref16.height;
|
|
7714
7770
|
relativeExtent = {
|
|
7715
7771
|
left: (left - boardWrapperRect.left - translateX) / scale,
|
|
7716
7772
|
top: (top - boardWrapperRect.top - translateY) / scale,
|
|
@@ -7742,10 +7798,10 @@ var useDim = function useDim() {
|
|
|
7742
7798
|
|
|
7743
7799
|
case 22:
|
|
7744
7800
|
case "end":
|
|
7745
|
-
return
|
|
7801
|
+
return _context6.stop();
|
|
7746
7802
|
}
|
|
7747
7803
|
}
|
|
7748
|
-
},
|
|
7804
|
+
}, _callee6);
|
|
7749
7805
|
}));
|
|
7750
7806
|
}, []);
|
|
7751
7807
|
var debouncedUpdateItemExtent = useDebouncedCallback(updateItemExtent, [], 300);
|
|
@@ -7757,7 +7813,9 @@ var useDim = function useDim() {
|
|
|
7757
7813
|
return {
|
|
7758
7814
|
setDim: setDimSafe,
|
|
7759
7815
|
getDim: getDim,
|
|
7760
|
-
zoomTo:
|
|
7816
|
+
zoomTo: zoomToCenter,
|
|
7817
|
+
zoomToCenter: zoomToCenter,
|
|
7818
|
+
zoomToExtent: zoomToExtent,
|
|
7761
7819
|
getCenter: getCenterCoordinates,
|
|
7762
7820
|
updateItemExtent: debouncedUpdateItemExtent
|
|
7763
7821
|
};
|