@crystaldesign/web-planner-logic 26.14.0-beta.11 → 26.14.0-beta.13
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/build/cjs/{DivaBoxPlanner-15215da3.js → DivaBoxPlanner-18f7c428.js} +2 -2
- package/build/cjs/{DivaStandardPlanner-83a30b9c.js → DivaStandardPlanner-4d7fbb34.js} +66 -11
- package/build/cjs/{DoorPlanner-3fc953fb.js → DoorPlanner-034aaee6.js} +1 -1
- package/build/cjs/{Host3DSignalR-05c335b5.js → Host3DSignalR-57683aed.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-d14c9c94.js → LiviqueWWSHandler-3c716ed4.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-67f01d01.js → PfisterWWSHandler-5c576069.js} +1 -1
- package/build/cjs/{PlannerHandler2D-37e192f8.js → PlannerHandler2D-d8896477.js} +1 -1
- package/build/cjs/{SeriousBasketHandler-44c2c22a.js → SeriousBasketHandler-5520760a.js} +1 -1
- package/build/cjs/{ShelfPlanner-e9159968.js → ShelfPlanner-18fbf9be.js} +1 -1
- package/build/cjs/{StandardWWSHandler-4306e241.js → StandardWWSHandler-ebb247f4.js} +1 -1
- package/build/cjs/{index-95cacf5a.js → index-aa0daf1a.js} +152 -67
- package/build/cjs/index.js +1 -1
- package/build/esm/{DivaBoxPlanner-4f2cfa4a.js → DivaBoxPlanner-27ead0c5.js} +2 -2
- package/build/esm/{DivaStandardPlanner-73a00f6f.js → DivaStandardPlanner-74b83b7c.js} +66 -11
- package/build/esm/{DoorPlanner-a4991f20.js → DoorPlanner-6ce21453.js} +1 -1
- package/build/esm/{Host3DSignalR-1f5a8d30.js → Host3DSignalR-fecb34a9.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-fd798f64.js → LiviqueWWSHandler-e8187e50.js} +1 -1
- package/build/esm/{PfisterWWSHandler-52fc46a4.js → PfisterWWSHandler-26cb2971.js} +1 -1
- package/build/esm/{PlannerHandler2D-61875b95.js → PlannerHandler2D-990fb1b0.js} +1 -1
- package/build/esm/{SeriousBasketHandler-8d7f7eb2.js → SeriousBasketHandler-f8c5d1f1.js} +1 -1
- package/build/esm/{ShelfPlanner-2a635803.js → ShelfPlanner-5479c396.js} +1 -1
- package/build/esm/{StandardWWSHandler-9c5c3b67.js → StandardWWSHandler-903307a5.js} +1 -1
- package/build/esm/{index-44bde241.js → index-e415f84e.js} +152 -67
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +4 -0
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +4 -0
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +8 -0
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +5 -0
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +2 -0
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/dragKeepsDockingRules.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/dragKeepsDockingRules.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/dragTransOrder.test.d.ts +3 -0
- package/build/types/web-planner-logic/src/test/dragTransOrder.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/shelfPlannerGroup.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/shelfPlannerGroup.test.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-aa0daf1a.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
11
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
12
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-d8896477.js');
|
|
13
13
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
14
14
|
require('axios');
|
|
15
15
|
require('@babel/runtime/helpers/typeof');
|
|
@@ -7,10 +7,10 @@ var _createClass = require('@babel/runtime/helpers/createClass');
|
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
8
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
10
|
-
var index = require('./index-
|
|
10
|
+
var index = require('./index-aa0daf1a.js');
|
|
11
11
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
12
12
|
var plannerCore = require('@crystaldesign/planner-core');
|
|
13
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
13
|
+
var PlannerHandler2D = require('./PlannerHandler2D-d8896477.js');
|
|
14
14
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
15
15
|
require('axios');
|
|
16
16
|
require('@babel/runtime/helpers/typeof');
|
|
@@ -83,6 +83,15 @@ var PATH_STEP = 2;
|
|
|
83
83
|
var DEPTH_NOISE = 1e-6;
|
|
84
84
|
/** cm within which a dragged guest snaps into a free place of a slot that takes it. */
|
|
85
85
|
var SLOT_SNAP_DISTANCE = 20;
|
|
86
|
+
/**
|
|
87
|
+
* cm within which a group dragged in a room docks (between the docking points), at least the viewer's own docking
|
|
88
|
+
* distance: as far as a slot snap reaches. The bodies block the drag at contact and a pointer moves several cm per event,
|
|
89
|
+
* so the group is mostly pushed into the element it docks to; it has to dock from such a pose, not only from the few cm
|
|
90
|
+
* before contact.
|
|
91
|
+
*/
|
|
92
|
+
var ROOM_DOCK_SNAP_DISTANCE = SLOT_SNAP_DISTANCE;
|
|
93
|
+
/** cm between two docking points that meet at a dock pose (the float noise of the docked transform). */
|
|
94
|
+
var DOCK_CONTACT_DISTANCE = 0.1;
|
|
86
95
|
/** cm within which a drag counts as back at its start (the float noise of the summed moves). */
|
|
87
96
|
var START_NOISE = 1e-6;
|
|
88
97
|
var toFloorRect = function toFloorRect(block, pose) {
|
|
@@ -1694,13 +1703,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1694
1703
|
};
|
|
1695
1704
|
}
|
|
1696
1705
|
|
|
1697
|
-
// The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre,
|
|
1698
|
-
// into an obstacle: what it runs into there is kept as
|
|
1699
|
-
// goes back to the start). A forced group that fits on
|
|
1700
|
-
// start (a cancel, a blocked release) it stands exactly
|
|
1706
|
+
// The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre, and from there onto
|
|
1707
|
+
// a dock within ROOM_DOCK_SNAP_DISTANCE, also where it runs into an obstacle: what it runs into there is kept as
|
|
1708
|
+
// `blockedBy` (the viewer shows the drag blocked, a release there goes back to the start). A forced group that fits on
|
|
1709
|
+
// no wall is kept inside the room like a free one. Back at the start (a cancel, a blocked release) it stands exactly
|
|
1710
|
+
// where it started, nothing snaps.
|
|
1701
1711
|
}, {
|
|
1702
1712
|
key: "updateRoomDrag",
|
|
1703
|
-
value: function updateRoomDrag(room, drag, deltaMove) {
|
|
1713
|
+
value: function updateRoomDrag(room, drag, deltaMove, autoDockingDistance) {
|
|
1704
1714
|
drag.dx += deltaMove.x;
|
|
1705
1715
|
drag.dz += deltaMove.z;
|
|
1706
1716
|
var _drag$start2 = drag.start,
|
|
@@ -1719,12 +1729,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1719
1729
|
center: drag.start.center,
|
|
1720
1730
|
rotDeg: rotDeg
|
|
1721
1731
|
};
|
|
1722
|
-
var
|
|
1732
|
+
var placed = atStart ? startPose : slotPose !== null && slotPose !== void 0 ? slotPose : wallPose && (drag.wallMode === 'forced' || snapsToWall) ? wallPose : insidePose(block, {
|
|
1723
1733
|
center: rawCenter,
|
|
1724
1734
|
rotDeg: rotDeg
|
|
1725
1735
|
}, room);
|
|
1726
|
-
|
|
1727
|
-
index.moveGroupRigidly(
|
|
1736
|
+
var group = [].concat(_toConsumableArray__default["default"](drag.members), _toConsumableArray__default["default"](drag.followers));
|
|
1737
|
+
index.moveGroupRigidly(group, drag.current, placed);
|
|
1738
|
+
// Pushed against the element it docks to, the group touches it docked instead of standing blocked in it, so the
|
|
1739
|
+
// release docks it (see snapToDock).
|
|
1740
|
+
var reach = autoDockingDistance === 0 ? 0 : Math.max(autoDockingDistance, ROOM_DOCK_SNAP_DISTANCE);
|
|
1741
|
+
var dock = atStart || slotPose ? undefined : this.getDockSnapPose(drag, placed, reach);
|
|
1742
|
+
var wanted = dock !== null && dock !== void 0 ? dock : placed;
|
|
1743
|
+
index.moveGroupRigidly(group, placed, wanted);
|
|
1744
|
+
drag.blockedBy = dock ? [] : this.blockersAt(drag, wanted);
|
|
1728
1745
|
drag.current = wanted;
|
|
1729
1746
|
drag.slotSnapped = !!slotPose;
|
|
1730
1747
|
// A pair that overlapped at the start may only come apart, never go back in.
|
|
@@ -1737,6 +1754,44 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1737
1754
|
});
|
|
1738
1755
|
}
|
|
1739
1756
|
|
|
1757
|
+
/**
|
|
1758
|
+
* The pose of the group, standing at `pose`, where the grabbed element docks onto the nearest dock outside the group and
|
|
1759
|
+
* its guests (see findDockSnap), where nothing blocks it; undefined when no dock is that near, or the room rule would
|
|
1760
|
+
* move the docked group or something blocks it there that it does not dock to: then the group stays where the pointer
|
|
1761
|
+
* has it. Docked elements may reach into each other as members of a group do (a side panel standing out of the
|
|
1762
|
+
* outline), so every element the group docks to at that pose (both neighbours of a gap it fills) does not block.
|
|
1763
|
+
*/
|
|
1764
|
+
}, {
|
|
1765
|
+
key: "getDockSnapPose",
|
|
1766
|
+
value: function getDockSnapPose(drag, pose, autoDockingDistance) {
|
|
1767
|
+
var element = this.plannerElements.get(drag.elementId);
|
|
1768
|
+
var group = [].concat(_toConsumableArray__default["default"](drag.members), _toConsumableArray__default["default"](drag.followers));
|
|
1769
|
+
var unitIds = group.map(function (member) {
|
|
1770
|
+
return member.ElementId;
|
|
1771
|
+
});
|
|
1772
|
+
var snap = element && this.findDockSnap(element, autoDockingDistance, unitIds);
|
|
1773
|
+
if (!element || !snap) return undefined;
|
|
1774
|
+
var _this$snapMove = this.snapMove(element, snap),
|
|
1775
|
+
from = _this$snapMove.from,
|
|
1776
|
+
to = _this$snapMove.to;
|
|
1777
|
+
var docked = movePose(pose, from, to);
|
|
1778
|
+
if (!this.getKeptPose(drag, docked)) return undefined;
|
|
1779
|
+
index.moveGroupRigidly(group, pose, docked);
|
|
1780
|
+
var others = this.getAllPlannerElements().filter(function (other) {
|
|
1781
|
+
return !unitIds.includes(other.ElementId);
|
|
1782
|
+
});
|
|
1783
|
+
var dockedTo = new Set(group.flatMap(function (member) {
|
|
1784
|
+
return _toConsumableArray__default["default"](PlannerHandler2D.dockingPointHandlerInst.searchDockableElementsInArea(member, others, DOCK_CONTACT_DISTANCE).values()).map(function (pair) {
|
|
1785
|
+
return pair.targetDP.ElementId;
|
|
1786
|
+
});
|
|
1787
|
+
}));
|
|
1788
|
+
index.moveGroupRigidly(group, docked, pose);
|
|
1789
|
+
var docksTo = function docksTo(obstacle) {
|
|
1790
|
+
return obstacle.setId === undefined && obstacle.elementId !== undefined && dockedTo.has(obstacle.elementId);
|
|
1791
|
+
};
|
|
1792
|
+
return this.blockersAt(drag, docked).every(docksTo) ? docked : undefined;
|
|
1793
|
+
}
|
|
1794
|
+
|
|
1740
1795
|
// The unit moved rigidly onto the nearest dock of `element` outside it (see findDockSnap), else with `slots` into the
|
|
1741
1796
|
// nearest free slot place (see findSlotSnap).
|
|
1742
1797
|
}, {
|
|
@@ -3491,7 +3546,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
3491
3546
|
if (room && roomDrag && !roomDrag.rotating && transState == 'UPDATE' && roomDrag.members.some(function (member) {
|
|
3492
3547
|
return member.ElementId == elementId;
|
|
3493
3548
|
})) {
|
|
3494
|
-
if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove);
|
|
3549
|
+
if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove, autoDockingDistance);
|
|
3495
3550
|
return false;
|
|
3496
3551
|
}
|
|
3497
3552
|
if (this.plannerElements.has(elementId)) {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
require('./index-
|
|
6
|
+
require('./index-aa0daf1a.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-aa0daf1a.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var signalr = require('@microsoft/signalr');
|
|
11
11
|
var io = require('socket.io-client');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
require('./index-
|
|
5
|
+
require('./index-aa0daf1a.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-aa0daf1a.js');
|
|
6
6
|
var basketModel = require('@crystaldesign/basket-model');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
@@ -5,7 +5,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-aa0daf1a.js');
|
|
9
9
|
var _possibleConstructorReturn = require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
10
10
|
var _getPrototypeOf = require('@babel/runtime/helpers/getPrototypeOf');
|
|
11
11
|
var _get = require('@babel/runtime/helpers/get');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-aa0daf1a.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-aa0daf1a.js');
|
|
10
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
11
11
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
12
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
require('./index-
|
|
5
|
+
require('./index-aa0daf1a.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|