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