@crystaldesign/web-planner-logic 26.11.0-beta.2 → 26.11.0-beta.21
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-68cc1bd1.js → DivaBoxPlanner-051e3b01.js} +134 -47
- package/build/cjs/{DivaStandardPlanner-d44ae0e7.js → DivaStandardPlanner-40846a4f.js} +340 -190
- package/build/cjs/{DoorPlanner-1719cbe1.js → DoorPlanner-51477bb2.js} +3 -1
- package/build/cjs/{Host3DSignalR-a456221e.js → Host3DSignalR-72511b72.js} +41 -24
- package/build/cjs/{LiviqueWWSHandler-f2afb4eb.js → LiviqueWWSHandler-fbfeeb05.js} +3 -1
- package/build/cjs/{PfisterWWSHandler-8f522ab6.js → PfisterWWSHandler-a7ac983b.js} +3 -1
- package/build/cjs/PlannerHandler2D-e2c83aec.js +544 -0
- package/build/cjs/{SeriousBasketHandler-b39f0556.js → SeriousBasketHandler-60853c54.js} +3 -1
- package/build/cjs/{ShelfPlanner-1dde2d7c.js → ShelfPlanner-a901f6da.js} +262 -148
- package/build/cjs/{StandardWWSHandler-62ec343d.js → StandardWWSHandler-3a8a3685.js} +3 -1
- package/build/cjs/{index-d63749e4.js → index-7d87a838.js} +15132 -13899
- package/build/cjs/index.js +13 -2
- package/build/esm/{DivaBoxPlanner-a347ef5d.js → DivaBoxPlanner-a76550ee.js} +134 -47
- package/build/esm/{DivaStandardPlanner-a8f0d722.js → DivaStandardPlanner-56c260dc.js} +339 -190
- package/build/esm/{DoorPlanner-60c065e5.js → DoorPlanner-a40a4342.js} +3 -1
- package/build/esm/{Host3DSignalR-0c7e84a7.js → Host3DSignalR-6f824d99.js} +41 -24
- package/build/esm/{LiviqueWWSHandler-3df03404.js → LiviqueWWSHandler-2f1189d0.js} +3 -1
- package/build/esm/{PfisterWWSHandler-28b609ef.js → PfisterWWSHandler-81238c20.js} +3 -1
- package/build/esm/PlannerHandler2D-d93ae013.js +526 -0
- package/build/esm/{SeriousBasketHandler-276a8035.js → SeriousBasketHandler-bca9210d.js} +3 -1
- package/build/esm/{ShelfPlanner-7380b831.js → ShelfPlanner-539f1b08.js} +262 -148
- package/build/esm/{StandardWWSHandler-1d13f6a3.js → StandardWWSHandler-cdc4c837.js} +3 -1
- package/build/esm/{index-358c0a3c.js → index-b755400a.js} +15128 -13899
- package/build/esm/index.js +3 -1
- package/build/types/web-planner-logic/src/index.d.ts +8 -3
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +13 -0
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts +13 -0
- package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +3 -0
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +5 -0
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +19 -18
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts +37 -0
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts +5 -0
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +46 -2
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.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/Article/Engine/ArticleEngine.d.ts +4 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +12 -2
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +20 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +31 -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/DivaApiHandler.d.ts +25 -0
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +149 -95
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +19 -0
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +15 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +11 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +28 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts +9 -114
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts +5 -7
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +5 -6
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +17 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +2 -2
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +31 -3
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts +9 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts +12 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts +66 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/bootMark.d.ts +71 -0
- package/build/types/web-planner-logic/src/logic/bootMark.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +11 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +13 -0
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts +1 -44
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +6 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts.map +1 -0
- package/package.json +5 -5
- package/build/cjs/PlannerHandler2D-dbe1d858.js +0 -2470
- package/build/esm/PlannerHandler2D-f8657005.js +0 -2455
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
3
4
|
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
4
5
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
5
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-7d87a838.js');
|
|
9
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
|
-
var
|
|
11
|
+
var planner2dCore = require('@crystaldesign/planner-2d-core');
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-e2c83aec.js');
|
|
11
13
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
14
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
13
|
-
require('@babel/runtime/helpers/toConsumableArray');
|
|
14
15
|
require('axios');
|
|
15
16
|
require('@crystaldesign/basket-model');
|
|
16
17
|
require('@babel/runtime/helpers/typeof');
|
|
18
|
+
require('fast-xml-parser');
|
|
17
19
|
require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
18
20
|
require('@babel/runtime/helpers/getPrototypeOf');
|
|
19
21
|
require('@babel/runtime/helpers/inherits');
|
|
20
22
|
require('@babel/runtime/helpers/wrapNativeSuper');
|
|
21
23
|
require('@crystaldesign/basket-handler');
|
|
22
24
|
require('socket.io-client');
|
|
23
|
-
require('
|
|
24
|
-
require('w3c-xmlserializer');
|
|
25
|
+
require('@babel/runtime/helpers/get');
|
|
25
26
|
|
|
26
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
28
|
|
|
29
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
28
30
|
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
29
31
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
30
32
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
@@ -32,6 +34,26 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
32
34
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
33
35
|
var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
|
|
34
36
|
|
|
37
|
+
/** Configurator 2.0 set planner payload (`SetPlanData` after base64 decode). */
|
|
38
|
+
|
|
39
|
+
/** Legacy planner 1.x payload (no `v: 2` wrapper). */
|
|
40
|
+
|
|
41
|
+
function parseSetPlanData(setPlanData) {
|
|
42
|
+
var planDataString = DivaUtils__default["default"].decodeBase64(setPlanData);
|
|
43
|
+
return JSON.parse(planDataString);
|
|
44
|
+
}
|
|
45
|
+
function isSavePlannerV2(planData) {
|
|
46
|
+
return planData.v === 2;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Article codex from a V2 or legacy element record. */
|
|
50
|
+
function saveElementArticleCodex(element) {
|
|
51
|
+
return element.articleCodex || element.Codex;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
55
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
56
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
57
|
var LOG = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
|
|
36
58
|
var ACC_DOCK_TYPES = ['AVO', 'AVU', 'AVC', 'AVS', 'AVN'];
|
|
37
59
|
var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
@@ -61,7 +83,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
61
83
|
_defineProperty__default["default"](this, "nextElementId", 1);
|
|
62
84
|
_defineProperty__default["default"](this, "collisionHandler", void 0);
|
|
63
85
|
_defineProperty__default["default"](this, "dockToAVUorAVOororAVNorAVSorAVC", function (plannerElement, targetElements) {
|
|
64
|
-
|
|
86
|
+
// Capability comes from the SVG-parsed docking points, not the catalog metadata counts
|
|
87
|
+
// (countAV*): the parsed SVG is the same source the targeted dock (tryDockElementToDP) uses, so
|
|
88
|
+
// auto-dock stays consistent with it even when the catalog's SVG detail info misses the counts.
|
|
89
|
+
var hasFreeDP = function hasFreeDP(type) {
|
|
90
|
+
return plannerElement.getFreeDockingPointsByType(type).length > 0;
|
|
91
|
+
};
|
|
92
|
+
if (hasFreeDP('AVU')) {
|
|
65
93
|
//Try to dock Element to free AVR
|
|
66
94
|
var successDP = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVU', targetElements);
|
|
67
95
|
if (successDP) {
|
|
@@ -77,28 +105,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
77
105
|
if (_successDP) return true;
|
|
78
106
|
}
|
|
79
107
|
}
|
|
80
|
-
if (
|
|
108
|
+
if (hasFreeDP('AVO')) {
|
|
81
109
|
var _successDP2 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVO', targetElements);
|
|
82
110
|
if (_successDP2) {
|
|
83
111
|
_this.updateWorldPos(plannerElement, _successDP2);
|
|
84
112
|
return true;
|
|
85
113
|
}
|
|
86
114
|
}
|
|
87
|
-
if (
|
|
115
|
+
if (hasFreeDP('AVN')) {
|
|
88
116
|
var _successDP3 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVN', targetElements);
|
|
89
117
|
if (_successDP3) {
|
|
90
118
|
_this.updateWorldPos(plannerElement, _successDP3);
|
|
91
119
|
return true;
|
|
92
120
|
}
|
|
93
121
|
}
|
|
94
|
-
if (
|
|
122
|
+
if (hasFreeDP('AVS')) {
|
|
95
123
|
var _successDP4 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVS', targetElements);
|
|
96
124
|
if (_successDP4) {
|
|
97
125
|
_this.updateWorldPos(plannerElement, _successDP4);
|
|
98
126
|
return true;
|
|
99
127
|
}
|
|
100
128
|
}
|
|
101
|
-
if (
|
|
129
|
+
if (hasFreeDP('AVC')) {
|
|
102
130
|
var _successDP5 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVC', targetElements);
|
|
103
131
|
if (_successDP5) {
|
|
104
132
|
_this.updateWorldPos(plannerElement, _successDP5);
|
|
@@ -231,30 +259,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
231
259
|
var refElement = this.plannerElements.get(dockingPoint.OnElementId);
|
|
232
260
|
var refDockingPoint = refElement.getDockingPointById(dockingPoint.OnDP.DpId);
|
|
233
261
|
if (refDockingPoint == undefined) return updateConfig;
|
|
234
|
-
|
|
235
|
-
var worldPosNewElementIgnoreOLF = new index.Vector3(0, 0, 0);
|
|
236
|
-
|
|
237
|
-
// DP LocalWorldPos is OLF-corner-relative when HasOLFPolygon (from SVG). Convert to OLT-corner-relative for WorldPosCornerIgnoreOLF.
|
|
238
|
-
var refDPLocalOlt = refElement.HasOLFPolygon ? new index.Vector2(refDockingPoint.LocalWorldPos.x - refElement.getOltLeft(), refDockingPoint.LocalWorldPos.z - refElement.getOltTop()) : new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
239
|
-
var newDPLocalOlt = plannerElement.HasOLFPolygon ? new index.Vector2(dockingPoint.LocalWorldPos.x - plannerElement.getOltLeft(), dockingPoint.LocalWorldPos.z - plannerElement.getOltTop()) : new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z);
|
|
240
|
-
var rotatedLocalRefDP = new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
241
|
-
rotatedLocalRefDP = index.Vector2.rotateOrigin(rotatedLocalRefDP, refElement.RotDeg);
|
|
242
|
-
var angleToRot = refElement.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
243
|
-
plannerElement.RotDeg = angleToRot;
|
|
244
|
-
var refWorldPosCor = refElement.WorldPosCorner;
|
|
245
|
-
// For ref without OLF: use same corner for both alignments (no OLF/OLT split; WorldPosCornerIgnoreOLF getter also does this).
|
|
246
|
-
var refWorldPosCorIgnoreOLF = refElement.HasOLFPolygon ? refElement.WorldPosCornerIgnoreOLF : refWorldPosCor;
|
|
247
|
-
var rotatedLocalDP2D = index.Vector2.rotateOrigin(new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z), angleToRot);
|
|
248
|
-
worldPosNewElement.x = refWorldPosCor.x + rotatedLocalRefDP.x - rotatedLocalDP2D.x;
|
|
249
|
-
worldPosNewElement.y = refWorldPosCor.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
250
|
-
worldPosNewElement.z = refWorldPosCor.z + rotatedLocalRefDP.y - rotatedLocalDP2D.y;
|
|
251
|
-
var rotatedRefDPOlt = index.Vector2.rotateOrigin(refDPLocalOlt, refElement.RotDeg);
|
|
252
|
-
var rotatedNewDPOlt = index.Vector2.rotateOrigin(newDPLocalOlt, angleToRot);
|
|
253
|
-
worldPosNewElementIgnoreOLF.x = refWorldPosCorIgnoreOLF.x + rotatedRefDPOlt.x - rotatedNewDPOlt.x;
|
|
254
|
-
worldPosNewElementIgnoreOLF.z = refWorldPosCorIgnoreOLF.z + rotatedRefDPOlt.y - rotatedNewDPOlt.y;
|
|
255
|
-
worldPosNewElementIgnoreOLF.y = refWorldPosCorIgnoreOLF.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
256
|
-
plannerElement.WorldPosCorner = worldPosNewElement;
|
|
257
|
-
plannerElement.WorldPosCornerIgnoreOLF = worldPosNewElementIgnoreOLF;
|
|
262
|
+
this.applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint);
|
|
258
263
|
updateConfig = this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
259
264
|
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
260
265
|
plannerElement.updatePlannerData(data);
|
|
@@ -263,15 +268,81 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
263
268
|
return updateConfig;
|
|
264
269
|
}
|
|
265
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Positions `plannerElement` so its `dockingPoint` aligns to `refElement`'s `refDockingPoint`
|
|
273
|
+
* (rotation + OLF/OLT-aware translation). Mutates only the element's world position and rotation —
|
|
274
|
+
* NOT the docking relations — so it is reusable for a non-committing snap preview
|
|
275
|
+
* ({@link getDockSnapPreview}) as well as the real dock ({@link updateWorldPos}).
|
|
276
|
+
*/
|
|
277
|
+
}, {
|
|
278
|
+
key: "applyDockTransform",
|
|
279
|
+
value: function applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint) {
|
|
280
|
+
var dockedTransform = planner2dCore.computeDockedTransform(refElement, refDockingPoint, plannerElement, dockingPoint);
|
|
281
|
+
plannerElement.RotDeg = dockedTransform.rotDeg;
|
|
282
|
+
plannerElement.WorldPosCorner = new index.Vector3(dockedTransform.worldPosCorner.x, dockedTransform.worldPosCorner.y, dockedTransform.worldPosCorner.z);
|
|
283
|
+
plannerElement.WorldPosCornerIgnoreOLF = new index.Vector3(dockedTransform.worldPosCornerIgnoreOLF.x, dockedTransform.worldPosCornerIgnoreOLF.y, dockedTransform.worldPosCornerIgnoreOLF.z);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Non-committing preview of where `elementId` would auto-snap if released now: runs the same
|
|
288
|
+
* dockable-pair search as END, and for the closest pair computes the docked transform via
|
|
289
|
+
* {@link applyDockTransform} (apply → read → restore, no docking relations touched). Returns the
|
|
290
|
+
* delta from the element's current transform (cm / deg), or null if nothing is in snapping range.
|
|
291
|
+
* `excludeElementIds` skips the element's own move-group so it doesn't "snap" to siblings that
|
|
292
|
+
* are translating with it.
|
|
293
|
+
*/
|
|
294
|
+
}, {
|
|
295
|
+
key: "getDockSnapPreview",
|
|
296
|
+
value: function getDockSnapPreview(elementId, autoDockingDistance) {
|
|
297
|
+
var excludeElementIds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
298
|
+
var element = this.plannerElements.get(elementId);
|
|
299
|
+
if (!element) return null;
|
|
300
|
+
var targets = this.getAllPlannerElements().filter(function (e) {
|
|
301
|
+
return e.getElementId() !== elementId && !excludeElementIds.includes(e.getElementId());
|
|
302
|
+
});
|
|
303
|
+
var pairs = PlannerHandler2D.dockingPointHandlerInst.searchDockableElementsInArea(element, targets, autoDockingDistance);
|
|
304
|
+
if (!pairs || pairs.size === 0) return null;
|
|
305
|
+
var best;
|
|
306
|
+
pairs.forEach(function (p) {
|
|
307
|
+
if (best == undefined || p.distance < best.distance) best = p;
|
|
308
|
+
});
|
|
309
|
+
if (best == undefined) return null;
|
|
310
|
+
var targetElement = this.plannerElements.get(best.targetDP.ElementId);
|
|
311
|
+
if (!targetElement) return null;
|
|
312
|
+
var savedRot = element.RotDeg;
|
|
313
|
+
var savedCenter = element.WorldPosCenter;
|
|
314
|
+
var savedX = savedCenter.x,
|
|
315
|
+
savedY = savedCenter.y,
|
|
316
|
+
savedZ = savedCenter.z;
|
|
317
|
+
this.applyDockTransform(element, targetElement, best.sourceDP, best.targetDP);
|
|
318
|
+
var snapped = element.WorldPosCenter;
|
|
319
|
+
var result = {
|
|
320
|
+
dx: snapped.x - savedX,
|
|
321
|
+
dz: snapped.z - savedZ,
|
|
322
|
+
dRotDeg: element.RotDeg - savedRot
|
|
323
|
+
};
|
|
324
|
+
// Restore — the preview must leave the planner state untouched.
|
|
325
|
+
element.RotDeg = savedRot;
|
|
326
|
+
element.WorldPosCenter = new index.Vector3(savedX, savedY, savedZ);
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
329
|
+
|
|
266
330
|
/**
|
|
267
331
|
* This function updates the position information of all elements. It is called after updating the SVG of 1 element.
|
|
268
332
|
* The position is updated based on the posNr.
|
|
269
333
|
* At the end - the collision is calculated
|
|
334
|
+
* @param changedElementIds elements whose SVG was reloaded this cycle (their docking geometry may
|
|
335
|
+
* have moved, e.g. an AVC shifted by stretch areas). Elements docked - directly or transitively -
|
|
336
|
+
* to one of them are re-anchored to the moved partner after the PosNr walk, which on its own only
|
|
337
|
+
* propagates forward in PosNr order and prefers AVL over AVC anchors.
|
|
270
338
|
*/
|
|
271
339
|
}, {
|
|
272
340
|
key: "updateAllElementsWorldPos",
|
|
273
|
-
value: function updateAllElementsWorldPos(checkCollisionSingleElementId) {
|
|
341
|
+
value: function updateAllElementsWorldPos(checkCollisionSingleElementId, changedElementIds) {
|
|
274
342
|
if (this.doDisablePlanner2D) return false;
|
|
343
|
+
var getDockedDPsInPriorityOrder = function getDockedDPsInPriorityOrder(element) {
|
|
344
|
+
return element.getDockingDockingPointsByType('AVL').concat(element.getDockingDockingPointsByType('AVR')).concat(element.getDockingDockingPointsByType('AVU')).concat(element.getDockingDockingPointsByType('AVO')).concat(element.getDockingDockingPointsByType('AVN')).concat(element.getDockingDockingPointsByType('AVS')).concat(element.getDockingDockingPointsByType('AVC'));
|
|
345
|
+
};
|
|
275
346
|
var updateConfig = false;
|
|
276
347
|
var sortedPlannerElementsbyPosNr = [];
|
|
277
348
|
var accElems = [];
|
|
@@ -292,7 +363,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
292
363
|
var element = sortedPlannerElementsbyPosNr[i];
|
|
293
364
|
alreadyCorrectedId.push(element.ElementId);
|
|
294
365
|
if (i > firstI) {
|
|
295
|
-
var dockingPoints =
|
|
366
|
+
var dockingPoints = getDockedDPsInPriorityOrder(element);
|
|
296
367
|
for (var j = 0; j < dockingPoints.length; j++) {
|
|
297
368
|
//Nur wenn er auf ein element schaut das schon gedockt ist korrigieren
|
|
298
369
|
if (alreadyCorrectedId.indexOf(dockingPoints[j].OnElementId) >= 0) {
|
|
@@ -303,6 +374,38 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
303
374
|
}
|
|
304
375
|
}
|
|
305
376
|
}
|
|
377
|
+
|
|
378
|
+
// The walk above anchors each element to its FIRST docked partner in AVL-first priority and
|
|
379
|
+
// only propagates forward in PosNr order - both hide a geometry change in a reloaded partner
|
|
380
|
+
// (e.g. an AVC line shifted by stretch areas). Sweep outward from the reloaded elements:
|
|
381
|
+
// re-anchor every element docked - directly or transitively - to a moved partner, until stable.
|
|
382
|
+
if (changedElementIds && changedElementIds.length > 0) {
|
|
383
|
+
var moved = new Set(changedElementIds);
|
|
384
|
+
var progressed = true;
|
|
385
|
+
while (progressed) {
|
|
386
|
+
progressed = false;
|
|
387
|
+
var _iterator = _createForOfIteratorHelper(sortedPlannerElementsbyPosNr),
|
|
388
|
+
_step;
|
|
389
|
+
try {
|
|
390
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
391
|
+
var _element = _step.value;
|
|
392
|
+
if (!_element || moved.has(_element.ElementId)) continue;
|
|
393
|
+
var dpToMovedPartner = getDockedDPsInPriorityOrder(_element).find(function (dp) {
|
|
394
|
+
return moved.has(dp.OnElementId);
|
|
395
|
+
});
|
|
396
|
+
if (dpToMovedPartner) {
|
|
397
|
+
updateConfig = this.updateWorldPos(_element, dpToMovedPartner) || updateConfig;
|
|
398
|
+
moved.add(_element.ElementId);
|
|
399
|
+
progressed = true;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
} catch (err) {
|
|
403
|
+
_iterator.e(err);
|
|
404
|
+
} finally {
|
|
405
|
+
_iterator.f();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
306
409
|
this.checkCollision(false, checkCollisionSingleElementId);
|
|
307
410
|
return updateConfig;
|
|
308
411
|
}
|
|
@@ -789,7 +892,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
789
892
|
elementsToDelete.push(elementsLostDockingRelation[i].ElementId);
|
|
790
893
|
}
|
|
791
894
|
}
|
|
792
|
-
this.updateAllElementsWorldPos();
|
|
895
|
+
this.updateAllElementsWorldPos(undefined, elemtsWhereSomethingChanged);
|
|
793
896
|
this.updatePlannerPosNr();
|
|
794
897
|
this.updatePlannerBoundingBox();
|
|
795
898
|
}
|
|
@@ -819,14 +922,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
819
922
|
key: "extendPlanner",
|
|
820
923
|
value: (function () {
|
|
821
924
|
var _extendPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4(setPlanData, globalBoundingBox) {
|
|
822
|
-
var
|
|
925
|
+
var planData, jsonElements, elementsSortedbyPosNr, accElements, oldElementidMapping, i, _saveElementArticleCo, _jsonElement$Accessoi, jsonElement, catalogArticle, plannerElement, data, elementsForDockingExtend, row, curElement, DPsInfo, j, dpInfo, sourceDP, targetElement, targetDP;
|
|
823
926
|
return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
|
|
824
927
|
while (1) switch (_context4.prev = _context4.next) {
|
|
825
928
|
case 0:
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
_context4.next = 40;
|
|
929
|
+
planData = parseSetPlanData(setPlanData);
|
|
930
|
+
if (!isSavePlannerV2(planData)) {
|
|
931
|
+
_context4.next = 39;
|
|
830
932
|
break;
|
|
831
933
|
}
|
|
832
934
|
jsonElements = planData.set.elements;
|
|
@@ -834,70 +936,70 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
834
936
|
accElements = [];
|
|
835
937
|
oldElementidMapping = new Map(); //First reset planner element values in jsonElement so that every set is planned to be set to origin
|
|
836
938
|
i = 0;
|
|
837
|
-
case
|
|
939
|
+
case 7:
|
|
838
940
|
if (!(i < jsonElements.length)) {
|
|
839
|
-
_context4.next =
|
|
941
|
+
_context4.next = 35;
|
|
840
942
|
break;
|
|
841
943
|
}
|
|
842
|
-
_context4.prev =
|
|
944
|
+
_context4.prev = 8;
|
|
843
945
|
jsonElement = jsonElements[i];
|
|
844
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
946
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo !== void 0 ? _saveElementArticleCo : '');
|
|
845
947
|
if (!(!catalogArticle && (_jsonElement$Accessoi = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi !== void 0 && _jsonElement$Accessoi.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
846
|
-
_context4.next =
|
|
948
|
+
_context4.next = 14;
|
|
847
949
|
break;
|
|
848
950
|
}
|
|
849
951
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
850
952
|
code: 'WC_0012'
|
|
851
953
|
}));
|
|
852
|
-
return _context4.abrupt("continue",
|
|
853
|
-
case
|
|
954
|
+
return _context4.abrupt("continue", 32);
|
|
955
|
+
case 14:
|
|
854
956
|
plannerElement = new index.PlannerElementData(this.set.getSetId(), jsonElement.basketID, this.nextElementId, DivaStandardPlanner.plannerType);
|
|
855
|
-
oldElementidMapping.set(
|
|
957
|
+
oldElementidMapping.set(jsonElement.elementID, plannerElement);
|
|
856
958
|
this.nextElementId = plannerElement.getElementId() + 1;
|
|
857
959
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
858
960
|
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
859
961
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
860
962
|
plannerElement.updatePlannerData(data);
|
|
861
963
|
if (this.doDisablePlanner2D) {
|
|
862
|
-
_context4.next =
|
|
964
|
+
_context4.next = 24;
|
|
863
965
|
break;
|
|
864
966
|
}
|
|
865
|
-
_context4.next =
|
|
967
|
+
_context4.next = 24;
|
|
866
968
|
return PlannerHandler2D.handler2D.loadSVG(plannerElement, this.set);
|
|
867
|
-
case
|
|
969
|
+
case 24:
|
|
868
970
|
plannerElement.WorldPosCenter = new index.Vector3(globalBoundingBox.WorldPos.x + globalBoundingBox.Size.x + jsonElement.x + 100, globalBoundingBox.WorldPos.y + jsonElement.y, globalBoundingBox.WorldPos.z + jsonElement.z);
|
|
869
971
|
plannerElement.RotDeg = jsonElement.rot;
|
|
870
972
|
if (plannerElement.IsDockedAccessoire) {
|
|
871
973
|
accElements.push(jsonElement);
|
|
872
974
|
plannerElement.PosNr = jsonElement.posNr;
|
|
873
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
975
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
874
976
|
} else {
|
|
875
977
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
876
978
|
plannerElement.PosNr = jsonElement.posNr;
|
|
877
979
|
}
|
|
878
|
-
_context4.next =
|
|
980
|
+
_context4.next = 32;
|
|
879
981
|
break;
|
|
880
|
-
case
|
|
881
|
-
_context4.prev =
|
|
882
|
-
_context4.t0 = _context4["catch"](
|
|
982
|
+
case 29:
|
|
983
|
+
_context4.prev = 29;
|
|
984
|
+
_context4.t0 = _context4["catch"](8);
|
|
883
985
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
884
986
|
cause: _context4.t0,
|
|
885
987
|
code: 'WC_0012'
|
|
886
988
|
}));
|
|
887
|
-
case
|
|
989
|
+
case 32:
|
|
888
990
|
i++;
|
|
889
|
-
_context4.next =
|
|
991
|
+
_context4.next = 7;
|
|
890
992
|
break;
|
|
891
|
-
case
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
993
|
+
case 35:
|
|
994
|
+
elementsForDockingExtend = [].concat(_toConsumableArray__default["default"](elementsSortedbyPosNr.filter(function (e) {
|
|
995
|
+
return e != null;
|
|
996
|
+
})), accElements);
|
|
997
|
+
for (i = 0; i < elementsForDockingExtend.length; i++) {
|
|
998
|
+
row = elementsForDockingExtend[i];
|
|
999
|
+
curElement = oldElementidMapping.get(row.elementID);
|
|
1000
|
+
if (elementsForDockingExtend.length > 1) {
|
|
898
1001
|
if (i > 0) {
|
|
899
|
-
|
|
900
|
-
DPsInfo = elementsSortedbyPosNr[i].DP;
|
|
1002
|
+
DPsInfo = row.DP;
|
|
901
1003
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
902
1004
|
dpInfo = DPsInfo[j];
|
|
903
1005
|
sourceDP = curElement === null || curElement === void 0 ? void 0 : curElement.getDockingPointById(dpInfo.id);
|
|
@@ -910,17 +1012,17 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
910
1012
|
}
|
|
911
1013
|
}
|
|
912
1014
|
}
|
|
913
|
-
_context4.next =
|
|
1015
|
+
_context4.next = 40;
|
|
914
1016
|
break;
|
|
915
|
-
case
|
|
1017
|
+
case 39:
|
|
916
1018
|
LOG.error(new DivaUtils.DivaError('The function extend Planner works only with products that are saved in the configurator 2.0', {
|
|
917
1019
|
code: 'WC_0012'
|
|
918
1020
|
}));
|
|
919
|
-
case
|
|
1021
|
+
case 40:
|
|
920
1022
|
case "end":
|
|
921
1023
|
return _context4.stop();
|
|
922
1024
|
}
|
|
923
|
-
}, _callee4, this, [[
|
|
1025
|
+
}, _callee4, this, [[8, 29]]);
|
|
924
1026
|
}));
|
|
925
1027
|
function extendPlanner(_x7, _x8) {
|
|
926
1028
|
return _extendPlanner.apply(this, arguments);
|
|
@@ -931,46 +1033,44 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
931
1033
|
key: "initPlanner",
|
|
932
1034
|
value: function () {
|
|
933
1035
|
var _initPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(setPlanData) {
|
|
934
|
-
var
|
|
1036
|
+
var planData, _planData$set, jsonElements, elementsSortedbyPosNr, accElements, i, _saveElementArticleCo2, _jsonElement$Accessoi2, jsonElement, catalogArticle, elementID, plannerElement, data, onlyOneBaseElement, elementsForDocking, row, _jsonElement, hasSavedPos, element, DPsInfo, j, dpInfo, sourceElement, sourceDP, targetElement, targetDP, alreadyDocked, docked, _elementsForDocking$i, elementId, _planData$Sets, _legacySet$Elements, legacySet, _jsonElements, _elementsSortedbyPosNr, _accElements, _saveElementArticleCo3, _jsonElement2$Accesso, _jsonElement2, _catalogArticle, basketID, _elementId, _plannerElement, _data, centerWorldPos, parentPosNr, accPosNr, elementsForDockingV1, _row, _DPsInfo, _dpInfo, _this$plannerElements, targetElementId, dpType, curElement, _targetElement, anchorElement;
|
|
935
1037
|
return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
|
|
936
1038
|
while (1) switch (_context5.prev = _context5.next) {
|
|
937
1039
|
case 0:
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
_context5.next = 62;
|
|
1040
|
+
planData = parseSetPlanData(setPlanData);
|
|
1041
|
+
if (!isSavePlannerV2(planData)) {
|
|
1042
|
+
_context5.next = 63;
|
|
942
1043
|
break;
|
|
943
1044
|
}
|
|
944
1045
|
LOG.debug('Initialize set Plan Data - V2\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
945
|
-
if (
|
|
946
|
-
_context5.next =
|
|
1046
|
+
if ((_planData$set = planData.set) !== null && _planData$set !== void 0 && (_planData$set = _planData$set.elements) !== null && _planData$set !== void 0 && _planData$set.length) {
|
|
1047
|
+
_context5.next = 5;
|
|
947
1048
|
break;
|
|
948
1049
|
}
|
|
949
1050
|
return _context5.abrupt("return");
|
|
950
|
-
case
|
|
951
|
-
//Init new saved Plannings
|
|
1051
|
+
case 5:
|
|
952
1052
|
jsonElements = planData.set.elements;
|
|
953
1053
|
elementsSortedbyPosNr = [];
|
|
954
1054
|
accElements = [];
|
|
955
1055
|
i = 0;
|
|
956
|
-
case
|
|
1056
|
+
case 9:
|
|
957
1057
|
if (!(i < jsonElements.length)) {
|
|
958
|
-
_context5.next =
|
|
1058
|
+
_context5.next = 37;
|
|
959
1059
|
break;
|
|
960
1060
|
}
|
|
961
|
-
_context5.prev =
|
|
1061
|
+
_context5.prev = 10;
|
|
962
1062
|
jsonElement = jsonElements[i];
|
|
963
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1063
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo2 = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo2 !== void 0 ? _saveElementArticleCo2 : '');
|
|
964
1064
|
if (!(!catalogArticle && (_jsonElement$Accessoi2 = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi2 !== void 0 && _jsonElement$Accessoi2.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
965
|
-
_context5.next =
|
|
1065
|
+
_context5.next = 16;
|
|
966
1066
|
break;
|
|
967
1067
|
}
|
|
968
1068
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
969
1069
|
code: 'WC_0012'
|
|
970
1070
|
}));
|
|
971
|
-
return _context5.abrupt("continue",
|
|
972
|
-
case
|
|
973
|
-
elementID =
|
|
1071
|
+
return _context5.abrupt("continue", 34);
|
|
1072
|
+
case 16:
|
|
1073
|
+
elementID = jsonElement.elementID;
|
|
974
1074
|
plannerElement = new index.PlannerElementData(this.set.getSetId(), jsonElement.basketID, elementID, DivaStandardPlanner.plannerType);
|
|
975
1075
|
this.nextElementId = elementID + 1;
|
|
976
1076
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
@@ -978,12 +1078,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
978
1078
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
979
1079
|
plannerElement.updatePlannerData(data);
|
|
980
1080
|
if (this.doDisablePlanner2D) {
|
|
981
|
-
_context5.next =
|
|
1081
|
+
_context5.next = 26;
|
|
982
1082
|
break;
|
|
983
1083
|
}
|
|
984
|
-
_context5.next =
|
|
1084
|
+
_context5.next = 26;
|
|
985
1085
|
return PlannerHandler2D.handler2D.loadSVG(plannerElement, this.set);
|
|
986
|
-
case
|
|
1086
|
+
case 26:
|
|
987
1087
|
//Im neuen speichern ist die Position hinten link - nicht mehr im Centrum wie im alten Planer
|
|
988
1088
|
//plannerElement.WorldPosCenter = new Vector3(jsonElement.x, jsonElement.y, jsonElement.z);
|
|
989
1089
|
plannerElement.WorldPosCenter = new index.Vector3(this.plannerBoundingBox.WorldPos.x + jsonElement.x, this.plannerBoundingBox.WorldPos.y + jsonElement.y, this.plannerBoundingBox.WorldPos.z + jsonElement.z);
|
|
@@ -991,141 +1091,151 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
991
1091
|
if (plannerElement.IsDockedAccessoire) {
|
|
992
1092
|
accElements.push(jsonElement);
|
|
993
1093
|
plannerElement.PosNr = jsonElement.posNr;
|
|
994
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1094
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
995
1095
|
} else {
|
|
996
1096
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
997
1097
|
plannerElement.PosNr = jsonElement.posNr;
|
|
998
1098
|
}
|
|
999
|
-
_context5.next =
|
|
1099
|
+
_context5.next = 34;
|
|
1000
1100
|
break;
|
|
1001
|
-
case
|
|
1002
|
-
_context5.prev =
|
|
1003
|
-
_context5.t0 = _context5["catch"](
|
|
1101
|
+
case 31:
|
|
1102
|
+
_context5.prev = 31;
|
|
1103
|
+
_context5.t0 = _context5["catch"](10);
|
|
1004
1104
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
1005
1105
|
cause: _context5.t0,
|
|
1006
1106
|
code: 'WC_0012'
|
|
1007
1107
|
}));
|
|
1008
|
-
case
|
|
1108
|
+
case 34:
|
|
1009
1109
|
i++;
|
|
1010
|
-
_context5.next =
|
|
1110
|
+
_context5.next = 9;
|
|
1011
1111
|
break;
|
|
1012
|
-
case
|
|
1013
|
-
onlyOneBaseElement = elementsSortedbyPosNr.length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
1014
|
-
|
|
1112
|
+
case 37:
|
|
1113
|
+
onlyOneBaseElement = elementsSortedbyPosNr.filter(Boolean).length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
1114
|
+
elementsForDocking = [].concat(_toConsumableArray__default["default"](elementsSortedbyPosNr.filter(function (e) {
|
|
1115
|
+
return e != null;
|
|
1116
|
+
})), accElements);
|
|
1015
1117
|
i = 0;
|
|
1016
|
-
case
|
|
1017
|
-
if (!(i <
|
|
1018
|
-
_context5.next =
|
|
1118
|
+
case 40:
|
|
1119
|
+
if (!(i < elementsForDocking.length)) {
|
|
1120
|
+
_context5.next = 61;
|
|
1019
1121
|
break;
|
|
1020
1122
|
}
|
|
1021
|
-
_context5.prev =
|
|
1123
|
+
_context5.prev = 41;
|
|
1124
|
+
row = elementsForDocking[i];
|
|
1022
1125
|
if (!(i == 0 && onlyOneBaseElement && this.plannerHasStaticBackground)) {
|
|
1023
1126
|
_context5.next = 48;
|
|
1024
1127
|
break;
|
|
1025
1128
|
}
|
|
1026
1129
|
//if the planner has a static background room and there is only one base element (ignore docked ACCs) then it should be forced positioned in the center of the room.
|
|
1027
1130
|
//Only do this for fresh plannings - if the saved planData already contains a position, keep it.
|
|
1131
|
+
//if the planner has a static background room and there is only one base element (ignore docked ACCs) then it should be forced positioned in the center of the room
|
|
1028
1132
|
_jsonElement = elementsSortedbyPosNr[i];
|
|
1029
|
-
hasSavedPos = _jsonElement.x != null || _jsonElement.y != null || _jsonElement.z != null;
|
|
1133
|
+
hasSavedPos = (_jsonElement === null || _jsonElement === void 0 ? void 0 : _jsonElement.x) != null || (_jsonElement === null || _jsonElement === void 0 ? void 0 : _jsonElement.y) != null || (_jsonElement === null || _jsonElement === void 0 ? void 0 : _jsonElement.z) != null;
|
|
1030
1134
|
if (!hasSavedPos) {
|
|
1031
|
-
element = this.plannerElements.get(
|
|
1135
|
+
element = this.plannerElements.get(row.elementID);
|
|
1032
1136
|
if (element) element.WorldPosCenter = new index.Vector3(0, element.Height / 2, element.Depth / 2);
|
|
1033
1137
|
}
|
|
1034
|
-
return _context5.abrupt("continue",
|
|
1138
|
+
return _context5.abrupt("continue", 58);
|
|
1035
1139
|
case 48:
|
|
1036
|
-
if (!(
|
|
1140
|
+
if (!(row.DP == null || row.DP.length == 0)) {
|
|
1037
1141
|
_context5.next = 50;
|
|
1038
1142
|
break;
|
|
1039
1143
|
}
|
|
1040
|
-
return _context5.abrupt("continue",
|
|
1144
|
+
return _context5.abrupt("continue", 58);
|
|
1041
1145
|
case 50:
|
|
1042
|
-
DPsInfo =
|
|
1146
|
+
DPsInfo = row.DP;
|
|
1043
1147
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
1044
1148
|
dpInfo = DPsInfo[j];
|
|
1045
|
-
if (dpInfo.id && dpInfo.
|
|
1046
|
-
sourceElement = this.plannerElements.get(
|
|
1149
|
+
if (dpInfo.id && dpInfo.onID != null && dpInfo.onDPID) {
|
|
1150
|
+
sourceElement = this.plannerElements.get(row.elementID);
|
|
1047
1151
|
sourceDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getDockingPointById(dpInfo.id);
|
|
1048
1152
|
targetElement = this.plannerElements.get(dpInfo.onID);
|
|
1049
1153
|
targetDP = targetElement === null || targetElement === void 0 ? void 0 : targetElement.getDockingPointById(dpInfo.onDPID);
|
|
1050
1154
|
if (sourceDP && targetDP) {
|
|
1051
|
-
|
|
1155
|
+
// Saved plans store each relation on both sides - skip the mirror entry of an already established pair.
|
|
1156
|
+
alreadyDocked = sourceDP.IsDocking && sourceDP.OnDP == targetDP;
|
|
1157
|
+
docked = alreadyDocked || PlannerHandler2D.dockingPointHandlerInst.tryDockElementDPToDP(sourceElement, targetElement, sourceDP, targetDP);
|
|
1158
|
+
if (!docked && !this.doDisablePlanner2D) LOG.error(new DivaUtils.DivaError('Saved docking relation rejected on init: ' + dpInfo.id + ' (elem ' + (sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.ElementId) + ') -> ' + dpInfo.onDPID + ' (elem ' + (targetElement === null || targetElement === void 0 ? void 0 : targetElement.ElementId) + ')', {
|
|
1159
|
+
code: 'WC_0012'
|
|
1160
|
+
}));
|
|
1052
1161
|
} else {
|
|
1053
1162
|
if (!this.doDisablePlanner2D) LOG.error(new DivaUtils.DivaError('Error initializing docking point between source element with id: ' + (sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.ElementId) + ' and target Element with id: ' + (targetElement === null || targetElement === void 0 ? void 0 : targetElement.ElementId) + '. SourceDPID: ' + dpInfo.id + '; targetDPID: ' + dpInfo.onDPID));
|
|
1054
1163
|
}
|
|
1055
1164
|
}
|
|
1056
1165
|
}
|
|
1057
|
-
_context5.next =
|
|
1166
|
+
_context5.next = 58;
|
|
1058
1167
|
break;
|
|
1059
1168
|
case 54:
|
|
1060
1169
|
_context5.prev = 54;
|
|
1061
|
-
_context5.t1 = _context5["catch"](
|
|
1062
|
-
|
|
1170
|
+
_context5.t1 = _context5["catch"](41);
|
|
1171
|
+
elementId = (_elementsForDocking$i = elementsForDocking[i]) === null || _elementsForDocking$i === void 0 ? void 0 : _elementsForDocking$i.elementID;
|
|
1172
|
+
LOG.error(new DivaUtils.DivaError('Error initializing dockingPoints of element with elementID ' + elementId, {
|
|
1063
1173
|
cause: _context5.t1,
|
|
1064
1174
|
code: 'WC_0012'
|
|
1065
1175
|
}));
|
|
1066
|
-
case
|
|
1176
|
+
case 58:
|
|
1067
1177
|
i++;
|
|
1068
|
-
_context5.next =
|
|
1178
|
+
_context5.next = 40;
|
|
1069
1179
|
break;
|
|
1070
|
-
case
|
|
1071
|
-
_context5.next =
|
|
1180
|
+
case 61:
|
|
1181
|
+
_context5.next = 116;
|
|
1072
1182
|
break;
|
|
1073
|
-
case
|
|
1183
|
+
case 63:
|
|
1074
1184
|
LOG.debug('Initialize set Plan Data - old V1\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
1075
|
-
|
|
1076
|
-
|
|
1185
|
+
legacySet = (_planData$Sets = planData.Sets) === null || _planData$Sets === void 0 ? void 0 : _planData$Sets[0];
|
|
1186
|
+
if (legacySet !== null && legacySet !== void 0 && (_legacySet$Elements = legacySet.Elements) !== null && _legacySet$Elements !== void 0 && _legacySet$Elements.length) {
|
|
1187
|
+
_context5.next = 67;
|
|
1077
1188
|
break;
|
|
1078
1189
|
}
|
|
1079
1190
|
return _context5.abrupt("return");
|
|
1080
|
-
case
|
|
1081
|
-
|
|
1082
|
-
_jsonElements = planData.Sets[0].Elements;
|
|
1191
|
+
case 67:
|
|
1192
|
+
_jsonElements = legacySet.Elements;
|
|
1083
1193
|
_elementsSortedbyPosNr = [];
|
|
1084
1194
|
_accElements = []; //Zuerst initialisiere alle Elemente
|
|
1085
1195
|
//Dann positioniere sie richtig
|
|
1086
1196
|
i = 0;
|
|
1087
|
-
case
|
|
1197
|
+
case 71:
|
|
1088
1198
|
if (!(i < _jsonElements.length)) {
|
|
1089
|
-
_context5.next =
|
|
1199
|
+
_context5.next = 105;
|
|
1090
1200
|
break;
|
|
1091
1201
|
}
|
|
1092
|
-
_context5.prev =
|
|
1202
|
+
_context5.prev = 72;
|
|
1093
1203
|
_jsonElement2 = _jsonElements[i];
|
|
1094
|
-
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1204
|
+
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo3 = saveElementArticleCodex(_jsonElement2)) !== null && _saveElementArticleCo3 !== void 0 ? _saveElementArticleCo3 : '');
|
|
1095
1205
|
if (!(!_catalogArticle && (_jsonElement2$Accesso = _jsonElement2.AccessoireInitParams) !== null && _jsonElement2$Accesso !== void 0 && _jsonElement2$Accesso.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
1096
|
-
_context5.next =
|
|
1206
|
+
_context5.next = 78;
|
|
1097
1207
|
break;
|
|
1098
1208
|
}
|
|
1099
|
-
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData
|
|
1209
|
+
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V1', {
|
|
1100
1210
|
code: 'WC_0012'
|
|
1101
1211
|
}));
|
|
1102
|
-
return _context5.abrupt("continue",
|
|
1103
|
-
case
|
|
1212
|
+
return _context5.abrupt("continue", 102);
|
|
1213
|
+
case 78:
|
|
1104
1214
|
basketID = _jsonElement2.BasketID;
|
|
1105
1215
|
if (this.set.getElementId(basketID) == -1) this.set.setElementId(basketID, Number(_jsonElement2.ID));
|
|
1106
|
-
|
|
1107
|
-
_jsonElement2.elementId =
|
|
1108
|
-
if (!(
|
|
1109
|
-
_context5.next =
|
|
1216
|
+
_elementId = this.set.getElementId(basketID);
|
|
1217
|
+
_jsonElement2.elementId = _elementId;
|
|
1218
|
+
if (!(_elementId == -1)) {
|
|
1219
|
+
_context5.next = 85;
|
|
1110
1220
|
break;
|
|
1111
1221
|
}
|
|
1112
1222
|
LOG.error(new DivaUtils.DivaError('Error when initializing planner. The elementID Was not saved in the article. ', {
|
|
1113
1223
|
code: 'WC_0012'
|
|
1114
1224
|
}));
|
|
1115
|
-
return _context5.abrupt("continue",
|
|
1116
|
-
case
|
|
1117
|
-
_plannerElement = new index.PlannerElementData(this.set.getSetId(), basketID,
|
|
1118
|
-
this.nextElementId =
|
|
1225
|
+
return _context5.abrupt("continue", 102);
|
|
1226
|
+
case 85:
|
|
1227
|
+
_plannerElement = new index.PlannerElementData(this.set.getSetId(), basketID, _elementId, DivaStandardPlanner.plannerType);
|
|
1228
|
+
this.nextElementId = _elementId + 1;
|
|
1119
1229
|
this.plannerElements.set(_plannerElement.ElementId, _plannerElement);
|
|
1120
1230
|
_data = this.set.getPlannerData(_plannerElement.ElementId);
|
|
1121
1231
|
_plannerElement.updatePlannerData(_data);
|
|
1122
1232
|
if (this.doDisablePlanner2D) {
|
|
1123
|
-
_context5.next =
|
|
1233
|
+
_context5.next = 93;
|
|
1124
1234
|
break;
|
|
1125
1235
|
}
|
|
1126
|
-
_context5.next =
|
|
1236
|
+
_context5.next = 93;
|
|
1127
1237
|
return PlannerHandler2D.handler2D.loadSVG(_plannerElement, this.set);
|
|
1128
|
-
case
|
|
1238
|
+
case 93:
|
|
1129
1239
|
//Achtung die Pos Infos im alten Planer waren Zentrumskoordinaten!!! Nicht hinten oben.
|
|
1130
1240
|
centerWorldPos = new index.Vector3(_jsonElement2.PosX, _jsonElement2.PosZ, _jsonElement2.PosY);
|
|
1131
1241
|
_plannerElement.WorldPosCenter = new index.Vector3(this.plannerBoundingBox.WorldPos.x + centerWorldPos.x, this.plannerBoundingBox.WorldPos.y + centerWorldPos.y, this.plannerBoundingBox.WorldPos.z + centerWorldPos.z);
|
|
@@ -1135,70 +1245,75 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1135
1245
|
if (_jsonElement2.PosNum.toString().indexOf('.') > 0) {
|
|
1136
1246
|
parentPosNr = _jsonElement2.PosNum.toString().split('.')[0];
|
|
1137
1247
|
accPosNr = _jsonElement2.PosNum.toString().split('.')[1];
|
|
1138
|
-
_plannerElement.PosNr = parentPosNr;
|
|
1139
|
-
_plannerElement.AccessoirePosNr = accPosNr;
|
|
1248
|
+
_plannerElement.PosNr = Number(parentPosNr);
|
|
1249
|
+
_plannerElement.AccessoirePosNr = Number(accPosNr);
|
|
1140
1250
|
}
|
|
1141
1251
|
} else {
|
|
1142
1252
|
_elementsSortedbyPosNr[_jsonElement2.PosNum - 1] = _jsonElement2;
|
|
1143
1253
|
_plannerElement.PosNr = _jsonElement2.PosNum;
|
|
1144
1254
|
}
|
|
1145
|
-
_context5.next =
|
|
1255
|
+
_context5.next = 102;
|
|
1146
1256
|
break;
|
|
1147
|
-
case
|
|
1148
|
-
_context5.prev =
|
|
1149
|
-
_context5.t2 = _context5["catch"](
|
|
1257
|
+
case 99:
|
|
1258
|
+
_context5.prev = 99;
|
|
1259
|
+
_context5.t2 = _context5["catch"](72);
|
|
1150
1260
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner - Plan Data old Planner', {
|
|
1151
1261
|
cause: _context5.t2,
|
|
1152
1262
|
code: 'WC_0012'
|
|
1153
1263
|
}));
|
|
1154
|
-
case
|
|
1264
|
+
case 102:
|
|
1155
1265
|
i++;
|
|
1156
|
-
_context5.next =
|
|
1266
|
+
_context5.next = 71;
|
|
1157
1267
|
break;
|
|
1158
|
-
case 103:
|
|
1159
|
-
_elementsSortedbyPosNr = _elementsSortedbyPosNr.concat(_accElements);
|
|
1160
|
-
//Dann werden die DockingPoints durchgegangen und die jeweils richtigen müssen gesucht werden.
|
|
1161
|
-
i = 0;
|
|
1162
1268
|
case 105:
|
|
1163
|
-
|
|
1164
|
-
|
|
1269
|
+
elementsForDockingV1 = [].concat(_toConsumableArray__default["default"](_elementsSortedbyPosNr.filter(function (e) {
|
|
1270
|
+
return e != null;
|
|
1271
|
+
})), _accElements);
|
|
1272
|
+
i = 0;
|
|
1273
|
+
case 107:
|
|
1274
|
+
if (!(i < elementsForDockingV1.length)) {
|
|
1275
|
+
_context5.next = 116;
|
|
1165
1276
|
break;
|
|
1166
1277
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1278
|
+
_row = elementsForDockingV1[i];
|
|
1279
|
+
if (!(_row.DP == null || _row.DP.length == 0)) {
|
|
1280
|
+
_context5.next = 111;
|
|
1169
1281
|
break;
|
|
1170
1282
|
}
|
|
1171
|
-
return _context5.abrupt("continue",
|
|
1172
|
-
case
|
|
1173
|
-
_DPsInfo =
|
|
1283
|
+
return _context5.abrupt("continue", 113);
|
|
1284
|
+
case 111:
|
|
1285
|
+
_DPsInfo = _row.DP;
|
|
1174
1286
|
for (j = 0; j < _DPsInfo.length; j++) {
|
|
1175
1287
|
_dpInfo = _DPsInfo[j];
|
|
1176
1288
|
if (_dpInfo.DP && _dpInfo.DP != '' && _dpInfo.onID && _dpInfo.onID != '') {
|
|
1177
|
-
targetElementId = parseInt(_dpInfo.onID);
|
|
1289
|
+
targetElementId = parseInt(String(_dpInfo.onID));
|
|
1178
1290
|
dpType = _dpInfo.DP;
|
|
1179
|
-
curElement = this.plannerElements.get(
|
|
1291
|
+
curElement = _row.elementId != null ? this.plannerElements.get(_row.elementId) : undefined;
|
|
1180
1292
|
_targetElement = (_this$plannerElements = this.plannerElements.get(targetElementId)) !== null && _this$plannerElements !== void 0 ? _this$plannerElements : this.getPlannerElementByIndex(targetElementId - 1);
|
|
1181
1293
|
if (curElement && _targetElement) {
|
|
1182
1294
|
PlannerHandler2D.dockingPointHandlerInst.initDockingPointRelationByArea(curElement, _targetElement, dpType);
|
|
1183
1295
|
} else {
|
|
1184
|
-
LOG.error(new DivaUtils.DivaError('Error initializing dockingPoints of element with elementID ' +
|
|
1296
|
+
LOG.error(new DivaUtils.DivaError('Error initializing dockingPoints of element with elementID ' + _row.elementId, {
|
|
1185
1297
|
code: 'WC_0012'
|
|
1186
1298
|
}));
|
|
1187
1299
|
}
|
|
1188
1300
|
}
|
|
1189
1301
|
}
|
|
1190
|
-
case
|
|
1302
|
+
case 113:
|
|
1191
1303
|
i++;
|
|
1192
|
-
_context5.next =
|
|
1304
|
+
_context5.next = 107;
|
|
1193
1305
|
break;
|
|
1194
|
-
case
|
|
1195
|
-
this.
|
|
1306
|
+
case 116:
|
|
1307
|
+
this.plannerElements.forEach(function (el) {
|
|
1308
|
+
if (!el.IsDockedAccessoire && (anchorElement == undefined || el.PosNr < anchorElement.PosNr)) anchorElement = el;
|
|
1309
|
+
});
|
|
1310
|
+
this.updateAllElementsWorldPos(undefined, anchorElement ? [anchorElement.ElementId] : undefined);
|
|
1196
1311
|
this.updatePlannerPosNr();
|
|
1197
|
-
case
|
|
1312
|
+
case 119:
|
|
1198
1313
|
case "end":
|
|
1199
1314
|
return _context5.stop();
|
|
1200
1315
|
}
|
|
1201
|
-
}, _callee5, this, [[
|
|
1316
|
+
}, _callee5, this, [[10, 31], [41, 54], [72, 99]]);
|
|
1202
1317
|
}));
|
|
1203
1318
|
function initPlanner(_x9) {
|
|
1204
1319
|
return _initPlanner.apply(this, arguments);
|
|
@@ -1307,27 +1422,61 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1307
1422
|
key: "copyPlannerElement",
|
|
1308
1423
|
value: (function () {
|
|
1309
1424
|
var _copyPlannerElement = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7(articleCopyRelation, copyInfo) {
|
|
1310
|
-
var
|
|
1425
|
+
var i, _copyInfo$copyIndex, rel, dirX, sourceElement, targetDP;
|
|
1311
1426
|
return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
|
|
1312
1427
|
while (1) switch (_context7.prev = _context7.next) {
|
|
1313
1428
|
case 0:
|
|
1314
|
-
articlesToLoad = [];
|
|
1315
|
-
articleCopyRelation.forEach(function (rel) {
|
|
1316
|
-
if (copyInfo == undefined) articlesToLoad.push(rel.value);
|
|
1317
|
-
});
|
|
1318
1429
|
i = 0;
|
|
1319
|
-
case
|
|
1320
|
-
if (!(i <
|
|
1321
|
-
_context7.next =
|
|
1430
|
+
case 1:
|
|
1431
|
+
if (!(i < articleCopyRelation.length)) {
|
|
1432
|
+
_context7.next = 24;
|
|
1433
|
+
break;
|
|
1434
|
+
}
|
|
1435
|
+
rel = articleCopyRelation[i];
|
|
1436
|
+
if (!(copyInfo == undefined)) {
|
|
1437
|
+
_context7.next = 7;
|
|
1322
1438
|
break;
|
|
1323
1439
|
}
|
|
1324
1440
|
_context7.next = 6;
|
|
1325
|
-
return this.addPlannerElement(
|
|
1441
|
+
return this.addPlannerElement(rel.value, {});
|
|
1326
1442
|
case 6:
|
|
1443
|
+
return _context7.abrupt("continue", 21);
|
|
1444
|
+
case 7:
|
|
1445
|
+
//Directional copy (copyIndex.x = -1 left / 1 right): dock the copy at the source element's free AVL/AVR
|
|
1446
|
+
dirX = (_copyInfo$copyIndex = copyInfo.copyIndex) === null || _copyInfo$copyIndex === void 0 ? void 0 : _copyInfo$copyIndex.x;
|
|
1447
|
+
if (!(dirX != -1 && dirX != 1)) {
|
|
1448
|
+
_context7.next = 12;
|
|
1449
|
+
break;
|
|
1450
|
+
}
|
|
1451
|
+
_context7.next = 11;
|
|
1452
|
+
return this.addPlannerElement(rel.value, {});
|
|
1453
|
+
case 11:
|
|
1454
|
+
return _context7.abrupt("continue", 21);
|
|
1455
|
+
case 12:
|
|
1456
|
+
sourceElement = this.plannerElements.get(rel.key);
|
|
1457
|
+
targetDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getFreeDockingPointsByType(dirX == -1 ? 'AVL' : 'AVR').find(function (dp) {
|
|
1458
|
+
return !dp.IsDisabled;
|
|
1459
|
+
});
|
|
1460
|
+
if (!(sourceElement && targetDP)) {
|
|
1461
|
+
_context7.next = 19;
|
|
1462
|
+
break;
|
|
1463
|
+
}
|
|
1464
|
+
_context7.next = 17;
|
|
1465
|
+
return this.addPlannerElement(rel.value, {
|
|
1466
|
+
targetElemIdToDock: sourceElement.ElementId,
|
|
1467
|
+
targetDockingPointId: targetDP.DpId
|
|
1468
|
+
});
|
|
1469
|
+
case 17:
|
|
1470
|
+
_context7.next = 21;
|
|
1471
|
+
break;
|
|
1472
|
+
case 19:
|
|
1473
|
+
_context7.next = 21;
|
|
1474
|
+
return this.addPlannerElement(rel.value, {});
|
|
1475
|
+
case 21:
|
|
1327
1476
|
i++;
|
|
1328
|
-
_context7.next =
|
|
1477
|
+
_context7.next = 1;
|
|
1329
1478
|
break;
|
|
1330
|
-
case
|
|
1479
|
+
case 24:
|
|
1331
1480
|
case "end":
|
|
1332
1481
|
return _context7.stop();
|
|
1333
1482
|
}
|
|
@@ -1352,7 +1501,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1352
1501
|
}, {
|
|
1353
1502
|
key: "getPlannerElementsInfluencedByCopy",
|
|
1354
1503
|
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
1355
|
-
|
|
1504
|
+
//STD = directional AVL/AVR copy of a single element; only the element itself is influenced
|
|
1505
|
+
if (!copyInfo || copyInfo.copyType != 'BoxPlanner_backside' && copyInfo.copyType != 'STD') throw new Error('copyType needs to be BoxPlanner_backside or STD here');
|
|
1356
1506
|
if (this.plannerElements.has(elementId)) return [elementId];
|
|
1357
1507
|
return [];
|
|
1358
1508
|
}
|
|
@@ -1554,12 +1704,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1554
1704
|
*/
|
|
1555
1705
|
}, {
|
|
1556
1706
|
key: "updatePlannerTrans",
|
|
1557
|
-
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
|
|
1707
|
+
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
|
|
1558
1708
|
var _this3 = this;
|
|
1559
1709
|
var updateConfig = false;
|
|
1560
1710
|
if (this.plannerElements.has(elementId)) {
|
|
1561
1711
|
var plannerElement = this.plannerElements.get(elementId);
|
|
1562
|
-
plannerElement === null || plannerElement === void 0 || plannerElement.updateDeltaTrans(deltaMove, deltaAngleDeg, rotCorrection, transState == 'END');
|
|
1712
|
+
plannerElement === null || plannerElement === void 0 || plannerElement.updateDeltaTrans(deltaMove, deltaAngleDeg, rotCorrection, transState == 'END', turningPoint);
|
|
1563
1713
|
if (transState == 'START') {
|
|
1564
1714
|
if (plannerElement) {
|
|
1565
1715
|
var dpsToUndock = ['AVR', 'AVL'];
|