@crystaldesign/web-planner-logic 26.11.0-beta.3 → 26.11.0-beta.30
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-c57ed0e3.js} +134 -47
- package/build/cjs/{DivaStandardPlanner-d44ae0e7.js → DivaStandardPlanner-6e46651d.js} +586 -332
- package/build/cjs/{DoorPlanner-1719cbe1.js → DoorPlanner-f86e825b.js} +3 -1
- package/build/cjs/{Host3DSignalR-a456221e.js → Host3DSignalR-9ae7bc58.js} +41 -24
- package/build/cjs/{LiviqueWWSHandler-f2afb4eb.js → LiviqueWWSHandler-a4f6eaa0.js} +3 -1
- package/build/cjs/{PfisterWWSHandler-8f522ab6.js → PfisterWWSHandler-b85b5d9c.js} +3 -1
- package/build/cjs/PlannerHandler2D-bec57353.js +544 -0
- package/build/cjs/{SeriousBasketHandler-b39f0556.js → SeriousBasketHandler-0fd56d93.js} +3 -1
- package/build/cjs/{ShelfPlanner-1dde2d7c.js → ShelfPlanner-0efb6dda.js} +262 -148
- package/build/cjs/{StandardWWSHandler-62ec343d.js → StandardWWSHandler-e535e9ab.js} +3 -1
- package/build/cjs/{index-d63749e4.js → index-21cc42e9.js} +10715 -9129
- package/build/cjs/index.js +13 -2
- package/build/esm/{DivaBoxPlanner-a347ef5d.js → DivaBoxPlanner-9a2e33e5.js} +134 -47
- package/build/esm/{DivaStandardPlanner-a8f0d722.js → DivaStandardPlanner-d9cad991.js} +585 -332
- package/build/esm/{DoorPlanner-60c065e5.js → DoorPlanner-d430b797.js} +3 -1
- package/build/esm/{Host3DSignalR-0c7e84a7.js → Host3DSignalR-f16742ea.js} +41 -24
- package/build/esm/{LiviqueWWSHandler-3df03404.js → LiviqueWWSHandler-4ebe33ed.js} +3 -1
- package/build/esm/{PfisterWWSHandler-28b609ef.js → PfisterWWSHandler-04416bc8.js} +3 -1
- package/build/esm/PlannerHandler2D-2fc26200.js +526 -0
- package/build/esm/{SeriousBasketHandler-276a8035.js → SeriousBasketHandler-c802bd9b.js} +3 -1
- package/build/esm/{ShelfPlanner-7380b831.js → ShelfPlanner-557172d3.js} +262 -148
- package/build/esm/{StandardWWSHandler-1d13f6a3.js → StandardWWSHandler-bdd24590.js} +3 -1
- package/build/esm/{index-358c0a3c.js → index-024475bf.js} +10711 -9129
- 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/ArticleOptionStateType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.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 +6 -1
- 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/IDM/Decision.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/IDM/Decision.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/ArticleOptionState.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.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/DivaArticleHandler.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/DivaArticleEngine.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +39 -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 +31 -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 +12 -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/partlistPosCountDecision.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/partlistPosCountDecision.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,26 +1,47 @@
|
|
|
1
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
1
2
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
2
3
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
3
4
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
5
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
6
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { V as Vector3,
|
|
7
|
+
import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-024475bf.js';
|
|
7
8
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
8
|
-
import {
|
|
9
|
+
import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
|
|
10
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-2fc26200.js';
|
|
9
11
|
import '@babel/runtime/helpers/slicedToArray';
|
|
10
12
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
11
|
-
import '@babel/runtime/helpers/toConsumableArray';
|
|
12
13
|
import 'axios';
|
|
13
14
|
import '@crystaldesign/basket-model';
|
|
14
15
|
import '@babel/runtime/helpers/typeof';
|
|
16
|
+
import 'fast-xml-parser';
|
|
15
17
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
16
18
|
import '@babel/runtime/helpers/getPrototypeOf';
|
|
17
19
|
import '@babel/runtime/helpers/inherits';
|
|
18
20
|
import '@babel/runtime/helpers/wrapNativeSuper';
|
|
19
21
|
import '@crystaldesign/basket-handler';
|
|
20
22
|
import 'socket.io-client';
|
|
21
|
-
import '
|
|
22
|
-
import 'w3c-xmlserializer';
|
|
23
|
+
import '@babel/runtime/helpers/get';
|
|
23
24
|
|
|
25
|
+
/** Configurator 2.0 set planner payload (`SetPlanData` after base64 decode). */
|
|
26
|
+
|
|
27
|
+
/** Legacy planner 1.x payload (no `v: 2` wrapper). */
|
|
28
|
+
|
|
29
|
+
function parseSetPlanData(setPlanData) {
|
|
30
|
+
var planDataString = DivaUtils.decodeBase64(setPlanData);
|
|
31
|
+
return JSON.parse(planDataString);
|
|
32
|
+
}
|
|
33
|
+
function isSavePlannerV2(planData) {
|
|
34
|
+
return planData.v === 2;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/** Article codex from a V2 or legacy element record. */
|
|
38
|
+
function saveElementArticleCodex(element) {
|
|
39
|
+
return element.articleCodex || element.Codex;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
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; } } }; }
|
|
43
|
+
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; } }
|
|
44
|
+
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; }
|
|
24
45
|
var LOG = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
|
|
25
46
|
var ACC_DOCK_TYPES = ['AVO', 'AVU', 'AVC', 'AVS', 'AVN'];
|
|
26
47
|
var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
@@ -50,7 +71,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
50
71
|
_defineProperty(this, "nextElementId", 1);
|
|
51
72
|
_defineProperty(this, "collisionHandler", void 0);
|
|
52
73
|
_defineProperty(this, "dockToAVUorAVOororAVNorAVSorAVC", function (plannerElement, targetElements) {
|
|
53
|
-
|
|
74
|
+
// Capability comes from the SVG-parsed docking points, not the catalog metadata counts
|
|
75
|
+
// (countAV*): the parsed SVG is the same source the targeted dock (tryDockElementToDP) uses, so
|
|
76
|
+
// auto-dock stays consistent with it even when the catalog's SVG detail info misses the counts.
|
|
77
|
+
var hasFreeDP = function hasFreeDP(type) {
|
|
78
|
+
return plannerElement.getFreeDockingPointsByType(type).length > 0;
|
|
79
|
+
};
|
|
80
|
+
if (hasFreeDP('AVU')) {
|
|
54
81
|
//Try to dock Element to free AVR
|
|
55
82
|
var successDP = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVU', targetElements);
|
|
56
83
|
if (successDP) {
|
|
@@ -66,28 +93,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
66
93
|
if (_successDP) return true;
|
|
67
94
|
}
|
|
68
95
|
}
|
|
69
|
-
if (
|
|
96
|
+
if (hasFreeDP('AVO')) {
|
|
70
97
|
var _successDP2 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVO', targetElements);
|
|
71
98
|
if (_successDP2) {
|
|
72
99
|
_this.updateWorldPos(plannerElement, _successDP2);
|
|
73
100
|
return true;
|
|
74
101
|
}
|
|
75
102
|
}
|
|
76
|
-
if (
|
|
103
|
+
if (hasFreeDP('AVN')) {
|
|
77
104
|
var _successDP3 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVN', targetElements);
|
|
78
105
|
if (_successDP3) {
|
|
79
106
|
_this.updateWorldPos(plannerElement, _successDP3);
|
|
80
107
|
return true;
|
|
81
108
|
}
|
|
82
109
|
}
|
|
83
|
-
if (
|
|
110
|
+
if (hasFreeDP('AVS')) {
|
|
84
111
|
var _successDP4 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVS', targetElements);
|
|
85
112
|
if (_successDP4) {
|
|
86
113
|
_this.updateWorldPos(plannerElement, _successDP4);
|
|
87
114
|
return true;
|
|
88
115
|
}
|
|
89
116
|
}
|
|
90
|
-
if (
|
|
117
|
+
if (hasFreeDP('AVC')) {
|
|
91
118
|
var _successDP5 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVC', targetElements);
|
|
92
119
|
if (_successDP5) {
|
|
93
120
|
_this.updateWorldPos(plannerElement, _successDP5);
|
|
@@ -220,30 +247,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
220
247
|
var refElement = this.plannerElements.get(dockingPoint.OnElementId);
|
|
221
248
|
var refDockingPoint = refElement.getDockingPointById(dockingPoint.OnDP.DpId);
|
|
222
249
|
if (refDockingPoint == undefined) return updateConfig;
|
|
223
|
-
|
|
224
|
-
var worldPosNewElementIgnoreOLF = new Vector3(0, 0, 0);
|
|
225
|
-
|
|
226
|
-
// DP LocalWorldPos is OLF-corner-relative when HasOLFPolygon (from SVG). Convert to OLT-corner-relative for WorldPosCornerIgnoreOLF.
|
|
227
|
-
var refDPLocalOlt = refElement.HasOLFPolygon ? new Vector2(refDockingPoint.LocalWorldPos.x - refElement.getOltLeft(), refDockingPoint.LocalWorldPos.z - refElement.getOltTop()) : new Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
228
|
-
var newDPLocalOlt = plannerElement.HasOLFPolygon ? new Vector2(dockingPoint.LocalWorldPos.x - plannerElement.getOltLeft(), dockingPoint.LocalWorldPos.z - plannerElement.getOltTop()) : new Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z);
|
|
229
|
-
var rotatedLocalRefDP = new Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
230
|
-
rotatedLocalRefDP = Vector2.rotateOrigin(rotatedLocalRefDP, refElement.RotDeg);
|
|
231
|
-
var angleToRot = refElement.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
232
|
-
plannerElement.RotDeg = angleToRot;
|
|
233
|
-
var refWorldPosCor = refElement.WorldPosCorner;
|
|
234
|
-
// For ref without OLF: use same corner for both alignments (no OLF/OLT split; WorldPosCornerIgnoreOLF getter also does this).
|
|
235
|
-
var refWorldPosCorIgnoreOLF = refElement.HasOLFPolygon ? refElement.WorldPosCornerIgnoreOLF : refWorldPosCor;
|
|
236
|
-
var rotatedLocalDP2D = Vector2.rotateOrigin(new Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z), angleToRot);
|
|
237
|
-
worldPosNewElement.x = refWorldPosCor.x + rotatedLocalRefDP.x - rotatedLocalDP2D.x;
|
|
238
|
-
worldPosNewElement.y = refWorldPosCor.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
239
|
-
worldPosNewElement.z = refWorldPosCor.z + rotatedLocalRefDP.y - rotatedLocalDP2D.y;
|
|
240
|
-
var rotatedRefDPOlt = Vector2.rotateOrigin(refDPLocalOlt, refElement.RotDeg);
|
|
241
|
-
var rotatedNewDPOlt = Vector2.rotateOrigin(newDPLocalOlt, angleToRot);
|
|
242
|
-
worldPosNewElementIgnoreOLF.x = refWorldPosCorIgnoreOLF.x + rotatedRefDPOlt.x - rotatedNewDPOlt.x;
|
|
243
|
-
worldPosNewElementIgnoreOLF.z = refWorldPosCorIgnoreOLF.z + rotatedRefDPOlt.y - rotatedNewDPOlt.y;
|
|
244
|
-
worldPosNewElementIgnoreOLF.y = refWorldPosCorIgnoreOLF.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
245
|
-
plannerElement.WorldPosCorner = worldPosNewElement;
|
|
246
|
-
plannerElement.WorldPosCornerIgnoreOLF = worldPosNewElementIgnoreOLF;
|
|
250
|
+
this.applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint);
|
|
247
251
|
updateConfig = this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
248
252
|
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
249
253
|
plannerElement.updatePlannerData(data);
|
|
@@ -252,15 +256,81 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
252
256
|
return updateConfig;
|
|
253
257
|
}
|
|
254
258
|
|
|
259
|
+
/**
|
|
260
|
+
* Positions `plannerElement` so its `dockingPoint` aligns to `refElement`'s `refDockingPoint`
|
|
261
|
+
* (rotation + OLF/OLT-aware translation). Mutates only the element's world position and rotation —
|
|
262
|
+
* NOT the docking relations — so it is reusable for a non-committing snap preview
|
|
263
|
+
* ({@link getDockSnapPreview}) as well as the real dock ({@link updateWorldPos}).
|
|
264
|
+
*/
|
|
265
|
+
}, {
|
|
266
|
+
key: "applyDockTransform",
|
|
267
|
+
value: function applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint) {
|
|
268
|
+
var dockedTransform = computeDockedTransform(refElement, refDockingPoint, plannerElement, dockingPoint);
|
|
269
|
+
plannerElement.RotDeg = dockedTransform.rotDeg;
|
|
270
|
+
plannerElement.WorldPosCorner = new Vector3(dockedTransform.worldPosCorner.x, dockedTransform.worldPosCorner.y, dockedTransform.worldPosCorner.z);
|
|
271
|
+
plannerElement.WorldPosCornerIgnoreOLF = new Vector3(dockedTransform.worldPosCornerIgnoreOLF.x, dockedTransform.worldPosCornerIgnoreOLF.y, dockedTransform.worldPosCornerIgnoreOLF.z);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
/**
|
|
275
|
+
* Non-committing preview of where `elementId` would auto-snap if released now: runs the same
|
|
276
|
+
* dockable-pair search as END, and for the closest pair computes the docked transform via
|
|
277
|
+
* {@link applyDockTransform} (apply → read → restore, no docking relations touched). Returns the
|
|
278
|
+
* delta from the element's current transform (cm / deg), or null if nothing is in snapping range.
|
|
279
|
+
* `excludeElementIds` skips the element's own move-group so it doesn't "snap" to siblings that
|
|
280
|
+
* are translating with it.
|
|
281
|
+
*/
|
|
282
|
+
}, {
|
|
283
|
+
key: "getDockSnapPreview",
|
|
284
|
+
value: function getDockSnapPreview(elementId, autoDockingDistance) {
|
|
285
|
+
var excludeElementIds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
286
|
+
var element = this.plannerElements.get(elementId);
|
|
287
|
+
if (!element) return null;
|
|
288
|
+
var targets = this.getAllPlannerElements().filter(function (e) {
|
|
289
|
+
return e.getElementId() !== elementId && !excludeElementIds.includes(e.getElementId());
|
|
290
|
+
});
|
|
291
|
+
var pairs = dockingPointHandlerInst.searchDockableElementsInArea(element, targets, autoDockingDistance);
|
|
292
|
+
if (!pairs || pairs.size === 0) return null;
|
|
293
|
+
var best;
|
|
294
|
+
pairs.forEach(function (p) {
|
|
295
|
+
if (best == undefined || p.distance < best.distance) best = p;
|
|
296
|
+
});
|
|
297
|
+
if (best == undefined) return null;
|
|
298
|
+
var targetElement = this.plannerElements.get(best.targetDP.ElementId);
|
|
299
|
+
if (!targetElement) return null;
|
|
300
|
+
var savedRot = element.RotDeg;
|
|
301
|
+
var savedCenter = element.WorldPosCenter;
|
|
302
|
+
var savedX = savedCenter.x,
|
|
303
|
+
savedY = savedCenter.y,
|
|
304
|
+
savedZ = savedCenter.z;
|
|
305
|
+
this.applyDockTransform(element, targetElement, best.sourceDP, best.targetDP);
|
|
306
|
+
var snapped = element.WorldPosCenter;
|
|
307
|
+
var result = {
|
|
308
|
+
dx: snapped.x - savedX,
|
|
309
|
+
dz: snapped.z - savedZ,
|
|
310
|
+
dRotDeg: element.RotDeg - savedRot
|
|
311
|
+
};
|
|
312
|
+
// Restore — the preview must leave the planner state untouched.
|
|
313
|
+
element.RotDeg = savedRot;
|
|
314
|
+
element.WorldPosCenter = new Vector3(savedX, savedY, savedZ);
|
|
315
|
+
return result;
|
|
316
|
+
}
|
|
317
|
+
|
|
255
318
|
/**
|
|
256
319
|
* This function updates the position information of all elements. It is called after updating the SVG of 1 element.
|
|
257
320
|
* The position is updated based on the posNr.
|
|
258
321
|
* At the end - the collision is calculated
|
|
322
|
+
* @param changedElementIds elements whose SVG was reloaded this cycle (their docking geometry may
|
|
323
|
+
* have moved, e.g. an AVC shifted by stretch areas). Elements docked - directly or transitively -
|
|
324
|
+
* to one of them are re-anchored to the moved partner after the PosNr walk, which on its own only
|
|
325
|
+
* propagates forward in PosNr order and prefers AVL over AVC anchors.
|
|
259
326
|
*/
|
|
260
327
|
}, {
|
|
261
328
|
key: "updateAllElementsWorldPos",
|
|
262
|
-
value: function updateAllElementsWorldPos(checkCollisionSingleElementId) {
|
|
329
|
+
value: function updateAllElementsWorldPos(checkCollisionSingleElementId, changedElementIds) {
|
|
263
330
|
if (this.doDisablePlanner2D) return false;
|
|
331
|
+
var getDockedDPsInPriorityOrder = function getDockedDPsInPriorityOrder(element) {
|
|
332
|
+
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'));
|
|
333
|
+
};
|
|
264
334
|
var updateConfig = false;
|
|
265
335
|
var sortedPlannerElementsbyPosNr = [];
|
|
266
336
|
var accElems = [];
|
|
@@ -281,7 +351,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
281
351
|
var element = sortedPlannerElementsbyPosNr[i];
|
|
282
352
|
alreadyCorrectedId.push(element.ElementId);
|
|
283
353
|
if (i > firstI) {
|
|
284
|
-
var dockingPoints =
|
|
354
|
+
var dockingPoints = getDockedDPsInPriorityOrder(element);
|
|
285
355
|
for (var j = 0; j < dockingPoints.length; j++) {
|
|
286
356
|
//Nur wenn er auf ein element schaut das schon gedockt ist korrigieren
|
|
287
357
|
if (alreadyCorrectedId.indexOf(dockingPoints[j].OnElementId) >= 0) {
|
|
@@ -292,6 +362,38 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
292
362
|
}
|
|
293
363
|
}
|
|
294
364
|
}
|
|
365
|
+
|
|
366
|
+
// The walk above anchors each element to its FIRST docked partner in AVL-first priority and
|
|
367
|
+
// only propagates forward in PosNr order - both hide a geometry change in a reloaded partner
|
|
368
|
+
// (e.g. an AVC line shifted by stretch areas). Sweep outward from the reloaded elements:
|
|
369
|
+
// re-anchor every element docked - directly or transitively - to a moved partner, until stable.
|
|
370
|
+
if (changedElementIds && changedElementIds.length > 0) {
|
|
371
|
+
var moved = new Set(changedElementIds);
|
|
372
|
+
var progressed = true;
|
|
373
|
+
while (progressed) {
|
|
374
|
+
progressed = false;
|
|
375
|
+
var _iterator = _createForOfIteratorHelper(sortedPlannerElementsbyPosNr),
|
|
376
|
+
_step;
|
|
377
|
+
try {
|
|
378
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
379
|
+
var _element = _step.value;
|
|
380
|
+
if (!_element || moved.has(_element.ElementId)) continue;
|
|
381
|
+
var dpToMovedPartner = getDockedDPsInPriorityOrder(_element).find(function (dp) {
|
|
382
|
+
return moved.has(dp.OnElementId);
|
|
383
|
+
});
|
|
384
|
+
if (dpToMovedPartner) {
|
|
385
|
+
updateConfig = this.updateWorldPos(_element, dpToMovedPartner) || updateConfig;
|
|
386
|
+
moved.add(_element.ElementId);
|
|
387
|
+
progressed = true;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
} catch (err) {
|
|
391
|
+
_iterator.e(err);
|
|
392
|
+
} finally {
|
|
393
|
+
_iterator.f();
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
295
397
|
this.checkCollision(false, checkCollisionSingleElementId);
|
|
296
398
|
return updateConfig;
|
|
297
399
|
}
|
|
@@ -334,39 +436,39 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
334
436
|
plannerElement.WorldPosCenter = setToTransform.transform.worldPosCenter;
|
|
335
437
|
plannerElement.RotDeg = setToTransform.transform.rotDeg;
|
|
336
438
|
this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
|
|
337
|
-
_context.next =
|
|
439
|
+
_context.next = 48;
|
|
338
440
|
break;
|
|
339
441
|
case 8:
|
|
340
442
|
//Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
|
|
341
443
|
dockingFound = false;
|
|
342
444
|
if (!dockingPointInfos) {
|
|
343
|
-
_context.next =
|
|
445
|
+
_context.next = 47;
|
|
344
446
|
break;
|
|
345
447
|
}
|
|
346
448
|
i = 0;
|
|
347
449
|
case 11:
|
|
348
450
|
if (!(i < dockingPointInfos.length)) {
|
|
349
|
-
_context.next =
|
|
451
|
+
_context.next = 47;
|
|
350
452
|
break;
|
|
351
453
|
}
|
|
352
454
|
targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
|
|
353
455
|
targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
|
|
354
456
|
if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
|
|
355
|
-
_context.next =
|
|
457
|
+
_context.next = 44;
|
|
356
458
|
break;
|
|
357
459
|
}
|
|
358
460
|
if (!(targetDockingPointId && targetDockingPointId != '')) {
|
|
359
|
-
_context.next =
|
|
461
|
+
_context.next = 32;
|
|
360
462
|
break;
|
|
361
463
|
}
|
|
362
464
|
targetElem = this.plannerElements.get(targetElemIdToDock);
|
|
363
465
|
if (!targetElem) {
|
|
364
|
-
_context.next =
|
|
466
|
+
_context.next = 30;
|
|
365
467
|
break;
|
|
366
468
|
}
|
|
367
469
|
targetDP = targetElem.getDockingPointById(targetDockingPointId);
|
|
368
470
|
if (!targetDP) {
|
|
369
|
-
_context.next =
|
|
471
|
+
_context.next = 30;
|
|
370
472
|
break;
|
|
371
473
|
}
|
|
372
474
|
successDP = dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
|
|
@@ -376,17 +478,21 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
376
478
|
}
|
|
377
479
|
this.updateWorldPos(plannerElement, successDP);
|
|
378
480
|
dockingFound = true;
|
|
379
|
-
_context.next =
|
|
481
|
+
_context.next = 30;
|
|
380
482
|
break;
|
|
381
483
|
case 26:
|
|
382
484
|
_context.next = 28;
|
|
383
485
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
384
486
|
case 28:
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
487
|
+
if (!_context.sent) {
|
|
488
|
+
_context.next = 30;
|
|
489
|
+
break;
|
|
490
|
+
}
|
|
491
|
+
dockingFound = true;
|
|
492
|
+
case 30:
|
|
493
|
+
_context.next = 44;
|
|
388
494
|
break;
|
|
389
|
-
case
|
|
495
|
+
case 32:
|
|
390
496
|
success = false;
|
|
391
497
|
if (plannerElement.HasAVL || plannerElement.HasAVR) {
|
|
392
498
|
success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
@@ -395,28 +501,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
395
501
|
success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
396
502
|
}
|
|
397
503
|
if (success) {
|
|
398
|
-
_context.next =
|
|
504
|
+
_context.next = 43;
|
|
399
505
|
break;
|
|
400
506
|
}
|
|
401
|
-
_context.next =
|
|
507
|
+
_context.next = 38;
|
|
402
508
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
403
|
-
case
|
|
509
|
+
case 38:
|
|
404
510
|
success = _context.sent;
|
|
405
511
|
if (success) {
|
|
406
|
-
_context.next =
|
|
512
|
+
_context.next = 43;
|
|
407
513
|
break;
|
|
408
514
|
}
|
|
409
|
-
_context.next =
|
|
515
|
+
_context.next = 42;
|
|
410
516
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
|
|
411
|
-
case 41:
|
|
412
|
-
return _context.abrupt("return");
|
|
413
517
|
case 42:
|
|
414
|
-
|
|
518
|
+
return _context.abrupt("return");
|
|
415
519
|
case 43:
|
|
520
|
+
if (success) dockingFound = true;
|
|
521
|
+
case 44:
|
|
416
522
|
i++;
|
|
417
523
|
_context.next = 11;
|
|
418
524
|
break;
|
|
419
|
-
case
|
|
525
|
+
case 47:
|
|
420
526
|
if (!dockingFound) {
|
|
421
527
|
allPlannerElements = this.getAllPlannerElements();
|
|
422
528
|
_success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
|
|
@@ -437,13 +543,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
437
543
|
}
|
|
438
544
|
}
|
|
439
545
|
}
|
|
440
|
-
case
|
|
546
|
+
case 48:
|
|
441
547
|
this.updatePlannerPosNr();
|
|
442
548
|
this.updateAllElementsWorldPos();
|
|
443
549
|
this.updatePlannerPosNr();
|
|
444
550
|
this.checkCollision(false, plannerElement.getElementId());
|
|
445
551
|
this.updatePlannerBoundingBox();
|
|
446
|
-
case
|
|
552
|
+
case 53:
|
|
447
553
|
case "end":
|
|
448
554
|
return _context.stop();
|
|
449
555
|
}
|
|
@@ -458,7 +564,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
458
564
|
key: "tryToDockWithDifferentSVGWithFormula",
|
|
459
565
|
value: function () {
|
|
460
566
|
var _tryToDockWithDifferentSVGWithFormula = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(plannerElement, targetElemIdToDock) {
|
|
461
|
-
var success, article, origVariantValues, svgsWithFormula, i,
|
|
567
|
+
var success, article, origVariantValues, svgsWithFormula, i, vv, targetFilterCandidates, _i2, v, _i3, elements, variantValues, key;
|
|
462
568
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
463
569
|
while (1) switch (_context2.prev = _context2.next) {
|
|
464
570
|
case 0:
|
|
@@ -468,92 +574,107 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
468
574
|
origVariantValues = article === null || article === void 0 ? void 0 : article.VariantValues;
|
|
469
575
|
svgsWithFormula = plannerElement.getSVGsWithFormula();
|
|
470
576
|
if (!(plannerElement.FilterAVL.length || plannerElement.FilterAVR.length)) {
|
|
471
|
-
_context2.next =
|
|
577
|
+
_context2.next = 52;
|
|
472
578
|
break;
|
|
473
579
|
}
|
|
474
580
|
if (!(svgsWithFormula !== null && svgsWithFormula !== void 0 && svgsWithFormula.length)) {
|
|
475
|
-
_context2.next =
|
|
581
|
+
_context2.next = 18;
|
|
476
582
|
break;
|
|
477
583
|
}
|
|
478
584
|
i = 0;
|
|
479
585
|
case 7:
|
|
480
586
|
if (!(i < svgsWithFormula.length)) {
|
|
481
|
-
_context2.next =
|
|
587
|
+
_context2.next = 18;
|
|
482
588
|
break;
|
|
483
589
|
}
|
|
484
|
-
elements = new Map();
|
|
485
|
-
variantValues = new Map();
|
|
486
590
|
vv = DivaUtils.getVariantValuesFromRule(svgsWithFormula[i].JsFormula, {});
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
_context2.next = 15;
|
|
492
|
-
return this.set.updateCfgValuesByPlanner(elements, true);
|
|
493
|
-
case 15:
|
|
494
|
-
success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
591
|
+
_context2.next = 11;
|
|
592
|
+
return this.applyVariantValuesAndTryDock(plannerElement, targetElemIdToDock, vv);
|
|
593
|
+
case 11:
|
|
594
|
+
success = _context2.sent;
|
|
495
595
|
if (!success) {
|
|
496
|
-
_context2.next =
|
|
596
|
+
_context2.next = 15;
|
|
497
597
|
break;
|
|
498
598
|
}
|
|
499
599
|
//svg did match
|
|
500
600
|
LOG.debug('svgWithFormula nr: ' + i + ' did dock: ' + svgsWithFormula[i].SVG);
|
|
501
|
-
return _context2.abrupt("break",
|
|
502
|
-
case
|
|
601
|
+
return _context2.abrupt("break", 18);
|
|
602
|
+
case 15:
|
|
503
603
|
i++;
|
|
504
604
|
_context2.next = 7;
|
|
505
605
|
break;
|
|
506
|
-
case
|
|
606
|
+
case 18:
|
|
607
|
+
if (!(!success && article)) {
|
|
608
|
+
_context2.next = 31;
|
|
609
|
+
break;
|
|
610
|
+
}
|
|
611
|
+
targetFilterCandidates = this.getVariantValuesMatchingTargetFilters(article, this.plannerElements.get(targetElemIdToDock));
|
|
612
|
+
_i2 = 0;
|
|
613
|
+
case 21:
|
|
614
|
+
if (!(_i2 < targetFilterCandidates.length && _i2 < 20)) {
|
|
615
|
+
_context2.next = 31;
|
|
616
|
+
break;
|
|
617
|
+
}
|
|
618
|
+
_context2.next = 24;
|
|
619
|
+
return this.applyVariantValuesAndTryDock(plannerElement, targetElemIdToDock, targetFilterCandidates[_i2]);
|
|
620
|
+
case 24:
|
|
621
|
+
success = _context2.sent;
|
|
622
|
+
if (!success) {
|
|
623
|
+
_context2.next = 28;
|
|
624
|
+
break;
|
|
625
|
+
}
|
|
626
|
+
LOG.debug('following variantValues matching the target avl/avr filter did dock: ', targetFilterCandidates[_i2]);
|
|
627
|
+
return _context2.abrupt("break", 31);
|
|
628
|
+
case 28:
|
|
629
|
+
_i2++;
|
|
630
|
+
_context2.next = 21;
|
|
631
|
+
break;
|
|
632
|
+
case 31:
|
|
507
633
|
//other logic. look for decisions with featrue 90 or 89 and try change the options that influence 90 - 89
|
|
508
634
|
v = plannerElement.getVaraintValuesInfluencingAVLAVRFilter();
|
|
509
635
|
if (!(v !== null && v !== void 0 && v.length && !success)) {
|
|
510
|
-
_context2.next =
|
|
636
|
+
_context2.next = 44;
|
|
511
637
|
break;
|
|
512
638
|
}
|
|
513
|
-
|
|
514
|
-
case
|
|
515
|
-
if (!(
|
|
516
|
-
_context2.next =
|
|
639
|
+
_i3 = 0;
|
|
640
|
+
case 34:
|
|
641
|
+
if (!(_i3 < v.length && _i3 < 20)) {
|
|
642
|
+
_context2.next = 44;
|
|
517
643
|
break;
|
|
518
644
|
}
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
_variantValues.set(_key, _vv[_key]);
|
|
524
|
-
}
|
|
525
|
-
_elements.set(plannerElement.ElementId, _variantValues);
|
|
526
|
-
_context2.next = 33;
|
|
527
|
-
return this.set.updateCfgValuesByPlanner(_elements, true);
|
|
528
|
-
case 33:
|
|
529
|
-
success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
645
|
+
_context2.next = 37;
|
|
646
|
+
return this.applyVariantValuesAndTryDock(plannerElement, targetElemIdToDock, v[_i3]);
|
|
647
|
+
case 37:
|
|
648
|
+
success = _context2.sent;
|
|
530
649
|
if (!success) {
|
|
531
|
-
_context2.next =
|
|
650
|
+
_context2.next = 41;
|
|
532
651
|
break;
|
|
533
652
|
}
|
|
534
653
|
//variantValues did match
|
|
535
|
-
LOG.debug('following variantValues did dock: ',
|
|
536
|
-
return _context2.abrupt("break",
|
|
537
|
-
case
|
|
538
|
-
|
|
539
|
-
_context2.next =
|
|
654
|
+
LOG.debug('following variantValues did dock: ', v[_i3]);
|
|
655
|
+
return _context2.abrupt("break", 44);
|
|
656
|
+
case 41:
|
|
657
|
+
_i3++;
|
|
658
|
+
_context2.next = 34;
|
|
540
659
|
break;
|
|
541
|
-
case
|
|
660
|
+
case 44:
|
|
542
661
|
if (success) {
|
|
543
|
-
_context2.next =
|
|
662
|
+
_context2.next = 52;
|
|
544
663
|
break;
|
|
545
664
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
for (
|
|
549
|
-
|
|
665
|
+
elements = new Map();
|
|
666
|
+
variantValues = new Map();
|
|
667
|
+
for (key in origVariantValues) {
|
|
668
|
+
variantValues.set(key, origVariantValues[key]);
|
|
550
669
|
}
|
|
551
|
-
|
|
552
|
-
_context2.next =
|
|
553
|
-
return this.set.updateCfgValuesByPlanner(
|
|
554
|
-
case
|
|
670
|
+
elements.set(plannerElement.ElementId, variantValues);
|
|
671
|
+
_context2.next = 51;
|
|
672
|
+
return this.set.updateCfgValuesByPlanner(elements, true);
|
|
673
|
+
case 51:
|
|
674
|
+
if (article) this.commitPendingConnectorFilters(article);
|
|
675
|
+
case 52:
|
|
555
676
|
return _context2.abrupt("return", success);
|
|
556
|
-
case
|
|
677
|
+
case 53:
|
|
557
678
|
case "end":
|
|
558
679
|
return _context2.stop();
|
|
559
680
|
}
|
|
@@ -564,6 +685,91 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
564
685
|
}
|
|
565
686
|
return tryToDockWithDifferentSVGWithFormula;
|
|
566
687
|
}()
|
|
688
|
+
}, {
|
|
689
|
+
key: "applyVariantValuesAndTryDock",
|
|
690
|
+
value: function () {
|
|
691
|
+
var _applyVariantValuesAndTryDock = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3(plannerElement, targetElemIdToDock, variantValuesToApply) {
|
|
692
|
+
var elements, variantValues, key, article;
|
|
693
|
+
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
694
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
695
|
+
case 0:
|
|
696
|
+
elements = new Map();
|
|
697
|
+
variantValues = new Map();
|
|
698
|
+
for (key in variantValuesToApply) {
|
|
699
|
+
variantValues.set(key, variantValuesToApply[key]);
|
|
700
|
+
}
|
|
701
|
+
elements.set(plannerElement.ElementId, variantValues);
|
|
702
|
+
_context3.next = 6;
|
|
703
|
+
return this.set.updateCfgValuesByPlanner(elements, true);
|
|
704
|
+
case 6:
|
|
705
|
+
article = this.set.getArticleByElementId(plannerElement.ElementId);
|
|
706
|
+
if (article) this.commitPendingConnectorFilters(article);
|
|
707
|
+
return _context3.abrupt("return", this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]));
|
|
708
|
+
case 9:
|
|
709
|
+
case "end":
|
|
710
|
+
return _context3.stop();
|
|
711
|
+
}
|
|
712
|
+
}, _callee3, this);
|
|
713
|
+
}));
|
|
714
|
+
function applyVariantValuesAndTryDock(_x7, _x8, _x9) {
|
|
715
|
+
return _applyVariantValuesAndTryDock.apply(this, arguments);
|
|
716
|
+
}
|
|
717
|
+
return applyVariantValuesAndTryDock;
|
|
718
|
+
}() //the engines only commit option-derived connector filters when the svg swaps, but while probing dock configurations the filters must follow the configuration even without a swap
|
|
719
|
+
}, {
|
|
720
|
+
key: "commitPendingConnectorFilters",
|
|
721
|
+
value: function commitPendingConnectorFilters(article) {
|
|
722
|
+
if (article.newPossibleAVRFilters) {
|
|
723
|
+
article.avr = article.newPossibleAVRFilters;
|
|
724
|
+
article.newPossibleAVRFilters = undefined;
|
|
725
|
+
}
|
|
726
|
+
if (article.newPossibleAVLFilters) {
|
|
727
|
+
article.avl = article.newPossibleAVLFilters;
|
|
728
|
+
article.newPossibleAVLFilters = undefined;
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}, {
|
|
732
|
+
key: "getVariantValuesMatchingTargetFilters",
|
|
733
|
+
value: function getVariantValuesMatchingTargetFilters(article, targetElement) {
|
|
734
|
+
if (!targetElement) return [];
|
|
735
|
+
var optPrefix = !article.CatalogData.isIDMFormat ? 'OPT' : '';
|
|
736
|
+
var opvPrefix = !article.CatalogData.isIDMFormat ? 'OPV' : '';
|
|
737
|
+
var candidates = [];
|
|
738
|
+
var seen = new Set();
|
|
739
|
+
var collect = function collect(connectorFeature, targetFilters) {
|
|
740
|
+
var _iterator2 = _createForOfIteratorHelper(targetFilters),
|
|
741
|
+
_step2;
|
|
742
|
+
try {
|
|
743
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
744
|
+
var filter = _step2.value;
|
|
745
|
+
var _iterator3 = _createForOfIteratorHelper(article.getVariantValuesInfluencingOptions([optPrefix + connectorFeature], opvPrefix + filter)),
|
|
746
|
+
_step3;
|
|
747
|
+
try {
|
|
748
|
+
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
749
|
+
var vv = _step3.value;
|
|
750
|
+
var key = JSON.stringify(vv);
|
|
751
|
+
if (!seen.has(key)) {
|
|
752
|
+
seen.add(key);
|
|
753
|
+
candidates.push(vv);
|
|
754
|
+
}
|
|
755
|
+
}
|
|
756
|
+
} catch (err) {
|
|
757
|
+
_iterator3.e(err);
|
|
758
|
+
} finally {
|
|
759
|
+
_iterator3.f();
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
} catch (err) {
|
|
763
|
+
_iterator2.e(err);
|
|
764
|
+
} finally {
|
|
765
|
+
_iterator2.f();
|
|
766
|
+
}
|
|
767
|
+
};
|
|
768
|
+
//this article's AVL side (feature 89) docks against the target's AVR side and vice versa
|
|
769
|
+
collect('89', targetElement.FilterAVR);
|
|
770
|
+
collect('90', targetElement.FilterAVL);
|
|
771
|
+
return candidates;
|
|
772
|
+
}
|
|
567
773
|
}, {
|
|
568
774
|
key: "dockToAVLorAVR",
|
|
569
775
|
value: function dockToAVLorAVR(plannerElement, targetElements) {
|
|
@@ -741,31 +947,31 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
741
947
|
}, {
|
|
742
948
|
key: "updatePlanner",
|
|
743
949
|
value: function () {
|
|
744
|
-
var _updatePlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
950
|
+
var _updatePlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
745
951
|
var allPlannerElements, elemtsWhereSomethingChanged, i, elem, doReload, elementsToDelete, elementsLostDockingRelation;
|
|
746
|
-
return _regeneratorRuntime.wrap(function
|
|
747
|
-
while (1) switch (
|
|
952
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
953
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
748
954
|
case 0:
|
|
749
955
|
allPlannerElements = this.getAllPlannerElements();
|
|
750
956
|
elemtsWhereSomethingChanged = [];
|
|
751
957
|
i = 0;
|
|
752
958
|
case 3:
|
|
753
959
|
if (!(i < allPlannerElements.length)) {
|
|
754
|
-
|
|
960
|
+
_context4.next = 13;
|
|
755
961
|
break;
|
|
756
962
|
}
|
|
757
963
|
elem = allPlannerElements[i];
|
|
758
964
|
doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
|
|
759
965
|
if (!doReload) {
|
|
760
|
-
|
|
966
|
+
_context4.next = 10;
|
|
761
967
|
break;
|
|
762
968
|
}
|
|
763
969
|
elemtsWhereSomethingChanged.push(elem.ElementId);
|
|
764
|
-
|
|
970
|
+
_context4.next = 10;
|
|
765
971
|
return handler2D.loadSVG(elem, this.set);
|
|
766
972
|
case 10:
|
|
767
973
|
i++;
|
|
768
|
-
|
|
974
|
+
_context4.next = 3;
|
|
769
975
|
break;
|
|
770
976
|
case 13:
|
|
771
977
|
elementsToDelete = [];
|
|
@@ -778,11 +984,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
778
984
|
elementsToDelete.push(elementsLostDockingRelation[i].ElementId);
|
|
779
985
|
}
|
|
780
986
|
}
|
|
781
|
-
this.updateAllElementsWorldPos();
|
|
987
|
+
this.updateAllElementsWorldPos(undefined, elemtsWhereSomethingChanged);
|
|
782
988
|
this.updatePlannerPosNr();
|
|
783
989
|
this.updatePlannerBoundingBox();
|
|
784
990
|
}
|
|
785
|
-
return
|
|
991
|
+
return _context4.abrupt("return", {
|
|
786
992
|
doDeleteBackGrid: false,
|
|
787
993
|
elemIdsToDelete: elementsToDelete,
|
|
788
994
|
elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
|
|
@@ -790,9 +996,9 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
790
996
|
});
|
|
791
997
|
case 16:
|
|
792
998
|
case "end":
|
|
793
|
-
return
|
|
999
|
+
return _context4.stop();
|
|
794
1000
|
}
|
|
795
|
-
},
|
|
1001
|
+
}, _callee4, this);
|
|
796
1002
|
}));
|
|
797
1003
|
function updatePlanner() {
|
|
798
1004
|
return _updatePlanner.apply(this, arguments);
|
|
@@ -807,15 +1013,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
807
1013
|
}, {
|
|
808
1014
|
key: "extendPlanner",
|
|
809
1015
|
value: (function () {
|
|
810
|
-
var _extendPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
811
|
-
var
|
|
812
|
-
return _regeneratorRuntime.wrap(function
|
|
813
|
-
while (1) switch (
|
|
1016
|
+
var _extendPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee5(setPlanData, globalBoundingBox) {
|
|
1017
|
+
var planData, jsonElements, elementsSortedbyPosNr, accElements, oldElementidMapping, i, _saveElementArticleCo, _jsonElement$Accessoi, jsonElement, catalogArticle, plannerElement, data, elementsForDockingExtend, row, curElement, DPsInfo, j, dpInfo, sourceDP, targetElement, targetDP;
|
|
1018
|
+
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
1019
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
814
1020
|
case 0:
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
_context4.next = 40;
|
|
1021
|
+
planData = parseSetPlanData(setPlanData);
|
|
1022
|
+
if (!isSavePlannerV2(planData)) {
|
|
1023
|
+
_context5.next = 39;
|
|
819
1024
|
break;
|
|
820
1025
|
}
|
|
821
1026
|
jsonElements = planData.set.elements;
|
|
@@ -823,70 +1028,70 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
823
1028
|
accElements = [];
|
|
824
1029
|
oldElementidMapping = new Map(); //First reset planner element values in jsonElement so that every set is planned to be set to origin
|
|
825
1030
|
i = 0;
|
|
826
|
-
case
|
|
1031
|
+
case 7:
|
|
827
1032
|
if (!(i < jsonElements.length)) {
|
|
828
|
-
|
|
1033
|
+
_context5.next = 35;
|
|
829
1034
|
break;
|
|
830
1035
|
}
|
|
831
|
-
|
|
1036
|
+
_context5.prev = 8;
|
|
832
1037
|
jsonElement = jsonElements[i];
|
|
833
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1038
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo !== void 0 ? _saveElementArticleCo : '');
|
|
834
1039
|
if (!(!catalogArticle && (_jsonElement$Accessoi = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi !== void 0 && _jsonElement$Accessoi.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
835
|
-
|
|
1040
|
+
_context5.next = 14;
|
|
836
1041
|
break;
|
|
837
1042
|
}
|
|
838
1043
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
839
1044
|
code: 'WC_0012'
|
|
840
1045
|
}));
|
|
841
|
-
return
|
|
842
|
-
case
|
|
1046
|
+
return _context5.abrupt("continue", 32);
|
|
1047
|
+
case 14:
|
|
843
1048
|
plannerElement = new PlannerElementData(this.set.getSetId(), jsonElement.basketID, this.nextElementId, DivaStandardPlanner.plannerType);
|
|
844
|
-
oldElementidMapping.set(
|
|
1049
|
+
oldElementidMapping.set(jsonElement.elementID, plannerElement);
|
|
845
1050
|
this.nextElementId = plannerElement.getElementId() + 1;
|
|
846
1051
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
847
1052
|
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
848
1053
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
849
1054
|
plannerElement.updatePlannerData(data);
|
|
850
1055
|
if (this.doDisablePlanner2D) {
|
|
851
|
-
|
|
1056
|
+
_context5.next = 24;
|
|
852
1057
|
break;
|
|
853
1058
|
}
|
|
854
|
-
|
|
1059
|
+
_context5.next = 24;
|
|
855
1060
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
856
|
-
case
|
|
1061
|
+
case 24:
|
|
857
1062
|
plannerElement.WorldPosCenter = new Vector3(globalBoundingBox.WorldPos.x + globalBoundingBox.Size.x + jsonElement.x + 100, globalBoundingBox.WorldPos.y + jsonElement.y, globalBoundingBox.WorldPos.z + jsonElement.z);
|
|
858
1063
|
plannerElement.RotDeg = jsonElement.rot;
|
|
859
1064
|
if (plannerElement.IsDockedAccessoire) {
|
|
860
1065
|
accElements.push(jsonElement);
|
|
861
1066
|
plannerElement.PosNr = jsonElement.posNr;
|
|
862
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1067
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
863
1068
|
} else {
|
|
864
1069
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
865
1070
|
plannerElement.PosNr = jsonElement.posNr;
|
|
866
1071
|
}
|
|
867
|
-
|
|
1072
|
+
_context5.next = 32;
|
|
868
1073
|
break;
|
|
869
|
-
case
|
|
870
|
-
|
|
871
|
-
|
|
1074
|
+
case 29:
|
|
1075
|
+
_context5.prev = 29;
|
|
1076
|
+
_context5.t0 = _context5["catch"](8);
|
|
872
1077
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
873
|
-
cause:
|
|
1078
|
+
cause: _context5.t0,
|
|
874
1079
|
code: 'WC_0012'
|
|
875
1080
|
}));
|
|
876
|
-
case
|
|
1081
|
+
case 32:
|
|
877
1082
|
i++;
|
|
878
|
-
|
|
1083
|
+
_context5.next = 7;
|
|
879
1084
|
break;
|
|
880
|
-
case
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
1085
|
+
case 35:
|
|
1086
|
+
elementsForDockingExtend = [].concat(_toConsumableArray(elementsSortedbyPosNr.filter(function (e) {
|
|
1087
|
+
return e != null;
|
|
1088
|
+
})), accElements);
|
|
1089
|
+
for (i = 0; i < elementsForDockingExtend.length; i++) {
|
|
1090
|
+
row = elementsForDockingExtend[i];
|
|
1091
|
+
curElement = oldElementidMapping.get(row.elementID);
|
|
1092
|
+
if (elementsForDockingExtend.length > 1) {
|
|
887
1093
|
if (i > 0) {
|
|
888
|
-
|
|
889
|
-
DPsInfo = elementsSortedbyPosNr[i].DP;
|
|
1094
|
+
DPsInfo = row.DP;
|
|
890
1095
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
891
1096
|
dpInfo = DPsInfo[j];
|
|
892
1097
|
sourceDP = curElement === null || curElement === void 0 ? void 0 : curElement.getDockingPointById(dpInfo.id);
|
|
@@ -899,19 +1104,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
899
1104
|
}
|
|
900
1105
|
}
|
|
901
1106
|
}
|
|
902
|
-
|
|
1107
|
+
_context5.next = 40;
|
|
903
1108
|
break;
|
|
904
|
-
case
|
|
1109
|
+
case 39:
|
|
905
1110
|
LOG.error(new DivaError('The function extend Planner works only with products that are saved in the configurator 2.0', {
|
|
906
1111
|
code: 'WC_0012'
|
|
907
1112
|
}));
|
|
908
|
-
case
|
|
1113
|
+
case 40:
|
|
909
1114
|
case "end":
|
|
910
|
-
return
|
|
1115
|
+
return _context5.stop();
|
|
911
1116
|
}
|
|
912
|
-
},
|
|
1117
|
+
}, _callee5, this, [[8, 29]]);
|
|
913
1118
|
}));
|
|
914
|
-
function extendPlanner(
|
|
1119
|
+
function extendPlanner(_x10, _x11) {
|
|
915
1120
|
return _extendPlanner.apply(this, arguments);
|
|
916
1121
|
}
|
|
917
1122
|
return extendPlanner;
|
|
@@ -919,47 +1124,45 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
919
1124
|
}, {
|
|
920
1125
|
key: "initPlanner",
|
|
921
1126
|
value: function () {
|
|
922
|
-
var _initPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
923
|
-
var
|
|
924
|
-
return _regeneratorRuntime.wrap(function
|
|
925
|
-
while (1) switch (
|
|
1127
|
+
var _initPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee6(setPlanData) {
|
|
1128
|
+
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;
|
|
1129
|
+
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
1130
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
926
1131
|
case 0:
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
_context5.next = 62;
|
|
1132
|
+
planData = parseSetPlanData(setPlanData);
|
|
1133
|
+
if (!isSavePlannerV2(planData)) {
|
|
1134
|
+
_context6.next = 63;
|
|
931
1135
|
break;
|
|
932
1136
|
}
|
|
933
1137
|
LOG.debug('Initialize set Plan Data - V2\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
934
|
-
if (
|
|
935
|
-
|
|
1138
|
+
if ((_planData$set = planData.set) !== null && _planData$set !== void 0 && (_planData$set = _planData$set.elements) !== null && _planData$set !== void 0 && _planData$set.length) {
|
|
1139
|
+
_context6.next = 5;
|
|
936
1140
|
break;
|
|
937
1141
|
}
|
|
938
|
-
return
|
|
939
|
-
case
|
|
940
|
-
//Init new saved Plannings
|
|
1142
|
+
return _context6.abrupt("return");
|
|
1143
|
+
case 5:
|
|
941
1144
|
jsonElements = planData.set.elements;
|
|
942
1145
|
elementsSortedbyPosNr = [];
|
|
943
1146
|
accElements = [];
|
|
944
1147
|
i = 0;
|
|
945
|
-
case
|
|
1148
|
+
case 9:
|
|
946
1149
|
if (!(i < jsonElements.length)) {
|
|
947
|
-
|
|
1150
|
+
_context6.next = 37;
|
|
948
1151
|
break;
|
|
949
1152
|
}
|
|
950
|
-
|
|
1153
|
+
_context6.prev = 10;
|
|
951
1154
|
jsonElement = jsonElements[i];
|
|
952
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1155
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo2 = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo2 !== void 0 ? _saveElementArticleCo2 : '');
|
|
953
1156
|
if (!(!catalogArticle && (_jsonElement$Accessoi2 = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi2 !== void 0 && _jsonElement$Accessoi2.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
954
|
-
|
|
1157
|
+
_context6.next = 16;
|
|
955
1158
|
break;
|
|
956
1159
|
}
|
|
957
1160
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
958
1161
|
code: 'WC_0012'
|
|
959
1162
|
}));
|
|
960
|
-
return
|
|
961
|
-
case
|
|
962
|
-
elementID =
|
|
1163
|
+
return _context6.abrupt("continue", 34);
|
|
1164
|
+
case 16:
|
|
1165
|
+
elementID = jsonElement.elementID;
|
|
963
1166
|
plannerElement = new PlannerElementData(this.set.getSetId(), jsonElement.basketID, elementID, DivaStandardPlanner.plannerType);
|
|
964
1167
|
this.nextElementId = elementID + 1;
|
|
965
1168
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
@@ -967,12 +1170,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
967
1170
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
968
1171
|
plannerElement.updatePlannerData(data);
|
|
969
1172
|
if (this.doDisablePlanner2D) {
|
|
970
|
-
|
|
1173
|
+
_context6.next = 26;
|
|
971
1174
|
break;
|
|
972
1175
|
}
|
|
973
|
-
|
|
1176
|
+
_context6.next = 26;
|
|
974
1177
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
975
|
-
case
|
|
1178
|
+
case 26:
|
|
976
1179
|
//Im neuen speichern ist die Position hinten link - nicht mehr im Centrum wie im alten Planer
|
|
977
1180
|
//plannerElement.WorldPosCenter = new Vector3(jsonElement.x, jsonElement.y, jsonElement.z);
|
|
978
1181
|
plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + jsonElement.x, this.plannerBoundingBox.WorldPos.y + jsonElement.y, this.plannerBoundingBox.WorldPos.z + jsonElement.z);
|
|
@@ -980,141 +1183,151 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
980
1183
|
if (plannerElement.IsDockedAccessoire) {
|
|
981
1184
|
accElements.push(jsonElement);
|
|
982
1185
|
plannerElement.PosNr = jsonElement.posNr;
|
|
983
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1186
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
984
1187
|
} else {
|
|
985
1188
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
986
1189
|
plannerElement.PosNr = jsonElement.posNr;
|
|
987
1190
|
}
|
|
988
|
-
|
|
1191
|
+
_context6.next = 34;
|
|
989
1192
|
break;
|
|
990
|
-
case
|
|
991
|
-
|
|
992
|
-
|
|
1193
|
+
case 31:
|
|
1194
|
+
_context6.prev = 31;
|
|
1195
|
+
_context6.t0 = _context6["catch"](10);
|
|
993
1196
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
994
|
-
cause:
|
|
1197
|
+
cause: _context6.t0,
|
|
995
1198
|
code: 'WC_0012'
|
|
996
1199
|
}));
|
|
997
|
-
case
|
|
1200
|
+
case 34:
|
|
998
1201
|
i++;
|
|
999
|
-
|
|
1202
|
+
_context6.next = 9;
|
|
1000
1203
|
break;
|
|
1001
|
-
case
|
|
1002
|
-
onlyOneBaseElement = elementsSortedbyPosNr.length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
1003
|
-
|
|
1204
|
+
case 37:
|
|
1205
|
+
onlyOneBaseElement = elementsSortedbyPosNr.filter(Boolean).length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
1206
|
+
elementsForDocking = [].concat(_toConsumableArray(elementsSortedbyPosNr.filter(function (e) {
|
|
1207
|
+
return e != null;
|
|
1208
|
+
})), accElements);
|
|
1004
1209
|
i = 0;
|
|
1005
|
-
case
|
|
1006
|
-
if (!(i <
|
|
1007
|
-
|
|
1210
|
+
case 40:
|
|
1211
|
+
if (!(i < elementsForDocking.length)) {
|
|
1212
|
+
_context6.next = 61;
|
|
1008
1213
|
break;
|
|
1009
1214
|
}
|
|
1010
|
-
|
|
1215
|
+
_context6.prev = 41;
|
|
1216
|
+
row = elementsForDocking[i];
|
|
1011
1217
|
if (!(i == 0 && onlyOneBaseElement && this.plannerHasStaticBackground)) {
|
|
1012
|
-
|
|
1218
|
+
_context6.next = 48;
|
|
1013
1219
|
break;
|
|
1014
1220
|
}
|
|
1015
1221
|
//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.
|
|
1016
1222
|
//Only do this for fresh plannings - if the saved planData already contains a position, keep it.
|
|
1223
|
+
//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
|
|
1017
1224
|
_jsonElement = elementsSortedbyPosNr[i];
|
|
1018
|
-
hasSavedPos = _jsonElement.x != null || _jsonElement.y != null || _jsonElement.z != null;
|
|
1225
|
+
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;
|
|
1019
1226
|
if (!hasSavedPos) {
|
|
1020
|
-
element = this.plannerElements.get(
|
|
1227
|
+
element = this.plannerElements.get(row.elementID);
|
|
1021
1228
|
if (element) element.WorldPosCenter = new Vector3(0, element.Height / 2, element.Depth / 2);
|
|
1022
1229
|
}
|
|
1023
|
-
return
|
|
1230
|
+
return _context6.abrupt("continue", 58);
|
|
1024
1231
|
case 48:
|
|
1025
|
-
if (!(
|
|
1026
|
-
|
|
1232
|
+
if (!(row.DP == null || row.DP.length == 0)) {
|
|
1233
|
+
_context6.next = 50;
|
|
1027
1234
|
break;
|
|
1028
1235
|
}
|
|
1029
|
-
return
|
|
1236
|
+
return _context6.abrupt("continue", 58);
|
|
1030
1237
|
case 50:
|
|
1031
|
-
DPsInfo =
|
|
1238
|
+
DPsInfo = row.DP;
|
|
1032
1239
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
1033
1240
|
dpInfo = DPsInfo[j];
|
|
1034
|
-
if (dpInfo.id && dpInfo.
|
|
1035
|
-
sourceElement = this.plannerElements.get(
|
|
1241
|
+
if (dpInfo.id && dpInfo.onID != null && dpInfo.onDPID) {
|
|
1242
|
+
sourceElement = this.plannerElements.get(row.elementID);
|
|
1036
1243
|
sourceDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getDockingPointById(dpInfo.id);
|
|
1037
1244
|
targetElement = this.plannerElements.get(dpInfo.onID);
|
|
1038
1245
|
targetDP = targetElement === null || targetElement === void 0 ? void 0 : targetElement.getDockingPointById(dpInfo.onDPID);
|
|
1039
1246
|
if (sourceDP && targetDP) {
|
|
1040
|
-
|
|
1247
|
+
// Saved plans store each relation on both sides - skip the mirror entry of an already established pair.
|
|
1248
|
+
alreadyDocked = sourceDP.IsDocking && sourceDP.OnDP == targetDP;
|
|
1249
|
+
docked = alreadyDocked || dockingPointHandlerInst.tryDockElementDPToDP(sourceElement, targetElement, sourceDP, targetDP);
|
|
1250
|
+
if (!docked && !this.doDisablePlanner2D) LOG.error(new 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) + ')', {
|
|
1251
|
+
code: 'WC_0012'
|
|
1252
|
+
}));
|
|
1041
1253
|
} else {
|
|
1042
1254
|
if (!this.doDisablePlanner2D) LOG.error(new 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));
|
|
1043
1255
|
}
|
|
1044
1256
|
}
|
|
1045
1257
|
}
|
|
1046
|
-
|
|
1258
|
+
_context6.next = 58;
|
|
1047
1259
|
break;
|
|
1048
1260
|
case 54:
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1261
|
+
_context6.prev = 54;
|
|
1262
|
+
_context6.t1 = _context6["catch"](41);
|
|
1263
|
+
elementId = (_elementsForDocking$i = elementsForDocking[i]) === null || _elementsForDocking$i === void 0 ? void 0 : _elementsForDocking$i.elementID;
|
|
1264
|
+
LOG.error(new DivaError('Error initializing dockingPoints of element with elementID ' + elementId, {
|
|
1265
|
+
cause: _context6.t1,
|
|
1053
1266
|
code: 'WC_0012'
|
|
1054
1267
|
}));
|
|
1055
|
-
case
|
|
1268
|
+
case 58:
|
|
1056
1269
|
i++;
|
|
1057
|
-
|
|
1270
|
+
_context6.next = 40;
|
|
1058
1271
|
break;
|
|
1059
|
-
case
|
|
1060
|
-
|
|
1272
|
+
case 61:
|
|
1273
|
+
_context6.next = 116;
|
|
1061
1274
|
break;
|
|
1062
|
-
case
|
|
1275
|
+
case 63:
|
|
1063
1276
|
LOG.debug('Initialize set Plan Data - old V1\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
1064
|
-
|
|
1065
|
-
|
|
1277
|
+
legacySet = (_planData$Sets = planData.Sets) === null || _planData$Sets === void 0 ? void 0 : _planData$Sets[0];
|
|
1278
|
+
if (legacySet !== null && legacySet !== void 0 && (_legacySet$Elements = legacySet.Elements) !== null && _legacySet$Elements !== void 0 && _legacySet$Elements.length) {
|
|
1279
|
+
_context6.next = 67;
|
|
1066
1280
|
break;
|
|
1067
1281
|
}
|
|
1068
|
-
return
|
|
1069
|
-
case
|
|
1070
|
-
|
|
1071
|
-
_jsonElements = planData.Sets[0].Elements;
|
|
1282
|
+
return _context6.abrupt("return");
|
|
1283
|
+
case 67:
|
|
1284
|
+
_jsonElements = legacySet.Elements;
|
|
1072
1285
|
_elementsSortedbyPosNr = [];
|
|
1073
1286
|
_accElements = []; //Zuerst initialisiere alle Elemente
|
|
1074
1287
|
//Dann positioniere sie richtig
|
|
1075
1288
|
i = 0;
|
|
1076
|
-
case
|
|
1289
|
+
case 71:
|
|
1077
1290
|
if (!(i < _jsonElements.length)) {
|
|
1078
|
-
|
|
1291
|
+
_context6.next = 105;
|
|
1079
1292
|
break;
|
|
1080
1293
|
}
|
|
1081
|
-
|
|
1294
|
+
_context6.prev = 72;
|
|
1082
1295
|
_jsonElement2 = _jsonElements[i];
|
|
1083
|
-
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1296
|
+
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo3 = saveElementArticleCodex(_jsonElement2)) !== null && _saveElementArticleCo3 !== void 0 ? _saveElementArticleCo3 : '');
|
|
1084
1297
|
if (!(!_catalogArticle && (_jsonElement2$Accesso = _jsonElement2.AccessoireInitParams) !== null && _jsonElement2$Accesso !== void 0 && _jsonElement2$Accesso.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
1085
|
-
|
|
1298
|
+
_context6.next = 78;
|
|
1086
1299
|
break;
|
|
1087
1300
|
}
|
|
1088
|
-
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData
|
|
1301
|
+
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V1', {
|
|
1089
1302
|
code: 'WC_0012'
|
|
1090
1303
|
}));
|
|
1091
|
-
return
|
|
1092
|
-
case
|
|
1304
|
+
return _context6.abrupt("continue", 102);
|
|
1305
|
+
case 78:
|
|
1093
1306
|
basketID = _jsonElement2.BasketID;
|
|
1094
1307
|
if (this.set.getElementId(basketID) == -1) this.set.setElementId(basketID, Number(_jsonElement2.ID));
|
|
1095
|
-
|
|
1096
|
-
_jsonElement2.elementId =
|
|
1097
|
-
if (!(
|
|
1098
|
-
|
|
1308
|
+
_elementId = this.set.getElementId(basketID);
|
|
1309
|
+
_jsonElement2.elementId = _elementId;
|
|
1310
|
+
if (!(_elementId == -1)) {
|
|
1311
|
+
_context6.next = 85;
|
|
1099
1312
|
break;
|
|
1100
1313
|
}
|
|
1101
1314
|
LOG.error(new DivaError('Error when initializing planner. The elementID Was not saved in the article. ', {
|
|
1102
1315
|
code: 'WC_0012'
|
|
1103
1316
|
}));
|
|
1104
|
-
return
|
|
1105
|
-
case
|
|
1106
|
-
_plannerElement = new PlannerElementData(this.set.getSetId(), basketID,
|
|
1107
|
-
this.nextElementId =
|
|
1317
|
+
return _context6.abrupt("continue", 102);
|
|
1318
|
+
case 85:
|
|
1319
|
+
_plannerElement = new PlannerElementData(this.set.getSetId(), basketID, _elementId, DivaStandardPlanner.plannerType);
|
|
1320
|
+
this.nextElementId = _elementId + 1;
|
|
1108
1321
|
this.plannerElements.set(_plannerElement.ElementId, _plannerElement);
|
|
1109
1322
|
_data = this.set.getPlannerData(_plannerElement.ElementId);
|
|
1110
1323
|
_plannerElement.updatePlannerData(_data);
|
|
1111
1324
|
if (this.doDisablePlanner2D) {
|
|
1112
|
-
|
|
1325
|
+
_context6.next = 93;
|
|
1113
1326
|
break;
|
|
1114
1327
|
}
|
|
1115
|
-
|
|
1328
|
+
_context6.next = 93;
|
|
1116
1329
|
return handler2D.loadSVG(_plannerElement, this.set);
|
|
1117
|
-
case
|
|
1330
|
+
case 93:
|
|
1118
1331
|
//Achtung die Pos Infos im alten Planer waren Zentrumskoordinaten!!! Nicht hinten oben.
|
|
1119
1332
|
centerWorldPos = new Vector3(_jsonElement2.PosX, _jsonElement2.PosZ, _jsonElement2.PosY);
|
|
1120
1333
|
_plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + centerWorldPos.x, this.plannerBoundingBox.WorldPos.y + centerWorldPos.y, this.plannerBoundingBox.WorldPos.z + centerWorldPos.z);
|
|
@@ -1124,72 +1337,77 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1124
1337
|
if (_jsonElement2.PosNum.toString().indexOf('.') > 0) {
|
|
1125
1338
|
parentPosNr = _jsonElement2.PosNum.toString().split('.')[0];
|
|
1126
1339
|
accPosNr = _jsonElement2.PosNum.toString().split('.')[1];
|
|
1127
|
-
_plannerElement.PosNr = parentPosNr;
|
|
1128
|
-
_plannerElement.AccessoirePosNr = accPosNr;
|
|
1340
|
+
_plannerElement.PosNr = Number(parentPosNr);
|
|
1341
|
+
_plannerElement.AccessoirePosNr = Number(accPosNr);
|
|
1129
1342
|
}
|
|
1130
1343
|
} else {
|
|
1131
1344
|
_elementsSortedbyPosNr[_jsonElement2.PosNum - 1] = _jsonElement2;
|
|
1132
1345
|
_plannerElement.PosNr = _jsonElement2.PosNum;
|
|
1133
1346
|
}
|
|
1134
|
-
|
|
1347
|
+
_context6.next = 102;
|
|
1135
1348
|
break;
|
|
1136
|
-
case
|
|
1137
|
-
|
|
1138
|
-
|
|
1349
|
+
case 99:
|
|
1350
|
+
_context6.prev = 99;
|
|
1351
|
+
_context6.t2 = _context6["catch"](72);
|
|
1139
1352
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner - Plan Data old Planner', {
|
|
1140
|
-
cause:
|
|
1353
|
+
cause: _context6.t2,
|
|
1141
1354
|
code: 'WC_0012'
|
|
1142
1355
|
}));
|
|
1143
|
-
case
|
|
1356
|
+
case 102:
|
|
1144
1357
|
i++;
|
|
1145
|
-
|
|
1358
|
+
_context6.next = 71;
|
|
1146
1359
|
break;
|
|
1147
|
-
case 103:
|
|
1148
|
-
_elementsSortedbyPosNr = _elementsSortedbyPosNr.concat(_accElements);
|
|
1149
|
-
//Dann werden die DockingPoints durchgegangen und die jeweils richtigen müssen gesucht werden.
|
|
1150
|
-
i = 0;
|
|
1151
1360
|
case 105:
|
|
1152
|
-
|
|
1153
|
-
|
|
1361
|
+
elementsForDockingV1 = [].concat(_toConsumableArray(_elementsSortedbyPosNr.filter(function (e) {
|
|
1362
|
+
return e != null;
|
|
1363
|
+
})), _accElements);
|
|
1364
|
+
i = 0;
|
|
1365
|
+
case 107:
|
|
1366
|
+
if (!(i < elementsForDockingV1.length)) {
|
|
1367
|
+
_context6.next = 116;
|
|
1154
1368
|
break;
|
|
1155
1369
|
}
|
|
1156
|
-
|
|
1157
|
-
|
|
1370
|
+
_row = elementsForDockingV1[i];
|
|
1371
|
+
if (!(_row.DP == null || _row.DP.length == 0)) {
|
|
1372
|
+
_context6.next = 111;
|
|
1158
1373
|
break;
|
|
1159
1374
|
}
|
|
1160
|
-
return
|
|
1161
|
-
case
|
|
1162
|
-
_DPsInfo =
|
|
1375
|
+
return _context6.abrupt("continue", 113);
|
|
1376
|
+
case 111:
|
|
1377
|
+
_DPsInfo = _row.DP;
|
|
1163
1378
|
for (j = 0; j < _DPsInfo.length; j++) {
|
|
1164
1379
|
_dpInfo = _DPsInfo[j];
|
|
1165
1380
|
if (_dpInfo.DP && _dpInfo.DP != '' && _dpInfo.onID && _dpInfo.onID != '') {
|
|
1166
|
-
targetElementId = parseInt(_dpInfo.onID);
|
|
1381
|
+
targetElementId = parseInt(String(_dpInfo.onID));
|
|
1167
1382
|
dpType = _dpInfo.DP;
|
|
1168
|
-
curElement = this.plannerElements.get(
|
|
1383
|
+
curElement = _row.elementId != null ? this.plannerElements.get(_row.elementId) : undefined;
|
|
1169
1384
|
_targetElement = (_this$plannerElements = this.plannerElements.get(targetElementId)) !== null && _this$plannerElements !== void 0 ? _this$plannerElements : this.getPlannerElementByIndex(targetElementId - 1);
|
|
1170
1385
|
if (curElement && _targetElement) {
|
|
1171
1386
|
dockingPointHandlerInst.initDockingPointRelationByArea(curElement, _targetElement, dpType);
|
|
1172
1387
|
} else {
|
|
1173
|
-
LOG.error(new DivaError('Error initializing dockingPoints of element with elementID ' +
|
|
1388
|
+
LOG.error(new DivaError('Error initializing dockingPoints of element with elementID ' + _row.elementId, {
|
|
1174
1389
|
code: 'WC_0012'
|
|
1175
1390
|
}));
|
|
1176
1391
|
}
|
|
1177
1392
|
}
|
|
1178
1393
|
}
|
|
1179
|
-
case
|
|
1394
|
+
case 113:
|
|
1180
1395
|
i++;
|
|
1181
|
-
|
|
1396
|
+
_context6.next = 107;
|
|
1182
1397
|
break;
|
|
1183
|
-
case
|
|
1184
|
-
this.
|
|
1398
|
+
case 116:
|
|
1399
|
+
this.plannerElements.forEach(function (el) {
|
|
1400
|
+
if (!el.IsDockedAccessoire && (anchorElement == undefined || el.PosNr < anchorElement.PosNr)) anchorElement = el;
|
|
1401
|
+
});
|
|
1402
|
+
this.updateAllElementsWorldPos(undefined, anchorElement ? [anchorElement.ElementId] : undefined);
|
|
1185
1403
|
this.updatePlannerPosNr();
|
|
1186
|
-
case
|
|
1404
|
+
case 119:
|
|
1187
1405
|
case "end":
|
|
1188
|
-
return
|
|
1406
|
+
return _context6.stop();
|
|
1189
1407
|
}
|
|
1190
|
-
},
|
|
1408
|
+
}, _callee6, this, [[10, 31], [41, 54], [72, 99]]);
|
|
1191
1409
|
}));
|
|
1192
|
-
function initPlanner(
|
|
1410
|
+
function initPlanner(_x12) {
|
|
1193
1411
|
return _initPlanner.apply(this, arguments);
|
|
1194
1412
|
}
|
|
1195
1413
|
return initPlanner;
|
|
@@ -1208,11 +1426,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1208
1426
|
}, {
|
|
1209
1427
|
key: "addPlannerElement",
|
|
1210
1428
|
value: function () {
|
|
1211
|
-
var _addPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1429
|
+
var _addPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(basketID, params) {
|
|
1212
1430
|
var _params$dockingPointI, _t$, _t$2, _t$3;
|
|
1213
1431
|
var plannerElement, data, t;
|
|
1214
|
-
return _regeneratorRuntime.wrap(function
|
|
1215
|
-
while (1) switch (
|
|
1432
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
1433
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
1216
1434
|
case 0:
|
|
1217
1435
|
// _elementId: number, _setId: string, _basketId: string, elementInitProp: any, catalogElement: CatalogPlannerArticleData
|
|
1218
1436
|
plannerElement = new PlannerElementData(this.set.getSetId(), basketID, this.nextElementId, DivaStandardPlanner.plannerType /*, this.set.getSetId(), basketID, elementInitProp, catalogElement*/);
|
|
@@ -1223,10 +1441,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1223
1441
|
plannerElement.updatePlannerData(data);
|
|
1224
1442
|
//Do load the svg
|
|
1225
1443
|
if (this.doDisablePlanner2D) {
|
|
1226
|
-
|
|
1444
|
+
_context7.next = 9;
|
|
1227
1445
|
break;
|
|
1228
1446
|
}
|
|
1229
|
-
|
|
1447
|
+
_context7.next = 9;
|
|
1230
1448
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
1231
1449
|
case 9:
|
|
1232
1450
|
t = (_params$dockingPointI = params.dockingPointInfos) !== null && _params$dockingPointI !== void 0 ? _params$dockingPointI : [{
|
|
@@ -1234,49 +1452,49 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1234
1452
|
targetElemIdToDock: params.targetElemIdToDock
|
|
1235
1453
|
}];
|
|
1236
1454
|
if (!(t !== null && t !== void 0 && (_t$ = t[0]) !== null && _t$ !== void 0 && _t$.targetElemIdToDock && t !== null && t !== void 0 && (_t$2 = t[0]) !== null && _t$2 !== void 0 && _t$2.targetDockingPointId)) {
|
|
1237
|
-
|
|
1455
|
+
_context7.next = 15;
|
|
1238
1456
|
break;
|
|
1239
1457
|
}
|
|
1240
|
-
|
|
1458
|
+
_context7.next = 13;
|
|
1241
1459
|
return this.addElementToWorld(plannerElement, t);
|
|
1242
1460
|
case 13:
|
|
1243
|
-
|
|
1461
|
+
_context7.next = 27;
|
|
1244
1462
|
break;
|
|
1245
1463
|
case 15:
|
|
1246
1464
|
if (!(t !== null && t !== void 0 && (_t$3 = t[0]) !== null && _t$3 !== void 0 && _t$3.targetElemIdToDock)) {
|
|
1247
|
-
|
|
1465
|
+
_context7.next = 20;
|
|
1248
1466
|
break;
|
|
1249
1467
|
}
|
|
1250
|
-
|
|
1468
|
+
_context7.next = 18;
|
|
1251
1469
|
return this.addElementToWorld(plannerElement, t);
|
|
1252
1470
|
case 18:
|
|
1253
|
-
|
|
1471
|
+
_context7.next = 27;
|
|
1254
1472
|
break;
|
|
1255
1473
|
case 20:
|
|
1256
1474
|
if (!params.oldPlannerTransform) {
|
|
1257
|
-
|
|
1475
|
+
_context7.next = 25;
|
|
1258
1476
|
break;
|
|
1259
1477
|
}
|
|
1260
|
-
|
|
1478
|
+
_context7.next = 23;
|
|
1261
1479
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, undefined, {
|
|
1262
1480
|
forceSetToTrans: true,
|
|
1263
1481
|
transform: params.oldPlannerTransform
|
|
1264
1482
|
});
|
|
1265
1483
|
case 23:
|
|
1266
|
-
|
|
1484
|
+
_context7.next = 27;
|
|
1267
1485
|
break;
|
|
1268
1486
|
case 25:
|
|
1269
|
-
|
|
1487
|
+
_context7.next = 27;
|
|
1270
1488
|
return this.addElementToWorld(plannerElement);
|
|
1271
1489
|
case 27:
|
|
1272
1490
|
this.updatePlannerBoundingBox();
|
|
1273
1491
|
case 28:
|
|
1274
1492
|
case "end":
|
|
1275
|
-
return
|
|
1493
|
+
return _context7.stop();
|
|
1276
1494
|
}
|
|
1277
|
-
},
|
|
1495
|
+
}, _callee7, this);
|
|
1278
1496
|
}));
|
|
1279
|
-
function addPlannerElement(
|
|
1497
|
+
function addPlannerElement(_x13, _x14) {
|
|
1280
1498
|
return _addPlannerElement.apply(this, arguments);
|
|
1281
1499
|
}
|
|
1282
1500
|
return addPlannerElement;
|
|
@@ -1295,34 +1513,68 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1295
1513
|
}, {
|
|
1296
1514
|
key: "copyPlannerElement",
|
|
1297
1515
|
value: (function () {
|
|
1298
|
-
var _copyPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1299
|
-
var
|
|
1300
|
-
return _regeneratorRuntime.wrap(function
|
|
1301
|
-
while (1) switch (
|
|
1516
|
+
var _copyPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee8(articleCopyRelation, copyInfo) {
|
|
1517
|
+
var i, _copyInfo$copyIndex, rel, dirX, sourceElement, targetDP;
|
|
1518
|
+
return _regeneratorRuntime.wrap(function _callee8$(_context8) {
|
|
1519
|
+
while (1) switch (_context8.prev = _context8.next) {
|
|
1302
1520
|
case 0:
|
|
1303
|
-
articlesToLoad = [];
|
|
1304
|
-
articleCopyRelation.forEach(function (rel) {
|
|
1305
|
-
if (copyInfo == undefined) articlesToLoad.push(rel.value);
|
|
1306
|
-
});
|
|
1307
1521
|
i = 0;
|
|
1308
|
-
case
|
|
1309
|
-
if (!(i <
|
|
1310
|
-
|
|
1522
|
+
case 1:
|
|
1523
|
+
if (!(i < articleCopyRelation.length)) {
|
|
1524
|
+
_context8.next = 24;
|
|
1311
1525
|
break;
|
|
1312
1526
|
}
|
|
1313
|
-
|
|
1314
|
-
|
|
1527
|
+
rel = articleCopyRelation[i];
|
|
1528
|
+
if (!(copyInfo == undefined)) {
|
|
1529
|
+
_context8.next = 7;
|
|
1530
|
+
break;
|
|
1531
|
+
}
|
|
1532
|
+
_context8.next = 6;
|
|
1533
|
+
return this.addPlannerElement(rel.value, {});
|
|
1315
1534
|
case 6:
|
|
1535
|
+
return _context8.abrupt("continue", 21);
|
|
1536
|
+
case 7:
|
|
1537
|
+
//Directional copy (copyIndex.x = -1 left / 1 right): dock the copy at the source element's free AVL/AVR
|
|
1538
|
+
dirX = (_copyInfo$copyIndex = copyInfo.copyIndex) === null || _copyInfo$copyIndex === void 0 ? void 0 : _copyInfo$copyIndex.x;
|
|
1539
|
+
if (!(dirX != -1 && dirX != 1)) {
|
|
1540
|
+
_context8.next = 12;
|
|
1541
|
+
break;
|
|
1542
|
+
}
|
|
1543
|
+
_context8.next = 11;
|
|
1544
|
+
return this.addPlannerElement(rel.value, {});
|
|
1545
|
+
case 11:
|
|
1546
|
+
return _context8.abrupt("continue", 21);
|
|
1547
|
+
case 12:
|
|
1548
|
+
sourceElement = this.plannerElements.get(rel.key);
|
|
1549
|
+
targetDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getFreeDockingPointsByType(dirX == -1 ? 'AVL' : 'AVR').find(function (dp) {
|
|
1550
|
+
return !dp.IsDisabled;
|
|
1551
|
+
});
|
|
1552
|
+
if (!(sourceElement && targetDP)) {
|
|
1553
|
+
_context8.next = 19;
|
|
1554
|
+
break;
|
|
1555
|
+
}
|
|
1556
|
+
_context8.next = 17;
|
|
1557
|
+
return this.addPlannerElement(rel.value, {
|
|
1558
|
+
targetElemIdToDock: sourceElement.ElementId,
|
|
1559
|
+
targetDockingPointId: targetDP.DpId
|
|
1560
|
+
});
|
|
1561
|
+
case 17:
|
|
1562
|
+
_context8.next = 21;
|
|
1563
|
+
break;
|
|
1564
|
+
case 19:
|
|
1565
|
+
_context8.next = 21;
|
|
1566
|
+
return this.addPlannerElement(rel.value, {});
|
|
1567
|
+
case 21:
|
|
1316
1568
|
i++;
|
|
1317
|
-
|
|
1569
|
+
_context8.next = 1;
|
|
1318
1570
|
break;
|
|
1319
|
-
case
|
|
1571
|
+
case 24:
|
|
1320
1572
|
case "end":
|
|
1321
|
-
return
|
|
1573
|
+
return _context8.stop();
|
|
1322
1574
|
}
|
|
1323
|
-
},
|
|
1575
|
+
}, _callee8, this);
|
|
1324
1576
|
}));
|
|
1325
|
-
function copyPlannerElement(
|
|
1577
|
+
function copyPlannerElement(_x15, _x16) {
|
|
1326
1578
|
return _copyPlannerElement.apply(this, arguments);
|
|
1327
1579
|
}
|
|
1328
1580
|
return copyPlannerElement;
|
|
@@ -1341,7 +1593,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1341
1593
|
}, {
|
|
1342
1594
|
key: "getPlannerElementsInfluencedByCopy",
|
|
1343
1595
|
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
1344
|
-
|
|
1596
|
+
//STD = directional AVL/AVR copy of a single element; only the element itself is influenced
|
|
1597
|
+
if (!copyInfo || copyInfo.copyType != 'BoxPlanner_backside' && copyInfo.copyType != 'STD') throw new Error('copyType needs to be BoxPlanner_backside or STD here');
|
|
1345
1598
|
if (this.plannerElements.has(elementId)) return [elementId];
|
|
1346
1599
|
return [];
|
|
1347
1600
|
}
|
|
@@ -1354,19 +1607,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1354
1607
|
}, {
|
|
1355
1608
|
key: "deletePlannerElement",
|
|
1356
1609
|
value: (function () {
|
|
1357
|
-
var _deletePlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1610
|
+
var _deletePlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(elementId, autoCorrectAVL_AVR) {
|
|
1358
1611
|
var plannerElement, parent, prevPosNum, nextPosNum, newSelElemIdPrev, newSelElemIdNext, endForEach, removeDockingRelation, avlVec, avrVec, elementLeft, elementRight, avrElementLeft, avlElementRight, transform;
|
|
1359
|
-
return _regeneratorRuntime.wrap(function
|
|
1360
|
-
while (1) switch (
|
|
1612
|
+
return _regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
1613
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
1361
1614
|
case 0:
|
|
1362
|
-
|
|
1615
|
+
_context9.next = 2;
|
|
1363
1616
|
return DivaUtils.Sleep(1);
|
|
1364
1617
|
case 2:
|
|
1365
1618
|
if (this.plannerElements.has(elementId)) {
|
|
1366
|
-
|
|
1619
|
+
_context9.next = 4;
|
|
1367
1620
|
break;
|
|
1368
1621
|
}
|
|
1369
|
-
return
|
|
1622
|
+
return _context9.abrupt("return", {});
|
|
1370
1623
|
case 4:
|
|
1371
1624
|
plannerElement = this.plannerElements.get(elementId);
|
|
1372
1625
|
parent = this.getParentElement(plannerElement);
|
|
@@ -1423,17 +1676,17 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1423
1676
|
this.updatePlannerPosNr();
|
|
1424
1677
|
this.checkCollision(false, plannerElement.getElementId());
|
|
1425
1678
|
this.updatePlannerBoundingBox();
|
|
1426
|
-
return
|
|
1679
|
+
return _context9.abrupt("return", {
|
|
1427
1680
|
newElementToSelect: newSelElemIdPrev >= 0 ? newSelElemIdPrev : newSelElemIdNext >= 0 ? newSelElemIdNext : undefined,
|
|
1428
1681
|
transform: transform
|
|
1429
1682
|
});
|
|
1430
1683
|
case 24:
|
|
1431
1684
|
case "end":
|
|
1432
|
-
return
|
|
1685
|
+
return _context9.stop();
|
|
1433
1686
|
}
|
|
1434
|
-
},
|
|
1687
|
+
}, _callee9, this);
|
|
1435
1688
|
}));
|
|
1436
|
-
function deletePlannerElement(
|
|
1689
|
+
function deletePlannerElement(_x17, _x18) {
|
|
1437
1690
|
return _deletePlannerElement.apply(this, arguments);
|
|
1438
1691
|
}
|
|
1439
1692
|
return deletePlannerElement;
|
|
@@ -1525,8 +1778,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1525
1778
|
element.SetPosNr = startSetPosNr + element.PosNr - 1;
|
|
1526
1779
|
this.set.setPosNr(element.ElementId, element.getPosNr());
|
|
1527
1780
|
}
|
|
1528
|
-
for (var
|
|
1529
|
-
if (!elements[
|
|
1781
|
+
for (var _i4 = 0; _i4 < elements.length; _i4++) {
|
|
1782
|
+
if (!elements[_i4].IsAccessoire) this.set.giveAccNewPosNrByBasketId(elements[_i4].getBasketId());
|
|
1530
1783
|
}
|
|
1531
1784
|
return elements.length;
|
|
1532
1785
|
}
|
|
@@ -1543,12 +1796,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1543
1796
|
*/
|
|
1544
1797
|
}, {
|
|
1545
1798
|
key: "updatePlannerTrans",
|
|
1546
|
-
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
|
|
1799
|
+
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
|
|
1547
1800
|
var _this3 = this;
|
|
1548
1801
|
var updateConfig = false;
|
|
1549
1802
|
if (this.plannerElements.has(elementId)) {
|
|
1550
1803
|
var plannerElement = this.plannerElements.get(elementId);
|
|
1551
|
-
plannerElement === null || plannerElement === void 0 || plannerElement.updateDeltaTrans(deltaMove, deltaAngleDeg, rotCorrection, transState == 'END');
|
|
1804
|
+
plannerElement === null || plannerElement === void 0 || plannerElement.updateDeltaTrans(deltaMove, deltaAngleDeg, rotCorrection, transState == 'END', turningPoint);
|
|
1552
1805
|
if (transState == 'START') {
|
|
1553
1806
|
if (plannerElement) {
|
|
1554
1807
|
var dpsToUndock = ['AVR', 'AVL'];
|
|
@@ -1731,8 +1984,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1731
1984
|
}
|
|
1732
1985
|
var shelfPlannerElements = _this5.set.getShelfPlannerData(elemId);
|
|
1733
1986
|
if (shelfPlannerElements) {
|
|
1734
|
-
for (var
|
|
1735
|
-
var accessorire = shelfPlannerElements[
|
|
1987
|
+
for (var _i5 = 0; _i5 < shelfPlannerElements.length; _i5++) {
|
|
1988
|
+
var accessorire = shelfPlannerElements[_i5];
|
|
1736
1989
|
var shelfConfig = _this5.set.getShelfPlannerConfigData(accessorire.basketId).config;
|
|
1737
1990
|
var _accElements2 = [];
|
|
1738
1991
|
if (shelfConfig.accs && shelfConfig.accs.length > 0) {
|