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