@crystaldesign/web-planner-logic 26.11.0-beta.9 → 26.12.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/{DivaBoxPlanner-02a2dbbf.js → DivaBoxPlanner-104200d4.js} +132 -45
- package/build/cjs/{DivaStandardPlanner-150246c0.js → DivaStandardPlanner-afd61e89.js} +584 -310
- package/build/cjs/{DoorPlanner-ce630754.js → DoorPlanner-58218b20.js} +2 -1
- package/build/cjs/{Host3DSignalR-b0b1fb8d.js → Host3DSignalR-43cccc62.js} +40 -24
- package/build/cjs/{LiviqueWWSHandler-c11ea7d2.js → LiviqueWWSHandler-9ac1d546.js} +2 -1
- package/build/cjs/{PfisterWWSHandler-3c723ecc.js → PfisterWWSHandler-27d3c2f1.js} +2 -1
- package/build/cjs/{PlannerHandler2D-6c0324be.js → PlannerHandler2D-b9e0aa00.js} +1 -1
- package/build/cjs/{SeriousBasketHandler-d1ae4006.js → SeriousBasketHandler-9225ef60.js} +2 -1
- package/build/cjs/{ShelfPlanner-04d98f4d.js → ShelfPlanner-89660e65.js} +261 -148
- package/build/cjs/{StandardWWSHandler-9b596caf.js → StandardWWSHandler-eaf1106a.js} +2 -1
- package/build/cjs/{index-633196ab.js → index-9279cd6b.js} +16313 -14314
- package/build/cjs/index.js +8 -1
- package/build/esm/{DivaBoxPlanner-fa9f6ec6.js → DivaBoxPlanner-49ca2254.js} +132 -45
- package/build/esm/{DivaStandardPlanner-6c001048.js → DivaStandardPlanner-5b1937df.js} +583 -310
- package/build/esm/{DoorPlanner-ef9165f9.js → DoorPlanner-e5d456e3.js} +2 -1
- package/build/esm/{Host3DSignalR-2dc8478a.js → Host3DSignalR-bf8a4afc.js} +40 -24
- package/build/esm/{LiviqueWWSHandler-b6e8bf5f.js → LiviqueWWSHandler-1e537c0a.js} +2 -1
- package/build/esm/{PfisterWWSHandler-54b3e0aa.js → PfisterWWSHandler-6218f972.js} +2 -1
- package/build/esm/{PlannerHandler2D-0e61311d.js → PlannerHandler2D-0e55412b.js} +1 -1
- package/build/esm/{SeriousBasketHandler-7b097870.js → SeriousBasketHandler-b534a712.js} +2 -1
- package/build/esm/{ShelfPlanner-f3e86534.js → ShelfPlanner-5062f0a3.js} +261 -148
- package/build/esm/{StandardWWSHandler-4b0caefd.js → StandardWWSHandler-6c628e60.js} +2 -1
- package/build/esm/{index-6c8de812.js → index-e11ba779.js} +16309 -14315
- package/build/esm/index.js +2 -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 +4 -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 +4 -0
- 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 +145 -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/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/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 +4 -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 +13 -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 +33 -7
- 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/Options/ArticleOptionData.d.ts +4 -0
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +2 -0
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +2 -0
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.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/partlistPosCountDecision.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/partlistPosCountDecision.test.d.ts.map +1 -0
- package/package.json +4 -3
|
@@ -1,18 +1,19 @@
|
|
|
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, P as PlannerElementData, B as BoundingBox } from './index-
|
|
7
|
+
import { V as Vector3, P as PlannerElementData, B as BoundingBox } from './index-e11ba779.js';
|
|
7
8
|
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
8
9
|
import { computeDockedTransform } from '@crystaldesign/planner-2d-core';
|
|
9
|
-
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-
|
|
10
|
+
import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-0e55412b.js';
|
|
10
11
|
import '@babel/runtime/helpers/slicedToArray';
|
|
11
12
|
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
12
|
-
import '@babel/runtime/helpers/toConsumableArray';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import '@crystaldesign/basket-model';
|
|
15
15
|
import '@babel/runtime/helpers/typeof';
|
|
16
|
+
import 'fast-xml-parser';
|
|
16
17
|
import '@babel/runtime/helpers/possibleConstructorReturn';
|
|
17
18
|
import '@babel/runtime/helpers/getPrototypeOf';
|
|
18
19
|
import '@babel/runtime/helpers/inherits';
|
|
@@ -21,6 +22,26 @@ import '@crystaldesign/basket-handler';
|
|
|
21
22
|
import 'socket.io-client';
|
|
22
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,10 +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
|
-
plannerElement.RotDeg = dockedTransform.rotDeg;
|
|
225
|
-
plannerElement.WorldPosCorner = new Vector3(dockedTransform.worldPosCorner.x, dockedTransform.worldPosCorner.y, dockedTransform.worldPosCorner.z);
|
|
226
|
-
plannerElement.WorldPosCornerIgnoreOLF = new Vector3(dockedTransform.worldPosCornerIgnoreOLF.x, dockedTransform.worldPosCornerIgnoreOLF.y, dockedTransform.worldPosCornerIgnoreOLF.z);
|
|
250
|
+
this.applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint);
|
|
227
251
|
updateConfig = this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
228
252
|
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
229
253
|
plannerElement.updatePlannerData(data);
|
|
@@ -232,15 +256,81 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
232
256
|
return updateConfig;
|
|
233
257
|
}
|
|
234
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
|
+
|
|
235
318
|
/**
|
|
236
319
|
* This function updates the position information of all elements. It is called after updating the SVG of 1 element.
|
|
237
320
|
* The position is updated based on the posNr.
|
|
238
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.
|
|
239
326
|
*/
|
|
240
327
|
}, {
|
|
241
328
|
key: "updateAllElementsWorldPos",
|
|
242
|
-
value: function updateAllElementsWorldPos(checkCollisionSingleElementId) {
|
|
329
|
+
value: function updateAllElementsWorldPos(checkCollisionSingleElementId, changedElementIds) {
|
|
243
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
|
+
};
|
|
244
334
|
var updateConfig = false;
|
|
245
335
|
var sortedPlannerElementsbyPosNr = [];
|
|
246
336
|
var accElems = [];
|
|
@@ -261,7 +351,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
261
351
|
var element = sortedPlannerElementsbyPosNr[i];
|
|
262
352
|
alreadyCorrectedId.push(element.ElementId);
|
|
263
353
|
if (i > firstI) {
|
|
264
|
-
var dockingPoints =
|
|
354
|
+
var dockingPoints = getDockedDPsInPriorityOrder(element);
|
|
265
355
|
for (var j = 0; j < dockingPoints.length; j++) {
|
|
266
356
|
//Nur wenn er auf ein element schaut das schon gedockt ist korrigieren
|
|
267
357
|
if (alreadyCorrectedId.indexOf(dockingPoints[j].OnElementId) >= 0) {
|
|
@@ -272,6 +362,38 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
272
362
|
}
|
|
273
363
|
}
|
|
274
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
|
+
}
|
|
275
397
|
this.checkCollision(false, checkCollisionSingleElementId);
|
|
276
398
|
return updateConfig;
|
|
277
399
|
}
|
|
@@ -314,39 +436,39 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
314
436
|
plannerElement.WorldPosCenter = setToTransform.transform.worldPosCenter;
|
|
315
437
|
plannerElement.RotDeg = setToTransform.transform.rotDeg;
|
|
316
438
|
this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
|
|
317
|
-
_context.next =
|
|
439
|
+
_context.next = 48;
|
|
318
440
|
break;
|
|
319
441
|
case 8:
|
|
320
442
|
//Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
|
|
321
443
|
dockingFound = false;
|
|
322
444
|
if (!dockingPointInfos) {
|
|
323
|
-
_context.next =
|
|
445
|
+
_context.next = 47;
|
|
324
446
|
break;
|
|
325
447
|
}
|
|
326
448
|
i = 0;
|
|
327
449
|
case 11:
|
|
328
450
|
if (!(i < dockingPointInfos.length)) {
|
|
329
|
-
_context.next =
|
|
451
|
+
_context.next = 47;
|
|
330
452
|
break;
|
|
331
453
|
}
|
|
332
454
|
targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
|
|
333
455
|
targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
|
|
334
456
|
if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
|
|
335
|
-
_context.next =
|
|
457
|
+
_context.next = 44;
|
|
336
458
|
break;
|
|
337
459
|
}
|
|
338
460
|
if (!(targetDockingPointId && targetDockingPointId != '')) {
|
|
339
|
-
_context.next =
|
|
461
|
+
_context.next = 32;
|
|
340
462
|
break;
|
|
341
463
|
}
|
|
342
464
|
targetElem = this.plannerElements.get(targetElemIdToDock);
|
|
343
465
|
if (!targetElem) {
|
|
344
|
-
_context.next =
|
|
466
|
+
_context.next = 30;
|
|
345
467
|
break;
|
|
346
468
|
}
|
|
347
469
|
targetDP = targetElem.getDockingPointById(targetDockingPointId);
|
|
348
470
|
if (!targetDP) {
|
|
349
|
-
_context.next =
|
|
471
|
+
_context.next = 30;
|
|
350
472
|
break;
|
|
351
473
|
}
|
|
352
474
|
successDP = dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
|
|
@@ -356,17 +478,21 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
356
478
|
}
|
|
357
479
|
this.updateWorldPos(plannerElement, successDP);
|
|
358
480
|
dockingFound = true;
|
|
359
|
-
_context.next =
|
|
481
|
+
_context.next = 30;
|
|
360
482
|
break;
|
|
361
483
|
case 26:
|
|
362
484
|
_context.next = 28;
|
|
363
485
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
364
486
|
case 28:
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
487
|
+
if (!_context.sent) {
|
|
488
|
+
_context.next = 30;
|
|
489
|
+
break;
|
|
490
|
+
}
|
|
491
|
+
dockingFound = true;
|
|
492
|
+
case 30:
|
|
493
|
+
_context.next = 44;
|
|
368
494
|
break;
|
|
369
|
-
case
|
|
495
|
+
case 32:
|
|
370
496
|
success = false;
|
|
371
497
|
if (plannerElement.HasAVL || plannerElement.HasAVR) {
|
|
372
498
|
success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
@@ -375,28 +501,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
375
501
|
success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
376
502
|
}
|
|
377
503
|
if (success) {
|
|
378
|
-
_context.next =
|
|
504
|
+
_context.next = 43;
|
|
379
505
|
break;
|
|
380
506
|
}
|
|
381
|
-
_context.next =
|
|
507
|
+
_context.next = 38;
|
|
382
508
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
383
|
-
case
|
|
509
|
+
case 38:
|
|
384
510
|
success = _context.sent;
|
|
385
511
|
if (success) {
|
|
386
|
-
_context.next =
|
|
512
|
+
_context.next = 43;
|
|
387
513
|
break;
|
|
388
514
|
}
|
|
389
|
-
_context.next =
|
|
515
|
+
_context.next = 42;
|
|
390
516
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
|
|
391
|
-
case 41:
|
|
392
|
-
return _context.abrupt("return");
|
|
393
517
|
case 42:
|
|
394
|
-
|
|
518
|
+
return _context.abrupt("return");
|
|
395
519
|
case 43:
|
|
520
|
+
if (success) dockingFound = true;
|
|
521
|
+
case 44:
|
|
396
522
|
i++;
|
|
397
523
|
_context.next = 11;
|
|
398
524
|
break;
|
|
399
|
-
case
|
|
525
|
+
case 47:
|
|
400
526
|
if (!dockingFound) {
|
|
401
527
|
allPlannerElements = this.getAllPlannerElements();
|
|
402
528
|
_success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
|
|
@@ -417,13 +543,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
417
543
|
}
|
|
418
544
|
}
|
|
419
545
|
}
|
|
420
|
-
case
|
|
546
|
+
case 48:
|
|
421
547
|
this.updatePlannerPosNr();
|
|
422
548
|
this.updateAllElementsWorldPos();
|
|
423
549
|
this.updatePlannerPosNr();
|
|
424
550
|
this.checkCollision(false, plannerElement.getElementId());
|
|
425
551
|
this.updatePlannerBoundingBox();
|
|
426
|
-
case
|
|
552
|
+
case 53:
|
|
427
553
|
case "end":
|
|
428
554
|
return _context.stop();
|
|
429
555
|
}
|
|
@@ -438,7 +564,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
438
564
|
key: "tryToDockWithDifferentSVGWithFormula",
|
|
439
565
|
value: function () {
|
|
440
566
|
var _tryToDockWithDifferentSVGWithFormula = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2(plannerElement, targetElemIdToDock) {
|
|
441
|
-
var success, article, origVariantValues, svgsWithFormula, i,
|
|
567
|
+
var success, article, origVariantValues, svgsWithFormula, i, vv, targetFilterCandidates, _i2, v, _i3, elements, variantValues, key;
|
|
442
568
|
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
443
569
|
while (1) switch (_context2.prev = _context2.next) {
|
|
444
570
|
case 0:
|
|
@@ -448,92 +574,107 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
448
574
|
origVariantValues = article === null || article === void 0 ? void 0 : article.VariantValues;
|
|
449
575
|
svgsWithFormula = plannerElement.getSVGsWithFormula();
|
|
450
576
|
if (!(plannerElement.FilterAVL.length || plannerElement.FilterAVR.length)) {
|
|
451
|
-
_context2.next =
|
|
577
|
+
_context2.next = 52;
|
|
452
578
|
break;
|
|
453
579
|
}
|
|
454
580
|
if (!(svgsWithFormula !== null && svgsWithFormula !== void 0 && svgsWithFormula.length)) {
|
|
455
|
-
_context2.next =
|
|
581
|
+
_context2.next = 18;
|
|
456
582
|
break;
|
|
457
583
|
}
|
|
458
584
|
i = 0;
|
|
459
585
|
case 7:
|
|
460
586
|
if (!(i < svgsWithFormula.length)) {
|
|
461
|
-
_context2.next =
|
|
587
|
+
_context2.next = 18;
|
|
462
588
|
break;
|
|
463
589
|
}
|
|
464
|
-
elements = new Map();
|
|
465
|
-
variantValues = new Map();
|
|
466
590
|
vv = DivaUtils.getVariantValuesFromRule(svgsWithFormula[i].JsFormula, {});
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
_context2.next = 15;
|
|
472
|
-
return this.set.updateCfgValuesByPlanner(elements, true);
|
|
473
|
-
case 15:
|
|
474
|
-
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;
|
|
475
595
|
if (!success) {
|
|
476
|
-
_context2.next =
|
|
596
|
+
_context2.next = 15;
|
|
477
597
|
break;
|
|
478
598
|
}
|
|
479
599
|
//svg did match
|
|
480
600
|
LOG.debug('svgWithFormula nr: ' + i + ' did dock: ' + svgsWithFormula[i].SVG);
|
|
481
|
-
return _context2.abrupt("break",
|
|
482
|
-
case
|
|
601
|
+
return _context2.abrupt("break", 18);
|
|
602
|
+
case 15:
|
|
483
603
|
i++;
|
|
484
604
|
_context2.next = 7;
|
|
485
605
|
break;
|
|
486
|
-
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:
|
|
487
633
|
//other logic. look for decisions with featrue 90 or 89 and try change the options that influence 90 - 89
|
|
488
634
|
v = plannerElement.getVaraintValuesInfluencingAVLAVRFilter();
|
|
489
635
|
if (!(v !== null && v !== void 0 && v.length && !success)) {
|
|
490
|
-
_context2.next =
|
|
636
|
+
_context2.next = 44;
|
|
491
637
|
break;
|
|
492
638
|
}
|
|
493
|
-
|
|
494
|
-
case
|
|
495
|
-
if (!(
|
|
496
|
-
_context2.next =
|
|
639
|
+
_i3 = 0;
|
|
640
|
+
case 34:
|
|
641
|
+
if (!(_i3 < v.length && _i3 < 20)) {
|
|
642
|
+
_context2.next = 44;
|
|
497
643
|
break;
|
|
498
644
|
}
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
_variantValues.set(_key, _vv[_key]);
|
|
504
|
-
}
|
|
505
|
-
_elements.set(plannerElement.ElementId, _variantValues);
|
|
506
|
-
_context2.next = 33;
|
|
507
|
-
return this.set.updateCfgValuesByPlanner(_elements, true);
|
|
508
|
-
case 33:
|
|
509
|
-
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;
|
|
510
649
|
if (!success) {
|
|
511
|
-
_context2.next =
|
|
650
|
+
_context2.next = 41;
|
|
512
651
|
break;
|
|
513
652
|
}
|
|
514
653
|
//variantValues did match
|
|
515
|
-
LOG.debug('following variantValues did dock: ',
|
|
516
|
-
return _context2.abrupt("break",
|
|
517
|
-
case
|
|
518
|
-
|
|
519
|
-
_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;
|
|
520
659
|
break;
|
|
521
|
-
case
|
|
660
|
+
case 44:
|
|
522
661
|
if (success) {
|
|
523
|
-
_context2.next =
|
|
662
|
+
_context2.next = 52;
|
|
524
663
|
break;
|
|
525
664
|
}
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
for (
|
|
529
|
-
|
|
665
|
+
elements = new Map();
|
|
666
|
+
variantValues = new Map();
|
|
667
|
+
for (key in origVariantValues) {
|
|
668
|
+
variantValues.set(key, origVariantValues[key]);
|
|
530
669
|
}
|
|
531
|
-
|
|
532
|
-
_context2.next =
|
|
533
|
-
return this.set.updateCfgValuesByPlanner(
|
|
534
|
-
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:
|
|
535
676
|
return _context2.abrupt("return", success);
|
|
536
|
-
case
|
|
677
|
+
case 53:
|
|
537
678
|
case "end":
|
|
538
679
|
return _context2.stop();
|
|
539
680
|
}
|
|
@@ -544,6 +685,91 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
544
685
|
}
|
|
545
686
|
return tryToDockWithDifferentSVGWithFormula;
|
|
546
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
|
+
}
|
|
547
773
|
}, {
|
|
548
774
|
key: "dockToAVLorAVR",
|
|
549
775
|
value: function dockToAVLorAVR(plannerElement, targetElements) {
|
|
@@ -721,31 +947,31 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
721
947
|
}, {
|
|
722
948
|
key: "updatePlanner",
|
|
723
949
|
value: function () {
|
|
724
|
-
var _updatePlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
950
|
+
var _updatePlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {
|
|
725
951
|
var allPlannerElements, elemtsWhereSomethingChanged, i, elem, doReload, elementsToDelete, elementsLostDockingRelation;
|
|
726
|
-
return _regeneratorRuntime.wrap(function
|
|
727
|
-
while (1) switch (
|
|
952
|
+
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
953
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
728
954
|
case 0:
|
|
729
955
|
allPlannerElements = this.getAllPlannerElements();
|
|
730
956
|
elemtsWhereSomethingChanged = [];
|
|
731
957
|
i = 0;
|
|
732
958
|
case 3:
|
|
733
959
|
if (!(i < allPlannerElements.length)) {
|
|
734
|
-
|
|
960
|
+
_context4.next = 13;
|
|
735
961
|
break;
|
|
736
962
|
}
|
|
737
963
|
elem = allPlannerElements[i];
|
|
738
964
|
doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
|
|
739
965
|
if (!doReload) {
|
|
740
|
-
|
|
966
|
+
_context4.next = 10;
|
|
741
967
|
break;
|
|
742
968
|
}
|
|
743
969
|
elemtsWhereSomethingChanged.push(elem.ElementId);
|
|
744
|
-
|
|
970
|
+
_context4.next = 10;
|
|
745
971
|
return handler2D.loadSVG(elem, this.set);
|
|
746
972
|
case 10:
|
|
747
973
|
i++;
|
|
748
|
-
|
|
974
|
+
_context4.next = 3;
|
|
749
975
|
break;
|
|
750
976
|
case 13:
|
|
751
977
|
elementsToDelete = [];
|
|
@@ -758,11 +984,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
758
984
|
elementsToDelete.push(elementsLostDockingRelation[i].ElementId);
|
|
759
985
|
}
|
|
760
986
|
}
|
|
761
|
-
this.updateAllElementsWorldPos();
|
|
987
|
+
this.updateAllElementsWorldPos(undefined, elemtsWhereSomethingChanged);
|
|
762
988
|
this.updatePlannerPosNr();
|
|
763
989
|
this.updatePlannerBoundingBox();
|
|
764
990
|
}
|
|
765
|
-
return
|
|
991
|
+
return _context4.abrupt("return", {
|
|
766
992
|
doDeleteBackGrid: false,
|
|
767
993
|
elemIdsToDelete: elementsToDelete,
|
|
768
994
|
elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
|
|
@@ -770,9 +996,9 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
770
996
|
});
|
|
771
997
|
case 16:
|
|
772
998
|
case "end":
|
|
773
|
-
return
|
|
999
|
+
return _context4.stop();
|
|
774
1000
|
}
|
|
775
|
-
},
|
|
1001
|
+
}, _callee4, this);
|
|
776
1002
|
}));
|
|
777
1003
|
function updatePlanner() {
|
|
778
1004
|
return _updatePlanner.apply(this, arguments);
|
|
@@ -787,15 +1013,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
787
1013
|
}, {
|
|
788
1014
|
key: "extendPlanner",
|
|
789
1015
|
value: (function () {
|
|
790
|
-
var _extendPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
791
|
-
var
|
|
792
|
-
return _regeneratorRuntime.wrap(function
|
|
793
|
-
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) {
|
|
794
1020
|
case 0:
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
_context4.next = 40;
|
|
1021
|
+
planData = parseSetPlanData(setPlanData);
|
|
1022
|
+
if (!isSavePlannerV2(planData)) {
|
|
1023
|
+
_context5.next = 39;
|
|
799
1024
|
break;
|
|
800
1025
|
}
|
|
801
1026
|
jsonElements = planData.set.elements;
|
|
@@ -803,70 +1028,70 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
803
1028
|
accElements = [];
|
|
804
1029
|
oldElementidMapping = new Map(); //First reset planner element values in jsonElement so that every set is planned to be set to origin
|
|
805
1030
|
i = 0;
|
|
806
|
-
case
|
|
1031
|
+
case 7:
|
|
807
1032
|
if (!(i < jsonElements.length)) {
|
|
808
|
-
|
|
1033
|
+
_context5.next = 35;
|
|
809
1034
|
break;
|
|
810
1035
|
}
|
|
811
|
-
|
|
1036
|
+
_context5.prev = 8;
|
|
812
1037
|
jsonElement = jsonElements[i];
|
|
813
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1038
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo !== void 0 ? _saveElementArticleCo : '');
|
|
814
1039
|
if (!(!catalogArticle && (_jsonElement$Accessoi = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi !== void 0 && _jsonElement$Accessoi.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
815
|
-
|
|
1040
|
+
_context5.next = 14;
|
|
816
1041
|
break;
|
|
817
1042
|
}
|
|
818
1043
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
819
1044
|
code: 'WC_0012'
|
|
820
1045
|
}));
|
|
821
|
-
return
|
|
822
|
-
case
|
|
1046
|
+
return _context5.abrupt("continue", 32);
|
|
1047
|
+
case 14:
|
|
823
1048
|
plannerElement = new PlannerElementData(this.set.getSetId(), jsonElement.basketID, this.nextElementId, DivaStandardPlanner.plannerType);
|
|
824
|
-
oldElementidMapping.set(
|
|
1049
|
+
oldElementidMapping.set(jsonElement.elementID, plannerElement);
|
|
825
1050
|
this.nextElementId = plannerElement.getElementId() + 1;
|
|
826
1051
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
827
1052
|
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
828
1053
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
829
1054
|
plannerElement.updatePlannerData(data);
|
|
830
1055
|
if (this.doDisablePlanner2D) {
|
|
831
|
-
|
|
1056
|
+
_context5.next = 24;
|
|
832
1057
|
break;
|
|
833
1058
|
}
|
|
834
|
-
|
|
1059
|
+
_context5.next = 24;
|
|
835
1060
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
836
|
-
case
|
|
1061
|
+
case 24:
|
|
837
1062
|
plannerElement.WorldPosCenter = new Vector3(globalBoundingBox.WorldPos.x + globalBoundingBox.Size.x + jsonElement.x + 100, globalBoundingBox.WorldPos.y + jsonElement.y, globalBoundingBox.WorldPos.z + jsonElement.z);
|
|
838
1063
|
plannerElement.RotDeg = jsonElement.rot;
|
|
839
1064
|
if (plannerElement.IsDockedAccessoire) {
|
|
840
1065
|
accElements.push(jsonElement);
|
|
841
1066
|
plannerElement.PosNr = jsonElement.posNr;
|
|
842
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1067
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
843
1068
|
} else {
|
|
844
1069
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
845
1070
|
plannerElement.PosNr = jsonElement.posNr;
|
|
846
1071
|
}
|
|
847
|
-
|
|
1072
|
+
_context5.next = 32;
|
|
848
1073
|
break;
|
|
849
|
-
case
|
|
850
|
-
|
|
851
|
-
|
|
1074
|
+
case 29:
|
|
1075
|
+
_context5.prev = 29;
|
|
1076
|
+
_context5.t0 = _context5["catch"](8);
|
|
852
1077
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
853
|
-
cause:
|
|
1078
|
+
cause: _context5.t0,
|
|
854
1079
|
code: 'WC_0012'
|
|
855
1080
|
}));
|
|
856
|
-
case
|
|
1081
|
+
case 32:
|
|
857
1082
|
i++;
|
|
858
|
-
|
|
1083
|
+
_context5.next = 7;
|
|
859
1084
|
break;
|
|
860
|
-
case
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
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) {
|
|
867
1093
|
if (i > 0) {
|
|
868
|
-
|
|
869
|
-
DPsInfo = elementsSortedbyPosNr[i].DP;
|
|
1094
|
+
DPsInfo = row.DP;
|
|
870
1095
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
871
1096
|
dpInfo = DPsInfo[j];
|
|
872
1097
|
sourceDP = curElement === null || curElement === void 0 ? void 0 : curElement.getDockingPointById(dpInfo.id);
|
|
@@ -879,19 +1104,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
879
1104
|
}
|
|
880
1105
|
}
|
|
881
1106
|
}
|
|
882
|
-
|
|
1107
|
+
_context5.next = 40;
|
|
883
1108
|
break;
|
|
884
|
-
case
|
|
1109
|
+
case 39:
|
|
885
1110
|
LOG.error(new DivaError('The function extend Planner works only with products that are saved in the configurator 2.0', {
|
|
886
1111
|
code: 'WC_0012'
|
|
887
1112
|
}));
|
|
888
|
-
case
|
|
1113
|
+
case 40:
|
|
889
1114
|
case "end":
|
|
890
|
-
return
|
|
1115
|
+
return _context5.stop();
|
|
891
1116
|
}
|
|
892
|
-
},
|
|
1117
|
+
}, _callee5, this, [[8, 29]]);
|
|
893
1118
|
}));
|
|
894
|
-
function extendPlanner(
|
|
1119
|
+
function extendPlanner(_x10, _x11) {
|
|
895
1120
|
return _extendPlanner.apply(this, arguments);
|
|
896
1121
|
}
|
|
897
1122
|
return extendPlanner;
|
|
@@ -899,47 +1124,45 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
899
1124
|
}, {
|
|
900
1125
|
key: "initPlanner",
|
|
901
1126
|
value: function () {
|
|
902
|
-
var _initPlanner = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
903
|
-
var
|
|
904
|
-
return _regeneratorRuntime.wrap(function
|
|
905
|
-
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) {
|
|
906
1131
|
case 0:
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
_context5.next = 62;
|
|
1132
|
+
planData = parseSetPlanData(setPlanData);
|
|
1133
|
+
if (!isSavePlannerV2(planData)) {
|
|
1134
|
+
_context6.next = 63;
|
|
911
1135
|
break;
|
|
912
1136
|
}
|
|
913
1137
|
LOG.debug('Initialize set Plan Data - V2\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
914
|
-
if (
|
|
915
|
-
|
|
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;
|
|
916
1140
|
break;
|
|
917
1141
|
}
|
|
918
|
-
return
|
|
919
|
-
case
|
|
920
|
-
//Init new saved Plannings
|
|
1142
|
+
return _context6.abrupt("return");
|
|
1143
|
+
case 5:
|
|
921
1144
|
jsonElements = planData.set.elements;
|
|
922
1145
|
elementsSortedbyPosNr = [];
|
|
923
1146
|
accElements = [];
|
|
924
1147
|
i = 0;
|
|
925
|
-
case
|
|
1148
|
+
case 9:
|
|
926
1149
|
if (!(i < jsonElements.length)) {
|
|
927
|
-
|
|
1150
|
+
_context6.next = 37;
|
|
928
1151
|
break;
|
|
929
1152
|
}
|
|
930
|
-
|
|
1153
|
+
_context6.prev = 10;
|
|
931
1154
|
jsonElement = jsonElements[i];
|
|
932
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1155
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo2 = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo2 !== void 0 ? _saveElementArticleCo2 : '');
|
|
933
1156
|
if (!(!catalogArticle && (_jsonElement$Accessoi2 = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi2 !== void 0 && _jsonElement$Accessoi2.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
934
|
-
|
|
1157
|
+
_context6.next = 16;
|
|
935
1158
|
break;
|
|
936
1159
|
}
|
|
937
1160
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
938
1161
|
code: 'WC_0012'
|
|
939
1162
|
}));
|
|
940
|
-
return
|
|
941
|
-
case
|
|
942
|
-
elementID =
|
|
1163
|
+
return _context6.abrupt("continue", 34);
|
|
1164
|
+
case 16:
|
|
1165
|
+
elementID = jsonElement.elementID;
|
|
943
1166
|
plannerElement = new PlannerElementData(this.set.getSetId(), jsonElement.basketID, elementID, DivaStandardPlanner.plannerType);
|
|
944
1167
|
this.nextElementId = elementID + 1;
|
|
945
1168
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
@@ -947,12 +1170,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
947
1170
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
948
1171
|
plannerElement.updatePlannerData(data);
|
|
949
1172
|
if (this.doDisablePlanner2D) {
|
|
950
|
-
|
|
1173
|
+
_context6.next = 26;
|
|
951
1174
|
break;
|
|
952
1175
|
}
|
|
953
|
-
|
|
1176
|
+
_context6.next = 26;
|
|
954
1177
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
955
|
-
case
|
|
1178
|
+
case 26:
|
|
956
1179
|
//Im neuen speichern ist die Position hinten link - nicht mehr im Centrum wie im alten Planer
|
|
957
1180
|
//plannerElement.WorldPosCenter = new Vector3(jsonElement.x, jsonElement.y, jsonElement.z);
|
|
958
1181
|
plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + jsonElement.x, this.plannerBoundingBox.WorldPos.y + jsonElement.y, this.plannerBoundingBox.WorldPos.z + jsonElement.z);
|
|
@@ -960,141 +1183,151 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
960
1183
|
if (plannerElement.IsDockedAccessoire) {
|
|
961
1184
|
accElements.push(jsonElement);
|
|
962
1185
|
plannerElement.PosNr = jsonElement.posNr;
|
|
963
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1186
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
964
1187
|
} else {
|
|
965
1188
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
966
1189
|
plannerElement.PosNr = jsonElement.posNr;
|
|
967
1190
|
}
|
|
968
|
-
|
|
1191
|
+
_context6.next = 34;
|
|
969
1192
|
break;
|
|
970
|
-
case
|
|
971
|
-
|
|
972
|
-
|
|
1193
|
+
case 31:
|
|
1194
|
+
_context6.prev = 31;
|
|
1195
|
+
_context6.t0 = _context6["catch"](10);
|
|
973
1196
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
974
|
-
cause:
|
|
1197
|
+
cause: _context6.t0,
|
|
975
1198
|
code: 'WC_0012'
|
|
976
1199
|
}));
|
|
977
|
-
case
|
|
1200
|
+
case 34:
|
|
978
1201
|
i++;
|
|
979
|
-
|
|
1202
|
+
_context6.next = 9;
|
|
980
1203
|
break;
|
|
981
|
-
case
|
|
982
|
-
onlyOneBaseElement = elementsSortedbyPosNr.length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
983
|
-
|
|
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);
|
|
984
1209
|
i = 0;
|
|
985
|
-
case
|
|
986
|
-
if (!(i <
|
|
987
|
-
|
|
1210
|
+
case 40:
|
|
1211
|
+
if (!(i < elementsForDocking.length)) {
|
|
1212
|
+
_context6.next = 61;
|
|
988
1213
|
break;
|
|
989
1214
|
}
|
|
990
|
-
|
|
1215
|
+
_context6.prev = 41;
|
|
1216
|
+
row = elementsForDocking[i];
|
|
991
1217
|
if (!(i == 0 && onlyOneBaseElement && this.plannerHasStaticBackground)) {
|
|
992
|
-
|
|
1218
|
+
_context6.next = 48;
|
|
993
1219
|
break;
|
|
994
1220
|
}
|
|
995
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.
|
|
996
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
|
|
997
1224
|
_jsonElement = elementsSortedbyPosNr[i];
|
|
998
|
-
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;
|
|
999
1226
|
if (!hasSavedPos) {
|
|
1000
|
-
element = this.plannerElements.get(
|
|
1227
|
+
element = this.plannerElements.get(row.elementID);
|
|
1001
1228
|
if (element) element.WorldPosCenter = new Vector3(0, element.Height / 2, element.Depth / 2);
|
|
1002
1229
|
}
|
|
1003
|
-
return
|
|
1230
|
+
return _context6.abrupt("continue", 58);
|
|
1004
1231
|
case 48:
|
|
1005
|
-
if (!(
|
|
1006
|
-
|
|
1232
|
+
if (!(row.DP == null || row.DP.length == 0)) {
|
|
1233
|
+
_context6.next = 50;
|
|
1007
1234
|
break;
|
|
1008
1235
|
}
|
|
1009
|
-
return
|
|
1236
|
+
return _context6.abrupt("continue", 58);
|
|
1010
1237
|
case 50:
|
|
1011
|
-
DPsInfo =
|
|
1238
|
+
DPsInfo = row.DP;
|
|
1012
1239
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
1013
1240
|
dpInfo = DPsInfo[j];
|
|
1014
|
-
if (dpInfo.id && dpInfo.
|
|
1015
|
-
sourceElement = this.plannerElements.get(
|
|
1241
|
+
if (dpInfo.id && dpInfo.onID != null && dpInfo.onDPID) {
|
|
1242
|
+
sourceElement = this.plannerElements.get(row.elementID);
|
|
1016
1243
|
sourceDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getDockingPointById(dpInfo.id);
|
|
1017
1244
|
targetElement = this.plannerElements.get(dpInfo.onID);
|
|
1018
1245
|
targetDP = targetElement === null || targetElement === void 0 ? void 0 : targetElement.getDockingPointById(dpInfo.onDPID);
|
|
1019
1246
|
if (sourceDP && targetDP) {
|
|
1020
|
-
|
|
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
|
+
}));
|
|
1021
1253
|
} else {
|
|
1022
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));
|
|
1023
1255
|
}
|
|
1024
1256
|
}
|
|
1025
1257
|
}
|
|
1026
|
-
|
|
1258
|
+
_context6.next = 58;
|
|
1027
1259
|
break;
|
|
1028
1260
|
case 54:
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
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,
|
|
1033
1266
|
code: 'WC_0012'
|
|
1034
1267
|
}));
|
|
1035
|
-
case
|
|
1268
|
+
case 58:
|
|
1036
1269
|
i++;
|
|
1037
|
-
|
|
1270
|
+
_context6.next = 40;
|
|
1038
1271
|
break;
|
|
1039
|
-
case
|
|
1040
|
-
|
|
1272
|
+
case 61:
|
|
1273
|
+
_context6.next = 116;
|
|
1041
1274
|
break;
|
|
1042
|
-
case
|
|
1275
|
+
case 63:
|
|
1043
1276
|
LOG.debug('Initialize set Plan Data - old V1\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
1044
|
-
|
|
1045
|
-
|
|
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;
|
|
1046
1280
|
break;
|
|
1047
1281
|
}
|
|
1048
|
-
return
|
|
1049
|
-
case
|
|
1050
|
-
|
|
1051
|
-
_jsonElements = planData.Sets[0].Elements;
|
|
1282
|
+
return _context6.abrupt("return");
|
|
1283
|
+
case 67:
|
|
1284
|
+
_jsonElements = legacySet.Elements;
|
|
1052
1285
|
_elementsSortedbyPosNr = [];
|
|
1053
1286
|
_accElements = []; //Zuerst initialisiere alle Elemente
|
|
1054
1287
|
//Dann positioniere sie richtig
|
|
1055
1288
|
i = 0;
|
|
1056
|
-
case
|
|
1289
|
+
case 71:
|
|
1057
1290
|
if (!(i < _jsonElements.length)) {
|
|
1058
|
-
|
|
1291
|
+
_context6.next = 105;
|
|
1059
1292
|
break;
|
|
1060
1293
|
}
|
|
1061
|
-
|
|
1294
|
+
_context6.prev = 72;
|
|
1062
1295
|
_jsonElement2 = _jsonElements[i];
|
|
1063
|
-
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1296
|
+
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo3 = saveElementArticleCodex(_jsonElement2)) !== null && _saveElementArticleCo3 !== void 0 ? _saveElementArticleCo3 : '');
|
|
1064
1297
|
if (!(!_catalogArticle && (_jsonElement2$Accesso = _jsonElement2.AccessoireInitParams) !== null && _jsonElement2$Accesso !== void 0 && _jsonElement2$Accesso.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
1065
|
-
|
|
1298
|
+
_context6.next = 78;
|
|
1066
1299
|
break;
|
|
1067
1300
|
}
|
|
1068
|
-
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', {
|
|
1069
1302
|
code: 'WC_0012'
|
|
1070
1303
|
}));
|
|
1071
|
-
return
|
|
1072
|
-
case
|
|
1304
|
+
return _context6.abrupt("continue", 102);
|
|
1305
|
+
case 78:
|
|
1073
1306
|
basketID = _jsonElement2.BasketID;
|
|
1074
1307
|
if (this.set.getElementId(basketID) == -1) this.set.setElementId(basketID, Number(_jsonElement2.ID));
|
|
1075
|
-
|
|
1076
|
-
_jsonElement2.elementId =
|
|
1077
|
-
if (!(
|
|
1078
|
-
|
|
1308
|
+
_elementId = this.set.getElementId(basketID);
|
|
1309
|
+
_jsonElement2.elementId = _elementId;
|
|
1310
|
+
if (!(_elementId == -1)) {
|
|
1311
|
+
_context6.next = 85;
|
|
1079
1312
|
break;
|
|
1080
1313
|
}
|
|
1081
1314
|
LOG.error(new DivaError('Error when initializing planner. The elementID Was not saved in the article. ', {
|
|
1082
1315
|
code: 'WC_0012'
|
|
1083
1316
|
}));
|
|
1084
|
-
return
|
|
1085
|
-
case
|
|
1086
|
-
_plannerElement = new PlannerElementData(this.set.getSetId(), basketID,
|
|
1087
|
-
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;
|
|
1088
1321
|
this.plannerElements.set(_plannerElement.ElementId, _plannerElement);
|
|
1089
1322
|
_data = this.set.getPlannerData(_plannerElement.ElementId);
|
|
1090
1323
|
_plannerElement.updatePlannerData(_data);
|
|
1091
1324
|
if (this.doDisablePlanner2D) {
|
|
1092
|
-
|
|
1325
|
+
_context6.next = 93;
|
|
1093
1326
|
break;
|
|
1094
1327
|
}
|
|
1095
|
-
|
|
1328
|
+
_context6.next = 93;
|
|
1096
1329
|
return handler2D.loadSVG(_plannerElement, this.set);
|
|
1097
|
-
case
|
|
1330
|
+
case 93:
|
|
1098
1331
|
//Achtung die Pos Infos im alten Planer waren Zentrumskoordinaten!!! Nicht hinten oben.
|
|
1099
1332
|
centerWorldPos = new Vector3(_jsonElement2.PosX, _jsonElement2.PosZ, _jsonElement2.PosY);
|
|
1100
1333
|
_plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + centerWorldPos.x, this.plannerBoundingBox.WorldPos.y + centerWorldPos.y, this.plannerBoundingBox.WorldPos.z + centerWorldPos.z);
|
|
@@ -1104,72 +1337,77 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1104
1337
|
if (_jsonElement2.PosNum.toString().indexOf('.') > 0) {
|
|
1105
1338
|
parentPosNr = _jsonElement2.PosNum.toString().split('.')[0];
|
|
1106
1339
|
accPosNr = _jsonElement2.PosNum.toString().split('.')[1];
|
|
1107
|
-
_plannerElement.PosNr = parentPosNr;
|
|
1108
|
-
_plannerElement.AccessoirePosNr = accPosNr;
|
|
1340
|
+
_plannerElement.PosNr = Number(parentPosNr);
|
|
1341
|
+
_plannerElement.AccessoirePosNr = Number(accPosNr);
|
|
1109
1342
|
}
|
|
1110
1343
|
} else {
|
|
1111
1344
|
_elementsSortedbyPosNr[_jsonElement2.PosNum - 1] = _jsonElement2;
|
|
1112
1345
|
_plannerElement.PosNr = _jsonElement2.PosNum;
|
|
1113
1346
|
}
|
|
1114
|
-
|
|
1347
|
+
_context6.next = 102;
|
|
1115
1348
|
break;
|
|
1116
|
-
case
|
|
1117
|
-
|
|
1118
|
-
|
|
1349
|
+
case 99:
|
|
1350
|
+
_context6.prev = 99;
|
|
1351
|
+
_context6.t2 = _context6["catch"](72);
|
|
1119
1352
|
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner - Plan Data old Planner', {
|
|
1120
|
-
cause:
|
|
1353
|
+
cause: _context6.t2,
|
|
1121
1354
|
code: 'WC_0012'
|
|
1122
1355
|
}));
|
|
1123
|
-
case
|
|
1356
|
+
case 102:
|
|
1124
1357
|
i++;
|
|
1125
|
-
|
|
1358
|
+
_context6.next = 71;
|
|
1126
1359
|
break;
|
|
1127
|
-
case 103:
|
|
1128
|
-
_elementsSortedbyPosNr = _elementsSortedbyPosNr.concat(_accElements);
|
|
1129
|
-
//Dann werden die DockingPoints durchgegangen und die jeweils richtigen müssen gesucht werden.
|
|
1130
|
-
i = 0;
|
|
1131
1360
|
case 105:
|
|
1132
|
-
|
|
1133
|
-
|
|
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;
|
|
1134
1368
|
break;
|
|
1135
1369
|
}
|
|
1136
|
-
|
|
1137
|
-
|
|
1370
|
+
_row = elementsForDockingV1[i];
|
|
1371
|
+
if (!(_row.DP == null || _row.DP.length == 0)) {
|
|
1372
|
+
_context6.next = 111;
|
|
1138
1373
|
break;
|
|
1139
1374
|
}
|
|
1140
|
-
return
|
|
1141
|
-
case
|
|
1142
|
-
_DPsInfo =
|
|
1375
|
+
return _context6.abrupt("continue", 113);
|
|
1376
|
+
case 111:
|
|
1377
|
+
_DPsInfo = _row.DP;
|
|
1143
1378
|
for (j = 0; j < _DPsInfo.length; j++) {
|
|
1144
1379
|
_dpInfo = _DPsInfo[j];
|
|
1145
1380
|
if (_dpInfo.DP && _dpInfo.DP != '' && _dpInfo.onID && _dpInfo.onID != '') {
|
|
1146
|
-
targetElementId = parseInt(_dpInfo.onID);
|
|
1381
|
+
targetElementId = parseInt(String(_dpInfo.onID));
|
|
1147
1382
|
dpType = _dpInfo.DP;
|
|
1148
|
-
curElement = this.plannerElements.get(
|
|
1383
|
+
curElement = _row.elementId != null ? this.plannerElements.get(_row.elementId) : undefined;
|
|
1149
1384
|
_targetElement = (_this$plannerElements = this.plannerElements.get(targetElementId)) !== null && _this$plannerElements !== void 0 ? _this$plannerElements : this.getPlannerElementByIndex(targetElementId - 1);
|
|
1150
1385
|
if (curElement && _targetElement) {
|
|
1151
1386
|
dockingPointHandlerInst.initDockingPointRelationByArea(curElement, _targetElement, dpType);
|
|
1152
1387
|
} else {
|
|
1153
|
-
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, {
|
|
1154
1389
|
code: 'WC_0012'
|
|
1155
1390
|
}));
|
|
1156
1391
|
}
|
|
1157
1392
|
}
|
|
1158
1393
|
}
|
|
1159
|
-
case
|
|
1394
|
+
case 113:
|
|
1160
1395
|
i++;
|
|
1161
|
-
|
|
1396
|
+
_context6.next = 107;
|
|
1162
1397
|
break;
|
|
1163
|
-
case
|
|
1164
|
-
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);
|
|
1165
1403
|
this.updatePlannerPosNr();
|
|
1166
|
-
case
|
|
1404
|
+
case 119:
|
|
1167
1405
|
case "end":
|
|
1168
|
-
return
|
|
1406
|
+
return _context6.stop();
|
|
1169
1407
|
}
|
|
1170
|
-
},
|
|
1408
|
+
}, _callee6, this, [[10, 31], [41, 54], [72, 99]]);
|
|
1171
1409
|
}));
|
|
1172
|
-
function initPlanner(
|
|
1410
|
+
function initPlanner(_x12) {
|
|
1173
1411
|
return _initPlanner.apply(this, arguments);
|
|
1174
1412
|
}
|
|
1175
1413
|
return initPlanner;
|
|
@@ -1188,11 +1426,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1188
1426
|
}, {
|
|
1189
1427
|
key: "addPlannerElement",
|
|
1190
1428
|
value: function () {
|
|
1191
|
-
var _addPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1429
|
+
var _addPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee7(basketID, params) {
|
|
1192
1430
|
var _params$dockingPointI, _t$, _t$2, _t$3;
|
|
1193
1431
|
var plannerElement, data, t;
|
|
1194
|
-
return _regeneratorRuntime.wrap(function
|
|
1195
|
-
while (1) switch (
|
|
1432
|
+
return _regeneratorRuntime.wrap(function _callee7$(_context7) {
|
|
1433
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
1196
1434
|
case 0:
|
|
1197
1435
|
// _elementId: number, _setId: string, _basketId: string, elementInitProp: any, catalogElement: CatalogPlannerArticleData
|
|
1198
1436
|
plannerElement = new PlannerElementData(this.set.getSetId(), basketID, this.nextElementId, DivaStandardPlanner.plannerType /*, this.set.getSetId(), basketID, elementInitProp, catalogElement*/);
|
|
@@ -1203,10 +1441,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1203
1441
|
plannerElement.updatePlannerData(data);
|
|
1204
1442
|
//Do load the svg
|
|
1205
1443
|
if (this.doDisablePlanner2D) {
|
|
1206
|
-
|
|
1444
|
+
_context7.next = 9;
|
|
1207
1445
|
break;
|
|
1208
1446
|
}
|
|
1209
|
-
|
|
1447
|
+
_context7.next = 9;
|
|
1210
1448
|
return handler2D.loadSVG(plannerElement, this.set);
|
|
1211
1449
|
case 9:
|
|
1212
1450
|
t = (_params$dockingPointI = params.dockingPointInfos) !== null && _params$dockingPointI !== void 0 ? _params$dockingPointI : [{
|
|
@@ -1214,49 +1452,49 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1214
1452
|
targetElemIdToDock: params.targetElemIdToDock
|
|
1215
1453
|
}];
|
|
1216
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)) {
|
|
1217
|
-
|
|
1455
|
+
_context7.next = 15;
|
|
1218
1456
|
break;
|
|
1219
1457
|
}
|
|
1220
|
-
|
|
1458
|
+
_context7.next = 13;
|
|
1221
1459
|
return this.addElementToWorld(plannerElement, t);
|
|
1222
1460
|
case 13:
|
|
1223
|
-
|
|
1461
|
+
_context7.next = 27;
|
|
1224
1462
|
break;
|
|
1225
1463
|
case 15:
|
|
1226
1464
|
if (!(t !== null && t !== void 0 && (_t$3 = t[0]) !== null && _t$3 !== void 0 && _t$3.targetElemIdToDock)) {
|
|
1227
|
-
|
|
1465
|
+
_context7.next = 20;
|
|
1228
1466
|
break;
|
|
1229
1467
|
}
|
|
1230
|
-
|
|
1468
|
+
_context7.next = 18;
|
|
1231
1469
|
return this.addElementToWorld(plannerElement, t);
|
|
1232
1470
|
case 18:
|
|
1233
|
-
|
|
1471
|
+
_context7.next = 27;
|
|
1234
1472
|
break;
|
|
1235
1473
|
case 20:
|
|
1236
1474
|
if (!params.oldPlannerTransform) {
|
|
1237
|
-
|
|
1475
|
+
_context7.next = 25;
|
|
1238
1476
|
break;
|
|
1239
1477
|
}
|
|
1240
|
-
|
|
1478
|
+
_context7.next = 23;
|
|
1241
1479
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, undefined, {
|
|
1242
1480
|
forceSetToTrans: true,
|
|
1243
1481
|
transform: params.oldPlannerTransform
|
|
1244
1482
|
});
|
|
1245
1483
|
case 23:
|
|
1246
|
-
|
|
1484
|
+
_context7.next = 27;
|
|
1247
1485
|
break;
|
|
1248
1486
|
case 25:
|
|
1249
|
-
|
|
1487
|
+
_context7.next = 27;
|
|
1250
1488
|
return this.addElementToWorld(plannerElement);
|
|
1251
1489
|
case 27:
|
|
1252
1490
|
this.updatePlannerBoundingBox();
|
|
1253
1491
|
case 28:
|
|
1254
1492
|
case "end":
|
|
1255
|
-
return
|
|
1493
|
+
return _context7.stop();
|
|
1256
1494
|
}
|
|
1257
|
-
},
|
|
1495
|
+
}, _callee7, this);
|
|
1258
1496
|
}));
|
|
1259
|
-
function addPlannerElement(
|
|
1497
|
+
function addPlannerElement(_x13, _x14) {
|
|
1260
1498
|
return _addPlannerElement.apply(this, arguments);
|
|
1261
1499
|
}
|
|
1262
1500
|
return addPlannerElement;
|
|
@@ -1275,34 +1513,68 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1275
1513
|
}, {
|
|
1276
1514
|
key: "copyPlannerElement",
|
|
1277
1515
|
value: (function () {
|
|
1278
|
-
var _copyPlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1279
|
-
var
|
|
1280
|
-
return _regeneratorRuntime.wrap(function
|
|
1281
|
-
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) {
|
|
1282
1520
|
case 0:
|
|
1283
|
-
articlesToLoad = [];
|
|
1284
|
-
articleCopyRelation.forEach(function (rel) {
|
|
1285
|
-
if (copyInfo == undefined) articlesToLoad.push(rel.value);
|
|
1286
|
-
});
|
|
1287
1521
|
i = 0;
|
|
1288
|
-
case
|
|
1289
|
-
if (!(i <
|
|
1290
|
-
|
|
1522
|
+
case 1:
|
|
1523
|
+
if (!(i < articleCopyRelation.length)) {
|
|
1524
|
+
_context8.next = 24;
|
|
1291
1525
|
break;
|
|
1292
1526
|
}
|
|
1293
|
-
|
|
1294
|
-
|
|
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, {});
|
|
1295
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:
|
|
1296
1568
|
i++;
|
|
1297
|
-
|
|
1569
|
+
_context8.next = 1;
|
|
1298
1570
|
break;
|
|
1299
|
-
case
|
|
1571
|
+
case 24:
|
|
1300
1572
|
case "end":
|
|
1301
|
-
return
|
|
1573
|
+
return _context8.stop();
|
|
1302
1574
|
}
|
|
1303
|
-
},
|
|
1575
|
+
}, _callee8, this);
|
|
1304
1576
|
}));
|
|
1305
|
-
function copyPlannerElement(
|
|
1577
|
+
function copyPlannerElement(_x15, _x16) {
|
|
1306
1578
|
return _copyPlannerElement.apply(this, arguments);
|
|
1307
1579
|
}
|
|
1308
1580
|
return copyPlannerElement;
|
|
@@ -1321,7 +1593,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1321
1593
|
}, {
|
|
1322
1594
|
key: "getPlannerElementsInfluencedByCopy",
|
|
1323
1595
|
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
1324
|
-
|
|
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');
|
|
1325
1598
|
if (this.plannerElements.has(elementId)) return [elementId];
|
|
1326
1599
|
return [];
|
|
1327
1600
|
}
|
|
@@ -1334,19 +1607,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1334
1607
|
}, {
|
|
1335
1608
|
key: "deletePlannerElement",
|
|
1336
1609
|
value: (function () {
|
|
1337
|
-
var _deletePlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function
|
|
1610
|
+
var _deletePlannerElement = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee9(elementId, autoCorrectAVL_AVR) {
|
|
1338
1611
|
var plannerElement, parent, prevPosNum, nextPosNum, newSelElemIdPrev, newSelElemIdNext, endForEach, removeDockingRelation, avlVec, avrVec, elementLeft, elementRight, avrElementLeft, avlElementRight, transform;
|
|
1339
|
-
return _regeneratorRuntime.wrap(function
|
|
1340
|
-
while (1) switch (
|
|
1612
|
+
return _regeneratorRuntime.wrap(function _callee9$(_context9) {
|
|
1613
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
1341
1614
|
case 0:
|
|
1342
|
-
|
|
1615
|
+
_context9.next = 2;
|
|
1343
1616
|
return DivaUtils.Sleep(1);
|
|
1344
1617
|
case 2:
|
|
1345
1618
|
if (this.plannerElements.has(elementId)) {
|
|
1346
|
-
|
|
1619
|
+
_context9.next = 4;
|
|
1347
1620
|
break;
|
|
1348
1621
|
}
|
|
1349
|
-
return
|
|
1622
|
+
return _context9.abrupt("return", {});
|
|
1350
1623
|
case 4:
|
|
1351
1624
|
plannerElement = this.plannerElements.get(elementId);
|
|
1352
1625
|
parent = this.getParentElement(plannerElement);
|
|
@@ -1403,17 +1676,17 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1403
1676
|
this.updatePlannerPosNr();
|
|
1404
1677
|
this.checkCollision(false, plannerElement.getElementId());
|
|
1405
1678
|
this.updatePlannerBoundingBox();
|
|
1406
|
-
return
|
|
1679
|
+
return _context9.abrupt("return", {
|
|
1407
1680
|
newElementToSelect: newSelElemIdPrev >= 0 ? newSelElemIdPrev : newSelElemIdNext >= 0 ? newSelElemIdNext : undefined,
|
|
1408
1681
|
transform: transform
|
|
1409
1682
|
});
|
|
1410
1683
|
case 24:
|
|
1411
1684
|
case "end":
|
|
1412
|
-
return
|
|
1685
|
+
return _context9.stop();
|
|
1413
1686
|
}
|
|
1414
|
-
},
|
|
1687
|
+
}, _callee9, this);
|
|
1415
1688
|
}));
|
|
1416
|
-
function deletePlannerElement(
|
|
1689
|
+
function deletePlannerElement(_x17, _x18) {
|
|
1417
1690
|
return _deletePlannerElement.apply(this, arguments);
|
|
1418
1691
|
}
|
|
1419
1692
|
return deletePlannerElement;
|
|
@@ -1505,8 +1778,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1505
1778
|
element.SetPosNr = startSetPosNr + element.PosNr - 1;
|
|
1506
1779
|
this.set.setPosNr(element.ElementId, element.getPosNr());
|
|
1507
1780
|
}
|
|
1508
|
-
for (var
|
|
1509
|
-
if (!elements[
|
|
1781
|
+
for (var _i4 = 0; _i4 < elements.length; _i4++) {
|
|
1782
|
+
if (!elements[_i4].IsAccessoire) this.set.giveAccNewPosNrByBasketId(elements[_i4].getBasketId());
|
|
1510
1783
|
}
|
|
1511
1784
|
return elements.length;
|
|
1512
1785
|
}
|
|
@@ -1523,12 +1796,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1523
1796
|
*/
|
|
1524
1797
|
}, {
|
|
1525
1798
|
key: "updatePlannerTrans",
|
|
1526
|
-
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
|
|
1799
|
+
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
|
|
1527
1800
|
var _this3 = this;
|
|
1528
1801
|
var updateConfig = false;
|
|
1529
1802
|
if (this.plannerElements.has(elementId)) {
|
|
1530
1803
|
var plannerElement = this.plannerElements.get(elementId);
|
|
1531
|
-
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);
|
|
1532
1805
|
if (transState == 'START') {
|
|
1533
1806
|
if (plannerElement) {
|
|
1534
1807
|
var dpsToUndock = ['AVR', 'AVL'];
|
|
@@ -1711,8 +1984,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1711
1984
|
}
|
|
1712
1985
|
var shelfPlannerElements = _this5.set.getShelfPlannerData(elemId);
|
|
1713
1986
|
if (shelfPlannerElements) {
|
|
1714
|
-
for (var
|
|
1715
|
-
var accessorire = shelfPlannerElements[
|
|
1987
|
+
for (var _i5 = 0; _i5 < shelfPlannerElements.length; _i5++) {
|
|
1988
|
+
var accessorire = shelfPlannerElements[_i5];
|
|
1716
1989
|
var shelfConfig = _this5.set.getShelfPlannerConfigData(accessorire.basketId).config;
|
|
1717
1990
|
var _accElements2 = [];
|
|
1718
1991
|
if (shelfConfig.accs && shelfConfig.accs.length > 0) {
|