@crystaldesign/web-planner-logic 24.10.0-beta.2 → 24.10.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/{DivaBoxPlanner-6a883291.js → DivaBoxPlanner-f5288507.js} +16 -18
- package/build/cjs/{DivaStandardPlanner-a18f752d.js → DivaStandardPlanner-e910ac72.js} +26 -30
- package/build/cjs/{DoorPlanner-5164c50d.js → DoorPlanner-3c76f0cf.js} +1 -1
- package/build/cjs/{Host3DSignalR-f13134cb.js → Host3DSignalR-1e376e3f.js} +1 -6
- package/build/cjs/{LiviqueWWSHandler-32bb295f.js → LiviqueWWSHandler-248f4aa6.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-0447de84.js → PfisterWWSHandler-a28671cf.js} +1 -1
- package/build/cjs/{PlannerHandler2D-a941c306.js → PlannerHandler2D-085a6eb4.js} +1249 -10
- package/build/cjs/{ProductBasketHandler-144386d9.js → ProductBasketHandler-fb47032b.js} +1 -1
- package/build/cjs/{SeriousBasketHandler-e7f5bfb9.js → SeriousBasketHandler-768b44df.js} +1 -1
- package/build/cjs/{ShelfPlanner-63df1fef.js → ShelfPlanner-6d8d7580.js} +6 -6
- package/build/cjs/{StandardWWSHandler-96b3ab81.js → StandardWWSHandler-196a78e7.js} +1 -1
- package/build/cjs/{index-0cf8efc1.js → index-3703fcc3.js} +1367 -1799
- package/build/cjs/index.js +1 -1
- package/build/esm/{DivaBoxPlanner-0a38d41b.js → DivaBoxPlanner-4c8eb4d1.js} +5 -7
- package/build/esm/{DivaStandardPlanner-774854f1.js → DivaStandardPlanner-bff9587a.js} +5 -9
- package/build/esm/{DoorPlanner-c9293a3a.js → DoorPlanner-715224ea.js} +1 -1
- package/build/esm/{Host3DSignalR-3ca1dd9c.js → Host3DSignalR-69dbf5aa.js} +1 -6
- package/build/esm/{LiviqueWWSHandler-28edc334.js → LiviqueWWSHandler-f0ff1337.js} +1 -1
- package/build/esm/{PfisterWWSHandler-21e4c2f3.js → PfisterWWSHandler-c869657f.js} +1 -1
- package/build/esm/{PlannerHandler2D-9f4f8efb.js → PlannerHandler2D-ba45ba21.js} +1245 -8
- package/build/esm/{ProductBasketHandler-fa0c1a9e.js → ProductBasketHandler-d5f9fa30.js} +1 -1
- package/build/esm/{SeriousBasketHandler-2e0ab157.js → SeriousBasketHandler-9fdcebc2.js} +1 -1
- package/build/esm/{ShelfPlanner-c52e6233.js → ShelfPlanner-e5c01f8b.js} +6 -6
- package/build/esm/{StandardWWSHandler-72ea1ffc.js → StandardWWSHandler-72cb836f.js} +1 -1
- package/build/esm/{index-622ebf68.js → index-98a31597.js} +1367 -1799
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +1 -0
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/TemplateConfigType.d.ts +7 -7
- package/build/types/web-planner-logic/src/interface/API/TemplateConfigType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts +2 -5
- package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts +2 -2
- package/build/types/web-planner-logic/src/interface/Configuration.d.ts +1 -3
- package/build/types/web-planner-logic/src/interface/Configuration.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts +44 -14
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/FunctionTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/ArticleOptionDataTypes.d.ts +0 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/ArticleOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts +1 -2
- package/build/types/web-planner-logic/src/interface/Planner/IDivaPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/IDivaSetPlanner.d.ts +1 -3
- package/build/types/web-planner-logic/src/interface/Planner/IDivaSetPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +3 -2
- package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +0 -1
- 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 +2 -3
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts +3 -2
- 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 +4 -4
- 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.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +1 -12
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +1 -2
- 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.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +1 -2
- 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/DivaMediaServiceHandler.d.ts +0 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/DivaMediaServiceHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts +0 -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 +0 -17
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/RenderSettings.d.ts +0 -9
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/RenderSettings.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Rendering.d.ts +0 -13
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/Rendering.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/types.d.ts +0 -3
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/types.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +2 -3
- 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 +0 -6
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/FavoritesHandler.d.ts +1 -1
- package/build/types/web-planner-logic/src/logic/Set/FavoritesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/DivaCatalogData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/DivaCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionValueData.d.ts +0 -1
- 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.map +1 -1
- package/build/types/web-planner-logic/src/test/datas/environments/testing/pfister-dev.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/scripts/productHandlerMoc.d.ts.map +1 -1
- package/package.json +2 -2
- package/build/cjs/DivaSingleProductPlanner-fcf3e4be.js +0 -1169
- package/build/cjs/DockingPointHandler-5c6b6024.js +0 -1255
- package/build/esm/DivaSingleProductPlanner-76dcd48c.js +0 -1158
- package/build/esm/DockingPointHandler-c35c0ee3.js +0 -1245
- package/build/types/web-planner-logic/src/logic/Planner/DivaSingleProductPlanner.d.ts +0 -140
- package/build/types/web-planner-logic/src/logic/Planner/DivaSingleProductPlanner.d.ts.map +0 -1
|
@@ -1,1158 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
2
|
-
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
3
|
-
import _createClass from '@babel/runtime/helpers/createClass';
|
|
4
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
5
|
-
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
6
|
-
import { V as Vector3, c as Vector2, B as BoundingBox } from './index-622ebf68.js';
|
|
7
|
-
import { d as dockingPointHandlerInst, P as PlannerElementData } from './DockingPointHandler-c35c0ee3.js';
|
|
8
|
-
import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
|
|
9
|
-
import '@babel/runtime/helpers/objectWithoutProperties';
|
|
10
|
-
import '@babel/runtime/helpers/slicedToArray';
|
|
11
|
-
import '@babel/runtime/helpers/toConsumableArray';
|
|
12
|
-
import 'axios';
|
|
13
|
-
import '@crystaldesign/basket-model';
|
|
14
|
-
import '@crystaldesign/basket-handler';
|
|
15
|
-
import 'socket.io-client';
|
|
16
|
-
import '@babel/runtime/helpers/typeof';
|
|
17
|
-
|
|
18
|
-
var LOG = DivaUtils.initLog('Planner', 'WEB-PLANNER-LOGIC');
|
|
19
|
-
var DivaSingleProductPlanner = /*#__PURE__*/function () {
|
|
20
|
-
/*
|
|
21
|
-
This function updates te planner data of all Elements if they changed.
|
|
22
|
-
It returns true if some values changed - otherwise it returns false
|
|
23
|
-
*/
|
|
24
|
-
/*private updatePlannerData(): boolean {
|
|
25
|
-
return true;
|
|
26
|
-
}*/
|
|
27
|
-
|
|
28
|
-
function DivaSingleProductPlanner(set, plannerId, globalBoundingBox, doHidePlanner) {
|
|
29
|
-
_classCallCheck(this, DivaSingleProductPlanner);
|
|
30
|
-
_defineProperty(this, "plannerID", void 0);
|
|
31
|
-
_defineProperty(this, "set", void 0);
|
|
32
|
-
_defineProperty(this, "plannerBoundingBox", void 0);
|
|
33
|
-
_defineProperty(this, "plannerElements", void 0);
|
|
34
|
-
//speichert alle Renderings
|
|
35
|
-
_defineProperty(this, "doIgnorePlanningCompleted", false);
|
|
36
|
-
_defineProperty(this, "doCheckConstructionWarnings", void 0);
|
|
37
|
-
_defineProperty(this, "nextElementId", 1);
|
|
38
|
-
this.set = set;
|
|
39
|
-
this.plannerID = plannerId;
|
|
40
|
-
this.plannerElements = new Map();
|
|
41
|
-
this.plannerBoundingBox = new BoundingBox();
|
|
42
|
-
this.plannerBoundingBox.initPlannerBBox(globalBoundingBox);
|
|
43
|
-
var catalog = this.set.CatalogData;
|
|
44
|
-
this.doCheckConstructionWarnings = catalog.doCheckConstructionWarnings;
|
|
45
|
-
this.doIgnorePlanningCompleted = catalog.doHideCompletenessWarning;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* This function updates all position numbers of all planner elements.
|
|
50
|
-
* The sorting of the position number depends on element chains. When Elements are docked via AVR and AVL - this is one chain.
|
|
51
|
-
* The positioning starts with the chain with the smalles x.
|
|
52
|
-
* The position of the accessoires are saved in a separate accPosNr.
|
|
53
|
-
*/
|
|
54
|
-
return _createClass(DivaSingleProductPlanner, [{
|
|
55
|
-
key: "updatePlannerPosNr",
|
|
56
|
-
value: function updatePlannerPosNr() {
|
|
57
|
-
//Bilde zuerst Ketten
|
|
58
|
-
//Suche alle Elemente, die kein AVL haben, oder deren AVL nicht dockt.
|
|
59
|
-
//All diese Werden anschließend der reihe nach sortiert.
|
|
60
|
-
var startChainElements = [];
|
|
61
|
-
var allElementsToUpdate = new Map();
|
|
62
|
-
var that = this;
|
|
63
|
-
this.plannerElements.forEach(function (plannerElement, elementId) {
|
|
64
|
-
allElementsToUpdate.set(elementId, true);
|
|
65
|
-
if (!plannerElement.IsDockedAccessoire) {
|
|
66
|
-
if (!plannerElement.HasAVL || !plannerElement.dockingTypeIsDocking('AVL')) {
|
|
67
|
-
startChainElements.push(plannerElement);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
//Nun muss ich die Elemente so sortieren, dass die mit world pos ganz links sind.
|
|
73
|
-
startChainElements.sort(function (a, b) {
|
|
74
|
-
return a.WorldPosCorner.x < b.WorldPosCorner.x ? 1 : 0;
|
|
75
|
-
});
|
|
76
|
-
var posNrAcc;
|
|
77
|
-
var _updateAccessoiresOfElement = function updateAccessoiresOfElement(curElement, posNrParent) {
|
|
78
|
-
//Nun habe ich ein Element und muss überprüfen, ob es Accessoires hat. Das sind Elemente, die über AVO, AVU oder AVC gedockt sind.
|
|
79
|
-
var accElements = [];
|
|
80
|
-
if (curElement.HasAVO) {
|
|
81
|
-
var avoDPs = curElement.getDockingDockingPointsByType('AVO');
|
|
82
|
-
for (var i = 0; i < avoDPs.length; i++) {
|
|
83
|
-
var refElementId = avoDPs[i].OnElementId;
|
|
84
|
-
if (allElementsToUpdate.has(refElementId)) {
|
|
85
|
-
var refElement = that.plannerElements.get(refElementId);
|
|
86
|
-
refElement.PosNr = posNrParent;
|
|
87
|
-
refElement.AccessoirePosNr = posNrAcc;
|
|
88
|
-
allElementsToUpdate["delete"](refElementId);
|
|
89
|
-
posNrAcc++;
|
|
90
|
-
accElements.push(refElement);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (curElement.HasAVC) {
|
|
95
|
-
var _avoDPs = curElement.getDockingDockingPointsByType('AVC');
|
|
96
|
-
for (var i = 0; i < _avoDPs.length; i++) {
|
|
97
|
-
var _refElementId = _avoDPs[i].OnElementId;
|
|
98
|
-
if (allElementsToUpdate.has(_refElementId)) {
|
|
99
|
-
var _refElement = that.plannerElements.get(_refElementId);
|
|
100
|
-
_refElement.PosNr = posNrParent;
|
|
101
|
-
_refElement.AccessoirePosNr = posNrAcc;
|
|
102
|
-
allElementsToUpdate["delete"](_refElementId);
|
|
103
|
-
posNrAcc++;
|
|
104
|
-
accElements.push(_refElement);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (curElement.HasAVU) {
|
|
109
|
-
var _avoDPs2 = curElement.getDockingDockingPointsByType('AVU');
|
|
110
|
-
for (var i = 0; i < _avoDPs2.length; i++) {
|
|
111
|
-
var _refElementId2 = _avoDPs2[i].OnElementId;
|
|
112
|
-
if (allElementsToUpdate.has(_refElementId2)) {
|
|
113
|
-
var _refElement2 = that.plannerElements.get(_refElementId2);
|
|
114
|
-
_refElement2.PosNr = posNrParent;
|
|
115
|
-
_refElement2.AccessoirePosNr = posNrAcc;
|
|
116
|
-
allElementsToUpdate["delete"](_refElementId2);
|
|
117
|
-
posNrAcc++;
|
|
118
|
-
accElements.push(_refElement2);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
//ACHTUNG ich darf nicht immer AVO AVU und AVC abfragen. Am Ende habe ich alles doppelt gemacht!!!!
|
|
123
|
-
for (var i = 0; i < accElements.length; i++) {
|
|
124
|
-
_updateAccessoiresOfElement(accElements[i], posNrParent);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
/**
|
|
128
|
-
* This function sets the posNr of each element in a chain. At the end it returns the currentPosNr
|
|
129
|
-
* @param curElementInChain
|
|
130
|
-
* @param posNr
|
|
131
|
-
*/
|
|
132
|
-
var _updatePosInChain = function updatePosInChain(curElementInChain, posNr) {
|
|
133
|
-
if (curElementInChain == undefined) return posNr;
|
|
134
|
-
curElementInChain.PosNr = posNr;
|
|
135
|
-
posNrAcc = 1;
|
|
136
|
-
_updateAccessoiresOfElement(curElementInChain, posNr);
|
|
137
|
-
posNr++;
|
|
138
|
-
allElementsToUpdate["delete"](curElementInChain.ElementId);
|
|
139
|
-
if (!curElementInChain.HasAVR || !curElementInChain.dockingTypeIsDocking('AVR')) {
|
|
140
|
-
//End of chain
|
|
141
|
-
return posNr;
|
|
142
|
-
} else {
|
|
143
|
-
//Not end of chain Get nextElement
|
|
144
|
-
var dps = curElementInChain.getDockingDockingPointsByType('AVR');
|
|
145
|
-
var refElementId = dps[0].OnElementId;
|
|
146
|
-
return _updatePosInChain(that.plannerElements.get(refElementId), posNr);
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
var posNr = 1;
|
|
150
|
-
for (var i = 0; i < startChainElements.length; i++) {
|
|
151
|
-
posNr = _updatePosInChain(startChainElements[i], posNr);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}, {
|
|
155
|
-
key: "extendPlanner",
|
|
156
|
-
value: function () {
|
|
157
|
-
var _extendPlanner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(setPlanData, globalBoundingBox) {
|
|
158
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
159
|
-
while (1) switch (_context.prev = _context.next) {
|
|
160
|
-
case 0:
|
|
161
|
-
return _context.abrupt("return");
|
|
162
|
-
case 1:
|
|
163
|
-
case "end":
|
|
164
|
-
return _context.stop();
|
|
165
|
-
}
|
|
166
|
-
}, _callee);
|
|
167
|
-
}));
|
|
168
|
-
function extendPlanner(_x, _x2) {
|
|
169
|
-
return _extendPlanner.apply(this, arguments);
|
|
170
|
-
}
|
|
171
|
-
return extendPlanner;
|
|
172
|
-
}()
|
|
173
|
-
/**
|
|
174
|
-
* This function updates the world pos of a planner Element depending on the docking Point.
|
|
175
|
-
* The docking Point contains all necessary information
|
|
176
|
-
* @param plannerElement
|
|
177
|
-
* @param dockingPoint
|
|
178
|
-
*/
|
|
179
|
-
}, {
|
|
180
|
-
key: "updateWorldPos",
|
|
181
|
-
value: function updateWorldPos(plannerElement, dockingPoint) {
|
|
182
|
-
var refElement = this.plannerElements.get(dockingPoint.OnElementId);
|
|
183
|
-
var refDockingPoint = refElement.getDockingPointById(dockingPoint.OnDP.DpId);
|
|
184
|
-
if (refDockingPoint == undefined) return;
|
|
185
|
-
var worldPosNewElement = new Vector3(0, 0, 0);
|
|
186
|
-
var rotatedLocalRefDP = new Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
187
|
-
rotatedLocalRefDP = Vector2.rotateOrigin(rotatedLocalRefDP, refElement.RotDeg);
|
|
188
|
-
var angleToRot = refElement.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
189
|
-
plannerElement.RotDeg = angleToRot;
|
|
190
|
-
var rotatedLocalDP2D = Vector2.rotateOrigin(new Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z), angleToRot);
|
|
191
|
-
worldPosNewElement.x = refElement.WorldPosCorner.x + rotatedLocalRefDP.x - rotatedLocalDP2D.x;
|
|
192
|
-
worldPosNewElement.y = refElement.WorldPosCorner.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
193
|
-
worldPosNewElement.z = refElement.WorldPosCorner.z + rotatedLocalRefDP.y - rotatedLocalDP2D.y;
|
|
194
|
-
plannerElement.WorldPosCorner = worldPosNewElement;
|
|
195
|
-
this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
196
|
-
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
197
|
-
plannerElement.updatePlannerData(data);
|
|
198
|
-
var refData = this.set.getPlannerData(refElement.ElementId);
|
|
199
|
-
refElement.updatePlannerData(refData);
|
|
200
|
-
|
|
201
|
-
/*
|
|
202
|
-
worldPosNewElement.x = refElement!.WorldPos.x + rotatedLocalRefDP.x - dockingPoint.LocalWorldPos.x;
|
|
203
|
-
worldPosNewElement.y = refElement!.WorldPos.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
204
|
-
worldPosNewElement.z = refElement!.WorldPos.z + rotatedLocalRefDP.y - dockingPoint.LocalWorldPos.z;
|
|
205
|
-
plannerElement.WorldPos = worldPosNewElement;
|
|
206
|
-
plannerElement.RotDeg = refElement!.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
207
|
-
*/
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* This function updates the position information of all elements. It is called after updating the SVG of 1 element.
|
|
212
|
-
* The position is updated based on the posNr.
|
|
213
|
-
* At the end - the collision is calculated
|
|
214
|
-
*/
|
|
215
|
-
}, {
|
|
216
|
-
key: "updateAllElementsWorldPos",
|
|
217
|
-
value: function updateAllElementsWorldPos(checkCollisionSingleElementId) {
|
|
218
|
-
return;
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
/**
|
|
222
|
-
* this function tries to position a planner element to the current planner elements in the world.
|
|
223
|
-
* If a element is selected it tries to dock the new planner Element to the selected planner element.
|
|
224
|
-
* If additional a docking Point is selected - it only docks to the selected docking point.
|
|
225
|
-
* If no element or DP is selected - it docks to the first free element.
|
|
226
|
-
* @param plannerElement The planner Element that is added to the planning scene
|
|
227
|
-
* @param dockToElementId A planner element the new plannerElement should be docked to.
|
|
228
|
-
* @param docktToAVName The AV Name of the dockToElement to dock.
|
|
229
|
-
*/
|
|
230
|
-
}, {
|
|
231
|
-
key: "addElementToWorld",
|
|
232
|
-
value: function addElementToWorld(plannerElement, targetElemIdToDock, targetDockingPointId) {
|
|
233
|
-
var that = this;
|
|
234
|
-
var dockToAVLorAVR = function dockToAVLorAVR(plannerElement, targetElements) {
|
|
235
|
-
var successfullyDockedAVL = false;
|
|
236
|
-
var successfullyDockedAVR = false;
|
|
237
|
-
if (plannerElement.HasAVL) {
|
|
238
|
-
//Try to dock Element to free AVR
|
|
239
|
-
var successDP = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVL', targetElements);
|
|
240
|
-
if (successDP) {
|
|
241
|
-
that.updateWorldPos(plannerElement, successDP);
|
|
242
|
-
successfullyDockedAVL = true; //Wenn es funktioniert
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
if (!successfullyDockedAVL) {
|
|
246
|
-
if (plannerElement.HasAVR) {
|
|
247
|
-
var _successDP = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVR', targetElements);
|
|
248
|
-
if (_successDP) {
|
|
249
|
-
successfullyDockedAVR = true;
|
|
250
|
-
that.updateWorldPos(plannerElement, _successDP);
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
return successfullyDockedAVL || successfullyDockedAVR;
|
|
255
|
-
};
|
|
256
|
-
var dockToAVUorAVOorAVC = function dockToAVUorAVOorAVC(plannerElement, targetElements) {
|
|
257
|
-
var successfullyDockedAVU = false;
|
|
258
|
-
var successfullyDockedAVO = false;
|
|
259
|
-
var successfullyDockedAVC = false;
|
|
260
|
-
if (plannerElement.HasAVU) {
|
|
261
|
-
//Try to dock Element to free AVR
|
|
262
|
-
var successDP = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVU', targetElements);
|
|
263
|
-
if (successDP) {
|
|
264
|
-
that.updateWorldPos(plannerElement, successDP);
|
|
265
|
-
successfullyDockedAVU = true; //Wenn es funktioniert
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
if (!successfullyDockedAVU) {
|
|
269
|
-
if (plannerElement.HasAVO) {
|
|
270
|
-
var _successDP2 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVO', targetElements);
|
|
271
|
-
if (_successDP2) {
|
|
272
|
-
successfullyDockedAVO = true;
|
|
273
|
-
that.updateWorldPos(plannerElement, _successDP2);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
if (!successfullyDockedAVU && !successfullyDockedAVO) {
|
|
278
|
-
if (plannerElement.HasAVC) {
|
|
279
|
-
var _successDP3 = dockingPointHandlerInst.tryDockElement(plannerElement, 'AVC', targetElements);
|
|
280
|
-
if (_successDP3) {
|
|
281
|
-
successfullyDockedAVC = true;
|
|
282
|
-
that.updateWorldPos(plannerElement, _successDP3);
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
return successfullyDockedAVU || successfullyDockedAVO || successfullyDockedAVC;
|
|
287
|
-
};
|
|
288
|
-
//Nun unterscheidet man, ob man das Element zu einem bestimmten vorselektierten Element Docken will , zu einem vorselektierten DockingPoint oder an eine Freie Planung.
|
|
289
|
-
if (targetElemIdToDock && targetElemIdToDock > -1 && this.plannerElements.has(targetElemIdToDock)) {
|
|
290
|
-
if (targetDockingPointId && targetDockingPointId != '') {
|
|
291
|
-
var targetElem = this.plannerElements.get(targetElemIdToDock);
|
|
292
|
-
if (targetElem) {
|
|
293
|
-
var targetDP = targetElem.getDockingPointById(targetDockingPointId);
|
|
294
|
-
if (targetDP) {
|
|
295
|
-
var successDP = dockingPointHandlerInst.tryDockElementToDP(plannerElement, targetElem, targetDP);
|
|
296
|
-
if (successDP) {
|
|
297
|
-
that.updateWorldPos(plannerElement, successDP);
|
|
298
|
-
}
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
} else {
|
|
302
|
-
var success = false;
|
|
303
|
-
if (plannerElement.HasAVL || plannerElement.HasAVR) {
|
|
304
|
-
success = dockToAVLorAVR(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
305
|
-
}
|
|
306
|
-
if (!success) {
|
|
307
|
-
success = dockToAVUorAVOorAVC(plannerElement, [this.plannerElements.get(targetElemIdToDock)]);
|
|
308
|
-
//No free AVR or AVL Docking Point
|
|
309
|
-
if (!success) this.addElementToWorld(plannerElement);
|
|
310
|
-
}
|
|
311
|
-
}
|
|
312
|
-
} else {
|
|
313
|
-
LOG.debug('Das neue Element soll an irgendeinen freien Platz gedockt werden.');
|
|
314
|
-
var allPlannerElements = this.getAllPlannerElements();
|
|
315
|
-
var _success = dockToAVLorAVR(plannerElement, allPlannerElements);
|
|
316
|
-
if (!_success) {
|
|
317
|
-
//No free AVR or AVL Docking Point
|
|
318
|
-
_success = dockToAVUorAVOorAVC(plannerElement, allPlannerElements);
|
|
319
|
-
if (!_success) {
|
|
320
|
-
//This is the center position of the element - This is needed in order to set the static room layout correctly
|
|
321
|
-
plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + this.plannerBoundingBox.Size.x + (this.plannerBoundingBox.Size.x == 0 ? 0 : plannerElement.Width / 2 + 100), this.plannerBoundingBox.WorldPos.y + plannerElement.Height / 2, this.plannerBoundingBox.WorldPos.z + plannerElement.Depth / 2);
|
|
322
|
-
//Tell the set that the element was not docked
|
|
323
|
-
this.set.onDockingChanged(plannerElement.ElementId, -1, 'NOT_DOCKED');
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
this.updatePlannerPosNr();
|
|
328
|
-
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
329
|
-
this.checkCollision(false, plannerElement.getElementId());
|
|
330
|
-
}
|
|
331
|
-
}, {
|
|
332
|
-
key: "initIDM3DMeta",
|
|
333
|
-
value: function initIDM3DMeta(IDM3DCatCodex) {
|
|
334
|
-
LOG.debug('No IDM3D Planner for SingleProductPlanner');
|
|
335
|
-
}
|
|
336
|
-
}, {
|
|
337
|
-
key: "getAllViewPlannerElements",
|
|
338
|
-
value: function getAllViewPlannerElements() {
|
|
339
|
-
return this.getAllPlannerElements();
|
|
340
|
-
}
|
|
341
|
-
}, {
|
|
342
|
-
key: "getNeighborElements",
|
|
343
|
-
value: function getNeighborElements(elementId, dockingType) {
|
|
344
|
-
if (!this.plannerElements.has(elementId)) return [];
|
|
345
|
-
var element = this.plannerElements.get(elementId);
|
|
346
|
-
var dockingPoints = element === null || element === void 0 ? void 0 : element.getDockingDockingPointsByType(dockingType);
|
|
347
|
-
if (!dockingPoints) return [];
|
|
348
|
-
var neighbors = [];
|
|
349
|
-
for (var i = 0; i < (dockingPoints === null || dockingPoints === void 0 ? void 0 : dockingPoints.length); i++) {
|
|
350
|
-
if (dockingPoints[i] != undefined) neighbors.push(dockingPoints[i].OnElementId);
|
|
351
|
-
}
|
|
352
|
-
return neighbors;
|
|
353
|
-
}
|
|
354
|
-
}, {
|
|
355
|
-
key: "getFreeDockingPointsByElementId",
|
|
356
|
-
value: function getFreeDockingPointsByElementId(elementId, dockingType) {
|
|
357
|
-
return {
|
|
358
|
-
dockingPoints: [],
|
|
359
|
-
filter: []
|
|
360
|
-
};
|
|
361
|
-
}
|
|
362
|
-
}, {
|
|
363
|
-
key: "getDockedDockingPointsByElementId",
|
|
364
|
-
value: function getDockedDockingPointsByElementId(elementId, dockingType) {
|
|
365
|
-
return [];
|
|
366
|
-
}
|
|
367
|
-
|
|
368
|
-
/**
|
|
369
|
-
* This function returns all grouped elements.
|
|
370
|
-
* It contains also all Accessoires of the elements
|
|
371
|
-
*/
|
|
372
|
-
}, {
|
|
373
|
-
key: "getDockedGroups",
|
|
374
|
-
value: function getDockedGroups() {
|
|
375
|
-
var startChainElements = [];
|
|
376
|
-
var allElements = this.getAllPlannerElements();
|
|
377
|
-
var elementsToAdd = [];
|
|
378
|
-
|
|
379
|
-
//Search start elements for each chain
|
|
380
|
-
for (var i = 0; i < this.getAllPlannerElements().length; i++) {
|
|
381
|
-
var element = allElements[i];
|
|
382
|
-
elementsToAdd.push(element.getElementId());
|
|
383
|
-
if (element.IsAccessoire) continue;
|
|
384
|
-
var dpsAVL = element.getDockingPointsByType('AVL');
|
|
385
|
-
if (!dpsAVL || dpsAVL.length == 0) {
|
|
386
|
-
startChainElements.push(element);
|
|
387
|
-
continue;
|
|
388
|
-
} else {
|
|
389
|
-
for (var j = 0; j < dpsAVL.length; j++) {
|
|
390
|
-
if (!dpsAVL[j].IsDocking) startChainElements.push(element);
|
|
391
|
-
continue;
|
|
392
|
-
}
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
startChainElements.sort(function (a, b) {
|
|
396
|
-
return a.WorldPosCorner.x < b.WorldPosCorner.x ? 1 : 0;
|
|
397
|
-
});
|
|
398
|
-
var groupElements = [];
|
|
399
|
-
|
|
400
|
-
//Create groups for all chains
|
|
401
|
-
for (var i = 0; i < startChainElements.length; i++) {
|
|
402
|
-
var startChainElement = startChainElements[i];
|
|
403
|
-
var group = [];
|
|
404
|
-
elementsToAdd.splice(elementsToAdd.indexOf(startChainElement.getElementId()), 1);
|
|
405
|
-
var groupIsFinished = false;
|
|
406
|
-
var curElementInGroup = startChainElement;
|
|
407
|
-
while (!groupIsFinished) {
|
|
408
|
-
group.push(curElementInGroup.getElementId());
|
|
409
|
-
elementsToAdd.splice(elementsToAdd.indexOf(curElementInGroup.getElementId()), 1);
|
|
410
|
-
var accsOfElement = this.getAccessoiresRecursive(curElementInGroup.getElementId());
|
|
411
|
-
for (var j = 0; j < accsOfElement.length; j++) {
|
|
412
|
-
group.push(accsOfElement[j]);
|
|
413
|
-
elementsToAdd.splice(elementsToAdd.indexOf(accsOfElement[j]), 1);
|
|
414
|
-
}
|
|
415
|
-
var AVRElements = this.getNeighborElements(curElementInGroup.getElementId(), 'AVR');
|
|
416
|
-
if (!AVRElements || AVRElements.length == 0) groupIsFinished = true;else curElementInGroup = this.plannerElements.get(AVRElements[0]);
|
|
417
|
-
}
|
|
418
|
-
groupElements.push(group);
|
|
419
|
-
}
|
|
420
|
-
//Add lost elements e.g accesoires that dock to nothing
|
|
421
|
-
for (var i = 0; i < elementsToAdd.length; i++) {
|
|
422
|
-
groupElements.push([elementsToAdd[i]]);
|
|
423
|
-
}
|
|
424
|
-
return groupElements;
|
|
425
|
-
}
|
|
426
|
-
}, {
|
|
427
|
-
key: "getAccessoiresRecursive",
|
|
428
|
-
value: function getAccessoiresRecursive(plannerElementId) {
|
|
429
|
-
var that = this;
|
|
430
|
-
var _calcAccs = function calcAccs(plannerElementId, listOfAccessoires, visitedElements) {
|
|
431
|
-
visitedElements.push(plannerElementId);
|
|
432
|
-
var AVCs = that.getNeighborElements(plannerElementId, 'AVC');
|
|
433
|
-
var AVOs = that.getNeighborElements(plannerElementId, 'AVO');
|
|
434
|
-
var AVUs = that.getNeighborElements(plannerElementId, 'AVU');
|
|
435
|
-
var accs = AVCs.concat(AVOs).concat(AVUs);
|
|
436
|
-
for (var i = 0; i < accs.length; i++) {
|
|
437
|
-
if (visitedElements.indexOf(accs[i]) >= 0) continue;
|
|
438
|
-
listOfAccessoires.push(accs[i]);
|
|
439
|
-
visitedElements.push(accs[i]);
|
|
440
|
-
_calcAccs(accs[i], listOfAccessoires, visitedElements);
|
|
441
|
-
}
|
|
442
|
-
};
|
|
443
|
-
var listOfAccs = [];
|
|
444
|
-
_calcAccs(plannerElementId, listOfAccs, []);
|
|
445
|
-
return listOfAccs;
|
|
446
|
-
}
|
|
447
|
-
}, {
|
|
448
|
-
key: "getBoundingBox",
|
|
449
|
-
value: function getBoundingBox() {
|
|
450
|
-
return this.plannerBoundingBox;
|
|
451
|
-
}
|
|
452
|
-
}, {
|
|
453
|
-
key: "updatePlanner",
|
|
454
|
-
value: function () {
|
|
455
|
-
var _updatePlanner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
456
|
-
var allPlannerElements, somethingChanged, i, elem, doReload, elementsToDelete, elementsLostDockingRelation;
|
|
457
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
458
|
-
while (1) switch (_context2.prev = _context2.next) {
|
|
459
|
-
case 0:
|
|
460
|
-
allPlannerElements = this.getAllPlannerElements();
|
|
461
|
-
somethingChanged = false;
|
|
462
|
-
for (i = 0; i < allPlannerElements.length; i++) {
|
|
463
|
-
elem = allPlannerElements[i];
|
|
464
|
-
doReload = elem.updatePlannerData(this.set.getPlannerData(elem.getElementId()));
|
|
465
|
-
if (doReload) {
|
|
466
|
-
somethingChanged = true;
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
elementsToDelete = [];
|
|
470
|
-
if (somethingChanged) {
|
|
471
|
-
LOG.debug('Configuration changed one plannerElement. UpdateDockingRelations', 'DivaStandardPlanner - updatePlanner');
|
|
472
|
-
elementsLostDockingRelation = dockingPointHandlerInst.updateDockingRelations(this.plannerElements);
|
|
473
|
-
for (i = 0; i < elementsLostDockingRelation.length; i++) {
|
|
474
|
-
if (elementsLostDockingRelation[i].IsDockedAccessoire) {
|
|
475
|
-
//Todo delete article
|
|
476
|
-
elementsToDelete.push(elementsLostDockingRelation[i].ElementId);
|
|
477
|
-
}
|
|
478
|
-
}
|
|
479
|
-
this.updateAllElementsWorldPos();
|
|
480
|
-
this.updatePlannerPosNr();
|
|
481
|
-
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
482
|
-
}
|
|
483
|
-
return _context2.abrupt("return", {
|
|
484
|
-
elemIdsToDelete: elementsToDelete
|
|
485
|
-
});
|
|
486
|
-
case 6:
|
|
487
|
-
case "end":
|
|
488
|
-
return _context2.stop();
|
|
489
|
-
}
|
|
490
|
-
}, _callee2, this);
|
|
491
|
-
}));
|
|
492
|
-
function updatePlanner() {
|
|
493
|
-
return _updatePlanner.apply(this, arguments);
|
|
494
|
-
}
|
|
495
|
-
return updatePlanner;
|
|
496
|
-
}()
|
|
497
|
-
}, {
|
|
498
|
-
key: "initPlanner",
|
|
499
|
-
value: function () {
|
|
500
|
-
var _initPlanner = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(setPlanData) {
|
|
501
|
-
var planData, jsonElements, elementsSortedbyPosNr, accElements, i, jsonElement, elementID, plannerElement, data, DPsInfo, j, dpInfo, sourceElement, sourceDP, targetElement, targetDP, _jsonElements, _elementsSortedbyPosNr, _accElements, _jsonElement, basketID, elementId, _plannerElement, _data, centerWorldPos, parentPosNr, accPosNr, _DPsInfo, _dpInfo, targetElementId, dpType, curElement, _targetElement;
|
|
502
|
-
return _regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
503
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
504
|
-
case 0:
|
|
505
|
-
planData = JSON.parse(DivaUtils.decodeBase64(setPlanData));
|
|
506
|
-
if (!(planData.v != null && planData.v == 2)) {
|
|
507
|
-
_context3.next = 27;
|
|
508
|
-
break;
|
|
509
|
-
}
|
|
510
|
-
LOG.debug('Initialize set Plan Data - V2\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
511
|
-
if (!(!planData.set || !planData.set.elements || planData.set.elements.length == 0)) {
|
|
512
|
-
_context3.next = 5;
|
|
513
|
-
break;
|
|
514
|
-
}
|
|
515
|
-
return _context3.abrupt("return");
|
|
516
|
-
case 5:
|
|
517
|
-
//Init new saved Plannings
|
|
518
|
-
jsonElements = planData.set.elements;
|
|
519
|
-
elementsSortedbyPosNr = [];
|
|
520
|
-
accElements = [];
|
|
521
|
-
for (i = 0; i < jsonElements.length; i++) {
|
|
522
|
-
try {
|
|
523
|
-
jsonElement = jsonElements[i];
|
|
524
|
-
elementID = parseInt(jsonElement.elementID);
|
|
525
|
-
plannerElement = new PlannerElementData(this.set.getSetId(), jsonElement.basketID, elementID, DivaSingleProductPlanner.plannerType);
|
|
526
|
-
this.nextElementId = elementID + 1;
|
|
527
|
-
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
528
|
-
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
529
|
-
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
530
|
-
plannerElement.updatePlannerData(data);
|
|
531
|
-
|
|
532
|
-
//Im neuen speichern ist die Position hinten link - nicht mehr im Centrum wie im alten Planer
|
|
533
|
-
//plannerElement.WorldPosCenter = new Vector3(jsonElement.x, jsonElement.y, jsonElement.z);
|
|
534
|
-
plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + jsonElement.x, this.plannerBoundingBox.WorldPos.y + jsonElement.y, this.plannerBoundingBox.WorldPos.z + jsonElement.z);
|
|
535
|
-
plannerElement.RotDeg = jsonElement.rot;
|
|
536
|
-
if (plannerElement.IsDockedAccessoire) {
|
|
537
|
-
accElements.push(jsonElement);
|
|
538
|
-
plannerElement.PosNr = jsonElement.posNr;
|
|
539
|
-
plannerElement.AccessoirePosNr = jsonElement.accNr;
|
|
540
|
-
} else {
|
|
541
|
-
elementsSortedbyPosNr[jsonElement.posNr - 1] = jsonElement;
|
|
542
|
-
plannerElement.PosNr = jsonElement.posNr;
|
|
543
|
-
}
|
|
544
|
-
} catch (e) {
|
|
545
|
-
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner. PlanData V2', {
|
|
546
|
-
code: 'WC_0012',
|
|
547
|
-
cause: e
|
|
548
|
-
}));
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
elementsSortedbyPosNr = elementsSortedbyPosNr.concat(accElements);
|
|
552
|
-
i = 0;
|
|
553
|
-
case 11:
|
|
554
|
-
if (!(i < elementsSortedbyPosNr.length)) {
|
|
555
|
-
_context3.next = 25;
|
|
556
|
-
break;
|
|
557
|
-
}
|
|
558
|
-
_context3.prev = 12;
|
|
559
|
-
if (!(elementsSortedbyPosNr[i].DP == null || elementsSortedbyPosNr[i].DP.length == 0)) {
|
|
560
|
-
_context3.next = 15;
|
|
561
|
-
break;
|
|
562
|
-
}
|
|
563
|
-
return _context3.abrupt("continue", 22);
|
|
564
|
-
case 15:
|
|
565
|
-
DPsInfo = elementsSortedbyPosNr[i].DP;
|
|
566
|
-
for (j = 0; j < DPsInfo.length; j++) {
|
|
567
|
-
dpInfo = DPsInfo[j];
|
|
568
|
-
if (dpInfo.id && dpInfo.id != '' && dpInfo.onID && dpInfo.onID != '' && dpInfo.onDPID && dpInfo.onDPID != '') {
|
|
569
|
-
sourceElement = this.plannerElements.get(elementsSortedbyPosNr[i].elementID);
|
|
570
|
-
sourceDP = sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.getDockingPointById(dpInfo.id);
|
|
571
|
-
targetElement = this.plannerElements.get(dpInfo.onID);
|
|
572
|
-
targetDP = targetElement === null || targetElement === void 0 ? void 0 : targetElement.getDockingPointById(dpInfo.onDPID);
|
|
573
|
-
if (sourceDP && targetDP) {
|
|
574
|
-
dockingPointHandlerInst.tryDockElementDPToDP(sourceElement, targetElement, sourceDP, targetDP);
|
|
575
|
-
} else {
|
|
576
|
-
LOG.error(new DivaError('Error initializing docking point between source element with id: ' + (sourceElement === null || sourceElement === void 0 ? void 0 : sourceElement.ElementId) + ' and target Element with id: ' + (targetElement === null || targetElement === void 0 ? void 0 : targetElement.ElementId) + '. SourceDPID: ' + dpInfo.id + '; targetDPID: ' + dpInfo.onDPID, {
|
|
577
|
-
code: 'WC_0012'
|
|
578
|
-
}));
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
}
|
|
582
|
-
_context3.next = 22;
|
|
583
|
-
break;
|
|
584
|
-
case 19:
|
|
585
|
-
_context3.prev = 19;
|
|
586
|
-
_context3.t0 = _context3["catch"](12);
|
|
587
|
-
LOG.error(new DivaError('Error initializing dockingPoints of element with elementID ' + elementsSortedbyPosNr[i].elementID, {
|
|
588
|
-
code: 'WC_0012',
|
|
589
|
-
cause: _context3.t0
|
|
590
|
-
}));
|
|
591
|
-
case 22:
|
|
592
|
-
i++;
|
|
593
|
-
_context3.next = 11;
|
|
594
|
-
break;
|
|
595
|
-
case 25:
|
|
596
|
-
_context3.next = 70;
|
|
597
|
-
break;
|
|
598
|
-
case 27:
|
|
599
|
-
LOG.debug('Initialize set Plan Data - old V1\n' + planData, 'DivaStandardPlanner initPlanner');
|
|
600
|
-
if (!(!planData.Sets || planData.Sets.length == 0 || !planData.Sets[0].Elements || planData.Sets[0].Elements.length == 0)) {
|
|
601
|
-
_context3.next = 30;
|
|
602
|
-
break;
|
|
603
|
-
}
|
|
604
|
-
return _context3.abrupt("return");
|
|
605
|
-
case 30:
|
|
606
|
-
//Init old Plannings - saved with the old planner
|
|
607
|
-
_jsonElements = planData.Sets[0].Elements;
|
|
608
|
-
_elementsSortedbyPosNr = [];
|
|
609
|
-
_accElements = []; //Zuerst initialisiere alle Elemente
|
|
610
|
-
//Dann positioniere sie richtig
|
|
611
|
-
i = 0;
|
|
612
|
-
case 34:
|
|
613
|
-
if (!(i < _jsonElements.length)) {
|
|
614
|
-
_context3.next = 60;
|
|
615
|
-
break;
|
|
616
|
-
}
|
|
617
|
-
_context3.prev = 35;
|
|
618
|
-
_jsonElement = _jsonElements[i];
|
|
619
|
-
basketID = _jsonElement.BasketID;
|
|
620
|
-
elementId = this.set.getElementId(basketID);
|
|
621
|
-
_jsonElement.elementId = elementId;
|
|
622
|
-
if (!(elementId == -1)) {
|
|
623
|
-
_context3.next = 43;
|
|
624
|
-
break;
|
|
625
|
-
}
|
|
626
|
-
LOG.error(new DivaError('Error when initializing planner. The elementID Was not saved in the article. ', {
|
|
627
|
-
code: 'WC_0012'
|
|
628
|
-
}));
|
|
629
|
-
return _context3.abrupt("continue", 57);
|
|
630
|
-
case 43:
|
|
631
|
-
_plannerElement = new PlannerElementData(this.set.getSetId(), basketID, elementId, DivaSingleProductPlanner.plannerType);
|
|
632
|
-
this.nextElementId = elementId + 1;
|
|
633
|
-
this.plannerElements.set(_plannerElement.ElementId, _plannerElement);
|
|
634
|
-
_data = this.set.getPlannerData(_plannerElement.ElementId);
|
|
635
|
-
_plannerElement.updatePlannerData(_data);
|
|
636
|
-
//Achtung die Pos Infos im alten Planer waren Zentrumskoordinaten!!! Nicht hinten oben.
|
|
637
|
-
centerWorldPos = new Vector3(_jsonElement.PosX, _jsonElement.PosZ, _jsonElement.PosY);
|
|
638
|
-
_plannerElement.WorldPosCenter = new Vector3(this.plannerBoundingBox.WorldPos.x + centerWorldPos.x, this.plannerBoundingBox.WorldPos.y + centerWorldPos.y, this.plannerBoundingBox.WorldPos.z + centerWorldPos.z);
|
|
639
|
-
_plannerElement.RotDeg = _jsonElement.Rot;
|
|
640
|
-
if (_plannerElement.IsDockedAccessoire) {
|
|
641
|
-
_accElements.push(_jsonElement);
|
|
642
|
-
if (_jsonElement.PosNum.toString().indexOf('.') > 0) {
|
|
643
|
-
parentPosNr = _jsonElement.PosNum.toString().split('.')[0];
|
|
644
|
-
accPosNr = _jsonElement.PosNum.toString().split('.')[1];
|
|
645
|
-
_plannerElement.PosNr = parentPosNr;
|
|
646
|
-
_plannerElement.AccessoirePosNr = accPosNr;
|
|
647
|
-
}
|
|
648
|
-
} else {
|
|
649
|
-
_elementsSortedbyPosNr[_jsonElement.PosNum - 1] = _jsonElement;
|
|
650
|
-
_plannerElement.PosNr = _jsonElement.PosNum;
|
|
651
|
-
}
|
|
652
|
-
_context3.next = 57;
|
|
653
|
-
break;
|
|
654
|
-
case 54:
|
|
655
|
-
_context3.prev = 54;
|
|
656
|
-
_context3.t1 = _context3["catch"](35);
|
|
657
|
-
LOG.error(new DivaError('Error initializing element nr ' + i + ' in the Standard Web Planner - Plan Data old Planner', {
|
|
658
|
-
code: 'WC_0012',
|
|
659
|
-
cause: _context3.t1
|
|
660
|
-
}));
|
|
661
|
-
case 57:
|
|
662
|
-
i++;
|
|
663
|
-
_context3.next = 34;
|
|
664
|
-
break;
|
|
665
|
-
case 60:
|
|
666
|
-
_elementsSortedbyPosNr = _elementsSortedbyPosNr.concat(_accElements);
|
|
667
|
-
//Dann werden die DockingPoints durchgegangen und die jeweils richtigen müssen gesucht werden.
|
|
668
|
-
i = 0;
|
|
669
|
-
case 62:
|
|
670
|
-
if (!(i < _elementsSortedbyPosNr.length)) {
|
|
671
|
-
_context3.next = 70;
|
|
672
|
-
break;
|
|
673
|
-
}
|
|
674
|
-
if (!(_elementsSortedbyPosNr[i].DP == null || _elementsSortedbyPosNr[i].DP.length == 0)) {
|
|
675
|
-
_context3.next = 65;
|
|
676
|
-
break;
|
|
677
|
-
}
|
|
678
|
-
return _context3.abrupt("continue", 67);
|
|
679
|
-
case 65:
|
|
680
|
-
_DPsInfo = _elementsSortedbyPosNr[i].DP;
|
|
681
|
-
for (j = 0; j < _DPsInfo.length; j++) {
|
|
682
|
-
_dpInfo = _DPsInfo[j];
|
|
683
|
-
if (_dpInfo.DP && _dpInfo.DP != '' && _dpInfo.onID && _dpInfo.onID != '') {
|
|
684
|
-
targetElementId = parseInt(_dpInfo.onID);
|
|
685
|
-
dpType = _dpInfo.DP;
|
|
686
|
-
curElement = this.plannerElements.get(_elementsSortedbyPosNr[i].elementId);
|
|
687
|
-
_targetElement = this.plannerElements.get(targetElementId);
|
|
688
|
-
if (curElement && _targetElement) {
|
|
689
|
-
dockingPointHandlerInst.initDockingPointRelationByArea(curElement, _targetElement, dpType);
|
|
690
|
-
} else {
|
|
691
|
-
LOG.debug('Error initializing dockingPoints of element with elementID ' + _elementsSortedbyPosNr[i].elementId);
|
|
692
|
-
}
|
|
693
|
-
}
|
|
694
|
-
}
|
|
695
|
-
case 67:
|
|
696
|
-
i++;
|
|
697
|
-
_context3.next = 62;
|
|
698
|
-
break;
|
|
699
|
-
case 70:
|
|
700
|
-
this.updateAllElementsWorldPos();
|
|
701
|
-
this.updatePlannerPosNr();
|
|
702
|
-
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
703
|
-
case 73:
|
|
704
|
-
case "end":
|
|
705
|
-
return _context3.stop();
|
|
706
|
-
}
|
|
707
|
-
}, _callee3, this, [[12, 19], [35, 54]]);
|
|
708
|
-
}));
|
|
709
|
-
function initPlanner(_x3) {
|
|
710
|
-
return _initPlanner.apply(this, arguments);
|
|
711
|
-
}
|
|
712
|
-
return initPlanner;
|
|
713
|
-
}()
|
|
714
|
-
}, {
|
|
715
|
-
key: "addPlannerElement",
|
|
716
|
-
value: function () {
|
|
717
|
-
var _addPlannerElement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(basketID, params) {
|
|
718
|
-
var _params$dockingPointI;
|
|
719
|
-
var plannerElement, data, t;
|
|
720
|
-
return _regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
721
|
-
while (1) switch (_context4.prev = _context4.next) {
|
|
722
|
-
case 0:
|
|
723
|
-
// _elementId: number, _setId: string, _basketId: string, elementInitProp: any, catalogElement: CatalogPlannerArticleData
|
|
724
|
-
plannerElement = new PlannerElementData(this.set.getSetId(), basketID, this.nextElementId, DivaSingleProductPlanner.plannerType /*, this.set.getSetId(), basketID, elementInitProp, catalogElement*/);
|
|
725
|
-
this.nextElementId++;
|
|
726
|
-
this.plannerElements.set(plannerElement.ElementId, plannerElement);
|
|
727
|
-
this.set.setElementId(basketID, plannerElement.ElementId);
|
|
728
|
-
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
729
|
-
plannerElement.updatePlannerData(data);
|
|
730
|
-
//Do load the svg
|
|
731
|
-
t = (_params$dockingPointI = params.dockingPointInfos) === null || _params$dockingPointI === void 0 ? void 0 : _params$dockingPointI[0];
|
|
732
|
-
if (t !== null && t !== void 0 && t.targetElemIdToDock && t !== null && t !== void 0 && t.targetDockingPointId) {
|
|
733
|
-
this.addElementToWorld(plannerElement, t === null || t === void 0 ? void 0 : t.targetElemIdToDock, t === null || t === void 0 ? void 0 : t.targetDockingPointId);
|
|
734
|
-
} else if (params && t !== null && t !== void 0 && t.targetElemIdToDock) {
|
|
735
|
-
this.addElementToWorld(plannerElement, t === null || t === void 0 ? void 0 : t.targetElemIdToDock);
|
|
736
|
-
} else {
|
|
737
|
-
this.addElementToWorld(plannerElement);
|
|
738
|
-
}
|
|
739
|
-
case 8:
|
|
740
|
-
case "end":
|
|
741
|
-
return _context4.stop();
|
|
742
|
-
}
|
|
743
|
-
}, _callee4, this);
|
|
744
|
-
}));
|
|
745
|
-
function addPlannerElement(_x4, _x5) {
|
|
746
|
-
return _addPlannerElement.apply(this, arguments);
|
|
747
|
-
}
|
|
748
|
-
return addPlannerElement;
|
|
749
|
-
}()
|
|
750
|
-
/**
|
|
751
|
-
* Handles copyying the planner Element. it can happen that also other planner elements are influenced
|
|
752
|
-
* @param articleCopyRelation Holds the relation - which element with elementID is copyed and has a new Article. ElementToCopyID -> BasketID of new Article
|
|
753
|
-
* @param params
|
|
754
|
-
*/
|
|
755
|
-
}, {
|
|
756
|
-
key: "copyPlannerElement",
|
|
757
|
-
value: (function () {
|
|
758
|
-
var _copyPlannerElement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(articleCopyRelation, copyInfo) {
|
|
759
|
-
var articlesToLoad, i;
|
|
760
|
-
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
|
761
|
-
while (1) switch (_context5.prev = _context5.next) {
|
|
762
|
-
case 0:
|
|
763
|
-
articlesToLoad = [];
|
|
764
|
-
articleCopyRelation.forEach(function (basketIDNewArticle, elementToCopyId) {
|
|
765
|
-
if (copyInfo == undefined || copyInfo.dpType == 'NO') articlesToLoad.push(basketIDNewArticle);
|
|
766
|
-
});
|
|
767
|
-
i = 0;
|
|
768
|
-
case 3:
|
|
769
|
-
if (!(i < articlesToLoad.length)) {
|
|
770
|
-
_context5.next = 9;
|
|
771
|
-
break;
|
|
772
|
-
}
|
|
773
|
-
_context5.next = 6;
|
|
774
|
-
return this.addPlannerElement(articlesToLoad[i], {});
|
|
775
|
-
case 6:
|
|
776
|
-
i++;
|
|
777
|
-
_context5.next = 3;
|
|
778
|
-
break;
|
|
779
|
-
case 9:
|
|
780
|
-
case "end":
|
|
781
|
-
return _context5.stop();
|
|
782
|
-
}
|
|
783
|
-
}, _callee5, this);
|
|
784
|
-
}));
|
|
785
|
-
function copyPlannerElement(_x6, _x7) {
|
|
786
|
-
return _copyPlannerElement.apply(this, arguments);
|
|
787
|
-
}
|
|
788
|
-
return copyPlannerElement;
|
|
789
|
-
}())
|
|
790
|
-
}, {
|
|
791
|
-
key: "getPlannerElementsInfluencedByCopy",
|
|
792
|
-
value: function getPlannerElementsInfluencedByCopy(elementId, copyInfo) {
|
|
793
|
-
if (this.plannerElements.has(elementId)) return [elementId];
|
|
794
|
-
return [];
|
|
795
|
-
}
|
|
796
|
-
/**
|
|
797
|
-
* deletes a planner element
|
|
798
|
-
* @param elementId The elementId of the plannerelement.
|
|
799
|
-
* @returns Returns the element id of the element that should be selected next
|
|
800
|
-
*/
|
|
801
|
-
}, {
|
|
802
|
-
key: "deletePlannerElement",
|
|
803
|
-
value: (function () {
|
|
804
|
-
var _deletePlannerElement = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6(elementId) {
|
|
805
|
-
var plannerElement, prevPosNum, nextPosNum, newSelElemIdPrev, newSelElemIdNext, endForEach;
|
|
806
|
-
return _regeneratorRuntime.wrap(function _callee6$(_context6) {
|
|
807
|
-
while (1) switch (_context6.prev = _context6.next) {
|
|
808
|
-
case 0:
|
|
809
|
-
_context6.next = 2;
|
|
810
|
-
return DivaUtils.Sleep(1);
|
|
811
|
-
case 2:
|
|
812
|
-
if (!this.plannerElements.has(elementId)) {
|
|
813
|
-
_context6.next = 16;
|
|
814
|
-
break;
|
|
815
|
-
}
|
|
816
|
-
plannerElement = this.plannerElements.get(elementId);
|
|
817
|
-
prevPosNum = -1;
|
|
818
|
-
nextPosNum = 999;
|
|
819
|
-
newSelElemIdPrev = -1;
|
|
820
|
-
newSelElemIdNext = -1; //Compute the element with the preview posNum for new element selection
|
|
821
|
-
endForEach = false;
|
|
822
|
-
this.plannerElements.forEach(function (value, key) {
|
|
823
|
-
if (!endForEach) {
|
|
824
|
-
if (plannerElement !== null && plannerElement !== void 0 && plannerElement.IsAccessoire && plannerElement.PosNr == value.PosNr) {
|
|
825
|
-
newSelElemIdPrev = value.getElementId();
|
|
826
|
-
endForEach = true;
|
|
827
|
-
}
|
|
828
|
-
if (value.getPosNr() < plannerElement.getPosNr() && value.getPosNr() > prevPosNum) {
|
|
829
|
-
prevPosNum = value.getPosNr();
|
|
830
|
-
newSelElemIdPrev = value.getElementId();
|
|
831
|
-
} else if (value.getPosNr() > plannerElement.getPosNr() && value.getPosNr() < nextPosNum) {
|
|
832
|
-
nextPosNum = value.getPosNr();
|
|
833
|
-
newSelElemIdNext = value.getElementId();
|
|
834
|
-
}
|
|
835
|
-
}
|
|
836
|
-
});
|
|
837
|
-
dockingPointHandlerInst.removeDockingPointRelations(plannerElement);
|
|
838
|
-
this.plannerElements["delete"](elementId);
|
|
839
|
-
this.updatePlannerPosNr();
|
|
840
|
-
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
841
|
-
this.checkCollision(false);
|
|
842
|
-
return _context6.abrupt("return", {
|
|
843
|
-
newElementToSelect: newSelElemIdPrev >= 0 ? newSelElemIdPrev : newSelElemIdNext >= 0 ? newSelElemIdNext : undefined
|
|
844
|
-
});
|
|
845
|
-
case 16:
|
|
846
|
-
return _context6.abrupt("return", {});
|
|
847
|
-
case 17:
|
|
848
|
-
case "end":
|
|
849
|
-
return _context6.stop();
|
|
850
|
-
}
|
|
851
|
-
}, _callee6, this);
|
|
852
|
-
}));
|
|
853
|
-
function deletePlannerElement(_x8) {
|
|
854
|
-
return _deletePlannerElement.apply(this, arguments);
|
|
855
|
-
}
|
|
856
|
-
return deletePlannerElement;
|
|
857
|
-
}()
|
|
858
|
-
/**
|
|
859
|
-
* This function calculates if any element collides with another element. It returns one or more collision pairs.
|
|
860
|
-
* The result of the function is saved in the collisionHandler Variable.
|
|
861
|
-
* Furthermore, this function informs the view if the collision has changed
|
|
862
|
-
* @param calcCollisionPairs If true, the collision with all elements is computed. If false - the algorithm stops when the first collision is detected
|
|
863
|
-
* @param checkSingleElementId If this parameter is set, the collision is only detected with this element
|
|
864
|
-
*/
|
|
865
|
-
)
|
|
866
|
-
}, {
|
|
867
|
-
key: "checkCollision",
|
|
868
|
-
value: function checkCollision(calcCollisionPairs, checkSingleElementId) {
|
|
869
|
-
return;
|
|
870
|
-
}
|
|
871
|
-
|
|
872
|
-
/**
|
|
873
|
-
* Updates the overall set posNr
|
|
874
|
-
* @param startSetPosNr Indicates the start PosNr for the planner
|
|
875
|
-
* @returns The count of elements in this planner. Used to calculate the startSetPosNr for the next Planner
|
|
876
|
-
*/
|
|
877
|
-
}, {
|
|
878
|
-
key: "updateSetPosNr",
|
|
879
|
-
value: function updateSetPosNr(startSetPosNr) {
|
|
880
|
-
var elements = this.getAllPlannerElements();
|
|
881
|
-
for (var i = 0; i < elements.length; i++) {
|
|
882
|
-
var element = elements[i];
|
|
883
|
-
element.SetPosNr = startSetPosNr + element.PosNr - 1;
|
|
884
|
-
if (!element.IsAccessoire) this.set.setPosNr(element.ElementId, element.getPosNr(), undefined);
|
|
885
|
-
}
|
|
886
|
-
return elements.length;
|
|
887
|
-
}
|
|
888
|
-
|
|
889
|
-
/**
|
|
890
|
-
* This function is called every time the transformation of a planner Element is changed in the view. For example when the user moves the 2D Shape around.
|
|
891
|
-
* When it is the first action, all AVL and AVR docking Points are removed. When it is the last action "END" then the planner is updated an dockable docking points are searched.
|
|
892
|
-
*
|
|
893
|
-
* @param elementId
|
|
894
|
-
* @param deltaMove
|
|
895
|
-
* @param deltaAngleDeg
|
|
896
|
-
* @param transState
|
|
897
|
-
* @param autoDockingDistance //Gibt an in welchem Radius automatisch gedockt werden muss
|
|
898
|
-
*/
|
|
899
|
-
}, {
|
|
900
|
-
key: "updatePlannerTrans",
|
|
901
|
-
value: function updatePlannerTrans(elementId, deltaMove, deltaAngleDeg, rotCorrection, transState, autoDockingDistance) {
|
|
902
|
-
var _this = this;
|
|
903
|
-
if (this.plannerElements.has(elementId)) {
|
|
904
|
-
var plannerElement = this.plannerElements.get(elementId);
|
|
905
|
-
plannerElement === null || plannerElement === void 0 || plannerElement.updateDeltaTrans(deltaMove, deltaAngleDeg, rotCorrection, transState == 'END');
|
|
906
|
-
if (transState == 'START') {
|
|
907
|
-
dockingPointHandlerInst.removeDockingPointRelationsByType(plannerElement, ['AVR', 'AVL']);
|
|
908
|
-
} else if (transState == 'END') {
|
|
909
|
-
var dockablePairs = dockingPointHandlerInst.searchDockableElementsInArea(plannerElement, this.getAllPlannerElements(), autoDockingDistance); //hier kann jetzt ein DP drinnen stehen - docke alle
|
|
910
|
-
if (dockablePairs != null && dockablePairs.size > 0) {
|
|
911
|
-
dockablePairs.forEach(function (dockPair, type) {
|
|
912
|
-
var targetPlannerElement = _this.plannerElements.get(dockPair.targetDP.ElementId);
|
|
913
|
-
if (targetPlannerElement) {
|
|
914
|
-
dockingPointHandlerInst.tryDockElementDPToDP(plannerElement, targetPlannerElement, dockPair.sourceDP, dockPair.targetDP);
|
|
915
|
-
}
|
|
916
|
-
});
|
|
917
|
-
}
|
|
918
|
-
this.updateAllElementsWorldPos(elementId);
|
|
919
|
-
this.updatePlannerPosNr();
|
|
920
|
-
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
921
|
-
}
|
|
922
|
-
}
|
|
923
|
-
return false;
|
|
924
|
-
}
|
|
925
|
-
|
|
926
|
-
/**
|
|
927
|
-
* Destroy all plannerinformation
|
|
928
|
-
*/
|
|
929
|
-
}, {
|
|
930
|
-
key: "destroyPlanner",
|
|
931
|
-
value: function destroyPlanner() {
|
|
932
|
-
this.plannerElements.forEach(function (elem, elemId) {
|
|
933
|
-
elem.destroy();
|
|
934
|
-
});
|
|
935
|
-
this.plannerElements.clear();
|
|
936
|
-
}
|
|
937
|
-
|
|
938
|
-
/*
|
|
939
|
-
This function returns the current Planning (it is one set)
|
|
940
|
-
*/
|
|
941
|
-
}, {
|
|
942
|
-
key: "saveSetPlanner",
|
|
943
|
-
value: function saveSetPlanner() {
|
|
944
|
-
var _this2 = this;
|
|
945
|
-
if (this.plannerElements.size == 0) return null;
|
|
946
|
-
var plannerElements = [];
|
|
947
|
-
this.plannerElements.forEach(function (elem, elemId) {
|
|
948
|
-
var dockingDPs = elem.getDockingDockingPoints();
|
|
949
|
-
var dpArr = [];
|
|
950
|
-
for (var i = 0; i < dockingDPs.length; i++) {
|
|
951
|
-
var _dockingDPs$i$OnDP;
|
|
952
|
-
var saveDP = {
|
|
953
|
-
id: dockingDPs[i].DpId,
|
|
954
|
-
onID: dockingDPs[i].OnElementId,
|
|
955
|
-
onDPID: (_dockingDPs$i$OnDP = dockingDPs[i].OnDP) === null || _dockingDPs$i$OnDP === void 0 ? void 0 : _dockingDPs$i$OnDP.DpId
|
|
956
|
-
};
|
|
957
|
-
dpArr.push(saveDP);
|
|
958
|
-
}
|
|
959
|
-
var plannerElement = {
|
|
960
|
-
elementID: elem.getElementId(),
|
|
961
|
-
basketID: _this2.set.getBasketId(elem.getElementId()),
|
|
962
|
-
CatalogCodex: _this2.set.getCatalogCodex(),
|
|
963
|
-
Codex: _this2.set.getArticleCodex(elem.getElementId()),
|
|
964
|
-
posNr: elem.PosNr,
|
|
965
|
-
accNr: elem.IsDockedAccessoire ? elem.AccessoirePosNr : undefined,
|
|
966
|
-
x: elem.WorldPosCenter.x,
|
|
967
|
-
y: elem.WorldPosCenter.y,
|
|
968
|
-
z: elem.WorldPosCenter.z,
|
|
969
|
-
rot: elem.RotDeg,
|
|
970
|
-
width: elem.Width ? elem.Width : -1,
|
|
971
|
-
height: elem.Height ? elem.Height : -1,
|
|
972
|
-
depth: elem.Depth ? elem.Depth : -1,
|
|
973
|
-
DP: dpArr
|
|
974
|
-
};
|
|
975
|
-
if (elem.IsAccessoire) {
|
|
976
|
-
var parentBasketId = _this2.set.getParentBasketIdOfElementId(elem.getElementId());
|
|
977
|
-
if (parentBasketId != undefined) {
|
|
978
|
-
plannerElement.AccessoireInitParams = {
|
|
979
|
-
RelatedToBasketID: parentBasketId
|
|
980
|
-
};
|
|
981
|
-
}
|
|
982
|
-
}
|
|
983
|
-
plannerElements.push(plannerElement);
|
|
984
|
-
});
|
|
985
|
-
var saveSet = {
|
|
986
|
-
setId: this.set.getSetId(),
|
|
987
|
-
x: 0,
|
|
988
|
-
y: 0,
|
|
989
|
-
z: 0,
|
|
990
|
-
width: this.plannerBoundingBox.Size.x,
|
|
991
|
-
height: this.plannerBoundingBox.Size.y,
|
|
992
|
-
depth: this.plannerBoundingBox.Size.z,
|
|
993
|
-
rot: 0,
|
|
994
|
-
elements: plannerElements
|
|
995
|
-
};
|
|
996
|
-
return saveSet;
|
|
997
|
-
}
|
|
998
|
-
}, {
|
|
999
|
-
key: "getPlannerId",
|
|
1000
|
-
value: function getPlannerId() {
|
|
1001
|
-
return this.plannerID;
|
|
1002
|
-
}
|
|
1003
|
-
|
|
1004
|
-
/*
|
|
1005
|
-
This function returns all informations that are needed to visualize the set in 3D
|
|
1006
|
-
*/
|
|
1007
|
-
}, {
|
|
1008
|
-
key: "getSetData",
|
|
1009
|
-
value: function getSetData(only3DCompatible, useSetPlanner, doShow3DDimensionLines, useRenderCache, alternateRenderInfo) {
|
|
1010
|
-
var _this3 = this;
|
|
1011
|
-
var setId = useSetPlanner ? this.set.getSetId() : 'S1';
|
|
1012
|
-
var setData = {
|
|
1013
|
-
//ID: "S" + this.plannerID,
|
|
1014
|
-
ID: setId,
|
|
1015
|
-
H: '',
|
|
1016
|
-
x: 0,
|
|
1017
|
-
y: 0,
|
|
1018
|
-
z: 0,
|
|
1019
|
-
w: 0,
|
|
1020
|
-
ELE: [],
|
|
1021
|
-
Blob: this.set.CatalogData.supplierILN,
|
|
1022
|
-
Cat: this.set.getCatalogCodex()
|
|
1023
|
-
};
|
|
1024
|
-
if (doShow3DDimensionLines) setData.doShow3DDimensionLines = doShow3DDimensionLines;
|
|
1025
|
-
var containsNotDigitalizedTextures = false;
|
|
1026
|
-
this.plannerElements.forEach(function (elem, elemId) {
|
|
1027
|
-
var config = _this3.set.getPlannerConfigData(elemId, useRenderCache);
|
|
1028
|
-
var elemCfg = config.config;
|
|
1029
|
-
if (config.containsTextureNotDigitalized) containsNotDigitalizedTextures = true;
|
|
1030
|
-
if (!only3DCompatible || elemCfg.Model != undefined) {
|
|
1031
|
-
var elemJson = {
|
|
1032
|
-
ID: 'E' + elemId,
|
|
1033
|
-
// N: elemCfg.N,
|
|
1034
|
-
Model: elemCfg.Model,
|
|
1035
|
-
x: -Math.round(elem.WorldPosCenter.x * 100) / 100,
|
|
1036
|
-
y: Math.round(elem.WorldPosCenter.y * 100) / 100,
|
|
1037
|
-
z: Math.round(elem.WorldPosCenter.z * 100) / 100,
|
|
1038
|
-
PosPivot: 'Center',
|
|
1039
|
-
w: Math.round(elem.getRotDeg() * 100) / 100,
|
|
1040
|
-
RotPivot: 'Center',
|
|
1041
|
-
DP: elem.getDockingPointJS3D(),
|
|
1042
|
-
MAT: elemCfg.MAT,
|
|
1043
|
-
CFG: elemCfg.CFG,
|
|
1044
|
-
H: ''
|
|
1045
|
-
};
|
|
1046
|
-
var hash = md5(JSON.stringify(elemJson));
|
|
1047
|
-
elemJson.H = hash;
|
|
1048
|
-
setData.ELE.push(elemJson);
|
|
1049
|
-
}
|
|
1050
|
-
var shelfPlannerElements = _this3.set.getShelfPlannerData(elemId);
|
|
1051
|
-
if (shelfPlannerElements) {
|
|
1052
|
-
for (var i = 0; i < shelfPlannerElements.length; i++) {
|
|
1053
|
-
var accessorire = shelfPlannerElements[i];
|
|
1054
|
-
var shelfConfig = _this3.set.getShelfPlannerConfigData(accessorire.basketId).config;
|
|
1055
|
-
var shelfJson = {
|
|
1056
|
-
ID: 'E' + accessorire.parentElementId + '.' + accessorire.gridId + '.' + accessorire.rh,
|
|
1057
|
-
H: '',
|
|
1058
|
-
Model: accessorire.model,
|
|
1059
|
-
x: 0,
|
|
1060
|
-
y: 0,
|
|
1061
|
-
z: 1,
|
|
1062
|
-
w: 0,
|
|
1063
|
-
PosPivot: 'Center',
|
|
1064
|
-
RotPivot: 'Center',
|
|
1065
|
-
DP: 'RH' + accessorire.rh + ':' + 'E' + accessorire.parentElementId,
|
|
1066
|
-
GN: accessorire.gridName,
|
|
1067
|
-
MAT: shelfConfig.MAT,
|
|
1068
|
-
CFG: shelfConfig.CFG
|
|
1069
|
-
};
|
|
1070
|
-
var hash = md5(JSON.stringify(shelfJson));
|
|
1071
|
-
shelfJson.H = hash;
|
|
1072
|
-
setData.ELE.push(shelfJson);
|
|
1073
|
-
}
|
|
1074
|
-
}
|
|
1075
|
-
});
|
|
1076
|
-
var hash = md5(JSON.stringify(setData));
|
|
1077
|
-
setData.H = hash;
|
|
1078
|
-
return {
|
|
1079
|
-
constructionSet: setData,
|
|
1080
|
-
containsNotDigitalizedTextures: containsNotDigitalizedTextures
|
|
1081
|
-
};
|
|
1082
|
-
}
|
|
1083
|
-
|
|
1084
|
-
/**
|
|
1085
|
-
* This function returns the position information for each element. The infomration is returned as an object with elementId: posNr.
|
|
1086
|
-
*/
|
|
1087
|
-
}, {
|
|
1088
|
-
key: "getElementPosInfo",
|
|
1089
|
-
value: function getElementPosInfo() {
|
|
1090
|
-
var ret = {};
|
|
1091
|
-
this.plannerElements.forEach(function (value, key) {
|
|
1092
|
-
if (value.IsDockedAccessoire) {
|
|
1093
|
-
ret[key] = {
|
|
1094
|
-
pos: value.PosNr,
|
|
1095
|
-
isAcc: true,
|
|
1096
|
-
accPos: value.AccessoirePosNr
|
|
1097
|
-
};
|
|
1098
|
-
} else {
|
|
1099
|
-
ret[key] = {
|
|
1100
|
-
pos: value.PosNr,
|
|
1101
|
-
isAcc: false
|
|
1102
|
-
};
|
|
1103
|
-
}
|
|
1104
|
-
});
|
|
1105
|
-
return ret;
|
|
1106
|
-
}
|
|
1107
|
-
/**
|
|
1108
|
-
* Returns true if all AVL and AVR Filter are set. Specifies if a planning is complete
|
|
1109
|
-
*/
|
|
1110
|
-
}, {
|
|
1111
|
-
key: "getPlanningIsComplete",
|
|
1112
|
-
value: function getPlanningIsComplete() {
|
|
1113
|
-
if (this.doIgnorePlanningCompleted || !this.doCheckConstructionWarnings) return true;
|
|
1114
|
-
var elemNotComplete = false;
|
|
1115
|
-
this.plannerElements.forEach(function (plannerElement, key) {
|
|
1116
|
-
if (!elemNotComplete && (plannerElement.getFreeDockingPointsByType('AVL').length > 0 || plannerElement.getFreeDockingPointsByType('AVR').length > 0)) {
|
|
1117
|
-
elemNotComplete = true;
|
|
1118
|
-
}
|
|
1119
|
-
});
|
|
1120
|
-
return !elemNotComplete;
|
|
1121
|
-
}
|
|
1122
|
-
}, {
|
|
1123
|
-
key: "getPlannerBoundingBox",
|
|
1124
|
-
value: function getPlannerBoundingBox() {
|
|
1125
|
-
var catalog = this.set.CatalogData;
|
|
1126
|
-
var width = this.plannerBoundingBox.getWidth(catalog.PlannerMeasureDigits);
|
|
1127
|
-
var depth = this.plannerBoundingBox.getDepth(catalog.PlannerMeasureDigits);
|
|
1128
|
-
var height = this.plannerBoundingBox.getHeight(catalog.PlannerMeasureDigits);
|
|
1129
|
-
return {
|
|
1130
|
-
width: width,
|
|
1131
|
-
height: height,
|
|
1132
|
-
depth: depth
|
|
1133
|
-
};
|
|
1134
|
-
}
|
|
1135
|
-
}, {
|
|
1136
|
-
key: "updatePlannerBoundingBox",
|
|
1137
|
-
value: function updatePlannerBoundingBox() {
|
|
1138
|
-
//this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
1139
|
-
}
|
|
1140
|
-
}, {
|
|
1141
|
-
key: "getCatalogData",
|
|
1142
|
-
value: function getCatalogData() {
|
|
1143
|
-
return this.set.CatalogData;
|
|
1144
|
-
}
|
|
1145
|
-
}, {
|
|
1146
|
-
key: "getAllPlannerElements",
|
|
1147
|
-
value: function getAllPlannerElements() {
|
|
1148
|
-
var plannerElements = [];
|
|
1149
|
-
this.plannerElements.forEach(function (value, key) {
|
|
1150
|
-
plannerElements.push(value);
|
|
1151
|
-
});
|
|
1152
|
-
return plannerElements;
|
|
1153
|
-
}
|
|
1154
|
-
}]);
|
|
1155
|
-
}();
|
|
1156
|
-
_defineProperty(DivaSingleProductPlanner, "plannerType", 'STD');
|
|
1157
|
-
|
|
1158
|
-
export { DivaSingleProductPlanner as default };
|