@crystaldesign/web-planner-logic 26.13.0-rc.5 → 26.13.0-rc.7
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-15e3b967.js → DivaBoxPlanner-f97de3e6.js} +2 -2
- package/build/cjs/{DivaStandardPlanner-4d6c9460.js → DivaStandardPlanner-4a1fd4af.js} +66 -11
- package/build/cjs/{DoorPlanner-2301d76d.js → DoorPlanner-aa316570.js} +1 -1
- package/build/cjs/{Host3DSignalR-68cfd444.js → Host3DSignalR-5455276f.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-7fc6cc80.js → LiviqueWWSHandler-e2ec06bd.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-d2952617.js → PfisterWWSHandler-5c27c820.js} +1 -1
- package/build/cjs/{PlannerHandler2D-3e8e2291.js → PlannerHandler2D-8e80956d.js} +1 -1
- package/build/cjs/{SeriousBasketHandler-bad49d7f.js → SeriousBasketHandler-ba413732.js} +1 -1
- package/build/cjs/{ShelfPlanner-fcced9be.js → ShelfPlanner-b5b5411e.js} +1 -1
- package/build/cjs/{StandardWWSHandler-e02c32b3.js → StandardWWSHandler-33f5f021.js} +1 -1
- package/build/cjs/{index-8a37b5a7.js → index-c714a61d.js} +55 -22
- package/build/cjs/index.js +1 -1
- package/build/esm/{DivaBoxPlanner-59b569bc.js → DivaBoxPlanner-99fd3579.js} +2 -2
- package/build/esm/{DivaStandardPlanner-1f3f1c38.js → DivaStandardPlanner-cf20597a.js} +66 -11
- package/build/esm/{DoorPlanner-0d300e2c.js → DoorPlanner-2ea81462.js} +1 -1
- package/build/esm/{Host3DSignalR-544381ed.js → Host3DSignalR-9fecebf1.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-57ec4811.js → LiviqueWWSHandler-6cffd070.js} +1 -1
- package/build/esm/{PfisterWWSHandler-78928e8f.js → PfisterWWSHandler-9d712034.js} +1 -1
- package/build/esm/{PlannerHandler2D-c0380cdc.js → PlannerHandler2D-c2bc56a0.js} +1 -1
- package/build/esm/{SeriousBasketHandler-708b8e6d.js → SeriousBasketHandler-790840ee.js} +1 -1
- package/build/esm/{ShelfPlanner-5b9604ad.js → ShelfPlanner-6e58efe9.js} +1 -1
- package/build/esm/{StandardWWSHandler-d693dc6d.js → StandardWWSHandler-99c2d6cd.js} +1 -1
- package/build/esm/{index-bae4b8e4.js → index-68183d49.js} +55 -22
- 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/Article/DivaArticle.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/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-c714a61d.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-8e80956d.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-c714a61d.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-8e80956d.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-c714a61d.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-c714a61d.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-c714a61d.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-c714a61d.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-c714a61d.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-c714a61d.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-c714a61d.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-c714a61d.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -2133,6 +2133,7 @@ var CATALOG_PROPERTIES = {
|
|
|
2133
2133
|
RECONFIG_AFTER_ARTICLE_DOCKED: 'boolean:1',
|
|
2134
2134
|
REPAIR_VARIANT_VALUES: 'shape',
|
|
2135
2135
|
RTV_PRESET: 'json',
|
|
2136
|
+
SHELFPLANNER_GROUP: 'string',
|
|
2136
2137
|
SHOWACCESSOIREONLASTTAB: 'boolean:1',
|
|
2137
2138
|
SHOWACCONDPONLY: 'boolean:1',
|
|
2138
2139
|
SHOWTYPENRINPLANNER: 'boolean:1',
|
|
@@ -24727,6 +24728,12 @@ var DivaCatalogData = /*#__PURE__*/function () {
|
|
|
24727
24728
|
get: function get() {
|
|
24728
24729
|
return this.catalogProps.dontShowBasePrice;
|
|
24729
24730
|
}
|
|
24731
|
+
/** Shelf-planner `Group` of every grid that names none (`SHELFPLANNER_GROUP`): its grids share one config step. */
|
|
24732
|
+
}, {
|
|
24733
|
+
key: "shelfPlannerGroup",
|
|
24734
|
+
get: function get() {
|
|
24735
|
+
return this.catalogProps.shelfPlannerGroup;
|
|
24736
|
+
}
|
|
24730
24737
|
}, {
|
|
24731
24738
|
key: "getOption",
|
|
24732
24739
|
value: function getOption(opt) {
|
|
@@ -25120,6 +25127,9 @@ var DivaCatalogData = /*#__PURE__*/function () {
|
|
|
25120
25127
|
case 'DIVA3D_USE_RTV_NEXT':
|
|
25121
25128
|
_this2.catalogProps.divaUseRtvNext = item.Value === true;
|
|
25122
25129
|
break;
|
|
25130
|
+
case 'SHELFPLANNER_GROUP':
|
|
25131
|
+
_this2.catalogProps.shelfPlannerGroup = textOf(item.Value) || undefined;
|
|
25132
|
+
break;
|
|
25123
25133
|
case 'HEADER_DIMENSION_IDS':
|
|
25124
25134
|
_this2.catalogProps.headerDimensionIds = listOf(item.Value);
|
|
25125
25135
|
break;
|
|
@@ -34355,7 +34365,7 @@ var DivaArticle = /*#__PURE__*/function () {
|
|
|
34355
34365
|
break;
|
|
34356
34366
|
}
|
|
34357
34367
|
_context.next = 4;
|
|
34358
|
-
return Promise.resolve().then(function () { return require('./ShelfPlanner-
|
|
34368
|
+
return Promise.resolve().then(function () { return require('./ShelfPlanner-b5b5411e.js'); });
|
|
34359
34369
|
case 4:
|
|
34360
34370
|
_yield$import = _context.sent;
|
|
34361
34371
|
ShelfPlanner = _yield$import["default"];
|
|
@@ -34798,7 +34808,7 @@ var DivaArticle = /*#__PURE__*/function () {
|
|
|
34798
34808
|
}
|
|
34799
34809
|
if (ops.isDoShow && !doHideSizeOption && ops.val) {
|
|
34800
34810
|
if (ops.visibleCount > 0) {
|
|
34801
|
-
var
|
|
34811
|
+
var _this$optionsForPrint2, _ops$valName_locales2, _this$optionsForPrint3, _ops$val6;
|
|
34802
34812
|
var isfreeText = false,
|
|
34803
34813
|
isMeasureValue = false,
|
|
34804
34814
|
freeText = undefined,
|
|
@@ -34813,6 +34823,8 @@ var DivaArticle = /*#__PURE__*/function () {
|
|
|
34813
34823
|
}
|
|
34814
34824
|
}
|
|
34815
34825
|
var opvNames = this.getMergedOPGNames(ops);
|
|
34826
|
+
// a partlist position prints the options its OptionsForPrint names, even implicit (type I) ones
|
|
34827
|
+
var isOptionForPrint = this.isPartListArticle && !!((_this$optionsForPrint2 = this.optionsForPrint) !== null && _this$optionsForPrint2 !== void 0 && _this$optionsForPrint2.includes(OP));
|
|
34816
34828
|
var myOptItem = {
|
|
34817
34829
|
BasketID: this.basketId,
|
|
34818
34830
|
OPT: this.CatalogData.isIDMFormat ? OP : OP.substring(3),
|
|
@@ -34844,7 +34856,7 @@ var DivaArticle = /*#__PURE__*/function () {
|
|
|
34844
34856
|
TabGroup_locales: ops.optionTabGroup_locales,
|
|
34845
34857
|
SendToSAP: ops.option.sendToSAP,
|
|
34846
34858
|
ArticlePlaceholder: ops.option.articlePlaceholder,
|
|
34847
|
-
Hidden: !!(ops.headerPosVariationType == 'I' || ops.invisibleWithoutMaskeInfluence || ops.val.hideInSummary || this.isPartListArticle && (_this$
|
|
34859
|
+
Hidden: !!(ops.headerPosVariationType == 'I' && !isOptionForPrint || ops.invisibleWithoutMaskeInfluence || ops.val.hideInSummary || this.isPartListArticle && (_this$optionsForPrint3 = this.optionsForPrint) !== null && _this$optionsForPrint3 !== void 0 && _this$optionsForPrint3.length && !isOptionForPrint),
|
|
34848
34860
|
HideInOrderText: ops.hideInOrderText,
|
|
34849
34861
|
IsDescribingState: ops.isDescribingState,
|
|
34850
34862
|
FreeTextLang: ops.freeTextLang,
|
|
@@ -40781,6 +40793,8 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
|
|
|
40781
40793
|
if ((_grid$ArticleRelation = grid.ArticleRelationsForOtherGroups) !== null && _grid$ArticleRelation !== void 0 && _grid$ArticleRelation.length) {
|
|
40782
40794
|
var _loop2 = function _loop2() {
|
|
40783
40795
|
var group = grid.ArticleRelationsForOtherGroups[i];
|
|
40796
|
+
// Already in this step as its own group.
|
|
40797
|
+
if (group.Group === gridGroupOrId) return 1; // continue
|
|
40784
40798
|
var index = groupedGrids.findIndex(function (g) {
|
|
40785
40799
|
return g.groupName === group.Group;
|
|
40786
40800
|
});
|
|
@@ -40797,7 +40811,7 @@ var DivaConfigTreeHandler = /*#__PURE__*/function () {
|
|
|
40797
40811
|
}
|
|
40798
40812
|
};
|
|
40799
40813
|
for (var i = 0; i < grid.ArticleRelationsForOtherGroups.length; i++) {
|
|
40800
|
-
_loop2();
|
|
40814
|
+
if (_loop2()) continue;
|
|
40801
40815
|
}
|
|
40802
40816
|
}
|
|
40803
40817
|
};
|
|
@@ -43200,7 +43214,7 @@ var DivaSet = /*#__PURE__*/function () {
|
|
|
43200
43214
|
break;
|
|
43201
43215
|
}
|
|
43202
43216
|
_context5.next = 3;
|
|
43203
|
-
return Promise.resolve().then(function () { return require('./DoorPlanner-
|
|
43217
|
+
return Promise.resolve().then(function () { return require('./DoorPlanner-aa316570.js'); });
|
|
43204
43218
|
case 3:
|
|
43205
43219
|
_yield$import = _context5.sent;
|
|
43206
43220
|
DoorPlanner = _yield$import["default"];
|
|
@@ -44006,7 +44020,9 @@ var Grid = /*#__PURE__*/function () {
|
|
|
44006
44020
|
this.excludeAccessoiresByAccessoiresInGrid = grid.ExcludeAccessoiresByAccessoiresInGrid;
|
|
44007
44021
|
this.influencedByNeighborGrids = grid.InfluencedByNeighborGrids;
|
|
44008
44022
|
this.influencedByOverlappingGrids = grid.InfluencedByOverlappingGrids;
|
|
44009
|
-
|
|
44023
|
+
|
|
44024
|
+
// The grid's own Group wins, even an empty one: that keeps the grid in a step of its own under a catalog default.
|
|
44025
|
+
this._group = 'Group' in grid ? grid.Group : article.CatalogData.shelfPlannerGroup;
|
|
44010
44026
|
this.articleRelations = grid.ArticleRelations;
|
|
44011
44027
|
this.initAccArr = grid.initAccArr;
|
|
44012
44028
|
this.articleRelationsForOtherGroups = grid.ArticleRelationsForOtherGroups;
|
|
@@ -45068,16 +45084,18 @@ var Grid = /*#__PURE__*/function () {
|
|
|
45068
45084
|
}, {
|
|
45069
45085
|
key: "getArticleRelationsById",
|
|
45070
45086
|
value: function getArticleRelationsById(id) {
|
|
45071
|
-
var _this$ArticleRelation2;
|
|
45087
|
+
var _this$ArticleRelation2, _own;
|
|
45072
45088
|
var alternative = (_this$ArticleRelation2 = this.ArticleRelationsForOtherGroups) === null || _this$ArticleRelation2 === void 0 ? void 0 : _this$ArticleRelation2.find(function (g) {
|
|
45073
45089
|
return g.Group == id;
|
|
45074
45090
|
});
|
|
45075
|
-
|
|
45091
|
+
// The grid's own group can be one of its other groups too (e.g. by SHELFPLANNER_GROUP): that step offers both.
|
|
45092
|
+
if (alternative && id !== this.group) return alternative.ArticleRelations;
|
|
45093
|
+
var own = this.articleRelations;
|
|
45076
45094
|
if (this.heightGridCellCountOnRule && this.currentLoadedRuleIndex !== false) {
|
|
45077
45095
|
var curGrid = this.heightGridCellCountOnRule[this.currentLoadedRuleIndex];
|
|
45078
|
-
if (curGrid.ArticleRelations)
|
|
45096
|
+
if (curGrid.ArticleRelations) own = curGrid.ArticleRelations;
|
|
45079
45097
|
}
|
|
45080
|
-
return
|
|
45098
|
+
return alternative ? [].concat(_toConsumableArray__default["default"]((_own = own) !== null && _own !== void 0 ? _own : []), _toConsumableArray__default["default"](alternative.ArticleRelations)) : own;
|
|
45081
45099
|
}
|
|
45082
45100
|
}, {
|
|
45083
45101
|
key: "getGridIdByArticleCodex",
|
|
@@ -45659,6 +45677,11 @@ var DivaSetHandler = /*#__PURE__*/function () {
|
|
|
45659
45677
|
var article = set.getArticleByBasketId(movedDoor.BasketId);
|
|
45660
45678
|
article === null || article === void 0 || (_article$doorPlanner = article.doorPlanner) === null || _article$doorPlanner === void 0 || _article$doorPlanner.onChange(movedDoor, targetDoor);
|
|
45661
45679
|
});
|
|
45680
|
+
/**
|
|
45681
|
+
* The sets whose running drag changed the docking at START: the planner undocks the grabbed element there, also from
|
|
45682
|
+
* the group members that move along with it, and docks it again at END.
|
|
45683
|
+
*/
|
|
45684
|
+
_defineProperty__default["default"](this, "undockedByDragStart", new WeakSet());
|
|
45662
45685
|
}
|
|
45663
45686
|
return _createClass__default["default"](DivaSetHandler, [{
|
|
45664
45687
|
key: "isDryRunArticle",
|
|
@@ -47794,18 +47817,28 @@ var DivaSetHandler = /*#__PURE__*/function () {
|
|
|
47794
47817
|
key: "updatePlannerTrans",
|
|
47795
47818
|
value: function () {
|
|
47796
47819
|
var _updatePlannerTrans = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee27(set, plannerElementID, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
|
|
47797
|
-
var updateConfig;
|
|
47820
|
+
var updateConfig, undockedAtStart;
|
|
47798
47821
|
return _regeneratorRuntime__default["default"].wrap(function _callee27$(_context29) {
|
|
47799
47822
|
while (1) switch (_context29.prev = _context29.next) {
|
|
47800
47823
|
case 0:
|
|
47801
|
-
updateConfig = set.plannerHandler.updatePlannerTrans(set.getSetId(), plannerElementID, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint);
|
|
47802
|
-
|
|
47824
|
+
updateConfig = set.plannerHandler.updatePlannerTrans(set.getSetId(), plannerElementID, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint); // The configuration follows the docking the drag is released with. Reconfigured after START, the docking dependent
|
|
47825
|
+
// rules see the grabbed element apart from its group (a 50 cm cabinet allowed only beside a 100 cm one) and drop
|
|
47826
|
+
// the values they hide; the sizes that changed with them then keep END from docking the group again.
|
|
47827
|
+
if (!(transState == 'START')) {
|
|
47803
47828
|
_context29.next = 4;
|
|
47804
47829
|
break;
|
|
47805
47830
|
}
|
|
47806
|
-
|
|
47807
|
-
return
|
|
47831
|
+
if (updateConfig) this.undockedByDragStart.add(set);
|
|
47832
|
+
return _context29.abrupt("return");
|
|
47808
47833
|
case 4:
|
|
47834
|
+
undockedAtStart = transState == 'END' && this.undockedByDragStart["delete"](set);
|
|
47835
|
+
if (!(updateConfig || undockedAtStart)) {
|
|
47836
|
+
_context29.next = 8;
|
|
47837
|
+
break;
|
|
47838
|
+
}
|
|
47839
|
+
_context29.next = 8;
|
|
47840
|
+
return this.reconfigureSetAfterDockingChange(set, true, 'initializingAfterTrans');
|
|
47841
|
+
case 8:
|
|
47809
47842
|
case "end":
|
|
47810
47843
|
return _context29.stop();
|
|
47811
47844
|
}
|
|
@@ -51491,7 +51524,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
|
|
|
51491
51524
|
break;
|
|
51492
51525
|
case 3:
|
|
51493
51526
|
_context13.next = 5;
|
|
51494
|
-
return Promise.resolve().then(function () { return require('./PfisterWWSHandler-
|
|
51527
|
+
return Promise.resolve().then(function () { return require('./PfisterWWSHandler-5c27c820.js'); });
|
|
51495
51528
|
case 5:
|
|
51496
51529
|
_yield$import = _context13.sent;
|
|
51497
51530
|
PfisterWWSHandler = _yield$import["default"];
|
|
@@ -51499,7 +51532,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
|
|
|
51499
51532
|
return _context13.abrupt("break", 27);
|
|
51500
51533
|
case 9:
|
|
51501
51534
|
_context13.next = 11;
|
|
51502
|
-
return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-
|
|
51535
|
+
return Promise.resolve().then(function () { return require('./LiviqueWWSHandler-e2ec06bd.js'); });
|
|
51503
51536
|
case 11:
|
|
51504
51537
|
_yield$import2 = _context13.sent;
|
|
51505
51538
|
LiviqueWWSHandler = _yield$import2["default"];
|
|
@@ -51507,7 +51540,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
|
|
|
51507
51540
|
return _context13.abrupt("break", 27);
|
|
51508
51541
|
case 15:
|
|
51509
51542
|
_context13.next = 17;
|
|
51510
|
-
return Promise.resolve().then(function () { return require('./SeriousBasketHandler-
|
|
51543
|
+
return Promise.resolve().then(function () { return require('./SeriousBasketHandler-ba413732.js'); });
|
|
51511
51544
|
case 17:
|
|
51512
51545
|
_yield$import3 = _context13.sent;
|
|
51513
51546
|
SeriousWWSHandler = _yield$import3["default"];
|
|
@@ -51515,7 +51548,7 @@ var DivaBasketHandler = /*#__PURE__*/function () {
|
|
|
51515
51548
|
return _context13.abrupt("break", 27);
|
|
51516
51549
|
case 21:
|
|
51517
51550
|
_context13.next = 23;
|
|
51518
|
-
return Promise.resolve().then(function () { return require('./StandardWWSHandler-
|
|
51551
|
+
return Promise.resolve().then(function () { return require('./StandardWWSHandler-33f5f021.js'); });
|
|
51519
51552
|
case 23:
|
|
51520
51553
|
_yield$import4 = _context13.sent;
|
|
51521
51554
|
StandardWWSHandler = _yield$import4["default"];
|
|
@@ -52913,7 +52946,7 @@ var PlannerHandler3D = /*#__PURE__*/function () {
|
|
|
52913
52946
|
//If we need real time rendering initialize the SignalR and 3D host connection Handler
|
|
52914
52947
|
bootMark('signalr: chunk import start');
|
|
52915
52948
|
_context3.next = 3;
|
|
52916
|
-
return Promise.resolve().then(function () { return require('./Host3DSignalR-
|
|
52949
|
+
return Promise.resolve().then(function () { return require('./Host3DSignalR-5455276f.js'); });
|
|
52917
52950
|
case 3:
|
|
52918
52951
|
_yield$import = _context3.sent;
|
|
52919
52952
|
Host3DSignalR = _yield$import["default"];
|
|
@@ -57319,7 +57352,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
|
|
|
57319
57352
|
break;
|
|
57320
57353
|
case 9:
|
|
57321
57354
|
_context5.next = 11;
|
|
57322
|
-
return Promise.resolve().then(function () { return require('./DivaStandardPlanner-
|
|
57355
|
+
return Promise.resolve().then(function () { return require('./DivaStandardPlanner-4a1fd4af.js'); });
|
|
57323
57356
|
case 11:
|
|
57324
57357
|
_yield$import = _context5.sent;
|
|
57325
57358
|
DivaStandardPlanner = _yield$import["default"];
|
|
@@ -57334,7 +57367,7 @@ var DivaPlannerHandler = /*#__PURE__*/function () {
|
|
|
57334
57367
|
return _context5.abrupt("break", 22);
|
|
57335
57368
|
case 16:
|
|
57336
57369
|
_context5.next = 18;
|
|
57337
|
-
return Promise.resolve().then(function () { return require('./DivaBoxPlanner-
|
|
57370
|
+
return Promise.resolve().then(function () { return require('./DivaBoxPlanner-f97de3e6.js'); });
|
|
57338
57371
|
case 18:
|
|
57339
57372
|
_yield$import2 = _context5.sent;
|
|
57340
57373
|
DivaBoxPlanner = _yield$import2["default"];
|
package/build/cjs/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-c714a61d.js');
|
|
6
6
|
var plannerCore = require('@crystaldesign/planner-core');
|
|
7
7
|
require('@babel/runtime/helpers/slicedToArray');
|
|
8
8
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -3,11 +3,11 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { u as Vector2, V as Vector3, P as PlannerElementData, J as BoundingBox } from './index-
|
|
6
|
+
import { u as Vector2, V as Vector3, P as PlannerElementData, J as BoundingBox } from './index-68183d49.js';
|
|
7
7
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
8
8
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
9
9
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
10
|
-
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-
|
|
10
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-c2bc56a0.js';
|
|
11
11
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
12
12
|
import 'axios';
|
|
13
13
|
import '@babel/runtime/helpers/typeof';
|
|
@@ -5,10 +5,10 @@ import _createClass from '@babel/runtime/helpers/createClass';
|
|
|
5
5
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
6
6
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
7
7
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
8
|
-
import { V as Vector3, p as poseOf, g as getSnapPlace, c as getDockingGroups, d as getElementShape, e as getCarrierSlots, h as getSlotPlaces, m as moveGroupRigidly, i as isSamePose, j as getGroupBlock, k as fitsInsideRoom, l as keepInsideRoom, n as bindToWalls, o as sameGeoExtent, q as getCornerEnd, r as getDoorClearanceRects, t as rectCorners, u as Vector2, M as MAX_GUEST_DEPTH, v as slotExempt, w as bodiesOverlap, x as getNearestMember, y as toPlacementOffset, z as getTurnDeg, A as moveSlotMember, B as moveShape, C as layersCollide, D as shapesCollide, P as PlannerElementData, E as parseGuestPlacement, F as saveElementArticleCodex, H as parseSetPlanData, I as isSavePlannerV2, J as BoundingBox, K as movePoints } from './index-
|
|
8
|
+
import { V as Vector3, p as poseOf, g as getSnapPlace, c as getDockingGroups, d as getElementShape, e as getCarrierSlots, h as getSlotPlaces, m as moveGroupRigidly, i as isSamePose, j as getGroupBlock, k as fitsInsideRoom, l as keepInsideRoom, n as bindToWalls, o as sameGeoExtent, q as getCornerEnd, r as getDoorClearanceRects, t as rectCorners, u as Vector2, M as MAX_GUEST_DEPTH, v as slotExempt, w as bodiesOverlap, x as getNearestMember, y as toPlacementOffset, z as getTurnDeg, A as moveSlotMember, B as moveShape, C as layersCollide, D as shapesCollide, P as PlannerElementData, E as parseGuestPlacement, F as saveElementArticleCodex, H as parseSetPlanData, I as isSavePlannerV2, J as BoundingBox, K as movePoints } from './index-68183d49.js';
|
|
9
9
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
10
10
|
import { computeDockedTransform } from '@crystaldesign/planner-core';
|
|
11
|
-
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-
|
|
11
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-c2bc56a0.js';
|
|
12
12
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import '@babel/runtime/helpers/typeof';
|
|
@@ -70,6 +70,15 @@ var PATH_STEP = 2;
|
|
|
70
70
|
var DEPTH_NOISE = 1e-6;
|
|
71
71
|
/** cm within which a dragged guest snaps into a free place of a slot that takes it. */
|
|
72
72
|
var SLOT_SNAP_DISTANCE = 20;
|
|
73
|
+
/**
|
|
74
|
+
* cm within which a group dragged in a room docks (between the docking points), at least the viewer's own docking
|
|
75
|
+
* distance: as far as a slot snap reaches. The bodies block the drag at contact and a pointer moves several cm per event,
|
|
76
|
+
* 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
|
|
77
|
+
* before contact.
|
|
78
|
+
*/
|
|
79
|
+
var ROOM_DOCK_SNAP_DISTANCE = SLOT_SNAP_DISTANCE;
|
|
80
|
+
/** cm between two docking points that meet at a dock pose (the float noise of the docked transform). */
|
|
81
|
+
var DOCK_CONTACT_DISTANCE = 0.1;
|
|
73
82
|
/** cm within which a drag counts as back at its start (the float noise of the summed moves). */
|
|
74
83
|
var START_NOISE = 1e-6;
|
|
75
84
|
var toFloorRect = function toFloorRect(block, pose) {
|
|
@@ -1681,13 +1690,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1681
1690
|
};
|
|
1682
1691
|
}
|
|
1683
1692
|
|
|
1684
|
-
// The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre,
|
|
1685
|
-
// into an obstacle: what it runs into there is kept as
|
|
1686
|
-
// goes back to the start). A forced group that fits on
|
|
1687
|
-
// start (a cancel, a blocked release) it stands exactly
|
|
1693
|
+
// The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre, and from there onto
|
|
1694
|
+
// a dock within ROOM_DOCK_SNAP_DISTANCE, also where it runs into an obstacle: what it runs into there is kept as
|
|
1695
|
+
// `blockedBy` (the viewer shows the drag blocked, a release there goes back to the start). A forced group that fits on
|
|
1696
|
+
// no wall is kept inside the room like a free one. Back at the start (a cancel, a blocked release) it stands exactly
|
|
1697
|
+
// where it started, nothing snaps.
|
|
1688
1698
|
}, {
|
|
1689
1699
|
key: "updateRoomDrag",
|
|
1690
|
-
value: function updateRoomDrag(room, drag, deltaMove) {
|
|
1700
|
+
value: function updateRoomDrag(room, drag, deltaMove, autoDockingDistance) {
|
|
1691
1701
|
drag.dx += deltaMove.x;
|
|
1692
1702
|
drag.dz += deltaMove.z;
|
|
1693
1703
|
var _drag$start2 = drag.start,
|
|
@@ -1706,12 +1716,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1706
1716
|
center: drag.start.center,
|
|
1707
1717
|
rotDeg: rotDeg
|
|
1708
1718
|
};
|
|
1709
|
-
var
|
|
1719
|
+
var placed = atStart ? startPose : slotPose !== null && slotPose !== void 0 ? slotPose : wallPose && (drag.wallMode === 'forced' || snapsToWall) ? wallPose : insidePose(block, {
|
|
1710
1720
|
center: rawCenter,
|
|
1711
1721
|
rotDeg: rotDeg
|
|
1712
1722
|
}, room);
|
|
1713
|
-
|
|
1714
|
-
moveGroupRigidly(
|
|
1723
|
+
var group = [].concat(_toConsumableArray(drag.members), _toConsumableArray(drag.followers));
|
|
1724
|
+
moveGroupRigidly(group, drag.current, placed);
|
|
1725
|
+
// Pushed against the element it docks to, the group touches it docked instead of standing blocked in it, so the
|
|
1726
|
+
// release docks it (see snapToDock).
|
|
1727
|
+
var reach = autoDockingDistance === 0 ? 0 : Math.max(autoDockingDistance, ROOM_DOCK_SNAP_DISTANCE);
|
|
1728
|
+
var dock = atStart || slotPose ? undefined : this.getDockSnapPose(drag, placed, reach);
|
|
1729
|
+
var wanted = dock !== null && dock !== void 0 ? dock : placed;
|
|
1730
|
+
moveGroupRigidly(group, placed, wanted);
|
|
1731
|
+
drag.blockedBy = dock ? [] : this.blockersAt(drag, wanted);
|
|
1715
1732
|
drag.current = wanted;
|
|
1716
1733
|
drag.slotSnapped = !!slotPose;
|
|
1717
1734
|
// A pair that overlapped at the start may only come apart, never go back in.
|
|
@@ -1724,6 +1741,44 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1724
1741
|
});
|
|
1725
1742
|
}
|
|
1726
1743
|
|
|
1744
|
+
/**
|
|
1745
|
+
* The pose of the group, standing at `pose`, where the grabbed element docks onto the nearest dock outside the group and
|
|
1746
|
+
* its guests (see findDockSnap), where nothing blocks it; undefined when no dock is that near, or the room rule would
|
|
1747
|
+
* move the docked group or something blocks it there that it does not dock to: then the group stays where the pointer
|
|
1748
|
+
* has it. Docked elements may reach into each other as members of a group do (a side panel standing out of the
|
|
1749
|
+
* outline), so every element the group docks to at that pose (both neighbours of a gap it fills) does not block.
|
|
1750
|
+
*/
|
|
1751
|
+
}, {
|
|
1752
|
+
key: "getDockSnapPose",
|
|
1753
|
+
value: function getDockSnapPose(drag, pose, autoDockingDistance) {
|
|
1754
|
+
var element = this.plannerElements.get(drag.elementId);
|
|
1755
|
+
var group = [].concat(_toConsumableArray(drag.members), _toConsumableArray(drag.followers));
|
|
1756
|
+
var unitIds = group.map(function (member) {
|
|
1757
|
+
return member.ElementId;
|
|
1758
|
+
});
|
|
1759
|
+
var snap = element && this.findDockSnap(element, autoDockingDistance, unitIds);
|
|
1760
|
+
if (!element || !snap) return undefined;
|
|
1761
|
+
var _this$snapMove = this.snapMove(element, snap),
|
|
1762
|
+
from = _this$snapMove.from,
|
|
1763
|
+
to = _this$snapMove.to;
|
|
1764
|
+
var docked = movePose(pose, from, to);
|
|
1765
|
+
if (!this.getKeptPose(drag, docked)) return undefined;
|
|
1766
|
+
moveGroupRigidly(group, pose, docked);
|
|
1767
|
+
var others = this.getAllPlannerElements().filter(function (other) {
|
|
1768
|
+
return !unitIds.includes(other.ElementId);
|
|
1769
|
+
});
|
|
1770
|
+
var dockedTo = new Set(group.flatMap(function (member) {
|
|
1771
|
+
return _toConsumableArray(dockingPointHandlerInst.searchDockableElementsInArea(member, others, DOCK_CONTACT_DISTANCE).values()).map(function (pair) {
|
|
1772
|
+
return pair.targetDP.ElementId;
|
|
1773
|
+
});
|
|
1774
|
+
}));
|
|
1775
|
+
moveGroupRigidly(group, docked, pose);
|
|
1776
|
+
var docksTo = function docksTo(obstacle) {
|
|
1777
|
+
return obstacle.setId === undefined && obstacle.elementId !== undefined && dockedTo.has(obstacle.elementId);
|
|
1778
|
+
};
|
|
1779
|
+
return this.blockersAt(drag, docked).every(docksTo) ? docked : undefined;
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1727
1782
|
// The unit moved rigidly onto the nearest dock of `element` outside it (see findDockSnap), else with `slots` into the
|
|
1728
1783
|
// nearest free slot place (see findSlotSnap).
|
|
1729
1784
|
}, {
|
|
@@ -3478,7 +3533,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
3478
3533
|
if (room && roomDrag && !roomDrag.rotating && transState == 'UPDATE' && roomDrag.members.some(function (member) {
|
|
3479
3534
|
return member.ElementId == elementId;
|
|
3480
3535
|
})) {
|
|
3481
|
-
if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove);
|
|
3536
|
+
if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove, autoDockingDistance);
|
|
3482
3537
|
return false;
|
|
3483
3538
|
}
|
|
3484
3539
|
if (this.plannerElements.has(elementId)) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
2
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import './index-
|
|
4
|
+
import './index-68183d49.js';
|
|
5
5
|
import DivaUtils from '@crystaldesign/diva-utils';
|
|
6
6
|
import '@babel/runtime/helpers/slicedToArray';
|
|
7
7
|
import '@babel/runtime/helpers/asyncToGenerator';
|
|
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
|
3
3
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
4
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
5
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { L as bootMark, R as Rendering, N as HQRenderScript } from './index-
|
|
6
|
+
import { L as bootMark, R as Rendering, N as HQRenderScript } from './index-68183d49.js';
|
|
7
7
|
import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
|
|
8
8
|
import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
|
|
9
9
|
import io from 'socket.io-client';
|