@crystaldesign/web-planner-logic 26.11.0-beta.3 → 26.11.0-beta.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/{DivaBoxPlanner-68cc1bd1.js → DivaBoxPlanner-c57ed0e3.js} +134 -47
- package/build/cjs/{DivaStandardPlanner-d44ae0e7.js → DivaStandardPlanner-6e46651d.js} +586 -332
- package/build/cjs/{DoorPlanner-1719cbe1.js → DoorPlanner-f86e825b.js} +3 -1
- package/build/cjs/{Host3DSignalR-a456221e.js → Host3DSignalR-9ae7bc58.js} +41 -24
- package/build/cjs/{LiviqueWWSHandler-f2afb4eb.js → LiviqueWWSHandler-a4f6eaa0.js} +3 -1
- package/build/cjs/{PfisterWWSHandler-8f522ab6.js → PfisterWWSHandler-b85b5d9c.js} +3 -1
- package/build/cjs/PlannerHandler2D-bec57353.js +544 -0
- package/build/cjs/{SeriousBasketHandler-b39f0556.js → SeriousBasketHandler-0fd56d93.js} +3 -1
- package/build/cjs/{ShelfPlanner-1dde2d7c.js → ShelfPlanner-0efb6dda.js} +262 -148
- package/build/cjs/{StandardWWSHandler-62ec343d.js → StandardWWSHandler-e535e9ab.js} +3 -1
- package/build/cjs/{index-d63749e4.js → index-21cc42e9.js} +10715 -9129
- package/build/cjs/index.js +13 -2
- package/build/esm/{DivaBoxPlanner-a347ef5d.js → DivaBoxPlanner-9a2e33e5.js} +134 -47
- package/build/esm/{DivaStandardPlanner-a8f0d722.js → DivaStandardPlanner-d9cad991.js} +585 -332
- package/build/esm/{DoorPlanner-60c065e5.js → DoorPlanner-d430b797.js} +3 -1
- package/build/esm/{Host3DSignalR-0c7e84a7.js → Host3DSignalR-f16742ea.js} +41 -24
- package/build/esm/{LiviqueWWSHandler-3df03404.js → LiviqueWWSHandler-4ebe33ed.js} +3 -1
- package/build/esm/{PfisterWWSHandler-28b609ef.js → PfisterWWSHandler-04416bc8.js} +3 -1
- package/build/esm/PlannerHandler2D-2fc26200.js +526 -0
- package/build/esm/{SeriousBasketHandler-276a8035.js → SeriousBasketHandler-c802bd9b.js} +3 -1
- package/build/esm/{ShelfPlanner-7380b831.js → ShelfPlanner-557172d3.js} +262 -148
- package/build/esm/{StandardWWSHandler-1d13f6a3.js → StandardWWSHandler-bdd24590.js} +3 -1
- package/build/esm/{index-358c0a3c.js → index-024475bf.js} +10711 -9129
- package/build/esm/index.js +3 -1
- package/build/types/web-planner-logic/src/index.d.ts +8 -3
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/ArticleOptionStateType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +13 -0
- package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts +13 -0
- package/build/types/web-planner-logic/src/interface/Articles/ArticleInfoType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +3 -0
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +6 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +19 -18
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/Decision.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/IDM/Decision.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts +37 -0
- package/build/types/web-planner-logic/src/interface/Planner/ISaveSetPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts +5 -0
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/ShelfAccessoiresView.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +46 -2
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts +4 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/ArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts +2 -0
- package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +39 -2
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts +20 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +31 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +25 -0
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +149 -95
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +19 -0
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +15 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +11 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +31 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts +9 -114
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/DockingPointHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts +5 -7
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +5 -6
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +17 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +2 -2
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +31 -3
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts +9 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/articleGeo.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts +12 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/parseCatalogXml.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts +66 -0
- package/build/types/web-planner-logic/src/logic/Set/catalogXml/types.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/logic/bootMark.d.ts +71 -0
- package/build/types/web-planner-logic/src/logic/bootMark.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts +12 -0
- package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +13 -0
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts +1 -44
- package/build/types/web-planner-logic/src/model/Planner/DockingPoint.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +6 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/engineFeatureDefaults.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/idmPlannerPaletteView.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/parseSvgOltGeometry.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/partlistPosCountDecision.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/partlistPosCountDecision.test.d.ts.map +1 -0
- package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts +2 -0
- package/build/types/web-planner-logic/src/test/stretchGoldenMaster.test.d.ts.map +1 -0
- package/package.json +5 -5
- package/build/cjs/PlannerHandler2D-dbe1d858.js +0 -2470
- package/build/esm/PlannerHandler2D-f8657005.js +0 -2455
|
@@ -1,30 +1,32 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
3
4
|
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
4
5
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
5
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-21cc42e9.js');
|
|
9
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
|
-
var
|
|
11
|
+
var planner2dCore = require('@crystaldesign/planner-2d-core');
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-bec57353.js');
|
|
11
13
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
14
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
13
|
-
require('@babel/runtime/helpers/toConsumableArray');
|
|
14
15
|
require('axios');
|
|
15
16
|
require('@crystaldesign/basket-model');
|
|
16
17
|
require('@babel/runtime/helpers/typeof');
|
|
18
|
+
require('fast-xml-parser');
|
|
17
19
|
require('@babel/runtime/helpers/possibleConstructorReturn');
|
|
18
20
|
require('@babel/runtime/helpers/getPrototypeOf');
|
|
19
21
|
require('@babel/runtime/helpers/inherits');
|
|
20
22
|
require('@babel/runtime/helpers/wrapNativeSuper');
|
|
21
23
|
require('@crystaldesign/basket-handler');
|
|
22
24
|
require('socket.io-client');
|
|
23
|
-
require('
|
|
24
|
-
require('w3c-xmlserializer');
|
|
25
|
+
require('@babel/runtime/helpers/get');
|
|
25
26
|
|
|
26
27
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
27
28
|
|
|
29
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
28
30
|
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
29
31
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
30
32
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
@@ -32,6 +34,26 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
32
34
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
33
35
|
var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
|
|
34
36
|
|
|
37
|
+
/** Configurator 2.0 set planner payload (`SetPlanData` after base64 decode). */
|
|
38
|
+
|
|
39
|
+
/** Legacy planner 1.x payload (no `v: 2` wrapper). */
|
|
40
|
+
|
|
41
|
+
function parseSetPlanData(setPlanData) {
|
|
42
|
+
var planDataString = DivaUtils__default["default"].decodeBase64(setPlanData);
|
|
43
|
+
return JSON.parse(planDataString);
|
|
44
|
+
}
|
|
45
|
+
function isSavePlannerV2(planData) {
|
|
46
|
+
return planData.v === 2;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Article codex from a V2 or legacy element record. */
|
|
50
|
+
function saveElementArticleCodex(element) {
|
|
51
|
+
return element.articleCodex || element.Codex;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
55
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
56
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
35
57
|
var LOG = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
|
|
36
58
|
var ACC_DOCK_TYPES = ['AVO', 'AVU', 'AVC', 'AVS', 'AVN'];
|
|
37
59
|
var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
@@ -61,7 +83,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
61
83
|
_defineProperty__default["default"](this, "nextElementId", 1);
|
|
62
84
|
_defineProperty__default["default"](this, "collisionHandler", void 0);
|
|
63
85
|
_defineProperty__default["default"](this, "dockToAVUorAVOororAVNorAVSorAVC", function (plannerElement, targetElements) {
|
|
64
|
-
|
|
86
|
+
// Capability comes from the SVG-parsed docking points, not the catalog metadata counts
|
|
87
|
+
// (countAV*): the parsed SVG is the same source the targeted dock (tryDockElementToDP) uses, so
|
|
88
|
+
// auto-dock stays consistent with it even when the catalog's SVG detail info misses the counts.
|
|
89
|
+
var hasFreeDP = function hasFreeDP(type) {
|
|
90
|
+
return plannerElement.getFreeDockingPointsByType(type).length > 0;
|
|
91
|
+
};
|
|
92
|
+
if (hasFreeDP('AVU')) {
|
|
65
93
|
//Try to dock Element to free AVR
|
|
66
94
|
var successDP = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVU', targetElements);
|
|
67
95
|
if (successDP) {
|
|
@@ -77,28 +105,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
77
105
|
if (_successDP) return true;
|
|
78
106
|
}
|
|
79
107
|
}
|
|
80
|
-
if (
|
|
108
|
+
if (hasFreeDP('AVO')) {
|
|
81
109
|
var _successDP2 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVO', targetElements);
|
|
82
110
|
if (_successDP2) {
|
|
83
111
|
_this.updateWorldPos(plannerElement, _successDP2);
|
|
84
112
|
return true;
|
|
85
113
|
}
|
|
86
114
|
}
|
|
87
|
-
if (
|
|
115
|
+
if (hasFreeDP('AVN')) {
|
|
88
116
|
var _successDP3 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVN', targetElements);
|
|
89
117
|
if (_successDP3) {
|
|
90
118
|
_this.updateWorldPos(plannerElement, _successDP3);
|
|
91
119
|
return true;
|
|
92
120
|
}
|
|
93
121
|
}
|
|
94
|
-
if (
|
|
122
|
+
if (hasFreeDP('AVS')) {
|
|
95
123
|
var _successDP4 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVS', targetElements);
|
|
96
124
|
if (_successDP4) {
|
|
97
125
|
_this.updateWorldPos(plannerElement, _successDP4);
|
|
98
126
|
return true;
|
|
99
127
|
}
|
|
100
128
|
}
|
|
101
|
-
if (
|
|
129
|
+
if (hasFreeDP('AVC')) {
|
|
102
130
|
var _successDP5 = PlannerHandler2D.dockingPointHandlerInst.tryDockElement(plannerElement, 'AVC', targetElements);
|
|
103
131
|
if (_successDP5) {
|
|
104
132
|
_this.updateWorldPos(plannerElement, _successDP5);
|
|
@@ -231,30 +259,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
231
259
|
var refElement = this.plannerElements.get(dockingPoint.OnElementId);
|
|
232
260
|
var refDockingPoint = refElement.getDockingPointById(dockingPoint.OnDP.DpId);
|
|
233
261
|
if (refDockingPoint == undefined) return updateConfig;
|
|
234
|
-
|
|
235
|
-
var worldPosNewElementIgnoreOLF = new index.Vector3(0, 0, 0);
|
|
236
|
-
|
|
237
|
-
// DP LocalWorldPos is OLF-corner-relative when HasOLFPolygon (from SVG). Convert to OLT-corner-relative for WorldPosCornerIgnoreOLF.
|
|
238
|
-
var refDPLocalOlt = refElement.HasOLFPolygon ? new index.Vector2(refDockingPoint.LocalWorldPos.x - refElement.getOltLeft(), refDockingPoint.LocalWorldPos.z - refElement.getOltTop()) : new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
239
|
-
var newDPLocalOlt = plannerElement.HasOLFPolygon ? new index.Vector2(dockingPoint.LocalWorldPos.x - plannerElement.getOltLeft(), dockingPoint.LocalWorldPos.z - plannerElement.getOltTop()) : new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z);
|
|
240
|
-
var rotatedLocalRefDP = new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
241
|
-
rotatedLocalRefDP = index.Vector2.rotateOrigin(rotatedLocalRefDP, refElement.RotDeg);
|
|
242
|
-
var angleToRot = refElement.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
243
|
-
plannerElement.RotDeg = angleToRot;
|
|
244
|
-
var refWorldPosCor = refElement.WorldPosCorner;
|
|
245
|
-
// For ref without OLF: use same corner for both alignments (no OLF/OLT split; WorldPosCornerIgnoreOLF getter also does this).
|
|
246
|
-
var refWorldPosCorIgnoreOLF = refElement.HasOLFPolygon ? refElement.WorldPosCornerIgnoreOLF : refWorldPosCor;
|
|
247
|
-
var rotatedLocalDP2D = index.Vector2.rotateOrigin(new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z), angleToRot);
|
|
248
|
-
worldPosNewElement.x = refWorldPosCor.x + rotatedLocalRefDP.x - rotatedLocalDP2D.x;
|
|
249
|
-
worldPosNewElement.y = refWorldPosCor.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
250
|
-
worldPosNewElement.z = refWorldPosCor.z + rotatedLocalRefDP.y - rotatedLocalDP2D.y;
|
|
251
|
-
var rotatedRefDPOlt = index.Vector2.rotateOrigin(refDPLocalOlt, refElement.RotDeg);
|
|
252
|
-
var rotatedNewDPOlt = index.Vector2.rotateOrigin(newDPLocalOlt, angleToRot);
|
|
253
|
-
worldPosNewElementIgnoreOLF.x = refWorldPosCorIgnoreOLF.x + rotatedRefDPOlt.x - rotatedNewDPOlt.x;
|
|
254
|
-
worldPosNewElementIgnoreOLF.z = refWorldPosCorIgnoreOLF.z + rotatedRefDPOlt.y - rotatedNewDPOlt.y;
|
|
255
|
-
worldPosNewElementIgnoreOLF.y = refWorldPosCorIgnoreOLF.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
256
|
-
plannerElement.WorldPosCorner = worldPosNewElement;
|
|
257
|
-
plannerElement.WorldPosCornerIgnoreOLF = worldPosNewElementIgnoreOLF;
|
|
262
|
+
this.applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint);
|
|
258
263
|
updateConfig = this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
259
264
|
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
260
265
|
plannerElement.updatePlannerData(data);
|
|
@@ -263,15 +268,81 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
263
268
|
return updateConfig;
|
|
264
269
|
}
|
|
265
270
|
|
|
271
|
+
/**
|
|
272
|
+
* Positions `plannerElement` so its `dockingPoint` aligns to `refElement`'s `refDockingPoint`
|
|
273
|
+
* (rotation + OLF/OLT-aware translation). Mutates only the element's world position and rotation —
|
|
274
|
+
* NOT the docking relations — so it is reusable for a non-committing snap preview
|
|
275
|
+
* ({@link getDockSnapPreview}) as well as the real dock ({@link updateWorldPos}).
|
|
276
|
+
*/
|
|
277
|
+
}, {
|
|
278
|
+
key: "applyDockTransform",
|
|
279
|
+
value: function applyDockTransform(plannerElement, refElement, dockingPoint, refDockingPoint) {
|
|
280
|
+
var dockedTransform = planner2dCore.computeDockedTransform(refElement, refDockingPoint, plannerElement, dockingPoint);
|
|
281
|
+
plannerElement.RotDeg = dockedTransform.rotDeg;
|
|
282
|
+
plannerElement.WorldPosCorner = new index.Vector3(dockedTransform.worldPosCorner.x, dockedTransform.worldPosCorner.y, dockedTransform.worldPosCorner.z);
|
|
283
|
+
plannerElement.WorldPosCornerIgnoreOLF = new index.Vector3(dockedTransform.worldPosCornerIgnoreOLF.x, dockedTransform.worldPosCornerIgnoreOLF.y, dockedTransform.worldPosCornerIgnoreOLF.z);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Non-committing preview of where `elementId` would auto-snap if released now: runs the same
|
|
288
|
+
* dockable-pair search as END, and for the closest pair computes the docked transform via
|
|
289
|
+
* {@link applyDockTransform} (apply → read → restore, no docking relations touched). Returns the
|
|
290
|
+
* delta from the element's current transform (cm / deg), or null if nothing is in snapping range.
|
|
291
|
+
* `excludeElementIds` skips the element's own move-group so it doesn't "snap" to siblings that
|
|
292
|
+
* are translating with it.
|
|
293
|
+
*/
|
|
294
|
+
}, {
|
|
295
|
+
key: "getDockSnapPreview",
|
|
296
|
+
value: function getDockSnapPreview(elementId, autoDockingDistance) {
|
|
297
|
+
var excludeElementIds = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
|
|
298
|
+
var element = this.plannerElements.get(elementId);
|
|
299
|
+
if (!element) return null;
|
|
300
|
+
var targets = this.getAllPlannerElements().filter(function (e) {
|
|
301
|
+
return e.getElementId() !== elementId && !excludeElementIds.includes(e.getElementId());
|
|
302
|
+
});
|
|
303
|
+
var pairs = PlannerHandler2D.dockingPointHandlerInst.searchDockableElementsInArea(element, targets, autoDockingDistance);
|
|
304
|
+
if (!pairs || pairs.size === 0) return null;
|
|
305
|
+
var best;
|
|
306
|
+
pairs.forEach(function (p) {
|
|
307
|
+
if (best == undefined || p.distance < best.distance) best = p;
|
|
308
|
+
});
|
|
309
|
+
if (best == undefined) return null;
|
|
310
|
+
var targetElement = this.plannerElements.get(best.targetDP.ElementId);
|
|
311
|
+
if (!targetElement) return null;
|
|
312
|
+
var savedRot = element.RotDeg;
|
|
313
|
+
var savedCenter = element.WorldPosCenter;
|
|
314
|
+
var savedX = savedCenter.x,
|
|
315
|
+
savedY = savedCenter.y,
|
|
316
|
+
savedZ = savedCenter.z;
|
|
317
|
+
this.applyDockTransform(element, targetElement, best.sourceDP, best.targetDP);
|
|
318
|
+
var snapped = element.WorldPosCenter;
|
|
319
|
+
var result = {
|
|
320
|
+
dx: snapped.x - savedX,
|
|
321
|
+
dz: snapped.z - savedZ,
|
|
322
|
+
dRotDeg: element.RotDeg - savedRot
|
|
323
|
+
};
|
|
324
|
+
// Restore — the preview must leave the planner state untouched.
|
|
325
|
+
element.RotDeg = savedRot;
|
|
326
|
+
element.WorldPosCenter = new index.Vector3(savedX, savedY, savedZ);
|
|
327
|
+
return result;
|
|
328
|
+
}
|
|
329
|
+
|
|
266
330
|
/**
|
|
267
331
|
* This function updates the position information of all elements. It is called after updating the SVG of 1 element.
|
|
268
332
|
* The position is updated based on the posNr.
|
|
269
333
|
* At the end - the collision is calculated
|
|
334
|
+
* @param changedElementIds elements whose SVG was reloaded this cycle (their docking geometry may
|
|
335
|
+
* have moved, e.g. an AVC shifted by stretch areas). Elements docked - directly or transitively -
|
|
336
|
+
* to one of them are re-anchored to the moved partner after the PosNr walk, which on its own only
|
|
337
|
+
* propagates forward in PosNr order and prefers AVL over AVC anchors.
|
|
270
338
|
*/
|
|
271
339
|
}, {
|
|
272
340
|
key: "updateAllElementsWorldPos",
|
|
273
|
-
value: function updateAllElementsWorldPos(checkCollisionSingleElementId) {
|
|
341
|
+
value: function updateAllElementsWorldPos(checkCollisionSingleElementId, changedElementIds) {
|
|
274
342
|
if (this.doDisablePlanner2D) return false;
|
|
343
|
+
var getDockedDPsInPriorityOrder = function getDockedDPsInPriorityOrder(element) {
|
|
344
|
+
return element.getDockingDockingPointsByType('AVL').concat(element.getDockingDockingPointsByType('AVR')).concat(element.getDockingDockingPointsByType('AVU')).concat(element.getDockingDockingPointsByType('AVO')).concat(element.getDockingDockingPointsByType('AVN')).concat(element.getDockingDockingPointsByType('AVS')).concat(element.getDockingDockingPointsByType('AVC'));
|
|
345
|
+
};
|
|
275
346
|
var updateConfig = false;
|
|
276
347
|
var sortedPlannerElementsbyPosNr = [];
|
|
277
348
|
var accElems = [];
|
|
@@ -292,7 +363,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
292
363
|
var element = sortedPlannerElementsbyPosNr[i];
|
|
293
364
|
alreadyCorrectedId.push(element.ElementId);
|
|
294
365
|
if (i > firstI) {
|
|
295
|
-
var dockingPoints =
|
|
366
|
+
var dockingPoints = getDockedDPsInPriorityOrder(element);
|
|
296
367
|
for (var j = 0; j < dockingPoints.length; j++) {
|
|
297
368
|
//Nur wenn er auf ein element schaut das schon gedockt ist korrigieren
|
|
298
369
|
if (alreadyCorrectedId.indexOf(dockingPoints[j].OnElementId) >= 0) {
|
|
@@ -303,6 +374,38 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
303
374
|
}
|
|
304
375
|
}
|
|
305
376
|
}
|
|
377
|
+
|
|
378
|
+
// The walk above anchors each element to its FIRST docked partner in AVL-first priority and
|
|
379
|
+
// only propagates forward in PosNr order - both hide a geometry change in a reloaded partner
|
|
380
|
+
// (e.g. an AVC line shifted by stretch areas). Sweep outward from the reloaded elements:
|
|
381
|
+
// re-anchor every element docked - directly or transitively - to a moved partner, until stable.
|
|
382
|
+
if (changedElementIds && changedElementIds.length > 0) {
|
|
383
|
+
var moved = new Set(changedElementIds);
|
|
384
|
+
var progressed = true;
|
|
385
|
+
while (progressed) {
|
|
386
|
+
progressed = false;
|
|
387
|
+
var _iterator = _createForOfIteratorHelper(sortedPlannerElementsbyPosNr),
|
|
388
|
+
_step;
|
|
389
|
+
try {
|
|
390
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
391
|
+
var _element = _step.value;
|
|
392
|
+
if (!_element || moved.has(_element.ElementId)) continue;
|
|
393
|
+
var dpToMovedPartner = getDockedDPsInPriorityOrder(_element).find(function (dp) {
|
|
394
|
+
return moved.has(dp.OnElementId);
|
|
395
|
+
});
|
|
396
|
+
if (dpToMovedPartner) {
|
|
397
|
+
updateConfig = this.updateWorldPos(_element, dpToMovedPartner) || updateConfig;
|
|
398
|
+
moved.add(_element.ElementId);
|
|
399
|
+
progressed = true;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
} catch (err) {
|
|
403
|
+
_iterator.e(err);
|
|
404
|
+
} finally {
|
|
405
|
+
_iterator.f();
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
306
409
|
this.checkCollision(false, checkCollisionSingleElementId);
|
|
307
410
|
return updateConfig;
|
|
308
411
|
}
|
|
@@ -345,39 +448,39 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
345
448
|
plannerElement.WorldPosCenter = setToTransform.transform.worldPosCenter;
|
|
346
449
|
plannerElement.RotDeg = setToTransform.transform.rotDeg;
|
|
347
450
|
this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
|
|
348
|
-
_context.next =
|
|
451
|
+
_context.next = 48;
|
|
349
452
|
break;
|
|
350
453
|
case 8:
|
|
351
454
|
//Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
|
|
352
455
|
dockingFound = false;
|
|
353
456
|
if (!dockingPointInfos) {
|
|
354
|
-
_context.next =
|
|
457
|
+
_context.next = 47;
|
|
355
458
|
break;
|
|
356
459
|
}
|
|
357
460
|
i = 0;
|
|
358
461
|
case 11:
|
|
359
462
|
if (!(i < dockingPointInfos.length)) {
|
|
360
|
-
_context.next =
|
|
463
|
+
_context.next = 47;
|
|
361
464
|
break;
|
|
362
465
|
}
|
|
363
466
|
targetElemIdToDock = dockingPointInfos[i].targetElemIdToDock;
|
|
364
467
|
targetDockingPointId = dockingPointInfos[i].targetDockingPointId;
|
|
365
468
|
if (!(targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock))) {
|
|
366
|
-
_context.next =
|
|
469
|
+
_context.next = 44;
|
|
367
470
|
break;
|
|
368
471
|
}
|
|
369
472
|
if (!(targetDockingPointId && targetDockingPointId != '')) {
|
|
370
|
-
_context.next =
|
|
473
|
+
_context.next = 32;
|
|
371
474
|
break;
|
|
372
475
|
}
|
|
373
476
|
targetElem = this.plannerElements.get(targetElemIdToDock);
|
|
374
477
|
if (!targetElem) {
|
|
375
|
-
_context.next =
|
|
478
|
+
_context.next = 30;
|
|
376
479
|
break;
|
|
377
480
|
}
|
|
378
481
|
targetDP = targetElem.getDockingPointById(targetDockingPointId);
|
|
379
482
|
if (!targetDP) {
|
|
380
|
-
_context.next =
|
|
483
|
+
_context.next = 30;
|
|
381
484
|
break;
|
|
382
485
|
}
|
|
383
486
|
successDP = PlannerHandler2D.dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
|
|
@@ -387,17 +490,21 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
387
490
|
}
|
|
388
491
|
this.updateWorldPos(plannerElement, successDP);
|
|
389
492
|
dockingFound = true;
|
|
390
|
-
_context.next =
|
|
493
|
+
_context.next = 30;
|
|
391
494
|
break;
|
|
392
495
|
case 26:
|
|
393
496
|
_context.next = 28;
|
|
394
497
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
395
498
|
case 28:
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
499
|
+
if (!_context.sent) {
|
|
500
|
+
_context.next = 30;
|
|
501
|
+
break;
|
|
502
|
+
}
|
|
503
|
+
dockingFound = true;
|
|
504
|
+
case 30:
|
|
505
|
+
_context.next = 44;
|
|
399
506
|
break;
|
|
400
|
-
case
|
|
507
|
+
case 32:
|
|
401
508
|
success = false;
|
|
402
509
|
if (plannerElement.HasAVL || plannerElement.HasAVR) {
|
|
403
510
|
success = this.dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
@@ -406,28 +513,28 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
406
513
|
success = this.dockToAVUorAVOororAVNorAVSorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
407
514
|
}
|
|
408
515
|
if (success) {
|
|
409
|
-
_context.next =
|
|
516
|
+
_context.next = 43;
|
|
410
517
|
break;
|
|
411
518
|
}
|
|
412
|
-
_context.next =
|
|
519
|
+
_context.next = 38;
|
|
413
520
|
return this.tryToDockWithDifferentSVGWithFormula(plannerElement, targetElemIdToDock);
|
|
414
|
-
case
|
|
521
|
+
case 38:
|
|
415
522
|
success = _context.sent;
|
|
416
523
|
if (success) {
|
|
417
|
-
_context.next =
|
|
524
|
+
_context.next = 43;
|
|
418
525
|
break;
|
|
419
526
|
}
|
|
420
|
-
_context.next =
|
|
527
|
+
_context.next = 42;
|
|
421
528
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, 50);
|
|
422
|
-
case 41:
|
|
423
|
-
return _context.abrupt("return");
|
|
424
529
|
case 42:
|
|
425
|
-
|
|
530
|
+
return _context.abrupt("return");
|
|
426
531
|
case 43:
|
|
532
|
+
if (success) dockingFound = true;
|
|
533
|
+
case 44:
|
|
427
534
|
i++;
|
|
428
535
|
_context.next = 11;
|
|
429
536
|
break;
|
|
430
|
-
case
|
|
537
|
+
case 47:
|
|
431
538
|
if (!dockingFound) {
|
|
432
539
|
allPlannerElements = this.getAllPlannerElements();
|
|
433
540
|
_success = this.dockToAVLorAVR(plannerElement, allPlannerElements);
|
|
@@ -448,13 +555,13 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
448
555
|
}
|
|
449
556
|
}
|
|
450
557
|
}
|
|
451
|
-
case
|
|
558
|
+
case 48:
|
|
452
559
|
this.updatePlannerPosNr();
|
|
453
560
|
this.updateAllElementsWorldPos();
|
|
454
561
|
this.updatePlannerPosNr();
|
|
455
562
|
this.checkCollision(false, plannerElement.getElementId());
|
|
456
563
|
this.updatePlannerBoundingBox();
|
|
457
|
-
case
|
|
564
|
+
case 53:
|
|
458
565
|
case "end":
|
|
459
566
|
return _context.stop();
|
|
460
567
|
}
|
|
@@ -469,7 +576,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
469
576
|
key: "tryToDockWithDifferentSVGWithFormula",
|
|
470
577
|
value: function () {
|
|
471
578
|
var _tryToDockWithDifferentSVGWithFormula = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(plannerElement, targetElemIdToDock) {
|
|
472
|
-
var success, article, origVariantValues, svgsWithFormula, i,
|
|
579
|
+
var success, article, origVariantValues, svgsWithFormula, i, vv, targetFilterCandidates, _i2, v, _i3, elements, variantValues, key;
|
|
473
580
|
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
|
474
581
|
while (1) switch (_context2.prev = _context2.next) {
|
|
475
582
|
case 0:
|
|
@@ -479,92 +586,107 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
479
586
|
origVariantValues = article === null || article === void 0 ? void 0 : article.VariantValues;
|
|
480
587
|
svgsWithFormula = plannerElement.getSVGsWithFormula();
|
|
481
588
|
if (!(plannerElement.FilterAVL.length || plannerElement.FilterAVR.length)) {
|
|
482
|
-
_context2.next =
|
|
589
|
+
_context2.next = 52;
|
|
483
590
|
break;
|
|
484
591
|
}
|
|
485
592
|
if (!(svgsWithFormula !== null && svgsWithFormula !== void 0 && svgsWithFormula.length)) {
|
|
486
|
-
_context2.next =
|
|
593
|
+
_context2.next = 18;
|
|
487
594
|
break;
|
|
488
595
|
}
|
|
489
596
|
i = 0;
|
|
490
597
|
case 7:
|
|
491
598
|
if (!(i < svgsWithFormula.length)) {
|
|
492
|
-
_context2.next =
|
|
599
|
+
_context2.next = 18;
|
|
493
600
|
break;
|
|
494
601
|
}
|
|
495
|
-
elements = new Map();
|
|
496
|
-
variantValues = new Map();
|
|
497
602
|
vv = DivaUtils__default["default"].getVariantValuesFromRule(svgsWithFormula[i].JsFormula, {});
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
_context2.next = 15;
|
|
503
|
-
return this.set.updateCfgValuesByPlanner(elements, true);
|
|
504
|
-
case 15:
|
|
505
|
-
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;
|
|
506
607
|
if (!success) {
|
|
507
|
-
_context2.next =
|
|
608
|
+
_context2.next = 15;
|
|
508
609
|
break;
|
|
509
610
|
}
|
|
510
611
|
//svg did match
|
|
511
612
|
LOG.debug('svgWithFormula nr: ' + i + ' did dock: ' + svgsWithFormula[i].SVG);
|
|
512
|
-
return _context2.abrupt("break",
|
|
513
|
-
case
|
|
613
|
+
return _context2.abrupt("break", 18);
|
|
614
|
+
case 15:
|
|
514
615
|
i++;
|
|
515
616
|
_context2.next = 7;
|
|
516
617
|
break;
|
|
517
|
-
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:
|
|
518
645
|
//other logic. look for decisions with featrue 90 or 89 and try change the options that influence 90 - 89
|
|
519
646
|
v = plannerElement.getVaraintValuesInfluencingAVLAVRFilter();
|
|
520
647
|
if (!(v !== null && v !== void 0 && v.length && !success)) {
|
|
521
|
-
_context2.next =
|
|
648
|
+
_context2.next = 44;
|
|
522
649
|
break;
|
|
523
650
|
}
|
|
524
|
-
|
|
525
|
-
case
|
|
526
|
-
if (!(
|
|
527
|
-
_context2.next =
|
|
651
|
+
_i3 = 0;
|
|
652
|
+
case 34:
|
|
653
|
+
if (!(_i3 < v.length && _i3 < 20)) {
|
|
654
|
+
_context2.next = 44;
|
|
528
655
|
break;
|
|
529
656
|
}
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
_variantValues.set(_key, _vv[_key]);
|
|
535
|
-
}
|
|
536
|
-
_elements.set(plannerElement.ElementId, _variantValues);
|
|
537
|
-
_context2.next = 33;
|
|
538
|
-
return this.set.updateCfgValuesByPlanner(_elements, true);
|
|
539
|
-
case 33:
|
|
540
|
-
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;
|
|
541
661
|
if (!success) {
|
|
542
|
-
_context2.next =
|
|
662
|
+
_context2.next = 41;
|
|
543
663
|
break;
|
|
544
664
|
}
|
|
545
665
|
//variantValues did match
|
|
546
|
-
LOG.debug('following variantValues did dock: ',
|
|
547
|
-
return _context2.abrupt("break",
|
|
548
|
-
case
|
|
549
|
-
|
|
550
|
-
_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;
|
|
551
671
|
break;
|
|
552
|
-
case
|
|
672
|
+
case 44:
|
|
553
673
|
if (success) {
|
|
554
|
-
_context2.next =
|
|
674
|
+
_context2.next = 52;
|
|
555
675
|
break;
|
|
556
676
|
}
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
for (
|
|
560
|
-
|
|
677
|
+
elements = new Map();
|
|
678
|
+
variantValues = new Map();
|
|
679
|
+
for (key in origVariantValues) {
|
|
680
|
+
variantValues.set(key, origVariantValues[key]);
|
|
561
681
|
}
|
|
562
|
-
|
|
563
|
-
_context2.next =
|
|
564
|
-
return this.set.updateCfgValuesByPlanner(
|
|
565
|
-
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:
|
|
566
688
|
return _context2.abrupt("return", success);
|
|
567
|
-
case
|
|
689
|
+
case 53:
|
|
568
690
|
case "end":
|
|
569
691
|
return _context2.stop();
|
|
570
692
|
}
|
|
@@ -575,6 +697,91 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
575
697
|
}
|
|
576
698
|
return tryToDockWithDifferentSVGWithFormula;
|
|
577
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
|
+
}
|
|
578
785
|
}, {
|
|
579
786
|
key: "dockToAVLorAVR",
|
|
580
787
|
value: function dockToAVLorAVR(plannerElement, targetElements) {
|
|
@@ -752,31 +959,31 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
752
959
|
}, {
|
|
753
960
|
key: "updatePlanner",
|
|
754
961
|
value: function () {
|
|
755
|
-
var _updatePlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function
|
|
962
|
+
var _updatePlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee4() {
|
|
756
963
|
var allPlannerElements, elemtsWhereSomethingChanged, i, elem, doReload, elementsToDelete, elementsLostDockingRelation;
|
|
757
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
758
|
-
while (1) switch (
|
|
964
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee4$(_context4) {
|
|
965
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
759
966
|
case 0:
|
|
760
967
|
allPlannerElements = this.getAllPlannerElements();
|
|
761
968
|
elemtsWhereSomethingChanged = [];
|
|
762
969
|
i = 0;
|
|
763
970
|
case 3:
|
|
764
971
|
if (!(i < allPlannerElements.length)) {
|
|
765
|
-
|
|
972
|
+
_context4.next = 13;
|
|
766
973
|
break;
|
|
767
974
|
}
|
|
768
975
|
elem = allPlannerElements[i];
|
|
769
976
|
doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
|
|
770
977
|
if (!doReload) {
|
|
771
|
-
|
|
978
|
+
_context4.next = 10;
|
|
772
979
|
break;
|
|
773
980
|
}
|
|
774
981
|
elemtsWhereSomethingChanged.push(elem.ElementId);
|
|
775
|
-
|
|
982
|
+
_context4.next = 10;
|
|
776
983
|
return PlannerHandler2D.handler2D.loadSVG(elem, this.set);
|
|
777
984
|
case 10:
|
|
778
985
|
i++;
|
|
779
|
-
|
|
986
|
+
_context4.next = 3;
|
|
780
987
|
break;
|
|
781
988
|
case 13:
|
|
782
989
|
elementsToDelete = [];
|
|
@@ -789,11 +996,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
789
996
|
elementsToDelete.push(elementsLostDockingRelation[i].ElementId);
|
|
790
997
|
}
|
|
791
998
|
}
|
|
792
|
-
this.updateAllElementsWorldPos();
|
|
999
|
+
this.updateAllElementsWorldPos(undefined, elemtsWhereSomethingChanged);
|
|
793
1000
|
this.updatePlannerPosNr();
|
|
794
1001
|
this.updatePlannerBoundingBox();
|
|
795
1002
|
}
|
|
796
|
-
return
|
|
1003
|
+
return _context4.abrupt("return", {
|
|
797
1004
|
doDeleteBackGrid: false,
|
|
798
1005
|
elemIdsToDelete: elementsToDelete,
|
|
799
1006
|
elementIdsToUpdateSelection: elemtsWhereSomethingChanged,
|
|
@@ -801,9 +1008,9 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
801
1008
|
});
|
|
802
1009
|
case 16:
|
|
803
1010
|
case "end":
|
|
804
|
-
return
|
|
1011
|
+
return _context4.stop();
|
|
805
1012
|
}
|
|
806
|
-
},
|
|
1013
|
+
}, _callee4, this);
|
|
807
1014
|
}));
|
|
808
1015
|
function updatePlanner() {
|
|
809
1016
|
return _updatePlanner.apply(this, arguments);
|
|
@@ -818,15 +1025,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
818
1025
|
}, {
|
|
819
1026
|
key: "extendPlanner",
|
|
820
1027
|
value: (function () {
|
|
821
|
-
var _extendPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function
|
|
822
|
-
var
|
|
823
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
824
|
-
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) {
|
|
825
1032
|
case 0:
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
_context4.next = 40;
|
|
1033
|
+
planData = parseSetPlanData(setPlanData);
|
|
1034
|
+
if (!isSavePlannerV2(planData)) {
|
|
1035
|
+
_context5.next = 39;
|
|
830
1036
|
break;
|
|
831
1037
|
}
|
|
832
1038
|
jsonElements = planData.set.elements;
|
|
@@ -834,70 +1040,70 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
834
1040
|
accElements = [];
|
|
835
1041
|
oldElementidMapping = new Map(); //First reset planner element values in jsonElement so that every set is planned to be set to origin
|
|
836
1042
|
i = 0;
|
|
837
|
-
case
|
|
1043
|
+
case 7:
|
|
838
1044
|
if (!(i < jsonElements.length)) {
|
|
839
|
-
|
|
1045
|
+
_context5.next = 35;
|
|
840
1046
|
break;
|
|
841
1047
|
}
|
|
842
|
-
|
|
1048
|
+
_context5.prev = 8;
|
|
843
1049
|
jsonElement = jsonElements[i];
|
|
844
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1050
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo !== void 0 ? _saveElementArticleCo : '');
|
|
845
1051
|
if (!(!catalogArticle && (_jsonElement$Accessoi = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi !== void 0 && _jsonElement$Accessoi.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
846
|
-
|
|
1052
|
+
_context5.next = 14;
|
|
847
1053
|
break;
|
|
848
1054
|
}
|
|
849
1055
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
850
1056
|
code: 'WC_0012'
|
|
851
1057
|
}));
|
|
852
|
-
return
|
|
853
|
-
case
|
|
1058
|
+
return _context5.abrupt("continue", 32);
|
|
1059
|
+
case 14:
|
|
854
1060
|
plannerElement = new index.PlannerElementData(this.set.getSetId(), jsonElement.basketID, this.nextElementId, DivaStandardPlanner.plannerType);
|
|
855
|
-
oldElementidMapping.set(
|
|
1061
|
+
oldElementidMapping.set(jsonElement.elementID, plannerElement);
|
|
856
1062
|
this.nextElementId = plannerElement.getElementId() + 1;
|
|
857
1063
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
858
1064
|
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
859
1065
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
860
1066
|
plannerElement.updatePlannerData(data);
|
|
861
1067
|
if (this.doDisablePlanner2D) {
|
|
862
|
-
|
|
1068
|
+
_context5.next = 24;
|
|
863
1069
|
break;
|
|
864
1070
|
}
|
|
865
|
-
|
|
1071
|
+
_context5.next = 24;
|
|
866
1072
|
return PlannerHandler2D.handler2D.loadSVG(plannerElement, this.set);
|
|
867
|
-
case
|
|
1073
|
+
case 24:
|
|
868
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);
|
|
869
1075
|
plannerElement.RotDeg = jsonElement.rot;
|
|
870
1076
|
if (plannerElement.IsDockedAccessoire) {
|
|
871
1077
|
accElements.push(jsonElement);
|
|
872
1078
|
plannerElement.PosNr = jsonElement.posNr;
|
|
873
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1079
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
874
1080
|
} else {
|
|
875
1081
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
876
1082
|
plannerElement.PosNr = jsonElement.posNr;
|
|
877
1083
|
}
|
|
878
|
-
|
|
1084
|
+
_context5.next = 32;
|
|
879
1085
|
break;
|
|
880
|
-
case
|
|
881
|
-
|
|
882
|
-
|
|
1086
|
+
case 29:
|
|
1087
|
+
_context5.prev = 29;
|
|
1088
|
+
_context5.t0 = _context5["catch"](8);
|
|
883
1089
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
884
|
-
cause:
|
|
1090
|
+
cause: _context5.t0,
|
|
885
1091
|
code: 'WC_0012'
|
|
886
1092
|
}));
|
|
887
|
-
case
|
|
1093
|
+
case 32:
|
|
888
1094
|
i++;
|
|
889
|
-
|
|
1095
|
+
_context5.next = 7;
|
|
890
1096
|
break;
|
|
891
|
-
case
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
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) {
|
|
898
1105
|
if (i > 0) {
|
|
899
|
-
|
|
900
|
-
DPsInfo = elementsSortedbyPosNr[i].DP;
|
|
1106
|
+
DPsInfo = row.DP;
|
|
901
1107
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
902
1108
|
dpInfo = DPsInfo[j];
|
|
903
1109
|
sourceDP = curElement === null || curElement === void 0 ? void 0 : curElement.getDockingPointById(dpInfo.id);
|
|
@@ -910,19 +1116,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
910
1116
|
}
|
|
911
1117
|
}
|
|
912
1118
|
}
|
|
913
|
-
|
|
1119
|
+
_context5.next = 40;
|
|
914
1120
|
break;
|
|
915
|
-
case
|
|
1121
|
+
case 39:
|
|
916
1122
|
LOG.error(new DivaUtils.DivaError('The function extend Planner works only with products that are saved in the configurator 2.0', {
|
|
917
1123
|
code: 'WC_0012'
|
|
918
1124
|
}));
|
|
919
|
-
case
|
|
1125
|
+
case 40:
|
|
920
1126
|
case "end":
|
|
921
|
-
return
|
|
1127
|
+
return _context5.stop();
|
|
922
1128
|
}
|
|
923
|
-
},
|
|
1129
|
+
}, _callee5, this, [[8, 29]]);
|
|
924
1130
|
}));
|
|
925
|
-
function extendPlanner(
|
|
1131
|
+
function extendPlanner(_x10, _x11) {
|
|
926
1132
|
return _extendPlanner.apply(this, arguments);
|
|
927
1133
|
}
|
|
928
1134
|
return extendPlanner;
|
|
@@ -930,47 +1136,45 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
930
1136
|
}, {
|
|
931
1137
|
key: "initPlanner",
|
|
932
1138
|
value: function () {
|
|
933
|
-
var _initPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function
|
|
934
|
-
var
|
|
935
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
936
|
-
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) {
|
|
937
1143
|
case 0:
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
_context5.next = 62;
|
|
1144
|
+
planData = parseSetPlanData(setPlanData);
|
|
1145
|
+
if (!isSavePlannerV2(planData)) {
|
|
1146
|
+
_context6.next = 63;
|
|
942
1147
|
break;
|
|
943
1148
|
}
|
|
944
1149
|
LOG.debug('Initialize set Plan Data - V2\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
945
|
-
if (
|
|
946
|
-
|
|
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;
|
|
947
1152
|
break;
|
|
948
1153
|
}
|
|
949
|
-
return
|
|
950
|
-
case
|
|
951
|
-
//Init new saved Plannings
|
|
1154
|
+
return _context6.abrupt("return");
|
|
1155
|
+
case 5:
|
|
952
1156
|
jsonElements = planData.set.elements;
|
|
953
1157
|
elementsSortedbyPosNr = [];
|
|
954
1158
|
accElements = [];
|
|
955
1159
|
i = 0;
|
|
956
|
-
case
|
|
1160
|
+
case 9:
|
|
957
1161
|
if (!(i < jsonElements.length)) {
|
|
958
|
-
|
|
1162
|
+
_context6.next = 37;
|
|
959
1163
|
break;
|
|
960
1164
|
}
|
|
961
|
-
|
|
1165
|
+
_context6.prev = 10;
|
|
962
1166
|
jsonElement = jsonElements[i];
|
|
963
|
-
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1167
|
+
catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo2 = saveElementArticleCodex(jsonElement)) !== null && _saveElementArticleCo2 !== void 0 ? _saveElementArticleCo2 : '');
|
|
964
1168
|
if (!(!catalogArticle && (_jsonElement$Accessoi2 = jsonElement.AccessoireInitParams) !== null && _jsonElement$Accessoi2 !== void 0 && _jsonElement$Accessoi2.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
965
|
-
|
|
1169
|
+
_context6.next = 16;
|
|
966
1170
|
break;
|
|
967
1171
|
}
|
|
968
1172
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
969
1173
|
code: 'WC_0012'
|
|
970
1174
|
}));
|
|
971
|
-
return
|
|
972
|
-
case
|
|
973
|
-
elementID =
|
|
1175
|
+
return _context6.abrupt("continue", 34);
|
|
1176
|
+
case 16:
|
|
1177
|
+
elementID = jsonElement.elementID;
|
|
974
1178
|
plannerElement = new index.PlannerElementData(this.set.getSetId(), jsonElement.basketID, elementID, DivaStandardPlanner.plannerType);
|
|
975
1179
|
this.nextElementId = elementID + 1;
|
|
976
1180
|
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
@@ -978,12 +1182,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
978
1182
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
979
1183
|
plannerElement.updatePlannerData(data);
|
|
980
1184
|
if (this.doDisablePlanner2D) {
|
|
981
|
-
|
|
1185
|
+
_context6.next = 26;
|
|
982
1186
|
break;
|
|
983
1187
|
}
|
|
984
|
-
|
|
1188
|
+
_context6.next = 26;
|
|
985
1189
|
return PlannerHandler2D.handler2D.loadSVG(plannerElement, this.set);
|
|
986
|
-
case
|
|
1190
|
+
case 26:
|
|
987
1191
|
//Im neuen speichern ist die Position hinten link - nicht mehr im Centrum wie im alten Planer
|
|
988
1192
|
//plannerElement.WorldPosCenter = new Vector3(jsonElement.x, jsonElement.y, jsonElement.z);
|
|
989
1193
|
plannerElement.WorldPosCenter = new index.Vector3(this.plannerBoundingBox.WorldPos.x + jsonElement.x, this.plannerBoundingBox.WorldPos.y + jsonElement.y, this.plannerBoundingBox.WorldPos.z + jsonElement.z);
|
|
@@ -991,141 +1195,151 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
991
1195
|
if (plannerElement.IsDockedAccessoire) {
|
|
992
1196
|
accElements.push(jsonElement);
|
|
993
1197
|
plannerElement.PosNr = jsonElement.posNr;
|
|
994
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
1198
|
+
if (jsonElement.accNr != null) plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
995
1199
|
} else {
|
|
996
1200
|
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
997
1201
|
plannerElement.PosNr = jsonElement.posNr;
|
|
998
1202
|
}
|
|
999
|
-
|
|
1203
|
+
_context6.next = 34;
|
|
1000
1204
|
break;
|
|
1001
|
-
case
|
|
1002
|
-
|
|
1003
|
-
|
|
1205
|
+
case 31:
|
|
1206
|
+
_context6.prev = 31;
|
|
1207
|
+
_context6.t0 = _context6["catch"](10);
|
|
1004
1208
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
1005
|
-
cause:
|
|
1209
|
+
cause: _context6.t0,
|
|
1006
1210
|
code: 'WC_0012'
|
|
1007
1211
|
}));
|
|
1008
|
-
case
|
|
1212
|
+
case 34:
|
|
1009
1213
|
i++;
|
|
1010
|
-
|
|
1214
|
+
_context6.next = 9;
|
|
1011
1215
|
break;
|
|
1012
|
-
case
|
|
1013
|
-
onlyOneBaseElement = elementsSortedbyPosNr.length == 1; //Saves if only one base element is in the planning. All the others are only accessoires
|
|
1014
|
-
|
|
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);
|
|
1015
1221
|
i = 0;
|
|
1016
|
-
case
|
|
1017
|
-
if (!(i <
|
|
1018
|
-
|
|
1222
|
+
case 40:
|
|
1223
|
+
if (!(i < elementsForDocking.length)) {
|
|
1224
|
+
_context6.next = 61;
|
|
1019
1225
|
break;
|
|
1020
1226
|
}
|
|
1021
|
-
|
|
1227
|
+
_context6.prev = 41;
|
|
1228
|
+
row = elementsForDocking[i];
|
|
1022
1229
|
if (!(i == 0 && onlyOneBaseElement && this.plannerHasStaticBackground)) {
|
|
1023
|
-
|
|
1230
|
+
_context6.next = 48;
|
|
1024
1231
|
break;
|
|
1025
1232
|
}
|
|
1026
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.
|
|
1027
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
|
|
1028
1236
|
_jsonElement = elementsSortedbyPosNr[i];
|
|
1029
|
-
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;
|
|
1030
1238
|
if (!hasSavedPos) {
|
|
1031
|
-
element = this.plannerElements.get(
|
|
1239
|
+
element = this.plannerElements.get(row.elementID);
|
|
1032
1240
|
if (element) element.WorldPosCenter = new index.Vector3(0, element.Height / 2, element.Depth / 2);
|
|
1033
1241
|
}
|
|
1034
|
-
return
|
|
1242
|
+
return _context6.abrupt("continue", 58);
|
|
1035
1243
|
case 48:
|
|
1036
|
-
if (!(
|
|
1037
|
-
|
|
1244
|
+
if (!(row.DP == null || row.DP.length == 0)) {
|
|
1245
|
+
_context6.next = 50;
|
|
1038
1246
|
break;
|
|
1039
1247
|
}
|
|
1040
|
-
return
|
|
1248
|
+
return _context6.abrupt("continue", 58);
|
|
1041
1249
|
case 50:
|
|
1042
|
-
DPsInfo =
|
|
1250
|
+
DPsInfo = row.DP;
|
|
1043
1251
|
for (j = 0; j < DPsInfo.length; j++) {
|
|
1044
1252
|
dpInfo = DPsInfo[j];
|
|
1045
|
-
if (dpInfo.id && dpInfo.
|
|
1046
|
-
sourceElement = this.plannerElements.get(
|
|
1253
|
+
if (dpInfo.id && dpInfo.onID != null && dpInfo.onDPID) {
|
|
1254
|
+
sourceElement = this.plannerElements.get(row.elementID);
|
|
1047
1255
|
sourceDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getDockingPointById(dpInfo.id);
|
|
1048
1256
|
targetElement = this.plannerElements.get(dpInfo.onID);
|
|
1049
1257
|
targetDP = targetElement === null || targetElement === void 0 ? void 0 : targetElement.getDockingPointById(dpInfo.onDPID);
|
|
1050
1258
|
if (sourceDP && targetDP) {
|
|
1051
|
-
|
|
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
|
+
}));
|
|
1052
1265
|
} else {
|
|
1053
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));
|
|
1054
1267
|
}
|
|
1055
1268
|
}
|
|
1056
1269
|
}
|
|
1057
|
-
|
|
1270
|
+
_context6.next = 58;
|
|
1058
1271
|
break;
|
|
1059
1272
|
case 54:
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
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,
|
|
1064
1278
|
code: 'WC_0012'
|
|
1065
1279
|
}));
|
|
1066
|
-
case
|
|
1280
|
+
case 58:
|
|
1067
1281
|
i++;
|
|
1068
|
-
|
|
1282
|
+
_context6.next = 40;
|
|
1069
1283
|
break;
|
|
1070
|
-
case
|
|
1071
|
-
|
|
1284
|
+
case 61:
|
|
1285
|
+
_context6.next = 116;
|
|
1072
1286
|
break;
|
|
1073
|
-
case
|
|
1287
|
+
case 63:
|
|
1074
1288
|
LOG.debug('Initialize set Plan Data - old V1\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
1075
|
-
|
|
1076
|
-
|
|
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;
|
|
1077
1292
|
break;
|
|
1078
1293
|
}
|
|
1079
|
-
return
|
|
1080
|
-
case
|
|
1081
|
-
|
|
1082
|
-
_jsonElements = planData.Sets[0].Elements;
|
|
1294
|
+
return _context6.abrupt("return");
|
|
1295
|
+
case 67:
|
|
1296
|
+
_jsonElements = legacySet.Elements;
|
|
1083
1297
|
_elementsSortedbyPosNr = [];
|
|
1084
1298
|
_accElements = []; //Zuerst initialisiere alle Elemente
|
|
1085
1299
|
//Dann positioniere sie richtig
|
|
1086
1300
|
i = 0;
|
|
1087
|
-
case
|
|
1301
|
+
case 71:
|
|
1088
1302
|
if (!(i < _jsonElements.length)) {
|
|
1089
|
-
|
|
1303
|
+
_context6.next = 105;
|
|
1090
1304
|
break;
|
|
1091
1305
|
}
|
|
1092
|
-
|
|
1306
|
+
_context6.prev = 72;
|
|
1093
1307
|
_jsonElement2 = _jsonElements[i];
|
|
1094
|
-
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex(
|
|
1308
|
+
_catalogArticle = this.set.CatalogData.getCatalogArticleByArticleCodex((_saveElementArticleCo3 = saveElementArticleCodex(_jsonElement2)) !== null && _saveElementArticleCo3 !== void 0 ? _saveElementArticleCo3 : '');
|
|
1095
1309
|
if (!(!_catalogArticle && (_jsonElement2$Accesso = _jsonElement2.AccessoireInitParams) !== null && _jsonElement2$Accesso !== void 0 && _jsonElement2$Accesso.RelatedToBasketID && !this.set.getSetState.onlyRunLogic)) {
|
|
1096
|
-
|
|
1310
|
+
_context6.next = 78;
|
|
1097
1311
|
break;
|
|
1098
1312
|
}
|
|
1099
|
-
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', {
|
|
1100
1314
|
code: 'WC_0012'
|
|
1101
1315
|
}));
|
|
1102
|
-
return
|
|
1103
|
-
case
|
|
1316
|
+
return _context6.abrupt("continue", 102);
|
|
1317
|
+
case 78:
|
|
1104
1318
|
basketID = _jsonElement2.BasketID;
|
|
1105
1319
|
if (this.set.getElementId(basketID) == -1) this.set.setElementId(basketID, Number(_jsonElement2.ID));
|
|
1106
|
-
|
|
1107
|
-
_jsonElement2.elementId =
|
|
1108
|
-
if (!(
|
|
1109
|
-
|
|
1320
|
+
_elementId = this.set.getElementId(basketID);
|
|
1321
|
+
_jsonElement2.elementId = _elementId;
|
|
1322
|
+
if (!(_elementId == -1)) {
|
|
1323
|
+
_context6.next = 85;
|
|
1110
1324
|
break;
|
|
1111
1325
|
}
|
|
1112
1326
|
LOG.error(new DivaUtils.DivaError('Error when initializing planner. The elementID Was not saved in the article. ', {
|
|
1113
1327
|
code: 'WC_0012'
|
|
1114
1328
|
}));
|
|
1115
|
-
return
|
|
1116
|
-
case
|
|
1117
|
-
_plannerElement = new index.PlannerElementData(this.set.getSetId(), basketID,
|
|
1118
|
-
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;
|
|
1119
1333
|
this.plannerElements.set(_plannerElement.ElementId, _plannerElement);
|
|
1120
1334
|
_data = this.set.getPlannerData(_plannerElement.ElementId);
|
|
1121
1335
|
_plannerElement.updatePlannerData(_data);
|
|
1122
1336
|
if (this.doDisablePlanner2D) {
|
|
1123
|
-
|
|
1337
|
+
_context6.next = 93;
|
|
1124
1338
|
break;
|
|
1125
1339
|
}
|
|
1126
|
-
|
|
1340
|
+
_context6.next = 93;
|
|
1127
1341
|
return PlannerHandler2D.handler2D.loadSVG(_plannerElement, this.set);
|
|
1128
|
-
case
|
|
1342
|
+
case 93:
|
|
1129
1343
|
//Achtung die Pos Infos im alten Planer waren Zentrumskoordinaten!!! Nicht hinten oben.
|
|
1130
1344
|
centerWorldPos = new index.Vector3(_jsonElement2.PosX, _jsonElement2.PosZ, _jsonElement2.PosY);
|
|
1131
1345
|
_plannerElement.WorldPosCenter = new index.Vector3(this.plannerBoundingBox.WorldPos.x + centerWorldPos.x, this.plannerBoundingBox.WorldPos.y + centerWorldPos.y, this.plannerBoundingBox.WorldPos.z + centerWorldPos.z);
|
|
@@ -1135,72 +1349,77 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1135
1349
|
if (_jsonElement2.PosNum.toString().indexOf('.') > 0) {
|
|
1136
1350
|
parentPosNr = _jsonElement2.PosNum.toString().split('.')[0];
|
|
1137
1351
|
accPosNr = _jsonElement2.PosNum.toString().split('.')[1];
|
|
1138
|
-
_plannerElement.PosNr = parentPosNr;
|
|
1139
|
-
_plannerElement.AccessoirePosNr = accPosNr;
|
|
1352
|
+
_plannerElement.PosNr = Number(parentPosNr);
|
|
1353
|
+
_plannerElement.AccessoirePosNr = Number(accPosNr);
|
|
1140
1354
|
}
|
|
1141
1355
|
} else {
|
|
1142
1356
|
_elementsSortedbyPosNr[_jsonElement2.PosNum - 1] = _jsonElement2;
|
|
1143
1357
|
_plannerElement.PosNr = _jsonElement2.PosNum;
|
|
1144
1358
|
}
|
|
1145
|
-
|
|
1359
|
+
_context6.next = 102;
|
|
1146
1360
|
break;
|
|
1147
|
-
case
|
|
1148
|
-
|
|
1149
|
-
|
|
1361
|
+
case 99:
|
|
1362
|
+
_context6.prev = 99;
|
|
1363
|
+
_context6.t2 = _context6["catch"](72);
|
|
1150
1364
|
LOG.error(new DivaUtils.DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner - Plan Data old Planner', {
|
|
1151
|
-
cause:
|
|
1365
|
+
cause: _context6.t2,
|
|
1152
1366
|
code: 'WC_0012'
|
|
1153
1367
|
}));
|
|
1154
|
-
case
|
|
1368
|
+
case 102:
|
|
1155
1369
|
i++;
|
|
1156
|
-
|
|
1370
|
+
_context6.next = 71;
|
|
1157
1371
|
break;
|
|
1158
|
-
case 103:
|
|
1159
|
-
_elementsSortedbyPosNr = _elementsSortedbyPosNr.concat(_accElements);
|
|
1160
|
-
//Dann werden die DockingPoints durchgegangen und die jeweils richtigen müssen gesucht werden.
|
|
1161
|
-
i = 0;
|
|
1162
1372
|
case 105:
|
|
1163
|
-
|
|
1164
|
-
|
|
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;
|
|
1165
1380
|
break;
|
|
1166
1381
|
}
|
|
1167
|
-
|
|
1168
|
-
|
|
1382
|
+
_row = elementsForDockingV1[i];
|
|
1383
|
+
if (!(_row.DP == null || _row.DP.length == 0)) {
|
|
1384
|
+
_context6.next = 111;
|
|
1169
1385
|
break;
|
|
1170
1386
|
}
|
|
1171
|
-
return
|
|
1172
|
-
case
|
|
1173
|
-
_DPsInfo =
|
|
1387
|
+
return _context6.abrupt("continue", 113);
|
|
1388
|
+
case 111:
|
|
1389
|
+
_DPsInfo = _row.DP;
|
|
1174
1390
|
for (j = 0; j < _DPsInfo.length; j++) {
|
|
1175
1391
|
_dpInfo = _DPsInfo[j];
|
|
1176
1392
|
if (_dpInfo.DP && _dpInfo.DP != '' && _dpInfo.onID && _dpInfo.onID != '') {
|
|
1177
|
-
targetElementId = parseInt(_dpInfo.onID);
|
|
1393
|
+
targetElementId = parseInt(String(_dpInfo.onID));
|
|
1178
1394
|
dpType = _dpInfo.DP;
|
|
1179
|
-
curElement = this.plannerElements.get(
|
|
1395
|
+
curElement = _row.elementId != null ? this.plannerElements.get(_row.elementId) : undefined;
|
|
1180
1396
|
_targetElement = (_this$plannerElements = this.plannerElements.get(targetElementId)) !== null && _this$plannerElements !== void 0 ? _this$plannerElements : this.getPlannerElementByIndex(targetElementId - 1);
|
|
1181
1397
|
if (curElement && _targetElement) {
|
|
1182
1398
|
PlannerHandler2D.dockingPointHandlerInst.initDockingPointRelationByArea(curElement, _targetElement, dpType);
|
|
1183
1399
|
} else {
|
|
1184
|
-
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, {
|
|
1185
1401
|
code: 'WC_0012'
|
|
1186
1402
|
}));
|
|
1187
1403
|
}
|
|
1188
1404
|
}
|
|
1189
1405
|
}
|
|
1190
|
-
case
|
|
1406
|
+
case 113:
|
|
1191
1407
|
i++;
|
|
1192
|
-
|
|
1408
|
+
_context6.next = 107;
|
|
1193
1409
|
break;
|
|
1194
|
-
case
|
|
1195
|
-
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);
|
|
1196
1415
|
this.updatePlannerPosNr();
|
|
1197
|
-
case
|
|
1416
|
+
case 119:
|
|
1198
1417
|
case "end":
|
|
1199
|
-
return
|
|
1418
|
+
return _context6.stop();
|
|
1200
1419
|
}
|
|
1201
|
-
},
|
|
1420
|
+
}, _callee6, this, [[10, 31], [41, 54], [72, 99]]);
|
|
1202
1421
|
}));
|
|
1203
|
-
function initPlanner(
|
|
1422
|
+
function initPlanner(_x12) {
|
|
1204
1423
|
return _initPlanner.apply(this, arguments);
|
|
1205
1424
|
}
|
|
1206
1425
|
return initPlanner;
|
|
@@ -1219,11 +1438,11 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1219
1438
|
}, {
|
|
1220
1439
|
key: "addPlannerElement",
|
|
1221
1440
|
value: function () {
|
|
1222
|
-
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) {
|
|
1223
1442
|
var _params$dockingPointI, _t$, _t$2, _t$3;
|
|
1224
1443
|
var plannerElement, data, t;
|
|
1225
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
1226
|
-
while (1) switch (
|
|
1444
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
|
|
1445
|
+
while (1) switch (_context7.prev = _context7.next) {
|
|
1227
1446
|
case 0:
|
|
1228
1447
|
// _elementId: number, _setId: string, _basketId: string, elementInitProp: any, catalogElement: CatalogPlannerArticleData
|
|
1229
1448
|
plannerElement = new index.PlannerElementData(this.set.getSetId(), basketID, this.nextElementId, DivaStandardPlanner.plannerType /*, this.set.getSetId(), basketID, elementInitProp, catalogElement*/);
|
|
@@ -1234,10 +1453,10 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1234
1453
|
plannerElement.updatePlannerData(data);
|
|
1235
1454
|
//Do load the svg
|
|
1236
1455
|
if (this.doDisablePlanner2D) {
|
|
1237
|
-
|
|
1456
|
+
_context7.next = 9;
|
|
1238
1457
|
break;
|
|
1239
1458
|
}
|
|
1240
|
-
|
|
1459
|
+
_context7.next = 9;
|
|
1241
1460
|
return PlannerHandler2D.handler2D.loadSVG(plannerElement, this.set);
|
|
1242
1461
|
case 9:
|
|
1243
1462
|
t = (_params$dockingPointI = params.dockingPointInfos) !== null && _params$dockingPointI !== void 0 ? _params$dockingPointI : [{
|
|
@@ -1245,49 +1464,49 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1245
1464
|
targetElemIdToDock: params.targetElemIdToDock
|
|
1246
1465
|
}];
|
|
1247
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)) {
|
|
1248
|
-
|
|
1467
|
+
_context7.next = 15;
|
|
1249
1468
|
break;
|
|
1250
1469
|
}
|
|
1251
|
-
|
|
1470
|
+
_context7.next = 13;
|
|
1252
1471
|
return this.addElementToWorld(plannerElement, t);
|
|
1253
1472
|
case 13:
|
|
1254
|
-
|
|
1473
|
+
_context7.next = 27;
|
|
1255
1474
|
break;
|
|
1256
1475
|
case 15:
|
|
1257
1476
|
if (!(t !== null && t !== void 0 && (_t$3 = t[0]) !== null && _t$3 !== void 0 && _t$3.targetElemIdToDock)) {
|
|
1258
|
-
|
|
1477
|
+
_context7.next = 20;
|
|
1259
1478
|
break;
|
|
1260
1479
|
}
|
|
1261
|
-
|
|
1480
|
+
_context7.next = 18;
|
|
1262
1481
|
return this.addElementToWorld(plannerElement, t);
|
|
1263
1482
|
case 18:
|
|
1264
|
-
|
|
1483
|
+
_context7.next = 27;
|
|
1265
1484
|
break;
|
|
1266
1485
|
case 20:
|
|
1267
1486
|
if (!params.oldPlannerTransform) {
|
|
1268
|
-
|
|
1487
|
+
_context7.next = 25;
|
|
1269
1488
|
break;
|
|
1270
1489
|
}
|
|
1271
|
-
|
|
1490
|
+
_context7.next = 23;
|
|
1272
1491
|
return this.addElementToWorld(plannerElement, undefined, undefined, undefined, undefined, {
|
|
1273
1492
|
forceSetToTrans: true,
|
|
1274
1493
|
transform: params.oldPlannerTransform
|
|
1275
1494
|
});
|
|
1276
1495
|
case 23:
|
|
1277
|
-
|
|
1496
|
+
_context7.next = 27;
|
|
1278
1497
|
break;
|
|
1279
1498
|
case 25:
|
|
1280
|
-
|
|
1499
|
+
_context7.next = 27;
|
|
1281
1500
|
return this.addElementToWorld(plannerElement);
|
|
1282
1501
|
case 27:
|
|
1283
1502
|
this.updatePlannerBoundingBox();
|
|
1284
1503
|
case 28:
|
|
1285
1504
|
case "end":
|
|
1286
|
-
return
|
|
1505
|
+
return _context7.stop();
|
|
1287
1506
|
}
|
|
1288
|
-
},
|
|
1507
|
+
}, _callee7, this);
|
|
1289
1508
|
}));
|
|
1290
|
-
function addPlannerElement(
|
|
1509
|
+
function addPlannerElement(_x13, _x14) {
|
|
1291
1510
|
return _addPlannerElement.apply(this, arguments);
|
|
1292
1511
|
}
|
|
1293
1512
|
return addPlannerElement;
|
|
@@ -1306,34 +1525,68 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1306
1525
|
}, {
|
|
1307
1526
|
key: "copyPlannerElement",
|
|
1308
1527
|
value: (function () {
|
|
1309
|
-
var _copyPlannerElement = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function
|
|
1310
|
-
var
|
|
1311
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
1312
|
-
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) {
|
|
1313
1532
|
case 0:
|
|
1314
|
-
articlesToLoad = [];
|
|
1315
|
-
articleCopyRelation.forEach(function (rel) {
|
|
1316
|
-
if (copyInfo == undefined) articlesToLoad.push(rel.value);
|
|
1317
|
-
});
|
|
1318
1533
|
i = 0;
|
|
1319
|
-
case
|
|
1320
|
-
if (!(i <
|
|
1321
|
-
|
|
1534
|
+
case 1:
|
|
1535
|
+
if (!(i < articleCopyRelation.length)) {
|
|
1536
|
+
_context8.next = 24;
|
|
1322
1537
|
break;
|
|
1323
1538
|
}
|
|
1324
|
-
|
|
1325
|
-
|
|
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, {});
|
|
1326
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:
|
|
1327
1580
|
i++;
|
|
1328
|
-
|
|
1581
|
+
_context8.next = 1;
|
|
1329
1582
|
break;
|
|
1330
|
-
case
|
|
1583
|
+
case 24:
|
|
1331
1584
|
case "end":
|
|
1332
|
-
return
|
|
1585
|
+
return _context8.stop();
|
|
1333
1586
|
}
|
|
1334
|
-
},
|
|
1587
|
+
}, _callee8, this);
|
|
1335
1588
|
}));
|
|
1336
|
-
function copyPlannerElement(
|
|
1589
|
+
function copyPlannerElement(_x15, _x16) {
|
|
1337
1590
|
return _copyPlannerElement.apply(this, arguments);
|
|
1338
1591
|
}
|
|
1339
1592
|
return copyPlannerElement;
|
|
@@ -1352,7 +1605,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1352
1605
|
}, {
|
|
1353
1606
|
key: "getPlannerElementsInfluencedByCopy",
|
|
1354
1607
|
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
1355
|
-
|
|
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');
|
|
1356
1610
|
if (this.plannerElements.has(elementId)) return [elementId];
|
|
1357
1611
|
return [];
|
|
1358
1612
|
}
|
|
@@ -1365,19 +1619,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1365
1619
|
}, {
|
|
1366
1620
|
key: "deletePlannerElement",
|
|
1367
1621
|
value: (function () {
|
|
1368
|
-
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) {
|
|
1369
1623
|
var plannerElement, parent, prevPosNum, nextPosNum, newSelElemIdPrev, newSelElemIdNext, endForEach, removeDockingRelation, avlVec, avrVec, elementLeft, elementRight, avrElementLeft, avlElementRight, transform;
|
|
1370
|
-
return _regeneratorRuntime__default["default"].wrap(function
|
|
1371
|
-
while (1) switch (
|
|
1624
|
+
return _regeneratorRuntime__default["default"].wrap(function _callee9$(_context9) {
|
|
1625
|
+
while (1) switch (_context9.prev = _context9.next) {
|
|
1372
1626
|
case 0:
|
|
1373
|
-
|
|
1627
|
+
_context9.next = 2;
|
|
1374
1628
|
return DivaUtils__default["default"].Sleep(1);
|
|
1375
1629
|
case 2:
|
|
1376
1630
|
if (this.plannerElements.has(elementId)) {
|
|
1377
|
-
|
|
1631
|
+
_context9.next = 4;
|
|
1378
1632
|
break;
|
|
1379
1633
|
}
|
|
1380
|
-
return
|
|
1634
|
+
return _context9.abrupt("return", {});
|
|
1381
1635
|
case 4:
|
|
1382
1636
|
plannerElement = this.plannerElements.get(elementId);
|
|
1383
1637
|
parent = this.getParentElement(plannerElement);
|
|
@@ -1434,17 +1688,17 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1434
1688
|
this.updatePlannerPosNr();
|
|
1435
1689
|
this.checkCollision(false, plannerElement.getElementId());
|
|
1436
1690
|
this.updatePlannerBoundingBox();
|
|
1437
|
-
return
|
|
1691
|
+
return _context9.abrupt("return", {
|
|
1438
1692
|
newElementToSelect: newSelElemIdPrev >= 0 ? newSelElemIdPrev : newSelElemIdNext >= 0 ? newSelElemIdNext : undefined,
|
|
1439
1693
|
transform: transform
|
|
1440
1694
|
});
|
|
1441
1695
|
case 24:
|
|
1442
1696
|
case "end":
|
|
1443
|
-
return
|
|
1697
|
+
return _context9.stop();
|
|
1444
1698
|
}
|
|
1445
|
-
},
|
|
1699
|
+
}, _callee9, this);
|
|
1446
1700
|
}));
|
|
1447
|
-
function deletePlannerElement(
|
|
1701
|
+
function deletePlannerElement(_x17, _x18) {
|
|
1448
1702
|
return _deletePlannerElement.apply(this, arguments);
|
|
1449
1703
|
}
|
|
1450
1704
|
return deletePlannerElement;
|
|
@@ -1536,8 +1790,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1536
1790
|
element.SetPosNr = startSetPosNr + element.PosNr - 1;
|
|
1537
1791
|
this.set.setPosNr(element.ElementId, element.getPosNr());
|
|
1538
1792
|
}
|
|
1539
|
-
for (var
|
|
1540
|
-
if (!elements[
|
|
1793
|
+
for (var _i4 = 0; _i4 < elements.length; _i4++) {
|
|
1794
|
+
if (!elements[_i4].IsAccessoire) this.set.giveAccNewPosNrByBasketId(elements[_i4].getBasketId());
|
|
1541
1795
|
}
|
|
1542
1796
|
return elements.length;
|
|
1543
1797
|
}
|
|
@@ -1554,12 +1808,12 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1554
1808
|
*/
|
|
1555
1809
|
}, {
|
|
1556
1810
|
key: "updatePlannerTrans",
|
|
1557
|
-
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
|
|
1811
|
+
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance, turningPoint) {
|
|
1558
1812
|
var _this3 = this;
|
|
1559
1813
|
var updateConfig = false;
|
|
1560
1814
|
if (this.plannerElements.has(elementId)) {
|
|
1561
1815
|
var plannerElement = this.plannerElements.get(elementId);
|
|
1562
|
-
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);
|
|
1563
1817
|
if (transState == 'START') {
|
|
1564
1818
|
if (plannerElement) {
|
|
1565
1819
|
var dpsToUndock = ['AVR', 'AVL'];
|
|
@@ -1742,8 +1996,8 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1742
1996
|
}
|
|
1743
1997
|
var shelfPlannerElements = _this5.set.getShelfPlannerData(elemId);
|
|
1744
1998
|
if (shelfPlannerElements) {
|
|
1745
|
-
for (var
|
|
1746
|
-
var accessorire = shelfPlannerElements[
|
|
1999
|
+
for (var _i5 = 0; _i5 < shelfPlannerElements.length; _i5++) {
|
|
2000
|
+
var accessorire = shelfPlannerElements[_i5];
|
|
1747
2001
|
var shelfConfig = _this5.set.getShelfPlannerConfigData(accessorire.basketId).config;
|
|
1748
2002
|
var _accElements2 = [];
|
|
1749
2003
|
if (shelfConfig.accs && shelfConfig.accs.length > 0) {
|