@crystaldesign/web-planner-logic 25.14.0-beta.4 → 25.14.0-beta.41
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-d49621ee.js → DivaBoxPlanner-590fa04b.js} +619 -315
- package/build/cjs/{DivaStandardPlanner-0b694655.js → DivaStandardPlanner-14f641eb.js} +98 -88
- package/build/cjs/{DoorPlanner-772341ef.js → DoorPlanner-2fd36cbe.js} +1 -1
- package/build/cjs/{Host3DSignalR-b13956a3.js → Host3DSignalR-01d03fbe.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-1a5e2abb.js → LiviqueWWSHandler-ce234c4d.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-89a523b6.js → PfisterWWSHandler-14763bec.js} +1 -1
- package/build/cjs/{PlannerHandler2D-1da507c8.js → PlannerHandler2D-69bf367e.js} +2 -2
- package/build/cjs/{SeriousBasketHandler-1bd2230c.js → SeriousBasketHandler-3284d8e6.js} +1 -1
- package/build/cjs/{ShelfPlanner-db3521f9.js → ShelfPlanner-fdf5c5ea.js} +1 -1
- package/build/cjs/{StandardWWSHandler-5e6076d4.js → StandardWWSHandler-75b86bd6.js} +1 -1
- package/build/cjs/{index-ea4df511.js → index-d851c847.js} +257 -178
- package/build/cjs/index.js +1 -3
- package/build/esm/{DivaBoxPlanner-556bd49b.js → DivaBoxPlanner-90c95fe0.js} +618 -315
- package/build/esm/{DivaStandardPlanner-39fa4919.js → DivaStandardPlanner-15cc1700.js} +98 -88
- package/build/esm/{DoorPlanner-4feb77a1.js → DoorPlanner-6e3a0841.js} +1 -1
- package/build/esm/{Host3DSignalR-fd7a22e0.js → Host3DSignalR-e8cf0b3e.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-799592fc.js → LiviqueWWSHandler-108cb348.js} +1 -1
- package/build/esm/{PfisterWWSHandler-3c27e9a1.js → PfisterWWSHandler-41c995d8.js} +1 -1
- package/build/esm/{PlannerHandler2D-bfed02e3.js → PlannerHandler2D-67320283.js} +2 -2
- package/build/esm/{SeriousBasketHandler-390bf174.js → SeriousBasketHandler-23209e7b.js} +1 -1
- package/build/esm/{ShelfPlanner-778dd54c.js → ShelfPlanner-ac57278a.js} +1 -1
- package/build/esm/{StandardWWSHandler-eff7c728.js → StandardWWSHandler-6959f79c.js} +1 -1
- package/build/esm/{index-13aa8d15.js → index-8f6efc60.js} +258 -177
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +0 -1
- package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts +0 -2
- package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/Checkout.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/API/Checkout.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts +1 -0
- 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 +1 -0
- package/build/types/web-planner-logic/src/interface/AdditionalModelInfos.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +5 -0
- package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +2 -0
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +2 -0
- package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ReturnTypes/index.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/ReturnTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts +0 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +2 -1
- package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +4 -2
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts +4 -4
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/BoxPlannerGrid.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/ConstructionRulesHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts +4 -1
- package/build/types/web-planner-logic/src/logic/Planner/BoxPlanner/DivaBoxPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +4 -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 +4 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/types.d.ts +1 -1
- 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/DivaSetHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +7 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Articles/Article/DivaCatalogArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/DivaCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/scripts/create_renderorder.d.ts +1 -1
- package/build/types/web-planner-logic/src/test/scripts/create_renderorder.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/test/scripts/getOrigProductId.d.ts +1 -1
- package/build/types/web-planner-logic/src/test/scripts/getOrigProductId.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -5,11 +5,11 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
5
5
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
6
6
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
-
var index = require('./index-
|
|
8
|
+
var index = require('./index-d851c847.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
|
-
var
|
|
12
|
-
require('
|
|
11
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-69bf367e.js');
|
|
13
13
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
14
14
|
require('axios');
|
|
15
15
|
require('@crystaldesign/basket-model');
|
|
@@ -28,6 +28,7 @@ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_definePropert
|
|
|
28
28
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
29
29
|
var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
|
|
30
30
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
31
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
31
32
|
|
|
32
33
|
var LOG$3 = DivaUtils__default["default"].initLog('Planner', 'WEB-PLANNER-LOGIC');
|
|
33
34
|
var BoxPlannerPartlistHelper = /*#__PURE__*/function () {
|
|
@@ -1971,6 +1972,18 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
1971
1972
|
if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
|
|
1972
1973
|
(_this$hideOptionsForC2 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC2 === void 0 || _this$hideOptionsForC2.push(option);
|
|
1973
1974
|
}
|
|
1975
|
+
}, {
|
|
1976
|
+
key: "setOptionDoCustom",
|
|
1977
|
+
value: function setOptionDoCustom(elementId, option, val, optionHandler) {
|
|
1978
|
+
var _optionHandler$get4, _this$hideOptionsForC3;
|
|
1979
|
+
// LOG.log("Update Box Planner Logic. SetOptionDoHide: elementId: " + elementId + "; Option: " + option);
|
|
1980
|
+
var curOptVisibilityInfo = this.constructionRules.optionsVisibilityInfo[option];
|
|
1981
|
+
if (!curOptVisibilityInfo) return;
|
|
1982
|
+
if (!optionHandler.has(elementId)) optionHandler.set(elementId, new Map());
|
|
1983
|
+
(_optionHandler$get4 = optionHandler.get(elementId)) === null || _optionHandler$get4 === void 0 || _optionHandler$get4.set(option, curOptVisibilityInfo[val]);
|
|
1984
|
+
if (!this.hideOptionsForConstruction.has(elementId)) this.hideOptionsForConstruction.set(elementId, []);
|
|
1985
|
+
(_this$hideOptionsForC3 = this.hideOptionsForConstruction.get(elementId)) === null || _this$hideOptionsForC3 === void 0 || _this$hideOptionsForC3.push(option);
|
|
1986
|
+
}
|
|
1974
1987
|
|
|
1975
1988
|
//Returns all
|
|
1976
1989
|
}, {
|
|
@@ -2011,7 +2024,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2011
2024
|
}
|
|
2012
2025
|
var allElementIds = boxPlannerGrid.getAllElementIdsInGrid(); //run through front an backside grid
|
|
2013
2026
|
for (var i = 0; i < allElementIds.length; i++) {
|
|
2014
|
-
var _optionHandler$
|
|
2027
|
+
var _optionHandler$get5;
|
|
2015
2028
|
if (this.hideOptionsForConstruction.has(allElementIds[i]) && this.hideOptionsForConstruction.get(allElementIds[i]).length > 0) {
|
|
2016
2029
|
while (this.hideOptionsForConstruction.get(allElementIds[i]).length > 0) {
|
|
2017
2030
|
var optName = this.hideOptionsForConstruction.get(allElementIds[i])[0];
|
|
@@ -2100,7 +2113,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2100
2113
|
|
|
2101
2114
|
///Add debug input
|
|
2102
2115
|
if (!optionHandler.has(allElementIds[i])) optionHandler.set(allElementIds[i], new Map());
|
|
2103
|
-
(_optionHandler$
|
|
2116
|
+
(_optionHandler$get5 = optionHandler.get(allElementIds[i])) === null || _optionHandler$get5 === void 0 || _optionHandler$get5.set('DEBUG', boxPlannerGrid.getElementById(allElementIds[i]).getPosNr() + '');
|
|
2104
2117
|
if (opvToReset.length > 0) {
|
|
2105
2118
|
for (var r = 0; r < opvToReset.length; r++) {
|
|
2106
2119
|
var articleOPV = this.getOptionVal(allElementIds[i], opvToReset[r].opt, optionHandler);
|
|
@@ -2380,6 +2393,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2380
2393
|
key: "correctSimpleOpt",
|
|
2381
2394
|
value: function correctSimpleOpt(xIndex, yIndex, boxPlannerGrid, optionHandler, fromBackside) {
|
|
2382
2395
|
var curElement = boxPlannerGrid.getPlannerElementAtGridPos(xIndex, yIndex, fromBackside);
|
|
2396
|
+
if (!curElement) return;
|
|
2383
2397
|
//Schauen ob Element top Element hat.
|
|
2384
2398
|
if (this.constructionRules.defaultConstructionRules.TOP) {
|
|
2385
2399
|
var hasTopElement = boxPlannerGrid.getElementHasTopElement(curElement.ElementId);
|
|
@@ -2595,23 +2609,22 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2595
2609
|
}
|
|
2596
2610
|
}, {
|
|
2597
2611
|
key: "validateDimensionRule",
|
|
2598
|
-
value: function validateDimensionRule(
|
|
2612
|
+
value: function validateDimensionRule(dimension, dimensionLimit, boxPlannerSize, higherLimit, lowerLimit) {
|
|
2599
2613
|
var isOver = false;
|
|
2600
2614
|
var isEqual = false;
|
|
2601
|
-
if (
|
|
2602
|
-
if (
|
|
2603
|
-
if (
|
|
2604
|
-
if (
|
|
2605
|
-
if (
|
|
2606
|
-
if (
|
|
2615
|
+
if (dimension.toLowerCase() == 'height' && boxPlannerSize.y > dimensionLimit) isOver = true;
|
|
2616
|
+
if (dimension.toLowerCase() == 'height' && boxPlannerSize.y == dimensionLimit) isEqual = true;
|
|
2617
|
+
if (dimension.toLowerCase() == 'width' && boxPlannerSize.x > dimensionLimit) isOver = true;
|
|
2618
|
+
if (dimension.toLowerCase() == 'width' && boxPlannerSize.x == dimensionLimit) isEqual = true;
|
|
2619
|
+
if (dimension.toLowerCase() == 'depth' && boxPlannerSize.z > dimensionLimit) isOver = true;
|
|
2620
|
+
if (dimension.toLowerCase() == 'depth' && boxPlannerSize.z == dimensionLimit) isEqual = true;
|
|
2607
2621
|
if (isOver) {
|
|
2608
|
-
|
|
2622
|
+
return higherLimit;
|
|
2609
2623
|
} else if (isEqual) {
|
|
2610
|
-
return
|
|
2624
|
+
return higherLimit;
|
|
2611
2625
|
} else {
|
|
2612
|
-
|
|
2626
|
+
return lowerLimit;
|
|
2613
2627
|
}
|
|
2614
|
-
return false;
|
|
2615
2628
|
}
|
|
2616
2629
|
|
|
2617
2630
|
/*
|
|
@@ -2622,42 +2635,38 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2622
2635
|
key: "correctOverHangingElement",
|
|
2623
2636
|
value: function correctOverHangingElement(changedElementId, boxPlannerGrid, optionHandler, changedOPTs) {
|
|
2624
2637
|
var _this2 = this;
|
|
2625
|
-
if (!changedOPTs) return;
|
|
2626
|
-
var
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
}
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
};
|
|
2658
|
-
for (var columndIdx = 0; columndIdx < boxPlannerGrid.getColumnCount(); columndIdx++) {
|
|
2659
|
-
_loop();
|
|
2660
|
-
}
|
|
2638
|
+
if (!changedOPTs || !changedElementId) return;
|
|
2639
|
+
var startIdx = boxPlannerGrid.getCellsInGridByElementId(changedElementId).startColIndex;
|
|
2640
|
+
var elements = boxPlannerGrid.getAllElementsInColumn(startIdx, false, true); // from bottom to top
|
|
2641
|
+
var changedElementIdx = elements.findIndex(function (e) {
|
|
2642
|
+
return e.ElementId == changedElementId;
|
|
2643
|
+
});
|
|
2644
|
+
var changedElement = elements[changedElementIdx];
|
|
2645
|
+
if (!changedElement) return; // nothing changed in this row
|
|
2646
|
+
var t = Object.entries(changedOPTs);
|
|
2647
|
+
var opt = t[0][0];
|
|
2648
|
+
var opv = t[0][1];
|
|
2649
|
+
elements.forEach(function (element, idx) {
|
|
2650
|
+
if (idx < changedElementIdx) {
|
|
2651
|
+
//under the changed one
|
|
2652
|
+
var rightNeighbours = boxPlannerGrid.getNeighborElements(element.ElementId, 'RIGHT', false);
|
|
2653
|
+
var freeSpace = element.Width;
|
|
2654
|
+
rightNeighbours.forEach(function (n) {
|
|
2655
|
+
if (n.ElementId == changedElement.ElementId) return;
|
|
2656
|
+
var topElements = boxPlannerGrid.getNeighborElements(n.ElementId, 'TOP', false).filter(function (n) {
|
|
2657
|
+
return n.ElementId != changedElement.ElementId;
|
|
2658
|
+
});
|
|
2659
|
+
var topWidth = topElements.reduce(function (totalwidth, e) {
|
|
2660
|
+
return totalwidth += e.Width;
|
|
2661
|
+
}, 0);
|
|
2662
|
+
if (topWidth < n.Width) freeSpace += n.Width - topWidth;
|
|
2663
|
+
});
|
|
2664
|
+
if (Math.round(changedElement.Width) > Math.round(freeSpace)) _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
|
|
2665
|
+
} else {
|
|
2666
|
+
// over the changed one
|
|
2667
|
+
if (changedElement.Width < element.Width) _this2.setOptionValue(element.ElementId, opt, opv, optionHandler);
|
|
2668
|
+
}
|
|
2669
|
+
});
|
|
2661
2670
|
}
|
|
2662
2671
|
}, {
|
|
2663
2672
|
key: "correctFoot",
|
|
@@ -2665,7 +2674,10 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2665
2674
|
var _this3 = this;
|
|
2666
2675
|
var elements = boxPlannerGrid.getAllElementsInFrontGrid();
|
|
2667
2676
|
elements.forEach(function (e) {
|
|
2668
|
-
if (boxPlannerGrid.getElementHasBottomElement(e.ElementId))
|
|
2677
|
+
if (boxPlannerGrid.getElementHasBottomElement(e.ElementId)) {
|
|
2678
|
+
_this3.setOptionValue(e.ElementId, 'OPTFUSS_SYS', 'OPVOHNE', optionHandler);
|
|
2679
|
+
_this3.setOptionValue(e.ElementId, 'OPTPOSSIBILITY_FUSS_OHNE', 'OPVTRUE', optionHandler);
|
|
2680
|
+
}
|
|
2669
2681
|
});
|
|
2670
2682
|
}
|
|
2671
2683
|
|
|
@@ -2674,30 +2686,49 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2674
2686
|
* */
|
|
2675
2687
|
}, {
|
|
2676
2688
|
key: "correctOptionsInfluencedByDimensions",
|
|
2677
|
-
value: function correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler) {
|
|
2689
|
+
value: function correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler, changedOPTs) {
|
|
2678
2690
|
var _this4 = this;
|
|
2679
2691
|
if (!this.constructionRules.optionsInfluencedByDimensions) return;
|
|
2680
2692
|
var boxPlannerSize = boxPlannerGrid.getSizeOfWholeSet(false);
|
|
2681
2693
|
var allElements = boxPlannerGrid.getAllElementsInFrontGrid();
|
|
2682
|
-
|
|
2683
|
-
if (
|
|
2684
|
-
|
|
2685
|
-
|
|
2686
|
-
|
|
2687
|
-
|
|
2688
|
-
|
|
2689
|
-
|
|
2690
|
-
|
|
2691
|
-
|
|
2692
|
-
return _this4.
|
|
2694
|
+
var setRule = function setRule(option, res) {
|
|
2695
|
+
if (changedOPTs) {
|
|
2696
|
+
var changedOpt = Object.entries(changedOPTs).find(function (_ref) {
|
|
2697
|
+
var _ref2 = _slicedToArray__default["default"](_ref, 2),
|
|
2698
|
+
key = _ref2[0];
|
|
2699
|
+
_ref2[1];
|
|
2700
|
+
return key == option;
|
|
2701
|
+
});
|
|
2702
|
+
if (changedOpt) {
|
|
2703
|
+
allElements.forEach(function (element) {
|
|
2704
|
+
return _this4.setOptionValue(element.ElementId, changedOpt[0], changedOpt[1], optionHandler);
|
|
2693
2705
|
});
|
|
2706
|
+
return;
|
|
2707
|
+
}
|
|
2708
|
+
}
|
|
2709
|
+
allElements.forEach(function (element) {
|
|
2710
|
+
return _this4.setOptionDoCustom(element.ElementId, option, res, optionHandler);
|
|
2711
|
+
});
|
|
2712
|
+
};
|
|
2713
|
+
var dim = this.constructionRules.optionsInfluencedByDimensions;
|
|
2714
|
+
dim.forEach(function (dimRule) {
|
|
2715
|
+
if (Array.isArray(dimRule)) {
|
|
2716
|
+
var res = dimRule.every(function (r) {
|
|
2717
|
+
return _this4.validateDimensionRule(r.dimension, r.dimensionLimit, boxPlannerSize, r.higherLimit, r.lowerLimit).toLowerCase() == 'doshow';
|
|
2694
2718
|
});
|
|
2719
|
+
var t = dimRule[0];
|
|
2720
|
+
if (res) setRule(t.option, 'doShow');else setRule(t.option, 'doHide');
|
|
2695
2721
|
} else {
|
|
2696
|
-
|
|
2697
|
-
|
|
2698
|
-
|
|
2699
|
-
|
|
2700
|
-
|
|
2722
|
+
var seriesDimRule = dimRule;
|
|
2723
|
+
var baseDimRule = dimRule;
|
|
2724
|
+
if (seriesDimRule.series) {
|
|
2725
|
+
var _dimRule = seriesDimRule.series.findLast(function (r) {
|
|
2726
|
+
return _this4.validateDimensionRule(r.dimension, r.dimensionLimit, boxPlannerSize, '1', '2') == '1';
|
|
2727
|
+
});
|
|
2728
|
+
if (_dimRule) setRule(seriesDimRule.option, _dimRule.value);
|
|
2729
|
+
} else {
|
|
2730
|
+
setRule(baseDimRule.option, _this4.validateDimensionRule(baseDimRule.option, baseDimRule.dimensionLimit, boxPlannerSize, baseDimRule.higherLimit, baseDimRule.lowerLimit));
|
|
2731
|
+
}
|
|
2701
2732
|
}
|
|
2702
2733
|
});
|
|
2703
2734
|
}
|
|
@@ -2771,22 +2802,22 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2771
2802
|
|
|
2772
2803
|
// default => set all to ohne
|
|
2773
2804
|
serie.forEach(function (element) {
|
|
2774
|
-
var _element$
|
|
2775
|
-
seriesWidth += (_element$
|
|
2776
|
-
boxPlannerGrid.getAllElementsDown(element.
|
|
2805
|
+
var _element$size$width;
|
|
2806
|
+
seriesWidth += (_element$size$width = element.size.width) !== null && _element$size$width !== void 0 ? _element$size$width : 0;
|
|
2807
|
+
boxPlannerGrid.getAllElementsDown(element.elementId).elements.forEach(function (e) {
|
|
2777
2808
|
return _this5.setOptionValue(e, coverPlateRule.optABD, 'OPVOHNE', optionHandler);
|
|
2778
2809
|
});
|
|
2779
|
-
_this5.setOptionValue(element.
|
|
2810
|
+
_this5.setOptionValue(element.elementId, coverPlateRule.optABD, 'OPVOHNE', optionHandler);
|
|
2780
2811
|
});
|
|
2781
2812
|
var firstUncoveredElement = serie[0];
|
|
2782
|
-
var
|
|
2813
|
+
var _loop = function _loop() {
|
|
2783
2814
|
var opv = seriesWidthToPlateOpv.findLast(function (stp) {
|
|
2784
2815
|
// is a clean element ending
|
|
2785
2816
|
var helperWidth = 0;
|
|
2786
2817
|
var isClean = false;
|
|
2787
2818
|
serie.forEach(function (element) {
|
|
2788
|
-
var _element$
|
|
2789
|
-
helperWidth += (_element$
|
|
2819
|
+
var _element$size$width2;
|
|
2820
|
+
helperWidth += (_element$size$width2 = element.size.width) !== null && _element$size$width2 !== void 0 ? _element$size$width2 : 0;
|
|
2790
2821
|
if (Math.abs(helperWidth - stp.limit) < 1) isClean = true;
|
|
2791
2822
|
});
|
|
2792
2823
|
if (stp.limit <= seriesWidth && isClean) return true;
|
|
@@ -2795,11 +2826,11 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2795
2826
|
if (!opv) return {
|
|
2796
2827
|
v: void 0
|
|
2797
2828
|
};
|
|
2798
|
-
_this5.setOptionValue(firstUncoveredElement.
|
|
2829
|
+
_this5.setOptionValue(firstUncoveredElement.elementId, coverPlateRule.optABD, opv.plateOpv, optionHandler);
|
|
2799
2830
|
var helperWidth = 0;
|
|
2800
2831
|
firstUncoveredElement = serie.find(function (e) {
|
|
2801
|
-
var _e$
|
|
2802
|
-
helperWidth += (_e$
|
|
2832
|
+
var _e$size$width;
|
|
2833
|
+
helperWidth += (_e$size$width = e.size.width) !== null && _e$size$width !== void 0 ? _e$size$width : 0;
|
|
2803
2834
|
if (helperWidth > opv.limit) return true;
|
|
2804
2835
|
return false;
|
|
2805
2836
|
});
|
|
@@ -2808,7 +2839,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2808
2839
|
},
|
|
2809
2840
|
_ret;
|
|
2810
2841
|
while (seriesWidth != 0) {
|
|
2811
|
-
_ret =
|
|
2842
|
+
_ret = _loop();
|
|
2812
2843
|
if (_ret) return _ret.v;
|
|
2813
2844
|
}
|
|
2814
2845
|
});
|
|
@@ -3135,7 +3166,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3135
3166
|
value: function () {
|
|
3136
3167
|
var _updateOptionLogicBoxPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(boxPlannerGrid, changedOPTs, targetElements, forceResetCornerElements) {
|
|
3137
3168
|
var _targetElements;
|
|
3138
|
-
var startTime, resultMessage, optionHandler, allElements, i, _iterator, _step, coverPlateRule,
|
|
3169
|
+
var startTime, resultMessage, optionHandler, allElements, i, j, _boxPlannerGrid$getPl2, elementId, _boxPlannerGrid$getPl3, _elementId, _iterator, _step, coverPlateRule, _boxPlannerGrid$getPl4, _elementId2, doChangeRetailArticleNumbers;
|
|
3139
3170
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
3140
3171
|
while (1) switch (_context.prev = _context.next) {
|
|
3141
3172
|
case 0:
|
|
@@ -3170,19 +3201,6 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3170
3201
|
this.correctBottom(boxPlannerGrid, optionHandler, false);
|
|
3171
3202
|
if (boxPlannerGrid.getPlannerHasActiveBackside()) this.correctBottom(boxPlannerGrid, optionHandler, true);
|
|
3172
3203
|
this.correctSeries(boxPlannerGrid, optionHandler);
|
|
3173
|
-
if (this.constructionRules.coverPlateRule) {
|
|
3174
|
-
_iterator = _createForOfIteratorHelper$1(this.constructionRules.coverPlateRule);
|
|
3175
|
-
try {
|
|
3176
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3177
|
-
coverPlateRule = _step.value;
|
|
3178
|
-
this.correctCoverPlate(coverPlateRule, boxPlannerGrid, optionHandler);
|
|
3179
|
-
}
|
|
3180
|
-
} catch (err) {
|
|
3181
|
-
_iterator.e(err);
|
|
3182
|
-
} finally {
|
|
3183
|
-
_iterator.f();
|
|
3184
|
-
}
|
|
3185
|
-
}
|
|
3186
3204
|
for (i = 0; i < boxPlannerGrid.getColumnCount(); i++) {
|
|
3187
3205
|
for (j = 0; j < boxPlannerGrid.getRowCount(i, false); j++) {
|
|
3188
3206
|
this.correctSimpleOpt(i, j, boxPlannerGrid, optionHandler, false);
|
|
@@ -3195,39 +3213,126 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3195
3213
|
}
|
|
3196
3214
|
}
|
|
3197
3215
|
}
|
|
3198
|
-
|
|
3199
|
-
|
|
3200
|
-
|
|
3201
|
-
|
|
3202
|
-
|
|
3216
|
+
i = 0;
|
|
3217
|
+
case 17:
|
|
3218
|
+
if (!(i < boxPlannerGrid.getColumnCount())) {
|
|
3219
|
+
_context.next = 31;
|
|
3220
|
+
break;
|
|
3203
3221
|
}
|
|
3204
|
-
|
|
3205
|
-
|
|
3206
|
-
|
|
3207
|
-
|
|
3208
|
-
|
|
3209
|
-
}
|
|
3210
|
-
}
|
|
3222
|
+
j = 0;
|
|
3223
|
+
case 19:
|
|
3224
|
+
if (!(j < boxPlannerGrid.getRowCount(i, false))) {
|
|
3225
|
+
_context.next = 28;
|
|
3226
|
+
break;
|
|
3211
3227
|
}
|
|
3228
|
+
elementId = (_boxPlannerGrid$getPl2 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl2 === void 0 ? void 0 : _boxPlannerGrid$getPl2.ElementId;
|
|
3229
|
+
if (elementId) {
|
|
3230
|
+
_context.next = 23;
|
|
3231
|
+
break;
|
|
3232
|
+
}
|
|
3233
|
+
return _context.abrupt("continue", 25);
|
|
3234
|
+
case 23:
|
|
3235
|
+
this.correctForceOptOfElement(elementId, boxPlannerGrid, optionHandler, false);
|
|
3236
|
+
this.correctNeighborCustomOLTs(elementId, boxPlannerGrid, optionHandler);
|
|
3237
|
+
case 25:
|
|
3238
|
+
j++;
|
|
3239
|
+
_context.next = 19;
|
|
3240
|
+
break;
|
|
3241
|
+
case 28:
|
|
3242
|
+
i++;
|
|
3243
|
+
_context.next = 17;
|
|
3244
|
+
break;
|
|
3245
|
+
case 31:
|
|
3246
|
+
if (!boxPlannerGrid.getPlannerHasActiveBackside()) {
|
|
3247
|
+
_context.next = 47;
|
|
3248
|
+
break;
|
|
3249
|
+
}
|
|
3250
|
+
i = boxPlannerGrid.getColumnCount() - 1;
|
|
3251
|
+
case 33:
|
|
3252
|
+
if (!(i >= 0)) {
|
|
3253
|
+
_context.next = 47;
|
|
3254
|
+
break;
|
|
3255
|
+
}
|
|
3256
|
+
j = 0;
|
|
3257
|
+
case 35:
|
|
3258
|
+
if (!(j < boxPlannerGrid.getRowCount(i, false))) {
|
|
3259
|
+
_context.next = 44;
|
|
3260
|
+
break;
|
|
3261
|
+
}
|
|
3262
|
+
_elementId = (_boxPlannerGrid$getPl3 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl3 === void 0 ? void 0 : _boxPlannerGrid$getPl3.ElementId;
|
|
3263
|
+
if (_elementId) {
|
|
3264
|
+
_context.next = 39;
|
|
3265
|
+
break;
|
|
3266
|
+
}
|
|
3267
|
+
return _context.abrupt("continue", 41);
|
|
3268
|
+
case 39:
|
|
3269
|
+
this.correctForceOptOfElement(_elementId, boxPlannerGrid, optionHandler, true);
|
|
3270
|
+
this.correctNeighborCustomOLTs(_elementId, boxPlannerGrid, optionHandler);
|
|
3271
|
+
case 41:
|
|
3272
|
+
j++;
|
|
3273
|
+
_context.next = 35;
|
|
3274
|
+
break;
|
|
3275
|
+
case 44:
|
|
3276
|
+
i--;
|
|
3277
|
+
_context.next = 33;
|
|
3278
|
+
break;
|
|
3279
|
+
case 47:
|
|
3212
3280
|
this.correctFoot(boxPlannerGrid, optionHandler);
|
|
3213
3281
|
this.correctLadder(boxPlannerGrid, optionHandler);
|
|
3214
|
-
this.correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler);
|
|
3282
|
+
this.correctOptionsInfluencedByDimensions(boxPlannerGrid, optionHandler, changedOPTs);
|
|
3215
3283
|
this.correctOverHangingElement((_targetElements = targetElements) === null || _targetElements === void 0 ? void 0 : _targetElements[0], boxPlannerGrid, optionHandler, changedOPTs);
|
|
3216
3284
|
this.partlistHelper.calculateKnots(boxPlannerGrid, optionHandler);
|
|
3217
3285
|
this.partlistHelper.calculateRahmen(boxPlannerGrid, optionHandler);
|
|
3218
|
-
|
|
3219
|
-
|
|
3220
|
-
|
|
3286
|
+
if (this.constructionRules.coverPlateRule) {
|
|
3287
|
+
_iterator = _createForOfIteratorHelper$1(this.constructionRules.coverPlateRule);
|
|
3288
|
+
try {
|
|
3289
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
3290
|
+
coverPlateRule = _step.value;
|
|
3291
|
+
this.correctCoverPlate(coverPlateRule, boxPlannerGrid, optionHandler);
|
|
3292
|
+
}
|
|
3293
|
+
} catch (err) {
|
|
3294
|
+
_iterator.e(err);
|
|
3295
|
+
} finally {
|
|
3296
|
+
_iterator.f();
|
|
3221
3297
|
}
|
|
3222
3298
|
}
|
|
3299
|
+
i = 0;
|
|
3300
|
+
case 55:
|
|
3301
|
+
if (!(i < boxPlannerGrid.getColumnCount())) {
|
|
3302
|
+
_context.next = 68;
|
|
3303
|
+
break;
|
|
3304
|
+
}
|
|
3305
|
+
j = 0;
|
|
3306
|
+
case 57:
|
|
3307
|
+
if (!(j < boxPlannerGrid.getRowCount(i, false))) {
|
|
3308
|
+
_context.next = 65;
|
|
3309
|
+
break;
|
|
3310
|
+
}
|
|
3311
|
+
_elementId2 = (_boxPlannerGrid$getPl4 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl4 === void 0 ? void 0 : _boxPlannerGrid$getPl4.getElementId();
|
|
3312
|
+
if (_elementId2) {
|
|
3313
|
+
_context.next = 61;
|
|
3314
|
+
break;
|
|
3315
|
+
}
|
|
3316
|
+
return _context.abrupt("continue", 62);
|
|
3317
|
+
case 61:
|
|
3318
|
+
this.correctBack(boxPlannerGrid, optionHandler, _elementId2);
|
|
3319
|
+
case 62:
|
|
3320
|
+
j++;
|
|
3321
|
+
_context.next = 57;
|
|
3322
|
+
break;
|
|
3323
|
+
case 65:
|
|
3324
|
+
i++;
|
|
3325
|
+
_context.next = 55;
|
|
3326
|
+
break;
|
|
3327
|
+
case 68:
|
|
3223
3328
|
doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
|
|
3224
|
-
_context.next =
|
|
3329
|
+
_context.next = 71;
|
|
3225
3330
|
return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
|
|
3226
|
-
case
|
|
3331
|
+
case 71:
|
|
3227
3332
|
LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting Option Values of all Articles: ' + (new Date().getTime() - startTime));
|
|
3228
3333
|
LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting updating configurator: ' + (new Date().getTime() - startTime));
|
|
3229
3334
|
return _context.abrupt("return", resultMessage);
|
|
3230
|
-
case
|
|
3335
|
+
case 74:
|
|
3231
3336
|
case "end":
|
|
3232
3337
|
return _context.stop();
|
|
3233
3338
|
}
|
|
@@ -3355,7 +3460,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3355
3460
|
var cells = [];
|
|
3356
3461
|
for (var i = 0; i < colCount; i++) {
|
|
3357
3462
|
for (var j = 0; j < rowCount; j++) {
|
|
3358
|
-
var
|
|
3463
|
+
var _cell2 = {
|
|
3359
3464
|
plannedElement: {
|
|
3360
3465
|
basketId: newElement.getBasketId(),
|
|
3361
3466
|
elementId: newElement.getElementId(),
|
|
@@ -3374,7 +3479,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3374
3479
|
},
|
|
3375
3480
|
index: new index.Vector2(startColIndex + i, startRowIndex + j)
|
|
3376
3481
|
};
|
|
3377
|
-
cells.push(
|
|
3482
|
+
cells.push(_cell2);
|
|
3378
3483
|
}
|
|
3379
3484
|
}
|
|
3380
3485
|
return cells;
|
|
@@ -3439,7 +3544,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3439
3544
|
key: "getGridColumnWidth",
|
|
3440
3545
|
value: function getGridColumnWidth(x) {
|
|
3441
3546
|
var frontGrid = this.generalPlanningState.grids[0].matrix;
|
|
3442
|
-
for (var y = 0;
|
|
3547
|
+
for (var y = 0; y < frontGrid[y].length; y++) {
|
|
3443
3548
|
var _plannedElement$size$, _plannedElement;
|
|
3444
3549
|
var cell = frontGrid[x][y];
|
|
3445
3550
|
if (cell) return (_plannedElement$size$ = (_plannedElement = cell.plannedElement) === null || _plannedElement === void 0 ? void 0 : _plannedElement.size.width) !== null && _plannedElement$size$ !== void 0 ? _plannedElement$size$ : 0;
|
|
@@ -3663,10 +3768,10 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3663
3768
|
}
|
|
3664
3769
|
for (var i = 0; i < backGrid.length; i++) {
|
|
3665
3770
|
for (var j = 0; j < backGrid[i].length; j++) {
|
|
3666
|
-
var
|
|
3667
|
-
var
|
|
3668
|
-
var _elementId = (
|
|
3669
|
-
if (
|
|
3771
|
+
var _cell3$plannedElement;
|
|
3772
|
+
var _cell3 = backGrid[i][j];
|
|
3773
|
+
var _elementId = (_cell3$plannedElement = _cell3.plannedElement) === null || _cell3$plannedElement === void 0 ? void 0 : _cell3$plannedElement.elementId;
|
|
3774
|
+
if (_cell3 && _elementId && allCheckedElementIds.indexOf(_elementId) == -1) {
|
|
3670
3775
|
var _element = this.getElementById(_elementId);
|
|
3671
3776
|
allCheckedElementIds.push(_elementId);
|
|
3672
3777
|
returnElements.push(_element);
|
|
@@ -3930,10 +4035,10 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3930
4035
|
}
|
|
3931
4036
|
} else {
|
|
3932
4037
|
for (var i = curGrid[index].length - 1; i >= 0; i--) {
|
|
3933
|
-
var
|
|
3934
|
-
var
|
|
3935
|
-
var _elementId4 =
|
|
3936
|
-
if (
|
|
4038
|
+
var _cell4$plannedElement;
|
|
4039
|
+
var _cell4 = curGrid[index][i];
|
|
4040
|
+
var _elementId4 = _cell4 === null || _cell4 === void 0 || (_cell4$plannedElement = _cell4.plannedElement) === null || _cell4$plannedElement === void 0 ? void 0 : _cell4$plannedElement.elementId;
|
|
4041
|
+
if (_cell4 && _elementId4 && allElementIds.indexOf(_elementId4) == -1) {
|
|
3937
4042
|
allElementIds.push(_elementId4);
|
|
3938
4043
|
allElements.push(this.plannerElements.get(_elementId4));
|
|
3939
4044
|
}
|
|
@@ -4022,31 +4127,88 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4022
4127
|
}, {
|
|
4023
4128
|
key: "getNeighborElements",
|
|
4024
4129
|
value: function getNeighborElements(elementId, dir) {
|
|
4025
|
-
var
|
|
4130
|
+
var _this = this,
|
|
4131
|
+
_curGrid$area$fromX,
|
|
4132
|
+
_downNeighbour$planne;
|
|
4133
|
+
var clean = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
4026
4134
|
var res = this.getCellsInGridByElementId(elementId);
|
|
4027
4135
|
var curGrid = res.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
4028
4136
|
var result = [];
|
|
4029
4137
|
var plannedElement = res.cells[0].plannedElement;
|
|
4030
4138
|
if (!plannedElement) return result;
|
|
4139
|
+
var currentRow = curGrid[plannedElement.area.fromX];
|
|
4140
|
+
var startHeight = 0;
|
|
4141
|
+
var endHeight = 0;
|
|
4142
|
+
for (var y = 0; y < currentRow.length;) {
|
|
4143
|
+
var cell = currentRow[y];
|
|
4144
|
+
if (cell.index.y < res.startRowIndex) startHeight = Math.round((startHeight + cell.plannedElement.size.height) * 1000) / 1000;
|
|
4145
|
+
if (cell.index.y < res.endRowIndex) endHeight = Math.round((endHeight + cell.plannedElement.size.height) * 1000) / 1000;
|
|
4146
|
+
y = cell.plannedElement.area.toY;
|
|
4147
|
+
}
|
|
4148
|
+
var neighbourSize = 0;
|
|
4149
|
+
var neighbours = [];
|
|
4031
4150
|
switch (dir) {
|
|
4032
4151
|
case 'RIGHT':
|
|
4033
4152
|
// only clean neighbours (for docking) add property if you also need clean ones
|
|
4034
|
-
|
|
4035
|
-
var
|
|
4036
|
-
|
|
4153
|
+
|
|
4154
|
+
for (var x = plannedElement.area.toX; x < curGrid.length;) {
|
|
4155
|
+
var _neighbourRow$0$plann, _neighbourRow$0$plann2;
|
|
4156
|
+
var neighbourRow = curGrid[x];
|
|
4157
|
+
for (var _y = 0; _y < neighbourRow.length;) {
|
|
4158
|
+
var _cell5$plannedElement, _cell5$plannedElement2;
|
|
4159
|
+
var _cell5 = neighbourRow[_y];
|
|
4160
|
+
if (neighbours.includes(_cell5)) continue;
|
|
4161
|
+
if (clean && neighbourSize == startHeight) neighbours.push(_cell5);else if (!clean && neighbourSize >= startHeight && neighbourSize <= endHeight) neighbours.push(_cell5);
|
|
4162
|
+
neighbourSize = Math.round((neighbourSize + _cell5.plannedElement.size.height) * 1000) / 1000;
|
|
4163
|
+
_y = (_cell5$plannedElement = (_cell5$plannedElement2 = _cell5.plannedElement) === null || _cell5$plannedElement2 === void 0 ? void 0 : _cell5$plannedElement2.area.toY) !== null && _cell5$plannedElement !== void 0 ? _cell5$plannedElement : _y + 1;
|
|
4164
|
+
}
|
|
4165
|
+
neighbourSize = 0;
|
|
4166
|
+
x = (_neighbourRow$0$plann = (_neighbourRow$0$plann2 = neighbourRow[0].plannedElement) === null || _neighbourRow$0$plann2 === void 0 ? void 0 : _neighbourRow$0$plann2.area.toX) !== null && _neighbourRow$0$plann !== void 0 ? _neighbourRow$0$plann : x + 1;
|
|
4167
|
+
}
|
|
4168
|
+
neighbours.forEach(function (n) {
|
|
4169
|
+
return !result.find(function (r) {
|
|
4170
|
+
return r.ElementId == n.plannedElement.elementId;
|
|
4171
|
+
}) && result.push(_this.plannerElements.get(n.plannedElement.elementId));
|
|
4172
|
+
});
|
|
4037
4173
|
break;
|
|
4038
4174
|
case 'LEFT':
|
|
4039
|
-
var
|
|
4040
|
-
|
|
4041
|
-
|
|
4175
|
+
for (var _x2 = plannedElement.area.fromX - 1; _x2 > 0;) {
|
|
4176
|
+
var _neighbourRow = curGrid[_x2];
|
|
4177
|
+
for (var _y2 = 0; _y2 < _neighbourRow.length;) {
|
|
4178
|
+
var _cell6$plannedElement, _cell6$plannedElement2;
|
|
4179
|
+
var _cell6 = _neighbourRow[_y2];
|
|
4180
|
+
if (neighbours.includes(_cell6)) continue;
|
|
4181
|
+
if (clean && neighbourSize == startHeight) neighbours.push(_cell6);else if (!clean && neighbourSize >= startHeight && neighbourSize <= endHeight) neighbours.push(_cell6);
|
|
4182
|
+
neighbourSize = Math.round((neighbourSize + _cell6.plannedElement.size.height) * 1000) / 1000;
|
|
4183
|
+
_y2 = (_cell6$plannedElement = (_cell6$plannedElement2 = _cell6.plannedElement) === null || _cell6$plannedElement2 === void 0 ? void 0 : _cell6$plannedElement2.area.toY) !== null && _cell6$plannedElement !== void 0 ? _cell6$plannedElement : _y2 + 1;
|
|
4184
|
+
}
|
|
4185
|
+
neighbourSize = 0;
|
|
4186
|
+
_x2 = _neighbourRow[0].plannedElement ? _neighbourRow[0].plannedElement.area.fromX - 1 : _x2 + 1;
|
|
4187
|
+
}
|
|
4188
|
+
neighbours.forEach(function (n) {
|
|
4189
|
+
return !result.find(function (r) {
|
|
4190
|
+
return r.ElementId == n.plannedElement.elementId;
|
|
4191
|
+
}) && result.push(_this.plannerElements.get(n.plannedElement.elementId));
|
|
4192
|
+
});
|
|
4042
4193
|
break;
|
|
4043
4194
|
case 'TOP':
|
|
4044
|
-
var
|
|
4045
|
-
var
|
|
4046
|
-
|
|
4195
|
+
var topNeighbours = [];
|
|
4196
|
+
for (var _x3 = plannedElement.area.fromX; _x3 < plannedElement.area.toX;) {
|
|
4197
|
+
var _cell7 = curGrid[_x3][plannedElement.area.toY];
|
|
4198
|
+
if (!_cell7) break;
|
|
4199
|
+
topNeighbours.push(_cell7);
|
|
4200
|
+
if (clean) break;
|
|
4201
|
+
_x3 = _cell7.plannedElement.area.toX;
|
|
4202
|
+
}
|
|
4203
|
+
if (topNeighbours.length == 0) break;
|
|
4204
|
+
topNeighbours.forEach(function (topNeighbour) {
|
|
4205
|
+
var _plannedElement3;
|
|
4206
|
+
var tElementId = (_plannedElement3 = topNeighbour.plannedElement) === null || _plannedElement3 === void 0 ? void 0 : _plannedElement3.elementId;
|
|
4207
|
+
if (tElementId) result.push(_this.plannerElements.get(tElementId));
|
|
4208
|
+
});
|
|
4047
4209
|
break;
|
|
4048
4210
|
case 'DOWN':
|
|
4049
|
-
var downNeighbour = (_curGrid$area$
|
|
4211
|
+
var downNeighbour = (_curGrid$area$fromX = curGrid[plannedElement.area.fromX]) === null || _curGrid$area$fromX === void 0 ? void 0 : _curGrid$area$fromX[plannedElement.area.fromY - 1];
|
|
4050
4212
|
var dElementId = downNeighbour === null || downNeighbour === void 0 || (_downNeighbour$planne = downNeighbour.plannedElement) === null || _downNeighbour$planne === void 0 ? void 0 : _downNeighbour$planne.elementId;
|
|
4051
4213
|
if (dElementId) result.push(this.plannerElements.get(dElementId));
|
|
4052
4214
|
break;
|
|
@@ -4116,12 +4278,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4116
4278
|
var curHeight = 0;
|
|
4117
4279
|
var row = frontGrid[x];
|
|
4118
4280
|
for (var y = 0; y < row.length;) {
|
|
4119
|
-
var
|
|
4281
|
+
var _cell8, _cell$plannedElement$, _cell$plannedElement8;
|
|
4120
4282
|
var cell = row[y];
|
|
4121
|
-
var elementId = (
|
|
4283
|
+
var elementId = (_cell8 = cell) === null || _cell8 === void 0 || (_cell8 = _cell8.plannedElement) === null || _cell8 === void 0 ? void 0 : _cell8.elementId;
|
|
4122
4284
|
if (elementId && cell && checkedElementIds.indexOf(elementId) == -1) {
|
|
4123
4285
|
curHeight += this.plannerElements.get(elementId).getHeight();
|
|
4124
|
-
if (x == 0 && y == 0) depth =
|
|
4286
|
+
if (x == 0 && y == 0) depth = cell.plannedElement.size.depth;
|
|
4125
4287
|
}
|
|
4126
4288
|
y = (_cell$plannedElement$ = (_cell$plannedElement8 = cell.plannedElement) === null || _cell$plannedElement8 === void 0 ? void 0 : _cell$plannedElement8.area.toY) !== null && _cell$plannedElement$ !== void 0 ? _cell$plannedElement$ : y + 1;
|
|
4127
4289
|
}
|
|
@@ -4148,9 +4310,11 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4148
4310
|
var onBottom = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
4149
4311
|
if (this.hasActiveBackside) throw new Error('this function is doesnt implement the backside logic (yet)');
|
|
4150
4312
|
var result = [];
|
|
4313
|
+
var grid = this.generalPlanningState.grids[0].matrix;
|
|
4151
4314
|
var lastHeight = -1;
|
|
4152
|
-
for (var x = 0; x <
|
|
4153
|
-
var
|
|
4315
|
+
for (var x = 0; x < grid.length;) {
|
|
4316
|
+
var _grid$new_x;
|
|
4317
|
+
var row = grid[x];
|
|
4154
4318
|
var height = 0;
|
|
4155
4319
|
for (var y = 0; y < row.length;) {
|
|
4156
4320
|
var element = row[y].plannedElement;
|
|
@@ -4159,12 +4323,20 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4159
4323
|
}
|
|
4160
4324
|
if (Math.round(height) == Math.round(lastHeight) || onBottom) {
|
|
4161
4325
|
if (!result[result.length - 1]) result.push([]);
|
|
4162
|
-
result[result.length - 1].push(
|
|
4163
|
-
} else {
|
|
4164
|
-
result.push([
|
|
4326
|
+
result[result.length - 1].push(grid[x][onBottom ? 0 : row.length - 1].plannedElement);
|
|
4327
|
+
} else if (grid[x][row.length - 1].plannedElement.area.fromX == x) {
|
|
4328
|
+
result.push([grid[x][onBottom ? 0 : row.length - 1].plannedElement]);
|
|
4165
4329
|
}
|
|
4166
4330
|
lastHeight = height;
|
|
4167
|
-
|
|
4331
|
+
var new_x = row[row.length - 1].plannedElement.area.toX;
|
|
4332
|
+
var newHeight = (_grid$new_x = grid[new_x]) === null || _grid$new_x === void 0 ? void 0 : _grid$new_x.length;
|
|
4333
|
+
|
|
4334
|
+
// if the next row is fx. lower and doesn't have a clean cut here we need to skip more
|
|
4335
|
+
if (newHeight && newHeight != row.length) {
|
|
4336
|
+
var cell = grid[new_x][newHeight - 1];
|
|
4337
|
+
if (cell.index.x != cell.plannedElement.area.fromX) new_x = cell.plannedElement.area.toX;
|
|
4338
|
+
}
|
|
4339
|
+
x = new_x;
|
|
4168
4340
|
}
|
|
4169
4341
|
return result;
|
|
4170
4342
|
}
|
|
@@ -4210,42 +4382,63 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4210
4382
|
}, {
|
|
4211
4383
|
key: "getAllElementsToFillUp",
|
|
4212
4384
|
value: function getAllElementsToFillUp(elementId, dir) {
|
|
4213
|
-
var
|
|
4385
|
+
var _this2 = this;
|
|
4214
4386
|
var curPos = this.getCellsInGridByElementId(elementId);
|
|
4215
4387
|
|
|
4216
4388
|
//columns and rows are swapped don't ask me why
|
|
4217
4389
|
var element = curPos.cells[0].plannedElement;
|
|
4218
4390
|
var index = {
|
|
4219
|
-
x: curPos.startColIndex,
|
|
4391
|
+
x: dir == 'LEFT' ? curPos.startColIndex : curPos.endColIndex - 1,
|
|
4220
4392
|
y: curPos.startRowIndex
|
|
4221
4393
|
};
|
|
4222
4394
|
var curGrid = curPos.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
4223
4395
|
var plannerIdsToFill = [];
|
|
4224
|
-
var
|
|
4225
|
-
var
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4396
|
+
var length = element.area.toX - element.area.fromX;
|
|
4397
|
+
var d = dir == 'RIGHT' ? +length : -length;
|
|
4398
|
+
plannerIdsToFill.push(element.elementId);
|
|
4399
|
+
_objectSpread(_objectSpread({}, element.area), {}, {
|
|
4400
|
+
fromX: element.area.fromX + d,
|
|
4401
|
+
toX: element.area.toX + d
|
|
4402
|
+
});
|
|
4403
|
+
var _loop = function _loop(_y3) {
|
|
4404
|
+
var _curGrid$index$x$_y;
|
|
4405
|
+
var supportElement = (_curGrid$index$x$_y = curGrid[index.x][_y3]) === null || _curGrid$index$x$_y === void 0 ? void 0 : _curGrid$index$x$_y.plannedElement;
|
|
4406
|
+
if (!supportElement) {
|
|
4407
|
+
y = _y3;
|
|
4408
|
+
return 0;
|
|
4409
|
+
} // break
|
|
4410
|
+
var topElements = _this2.getNeighborElements(supportElement.elementId, 'TOP', false);
|
|
4411
|
+
var topWidth = 0;
|
|
4412
|
+
topElements.forEach(function (t) {
|
|
4413
|
+
return topWidth += t.Width;
|
|
4414
|
+
});
|
|
4415
|
+
var freeSpace = 0;
|
|
4416
|
+
if (supportElement.size.width > topWidth) freeSpace = supportElement.size.width - topWidth;
|
|
4417
|
+
var neighbours = _this2.getNeighborElements(supportElement.elementId, dir, false);
|
|
4418
|
+
neighbours.forEach(function (n) {
|
|
4419
|
+
if (_this2.getNeighborElements(n.ElementId, 'TOP').length > 0) return;
|
|
4420
|
+
freeSpace += n.Width;
|
|
4421
|
+
});
|
|
4422
|
+
if (freeSpace >= element.size.width) {
|
|
4423
|
+
y = _y3;
|
|
4424
|
+
return 0;
|
|
4425
|
+
} // break
|
|
4426
|
+
var missingWidth = element.size.width - freeSpace;
|
|
4427
|
+
while (missingWidth > 0) {
|
|
4428
|
+
plannerIdsToFill.push(supportElement.elementId);
|
|
4429
|
+
missingWidth = Math.round(missingWidth - supportElement.size.width);
|
|
4430
|
+
}
|
|
4431
|
+
_y3 = supportElement.area.fromY - 1;
|
|
4432
|
+
y = _y3;
|
|
4433
|
+
},
|
|
4434
|
+
_ret;
|
|
4435
|
+
for (var y = index.y - 1; y >= 0;) {
|
|
4436
|
+
_ret = _loop(y);
|
|
4437
|
+
if (_ret === 0) break;
|
|
4245
4438
|
}
|
|
4246
4439
|
// if there is nothing to fill we copy everyting
|
|
4247
4440
|
return {
|
|
4248
|
-
elements: plannerIdsToFill.
|
|
4441
|
+
elements: plannerIdsToFill.reverse(),
|
|
4249
4442
|
backside: curPos.backside
|
|
4250
4443
|
};
|
|
4251
4444
|
}
|
|
@@ -4341,11 +4534,32 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4341
4534
|
// [][] -> | [][][]
|
|
4342
4535
|
// [][] | [][][]
|
|
4343
4536
|
// [][][] | [][][][]
|
|
4344
|
-
function moveGrid(plannedCells) {
|
|
4537
|
+
var moveGrid = function moveGrid(plannedCells) {
|
|
4345
4538
|
var grid = new Array();
|
|
4346
4539
|
var rightNeighbour = plannedCells.filter(function (c) {
|
|
4347
4540
|
return c.index.x == element.area.toX;
|
|
4348
4541
|
});
|
|
4542
|
+
var col = [];
|
|
4543
|
+
var support = [];
|
|
4544
|
+
var _loop2 = function _loop2() {
|
|
4545
|
+
var c = frontGrid[x][element.area.fromY];
|
|
4546
|
+
var s = frontGrid[x][element.area.fromY - 1];
|
|
4547
|
+
if (c && !col.find(function (_c) {
|
|
4548
|
+
return _c.plannedElement.elementId == c.plannedElement.elementId;
|
|
4549
|
+
})) col.push(frontGrid[x][element.area.fromY]);
|
|
4550
|
+
if (s && !support.find(function (_c) {
|
|
4551
|
+
return _c.plannedElement.elementId == s.plannedElement.elementId;
|
|
4552
|
+
})) support.push(frontGrid[x][element.area.fromY - 1]);
|
|
4553
|
+
};
|
|
4554
|
+
for (var x = 0; x < frontGrid.length; x++) {
|
|
4555
|
+
_loop2();
|
|
4556
|
+
}
|
|
4557
|
+
var sizeXTop = col.reduce(function (acc, n) {
|
|
4558
|
+
return acc += n.plannedElement.size.width;
|
|
4559
|
+
}, 0);
|
|
4560
|
+
var sizeXUnder = support ? support.reduce(function (acc, n) {
|
|
4561
|
+
return acc += n.plannedElement.size.width;
|
|
4562
|
+
}, 0) : 0;
|
|
4349
4563
|
var rightNeighbourOfCopy = rightNeighbour.find(function (c) {
|
|
4350
4564
|
return c.index.y == absoluteCopyIndex.y;
|
|
4351
4565
|
});
|
|
@@ -4357,7 +4571,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4357
4571
|
});
|
|
4358
4572
|
plannedCells.forEach(function (cell) {
|
|
4359
4573
|
// if we can't fill up (need to move the grid)
|
|
4360
|
-
if (cell.index.x >= absoluteCopyIndex.x && (copyDirectionIsRight && (rightNeighbourOfCopy || rightNeighbour.length == 0)
|
|
4574
|
+
if (cell.index.x >= absoluteCopyIndex.x && (copyDirectionIsRight && (rightNeighbourOfCopy || rightNeighbour.length == 0) && (
|
|
4575
|
+
// no free space or on the right height == move
|
|
4576
|
+
!(sizeXTop <= sizeXUnder - element.size.width) || cell.index.y >= element.area.fromY && cell.index.y < element.area.toY) || !copyDirectionIsRight && (leftNeighbourOfCopy || leftNeighbour.length == 0) || absoluteCopyIndex.x == -1)) {
|
|
4361
4577
|
cell.index.x += widthCopyArea;
|
|
4362
4578
|
cell.plannedElement.area.fromX += widthCopyArea;
|
|
4363
4579
|
cell.plannedElement.area.toX += widthCopyArea;
|
|
@@ -4366,13 +4582,13 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4366
4582
|
grid[cell.index.x][cell.index.y] = cell;
|
|
4367
4583
|
});
|
|
4368
4584
|
return grid;
|
|
4369
|
-
}
|
|
4585
|
+
};
|
|
4370
4586
|
frontGrid = moveGrid(this.getAllUsedCellsInGrid(false));
|
|
4371
4587
|
for (var x = 0; x < widthCopyArea; x++) if (!frontGrid[absoluteCopyIndex.x + x]) frontGrid[absoluteCopyIndex.x + x] = [];
|
|
4372
4588
|
this.generalPlanningState.grids[0].matrix = frontGrid;
|
|
4373
4589
|
if (this.hasActiveBackside) {
|
|
4374
4590
|
backGrid = moveGrid(this.getAllUsedCellsInGrid(true));
|
|
4375
|
-
for (var
|
|
4591
|
+
for (var _x4 = 0; _x4 < widthCopyArea; _x4++) if (!backGrid[absoluteCopyIndex.x + _x4]) backGrid[absoluteCopyIndex.x + _x4] = [];
|
|
4376
4592
|
this.generalPlanningState.grids[1].matrix = backGrid;
|
|
4377
4593
|
}
|
|
4378
4594
|
}
|
|
@@ -4418,13 +4634,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4418
4634
|
var elementData = this.plannerElements.get(elementId);
|
|
4419
4635
|
var deletedCells = this.getCellsInGridByElementId(elementId);
|
|
4420
4636
|
if (!elementData) return;
|
|
4421
|
-
this.deleteElement(elementId,
|
|
4637
|
+
this.deleteElement(elementId, 'STD');
|
|
4422
4638
|
var curGrid = this.generalPlanningState.grids[0].matrix;
|
|
4423
4639
|
var cells = undefined;
|
|
4424
|
-
if (absoluteIndex.x < 0
|
|
4425
|
-
) {
|
|
4640
|
+
if (absoluteIndex.x < 0 && absoluteIndex.y == 0) {
|
|
4426
4641
|
var dir = deletedCells.endColIndex >= absoluteIndex.x;
|
|
4427
|
-
if (deletedCells.startColIndex
|
|
4642
|
+
if (deletedCells.startColIndex <= absoluteIndex.x) absoluteIndex.x -= deletedCells.endColIndex - deletedCells.startColIndex;
|
|
4428
4643
|
if (absoluteIndex.x < 0) absoluteIndex.x = 0;
|
|
4429
4644
|
cells = this.createNewCells(elementData, absoluteIndex.x, absoluteIndex.y, false);
|
|
4430
4645
|
var movedGrid = [];
|
|
@@ -4433,9 +4648,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4433
4648
|
_.forEach(function (_, y) {
|
|
4434
4649
|
var newX = x;
|
|
4435
4650
|
var shiftX = 0;
|
|
4436
|
-
if (y == absoluteIndex.y) {
|
|
4437
|
-
newX += dir ? element.area.toX - element.area.fromX :
|
|
4438
|
-
shiftX = dir ? element.area.toX - element.area.fromX :
|
|
4651
|
+
if (y == absoluteIndex.y || absoluteIndex.y == 0) {
|
|
4652
|
+
newX += dir ? element.area.toX - element.area.fromX : 0;
|
|
4653
|
+
shiftX = dir ? element.area.toX - element.area.fromX : 0;
|
|
4439
4654
|
}
|
|
4440
4655
|
if (!movedGrid[newX]) movedGrid[newX] = [];
|
|
4441
4656
|
var cellElem = curGrid[x][y].plannedElement;
|
|
@@ -4458,7 +4673,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4458
4673
|
});
|
|
4459
4674
|
curGrid = movedGrid;
|
|
4460
4675
|
} else {
|
|
4461
|
-
if (absoluteIndex.x > deletedCells.startColIndex &&
|
|
4676
|
+
if (absoluteIndex.x > deletedCells.startColIndex && deletedCells.startRowIndex == 0) absoluteIndex.x -= deletedCells.endColIndex - deletedCells.startColIndex;
|
|
4462
4677
|
cells = this.createNewCells(elementData, absoluteIndex.x, absoluteIndex.y, false);
|
|
4463
4678
|
}
|
|
4464
4679
|
for (var i = 0; i < cells.length; i++) {
|
|
@@ -4488,8 +4703,6 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4488
4703
|
var backsideForCopy = copyIndex.z == -1 || curPos.backside == true;
|
|
4489
4704
|
if (cellIndex.x < 0) cellIndex.x = 0; // can't plan to negative space see prepareGridForColCopy
|
|
4490
4705
|
var curGrid = backsideForCopy ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
4491
|
-
// can't float need to dock
|
|
4492
|
-
if (curGrid[cellIndex.x].length < cellIndex.y) cellIndex.y = curGrid[cellIndex.x].length;
|
|
4493
4706
|
var cells = this.createNewCells(newElement, cellIndex.x, cellIndex.y, backsideForCopy);
|
|
4494
4707
|
for (var i = 0; i < cells.length; i++) {
|
|
4495
4708
|
if (!curGrid[cells[i].index.x]) curGrid[cells[i].index.x] = [];
|
|
@@ -4520,75 +4733,129 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4520
4733
|
}, {
|
|
4521
4734
|
key: "updateGridElementDimensions",
|
|
4522
4735
|
value: function updateGridElementDimensions(elementId, elementData) {
|
|
4523
|
-
var
|
|
4524
|
-
if (!elementData) return;
|
|
4736
|
+
var _this3 = this;
|
|
4737
|
+
if (!elementData) return false;
|
|
4738
|
+
var backup = structuredClone(this.generalPlanningState);
|
|
4525
4739
|
var res = this.getCellsInGridByElementId(elementId);
|
|
4526
4740
|
var scpe = this.gridSetupParams.forceSingleCellPerElement;
|
|
4741
|
+
var origin = {
|
|
4742
|
+
x: res.cells[0].plannedElement.area.toX,
|
|
4743
|
+
y: res.cells[0].plannedElement.area.toY
|
|
4744
|
+
};
|
|
4745
|
+
var diff = {
|
|
4746
|
+
x: 0,
|
|
4747
|
+
y: 0
|
|
4748
|
+
};
|
|
4527
4749
|
res.cells.forEach(function (cell) {
|
|
4528
4750
|
if (!cell.plannedElement) return;
|
|
4529
|
-
|
|
4530
|
-
|
|
4531
|
-
|
|
4532
|
-
|
|
4533
|
-
|
|
4534
|
-
|
|
4535
|
-
|
|
4751
|
+
var el = cell.plannedElement;
|
|
4752
|
+
el.size.width = elementData.width;
|
|
4753
|
+
el.size.height = elementData.height;
|
|
4754
|
+
el.size.depth = elementData.depth;
|
|
4755
|
+
el.area = {
|
|
4756
|
+
fromX: el.area.fromX,
|
|
4757
|
+
toX: !scpe ? Math.round(el.area.fromX + elementData.width / _this3.gridSetupParams.fixCellRasterWidth) : cell.index.x + 1,
|
|
4758
|
+
fromY: el.area.fromY,
|
|
4759
|
+
toY: !scpe ? Math.round(el.area.fromY + elementData.height / _this3.gridSetupParams.fixCellRasterHeight) : cell.index.y + 1
|
|
4536
4760
|
};
|
|
4761
|
+
diff.y = cell.plannedElement.area.toY - origin.y;
|
|
4762
|
+
diff.x = cell.plannedElement.area.toX - origin.x;
|
|
4537
4763
|
});
|
|
4538
|
-
|
|
4764
|
+
var cell = res.cells[0];
|
|
4765
|
+
var grid = this.generalPlanningState.grids[0].matrix;
|
|
4766
|
+
// if the element got bigger we need to move all the above elements up
|
|
4767
|
+
// if it got wider we need to move all the elements to the right
|
|
4768
|
+
if (diff.y != 0) {
|
|
4769
|
+
for (var x = cell.plannedElement.area.fromX; x < cell.plannedElement.area.toX; x++) {
|
|
4770
|
+
var row = grid[x];
|
|
4771
|
+
if (!row) continue;
|
|
4772
|
+
for (var y = origin.y; y < row.length; y++) {
|
|
4773
|
+
var _cell = row[y];
|
|
4774
|
+
if (_cell.index.y != y || _cell.plannedElement.elementId == cell.plannedElement.elementId) continue; //already corrected
|
|
4775
|
+
_cell.index.y += diff.y;
|
|
4776
|
+
_cell.plannedElement.area.fromY += diff.y;
|
|
4777
|
+
_cell.plannedElement.area.toY += diff.y;
|
|
4778
|
+
}
|
|
4779
|
+
}
|
|
4780
|
+
} else if (diff.x != 0) {
|
|
4781
|
+
for (var _x5 = cell.plannedElement.area.fromX; _x5 < grid.length; _x5++) {
|
|
4782
|
+
for (var _y4 = cell.plannedElement.area.fromY; _y4 < cell.plannedElement.area.toY; _y4++) {
|
|
4783
|
+
var _cell9 = grid[_x5][_y4];
|
|
4784
|
+
if (!_cell9 || _cell9.plannedElement.elementId == elementId) continue; //already corrected
|
|
4785
|
+
_cell9.index.x += diff.x;
|
|
4786
|
+
_cell9.plannedElement.area.fromX += diff.x;
|
|
4787
|
+
_cell9.plannedElement.area.toX += diff.x;
|
|
4788
|
+
}
|
|
4789
|
+
}
|
|
4790
|
+
}
|
|
4791
|
+
|
|
4792
|
+
// after indices/areas are corrected rebuild the grid
|
|
4793
|
+
if (scpe) return false;
|
|
4794
|
+
res.cells[0].plannedElement;
|
|
4539
4795
|
var newGrid = new Array();
|
|
4540
4796
|
var plannedCells = this.getAllUsedCellsInGrid(false);
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
var
|
|
4551
|
-
|
|
4552
|
-
if (
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4562
|
-
plannedElement: el && el.length > 0 ? el[0].plannedElement : undefined
|
|
4797
|
+
var _loop3 = function _loop3() {
|
|
4798
|
+
var cell = plannedCells[idx];
|
|
4799
|
+
var area = cell.plannedElement.area;
|
|
4800
|
+
if (newGrid.find(function (x) {
|
|
4801
|
+
return x.find(function (y) {
|
|
4802
|
+
var _y$plannedElement3, _cell$plannedElement9;
|
|
4803
|
+
return (y === null || y === void 0 || (_y$plannedElement3 = y.plannedElement) === null || _y$plannedElement3 === void 0 ? void 0 : _y$plannedElement3.elementId) == ((_cell$plannedElement9 = cell.plannedElement) === null || _cell$plannedElement9 === void 0 ? void 0 : _cell$plannedElement9.elementId);
|
|
4804
|
+
});
|
|
4805
|
+
})) return 0; // continue
|
|
4806
|
+
for (var _x6 = area.fromX; _x6 < area.toX; _x6++) {
|
|
4807
|
+
for (var _y5 = area.fromY; _y5 < area.toY; _y5++) {
|
|
4808
|
+
if (!newGrid[_x6] && area.fromY == 0) newGrid[_x6] = [];
|
|
4809
|
+
|
|
4810
|
+
// we have a so called overhanging element not so nice, let's correct:
|
|
4811
|
+
var support = plannedCells.find(function (c) {
|
|
4812
|
+
return c.plannedElement.area.toX >= cell.plannedElement.area.toX && c.plannedElement.area.toY == cell.index.y;
|
|
4813
|
+
});
|
|
4814
|
+
if (!support && !newGrid[_x6]) {
|
|
4815
|
+
_this3.generalPlanningState = backup;
|
|
4816
|
+
return {
|
|
4817
|
+
v: true
|
|
4563
4818
|
};
|
|
4564
|
-
return 0; // continue
|
|
4565
4819
|
}
|
|
4566
4820
|
|
|
4567
|
-
//
|
|
4568
|
-
|
|
4569
|
-
|
|
4821
|
+
// the element below got smaller
|
|
4822
|
+
if (!newGrid[_x6] && !support) {
|
|
4823
|
+
_this3.generalPlanningState = backup;
|
|
4824
|
+
return {
|
|
4825
|
+
v: true
|
|
4826
|
+
};
|
|
4827
|
+
} else if (!newGrid[_x6]) newGrid[_x6] = [];
|
|
4828
|
+
// when the element above starts early and goes over multiple ones
|
|
4829
|
+
|
|
4830
|
+
// regular case
|
|
4831
|
+
newGrid[_x6][_y5] = _objectSpread(_objectSpread({}, cell), {}, {
|
|
4570
4832
|
index: {
|
|
4571
|
-
x:
|
|
4572
|
-
y:
|
|
4833
|
+
x: _x6,
|
|
4834
|
+
y: _y5
|
|
4573
4835
|
},
|
|
4574
4836
|
plannedElement: _objectSpread(_objectSpread({}, cell.plannedElement), {}, {
|
|
4575
4837
|
area: {
|
|
4576
|
-
fromX:
|
|
4577
|
-
toX:
|
|
4578
|
-
fromY:
|
|
4579
|
-
toY:
|
|
4580
|
-
}
|
|
4838
|
+
fromX: cell.plannedElement.area.fromX,
|
|
4839
|
+
toX: cell.plannedElement.area.fromX + (cell.plannedElement.area.toX - cell.plannedElement.area.fromX),
|
|
4840
|
+
fromY: cell.plannedElement.area.fromY,
|
|
4841
|
+
toY: cell.plannedElement.area.fromY + (cell.plannedElement.area.toY - cell.plannedElement.area.fromY)
|
|
4842
|
+
},
|
|
4843
|
+
size: _objectSpread(_objectSpread({}, cell.plannedElement.size), {}, {
|
|
4844
|
+
depth: elementData.depth
|
|
4845
|
+
})
|
|
4581
4846
|
})
|
|
4582
4847
|
});
|
|
4583
|
-
}
|
|
4584
|
-
_ret;
|
|
4585
|
-
for (var y = 0; y < area.toY; y++) {
|
|
4586
|
-
_ret = _loop2(y);
|
|
4587
|
-
if (_ret === 0) continue;
|
|
4848
|
+
}
|
|
4588
4849
|
}
|
|
4589
|
-
}
|
|
4590
|
-
|
|
4850
|
+
},
|
|
4851
|
+
_ret2;
|
|
4852
|
+
for (var idx = 0; idx < plannedCells.length; idx++) {
|
|
4853
|
+
_ret2 = _loop3();
|
|
4854
|
+
if (_ret2 === 0) continue;
|
|
4855
|
+
if (_ret2) return _ret2.v;
|
|
4856
|
+
}
|
|
4591
4857
|
if (res.backside) this.generalPlanningState.grids[1].matrix = newGrid;else this.generalPlanningState.grids[0].matrix = newGrid;
|
|
4858
|
+
return false;
|
|
4592
4859
|
}
|
|
4593
4860
|
|
|
4594
4861
|
/**
|
|
@@ -4629,9 +4896,11 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4629
4896
|
var topNeighbors = this.getNeighborElements(elementId, 'TOP');
|
|
4630
4897
|
var rightNeighbors = this.getNeighborElements(elementId, 'RIGHT');
|
|
4631
4898
|
var leftNeighbors = this.getNeighborElements(elementId, 'LEFT');
|
|
4899
|
+
var downNeighbors = this.getNeighborElements(elementId, 'DOWN');
|
|
4632
4900
|
if (topNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVO', [topNeighbors[0]]);
|
|
4633
4901
|
if (leftNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVL', [leftNeighbors[0]]);
|
|
4634
4902
|
if (rightNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVR', [rightNeighbors[0]]);
|
|
4903
|
+
if (downNeighbors.length > 0) PlannerHandler2D.dockingPointHandlerInst.tryDockElement(element, 'AVU', [downNeighbors[0]]);
|
|
4635
4904
|
element.PosNr = posNr;
|
|
4636
4905
|
posNr++;
|
|
4637
4906
|
}
|
|
@@ -4639,9 +4908,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4639
4908
|
}
|
|
4640
4909
|
for (var i = 0; i < backGrid.length; i++) {
|
|
4641
4910
|
for (var j = 0; j < backGrid[i].length; j++) {
|
|
4642
|
-
var
|
|
4643
|
-
var
|
|
4644
|
-
var _elementId6 =
|
|
4911
|
+
var _cell10$plannedElemen;
|
|
4912
|
+
var _cell10 = backGrid[i][j];
|
|
4913
|
+
var _elementId6 = _cell10 === null || _cell10 === void 0 || (_cell10$plannedElemen = _cell10.plannedElement) === null || _cell10$plannedElemen === void 0 ? void 0 : _cell10$plannedElemen.elementId;
|
|
4645
4914
|
if (_elementId6 && allCheckedElementIds.indexOf(_elementId6) == -1) {
|
|
4646
4915
|
var _element2 = this.plannerElements.get(_elementId6);
|
|
4647
4916
|
allCheckedElementIds.push(_elementId6);
|
|
@@ -4979,9 +5248,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4979
5248
|
var targetRowIndex = endRowIndex + 1;
|
|
4980
5249
|
var _copyPossible = false;
|
|
4981
5250
|
// Iterate through columns within the element's width
|
|
4982
|
-
for (var
|
|
4983
|
-
if (isValidCell(
|
|
4984
|
-
copyStartColIndex =
|
|
5251
|
+
for (var _x7 = endColIndex; _x7 >= startColIndex; _x7--) {
|
|
5252
|
+
if (isValidCell(_x7, targetRowIndex)) {
|
|
5253
|
+
copyStartColIndex = _x7;
|
|
4985
5254
|
_copyPossible = true;
|
|
4986
5255
|
}
|
|
4987
5256
|
}
|
|
@@ -4998,19 +5267,19 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4998
5267
|
var _targetColIndex = endColIndex;
|
|
4999
5268
|
var _copyPossible2 = false;
|
|
5000
5269
|
// Iterate through rows within the element's height
|
|
5001
|
-
for (var
|
|
5002
|
-
if (isValidCell(_targetColIndex,
|
|
5003
|
-
copyStartRowIndex =
|
|
5270
|
+
for (var _y6 = startRowIndex; _y6 <= endRowIndex; _y6++) {
|
|
5271
|
+
if (isValidCell(_targetColIndex, _y6)) {
|
|
5272
|
+
copyStartRowIndex = _y6;
|
|
5004
5273
|
_copyPossible2 = true;
|
|
5005
5274
|
break;
|
|
5006
5275
|
}
|
|
5007
5276
|
}
|
|
5008
5277
|
if (!_copyPossible2) return undefined;
|
|
5009
5278
|
_copyPossible2 = false;
|
|
5010
|
-
for (var
|
|
5011
|
-
if (isValidCell(
|
|
5279
|
+
for (var _x8 = endColIndex; _x8 <= endColIndex + elementCells.colCount; _x8++) {
|
|
5280
|
+
if (isValidCell(_x8, copyStartRowIndex) && (copyStartRowIndex == 0 || !isValidCell(_x8, copyStartRowIndex - 1))) {
|
|
5012
5281
|
//check also for overhang
|
|
5013
|
-
copyEndColIndex =
|
|
5282
|
+
copyEndColIndex = _x8;
|
|
5014
5283
|
_copyPossible2 = true;
|
|
5015
5284
|
} else {
|
|
5016
5285
|
break; //when you find one situation where it is not valid skip outside.
|
|
@@ -5050,16 +5319,16 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5050
5319
|
} else {
|
|
5051
5320
|
var distToOriginX = 0;
|
|
5052
5321
|
for (var i = 0; i < cellsStartColIndex; i++) {
|
|
5053
|
-
var _plannedElement$size$3,
|
|
5054
|
-
distToOriginX += (_plannedElement$size$3 = (
|
|
5322
|
+
var _plannedElement$size$3, _plannedElement4;
|
|
5323
|
+
distToOriginX += (_plannedElement$size$3 = (_plannedElement4 = curGrid[i][0].plannedElement) === null || _plannedElement4 === void 0 ? void 0 : _plannedElement4.size.width) !== null && _plannedElement$size$3 !== void 0 ? _plannedElement$size$3 : 0;
|
|
5055
5324
|
}
|
|
5056
5325
|
if (cellsStartColIndex < 0) {
|
|
5057
5326
|
distToOriginX = -element.getWidth();
|
|
5058
5327
|
}
|
|
5059
5328
|
var distToOriginY = 0;
|
|
5060
5329
|
for (var i = 0; i < cellsStartRowIndex; i++) {
|
|
5061
|
-
var _plannedElement$size$4,
|
|
5062
|
-
distToOriginY += (_plannedElement$size$4 = (
|
|
5330
|
+
var _plannedElement$size$4, _plannedElement5;
|
|
5331
|
+
distToOriginY += (_plannedElement$size$4 = (_plannedElement5 = curGrid[cellsStartColIndex][i].plannedElement) === null || _plannedElement5 === void 0 ? void 0 : _plannedElement5.size.width) !== null && _plannedElement$size$4 !== void 0 ? _plannedElement$size$4 : 0;
|
|
5063
5332
|
}
|
|
5064
5333
|
elementLocation.startIndexWorldPos = new index.Vector2(distToOriginX, distToOriginY);
|
|
5065
5334
|
}
|
|
@@ -5106,7 +5375,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5106
5375
|
var _ele2, _ele3;
|
|
5107
5376
|
var movables = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
|
5108
5377
|
var selectedElementId = arguments.length > 1 ? arguments[1] : undefined;
|
|
5109
|
-
if (!movables) return this.generalPlanningState;
|
|
5378
|
+
if (!movables || !selectedElementId) return this.generalPlanningState;
|
|
5110
5379
|
// fill to equal size
|
|
5111
5380
|
var matrix = this.generalPlanningState.grids[0].matrix;
|
|
5112
5381
|
var matrixWithMovables = [];
|
|
@@ -5153,6 +5422,9 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5153
5422
|
isSupport = !!matrix.find(function (x, idx) {
|
|
5154
5423
|
return idx >= ele.area.fromX && idx < ele.area.toX && matrix[idx].length > ele.area.toY;
|
|
5155
5424
|
}); // can't move if there is anything above these cells
|
|
5425
|
+
|
|
5426
|
+
// if it has left and right neighbour and is on the bottom
|
|
5427
|
+
if (ele.area.fromX == 0 && this.getNeighborElements(ele.elementId, 'LEFT').length > 0 && this.getNeighborElements(ele.elementId, 'RIGHT').length > 0) isSupport = true;
|
|
5156
5428
|
}
|
|
5157
5429
|
if (isSupport) return this.generalPlanningState;
|
|
5158
5430
|
for (var x = 0; x < maxWidth; x++) {
|
|
@@ -5173,7 +5445,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5173
5445
|
if (x >= from && x < to) return;
|
|
5174
5446
|
var row = matrixWithMovables[x];
|
|
5175
5447
|
var len = row.length;
|
|
5176
|
-
var _x = ele.fromX == 0 ? x : x - 1;
|
|
5448
|
+
var _x = ele.area.fromX == 0 ? x : x - 1;
|
|
5177
5449
|
row[len] = {
|
|
5178
5450
|
index: {
|
|
5179
5451
|
x: _x,
|
|
@@ -5186,7 +5458,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5186
5458
|
var len = matrixWithMovables.length;
|
|
5187
5459
|
if (((_ele2 = ele) === null || _ele2 === void 0 ? void 0 : _ele2.area.toX) != matrix.length) matrixWithMovables[len] = [{
|
|
5188
5460
|
index: {
|
|
5189
|
-
x: ele.fromX == 0 ? len : len - 1,
|
|
5461
|
+
x: ele.area.fromX == 0 ? len : len - 1,
|
|
5190
5462
|
y: 0
|
|
5191
5463
|
}
|
|
5192
5464
|
}];
|
|
@@ -5210,7 +5482,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5210
5482
|
//system 4 useacse
|
|
5211
5483
|
var totalColCount = matrix[0].length;
|
|
5212
5484
|
var colSizes = Array(totalColCount).fill(-1);
|
|
5213
|
-
var
|
|
5485
|
+
var _loop4 = function _loop4(i) {
|
|
5214
5486
|
var _matrix$find;
|
|
5215
5487
|
var cell = (_matrix$find = matrix.find(function (row) {
|
|
5216
5488
|
var _row$i$plannedElement, _row$i$plannedElement2;
|
|
@@ -5224,7 +5496,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
5224
5496
|
if (colSizes[i] === -1) return 1; // break
|
|
5225
5497
|
};
|
|
5226
5498
|
for (var i = 0; i < totalColCount; i++) {
|
|
5227
|
-
if (
|
|
5499
|
+
if (_loop4(i)) break;
|
|
5228
5500
|
}
|
|
5229
5501
|
if (colSizes.includes(-1)) LOG$1.error(new Error('Column sizes are not set'));
|
|
5230
5502
|
return colSizes;
|
|
@@ -5338,7 +5610,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5338
5610
|
key: "initPlanner",
|
|
5339
5611
|
value: function () {
|
|
5340
5612
|
var _initPlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(setPlanData) {
|
|
5341
|
-
var planData, jsonElements, i, jsonElement, elementID, plannerElement, data, highesElemId, _jsonElement, params;
|
|
5613
|
+
var planData, jsonElements, i, jsonElement, elementID, plannerElement, constructionRules, _constructionRules$co, _constructionRules$co2, data, highesElemId, _jsonElement, params;
|
|
5342
5614
|
return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
|
|
5343
5615
|
while (1) switch (_context.prev = _context.next) {
|
|
5344
5616
|
case 0:
|
|
@@ -5368,7 +5640,20 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5368
5640
|
if (this.nextElementId < elementID + 1) this.nextElementId = elementID + 1;
|
|
5369
5641
|
this.set.setElementId(jsonElement.basketID, plannerElement.ElementId);
|
|
5370
5642
|
if (!this.constructionRulesHandler.getConstructionRulesLoaded()) {
|
|
5371
|
-
this.
|
|
5643
|
+
constructionRules = this.set.getConstructionRuleOfElementId(plannerElement.ElementId);
|
|
5644
|
+
if (constructionRules) {
|
|
5645
|
+
this.boxPlannerGrid.GridSetupParams = {
|
|
5646
|
+
fixCellRasterHeight: 19.2,
|
|
5647
|
+
fixCellRasterWidth: 19.2,
|
|
5648
|
+
forceFixCellRasterSize: (_constructionRules$co = constructionRules.constructionRules.forceFixCellRasterSize) !== null && _constructionRules$co !== void 0 ? _constructionRules$co : true,
|
|
5649
|
+
forceSingleCellPerElement: (_constructionRules$co2 = constructionRules.constructionRules.forceSingleCellPerElement) !== null && _constructionRules$co2 !== void 0 ? _constructionRules$co2 : true,
|
|
5650
|
+
hasMaxGridRasterHeight: constructionRules.constructionRules.hasMaxGridRasterHeight,
|
|
5651
|
+
maxGridRasterHeight: constructionRules.constructionRules.maxGridRasterHeight,
|
|
5652
|
+
hasMaxGridRasterWidth: constructionRules.constructionRules.hasMaxGridRasterWidth,
|
|
5653
|
+
maxGridRasterWidth: constructionRules.constructionRules.maxGridRasterWidth
|
|
5654
|
+
};
|
|
5655
|
+
}
|
|
5656
|
+
this.constructionRulesHandler.setConstructionRules(constructionRules);
|
|
5372
5657
|
}
|
|
5373
5658
|
data = this.set.getPlannerData(plannerElement.ElementId);
|
|
5374
5659
|
if (data) plannerElement.updatePlannerData(data);
|
|
@@ -5496,7 +5781,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5496
5781
|
key: "addPlannerElement",
|
|
5497
5782
|
value: (function () {
|
|
5498
5783
|
var _addPlannerElement = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2(basketID, params) {
|
|
5499
|
-
var plannerElement, data, constructionRules, _constructionRules$
|
|
5784
|
+
var plannerElement, data, constructionRules, _constructionRules$co3, _constructionRules$co4;
|
|
5500
5785
|
return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
|
|
5501
5786
|
while (1) switch (_context2.prev = _context2.next) {
|
|
5502
5787
|
case 0:
|
|
@@ -5520,8 +5805,8 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5520
5805
|
this.boxPlannerGrid.GridSetupParams = {
|
|
5521
5806
|
fixCellRasterHeight: 19.2,
|
|
5522
5807
|
fixCellRasterWidth: 19.2,
|
|
5523
|
-
forceFixCellRasterSize: (_constructionRules$
|
|
5524
|
-
forceSingleCellPerElement: (_constructionRules$
|
|
5808
|
+
forceFixCellRasterSize: (_constructionRules$co3 = constructionRules.constructionRules.forceFixCellRasterSize) !== null && _constructionRules$co3 !== void 0 ? _constructionRules$co3 : true,
|
|
5809
|
+
forceSingleCellPerElement: (_constructionRules$co4 = constructionRules.constructionRules.forceSingleCellPerElement) !== null && _constructionRules$co4 !== void 0 ? _constructionRules$co4 : true,
|
|
5525
5810
|
hasMaxGridRasterHeight: constructionRules.constructionRules.hasMaxGridRasterHeight,
|
|
5526
5811
|
maxGridRasterHeight: constructionRules.constructionRules.maxGridRasterHeight,
|
|
5527
5812
|
hasMaxGridRasterWidth: constructionRules.constructionRules.hasMaxGridRasterWidth,
|
|
@@ -5599,11 +5884,10 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5599
5884
|
value: (function () {
|
|
5600
5885
|
var _copyPlannerElement = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee5(articleCopyRelation, copyInfo) {
|
|
5601
5886
|
var _this = this;
|
|
5602
|
-
var
|
|
5887
|
+
var plannerElementsToLoadSVG, that, i, cellPos, allDPs, j;
|
|
5603
5888
|
return _regeneratorRuntime__default["default"].wrap(function _callee5$(_context5) {
|
|
5604
5889
|
while (1) switch (_context5.prev = _context5.next) {
|
|
5605
5890
|
case 0:
|
|
5606
|
-
gridIsPrepared = false;
|
|
5607
5891
|
if (copyInfo) {
|
|
5608
5892
|
_context5.next = 3;
|
|
5609
5893
|
break;
|
|
@@ -5613,25 +5897,22 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5613
5897
|
if (copyInfo.copyType == 'STD') copyInfo.targetElements = [];
|
|
5614
5898
|
plannerElementsToLoadSVG = [];
|
|
5615
5899
|
that = this;
|
|
5616
|
-
articleCopyRelation.forEach(function (
|
|
5900
|
+
articleCopyRelation.forEach(function (val) {
|
|
5617
5901
|
var _copyInfo$targetEleme;
|
|
5618
|
-
if (
|
|
5619
|
-
if (
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
_this.boxPlannerGrid.prepareGridForColCopy(elementToCopyId, copyInfo.copyIndex);
|
|
5623
|
-
}
|
|
5902
|
+
if (copyInfo.copyIndex.z == -1) {
|
|
5903
|
+
if (!_this.boxPlannerGrid.getPlannerHasActiveBackside()) _this.boxPlannerGrid.prepareGridForBackSideCopy();
|
|
5904
|
+
} else {
|
|
5905
|
+
_this.boxPlannerGrid.prepareGridForColCopy(val.key, copyInfo.copyIndex);
|
|
5624
5906
|
}
|
|
5625
|
-
gridIsPrepared = true;
|
|
5626
5907
|
|
|
5627
5908
|
//Init Planner Element
|
|
5628
|
-
var plannerElement = new index.PlannerElementData(_this.set.getSetId(),
|
|
5909
|
+
var plannerElement = new index.PlannerElementData(_this.set.getSetId(), val.value, _this.nextElementId, DivaBoxPlanner.plannerType);
|
|
5629
5910
|
_this.nextElementId++;
|
|
5630
|
-
_this.set.setElementId(
|
|
5911
|
+
_this.set.setElementId(val.value, plannerElement.ElementId);
|
|
5631
5912
|
var data = _this.set.getPlannerData(plannerElement.ElementId);
|
|
5632
5913
|
plannerElement.updatePlannerData(data);
|
|
5633
|
-
_this.boxPlannerGrid.addElementAsCopy(
|
|
5634
|
-
_this.constructionRulesHandler.onElementCopy(
|
|
5914
|
+
_this.boxPlannerGrid.addElementAsCopy(val.key, plannerElement, copyInfo.copyIndex);
|
|
5915
|
+
_this.constructionRulesHandler.onElementCopy(val.key, plannerElement.getElementId());
|
|
5635
5916
|
plannerElementsToLoadSVG.push(plannerElement);
|
|
5636
5917
|
if (copyInfo.copyType == 'STD') (_copyInfo$targetEleme = copyInfo.targetElements) === null || _copyInfo$targetEleme === void 0 || _copyInfo$targetEleme.push(plannerElement.getElementId());
|
|
5637
5918
|
});
|
|
@@ -5762,7 +6043,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5762
6043
|
}
|
|
5763
6044
|
}
|
|
5764
6045
|
//remove duplicate
|
|
5765
|
-
return
|
|
6046
|
+
return allElementsToCopy;
|
|
5766
6047
|
}
|
|
5767
6048
|
|
|
5768
6049
|
/**
|
|
@@ -5916,42 +6197,58 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5916
6197
|
value: (function () {
|
|
5917
6198
|
var _updatePlanner = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee7(changedOPT, targetElements) {
|
|
5918
6199
|
var _this2 = this;
|
|
5919
|
-
var message, cellPos, elemToCheck, copyIndex, allElementsToCopy, _allElementsToCopy, allElementsInBackGrid, _allElementsInBackGrid, _message;
|
|
6200
|
+
var failed, message, cellPos, elemToCheck, copyIndex, allElementsToCopy, _allElementsToCopy, allElementsInBackGrid, _allElementsInBackGrid, _message;
|
|
5920
6201
|
return _regeneratorRuntime__default["default"].wrap(function _callee7$(_context7) {
|
|
5921
6202
|
while (1) switch (_context7.prev = _context7.next) {
|
|
5922
6203
|
case 0:
|
|
5923
6204
|
LOG.debug('BoxPlanner - configurationHasChanged ' + changedOPT);
|
|
6205
|
+
failed = false;
|
|
5924
6206
|
targetElements === null || targetElements === void 0 || targetElements.forEach(function (e) {
|
|
5925
6207
|
var _this2$set$getArticle;
|
|
5926
|
-
|
|
6208
|
+
failed = _this2.boxPlannerGrid.updateGridElementDimensions(e, (_this2$set$getArticle = _this2.set.getArticleByElementId(e)) === null || _this2$set$getArticle === void 0 ? void 0 : _this2$set$getArticle.plannerData);
|
|
6209
|
+
if (failed) return;
|
|
6210
|
+
});
|
|
6211
|
+
if (!failed) {
|
|
6212
|
+
_context7.next = 5;
|
|
6213
|
+
break;
|
|
6214
|
+
}
|
|
6215
|
+
return _context7.abrupt("return", {
|
|
6216
|
+
doDeleteBackGrid: false,
|
|
6217
|
+
elemIdsToDelete: [],
|
|
6218
|
+
viewMessageCodex: "resizeerror",
|
|
6219
|
+
failed: true
|
|
5927
6220
|
});
|
|
6221
|
+
case 5:
|
|
6222
|
+
this.boxPlannerGrid.updateWorldPosOfElements();
|
|
5928
6223
|
if (!(changedOPT && targetElements && targetElements.length > 0 && changedOPT['OPTELEMENT'] && (changedOPT['OPTELEMENT'] == 'OPVECK_I' || changedOPT['OPTELEMENT'] == 'OPVECK_A'))) {
|
|
5929
|
-
_context7.next =
|
|
6224
|
+
_context7.next = 23;
|
|
5930
6225
|
break;
|
|
5931
6226
|
}
|
|
5932
6227
|
if (!(targetElements.length > 1)) {
|
|
5933
|
-
_context7.next =
|
|
6228
|
+
_context7.next = 14;
|
|
5934
6229
|
break;
|
|
5935
6230
|
}
|
|
5936
|
-
_context7.next =
|
|
6231
|
+
_context7.next = 10;
|
|
5937
6232
|
return this.constructionRulesHandler.updateOptionLogicBoxPlanner(this.boxPlannerGrid, changedOPT, targetElements, true);
|
|
5938
|
-
case
|
|
6233
|
+
case 10:
|
|
5939
6234
|
message = _context7.sent;
|
|
5940
6235
|
if (!message) {
|
|
5941
|
-
_context7.next =
|
|
6236
|
+
_context7.next = 13;
|
|
5942
6237
|
break;
|
|
5943
6238
|
}
|
|
5944
6239
|
return _context7.abrupt("return", {
|
|
5945
6240
|
doDeleteBackGrid: false,
|
|
5946
6241
|
elemIdsToDelete: [],
|
|
5947
|
-
viewMessageCodex: message
|
|
6242
|
+
viewMessageCodex: message,
|
|
6243
|
+
failed: false
|
|
5948
6244
|
});
|
|
5949
|
-
case
|
|
6245
|
+
case 13:
|
|
5950
6246
|
return _context7.abrupt("return", {
|
|
5951
6247
|
doDeleteBackGrid: false,
|
|
5952
|
-
elemIdsToDelete: []
|
|
6248
|
+
elemIdsToDelete: [],
|
|
6249
|
+
failed: false
|
|
5953
6250
|
});
|
|
5954
|
-
case
|
|
6251
|
+
case 14:
|
|
5955
6252
|
//If the most bottom element has no neighbor right or left - copy element
|
|
5956
6253
|
cellPos = this.boxPlannerGrid.getCellsInGridByElementId(targetElements[0]);
|
|
5957
6254
|
elemToCheck = targetElements[0];
|
|
@@ -5959,7 +6256,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5959
6256
|
elemToCheck = this.boxPlannerGrid.getPlannerElementAtGridPos(cellPos.startColIndex, 0, false).getElementId();
|
|
5960
6257
|
}
|
|
5961
6258
|
if (!(!this.boxPlannerGrid.getElementHasLeftElement(elemToCheck) || !this.boxPlannerGrid.getElementHasRightElement(elemToCheck))) {
|
|
5962
|
-
_context7.next =
|
|
6259
|
+
_context7.next = 23;
|
|
5963
6260
|
break;
|
|
5964
6261
|
}
|
|
5965
6262
|
//Someone has changed Eck innen or aussen. If the current eselected Element has no neighbor left or right copy neighbor
|
|
@@ -5981,6 +6278,7 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5981
6278
|
copyType: 'BoxPlanner_COL'
|
|
5982
6279
|
});
|
|
5983
6280
|
return _context7.abrupt("return", {
|
|
6281
|
+
failed: false,
|
|
5984
6282
|
doDeleteBackGrid: false,
|
|
5985
6283
|
elemIdsToDelete: [],
|
|
5986
6284
|
elementIdToCopy: allElementsToCopy,
|
|
@@ -5989,17 +6287,17 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
5989
6287
|
changedOPT: changedOPT,
|
|
5990
6288
|
targetElements: targetElements
|
|
5991
6289
|
});
|
|
5992
|
-
case
|
|
6290
|
+
case 23:
|
|
5993
6291
|
if (!(changedOPT && changedOPT['OPTDMOD'])) {
|
|
5994
|
-
_context7.next =
|
|
6292
|
+
_context7.next = 38;
|
|
5995
6293
|
break;
|
|
5996
6294
|
}
|
|
5997
6295
|
_context7.t0 = changedOPT['OPTDMOD'];
|
|
5998
|
-
_context7.next = _context7.t0 === 'OPVD_EIN' ?
|
|
6296
|
+
_context7.next = _context7.t0 === 'OPVD_EIN' ? 27 : _context7.t0 === 'OPVD_AUS' ? 31 : 36;
|
|
5999
6297
|
break;
|
|
6000
|
-
case
|
|
6298
|
+
case 27:
|
|
6001
6299
|
if (this.boxPlannerGrid.getPlannerHasActiveBackside()) {
|
|
6002
|
-
_context7.next =
|
|
6300
|
+
_context7.next = 30;
|
|
6003
6301
|
break;
|
|
6004
6302
|
}
|
|
6005
6303
|
_allElementsToCopy = this.getPlannerElementsInfluencedByCopy(-1, {
|
|
@@ -6011,25 +6309,27 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
6011
6309
|
copyType: 'BoxPlanner_backside'
|
|
6012
6310
|
});
|
|
6013
6311
|
return _context7.abrupt("return", {
|
|
6312
|
+
failed: false,
|
|
6014
6313
|
doDeleteBackGrid: false,
|
|
6015
6314
|
elemIdsToDelete: [],
|
|
6016
6315
|
elementIdToCopy: _allElementsToCopy,
|
|
6017
6316
|
copyType: 'BoxPlanner_backside',
|
|
6018
6317
|
changedOPT: changedOPT
|
|
6019
6318
|
});
|
|
6020
|
-
case
|
|
6021
|
-
return _context7.abrupt("break",
|
|
6022
|
-
case
|
|
6319
|
+
case 30:
|
|
6320
|
+
return _context7.abrupt("break", 36);
|
|
6321
|
+
case 31:
|
|
6023
6322
|
if (!this.boxPlannerGrid.getPlannerHasActiveBackside()) {
|
|
6024
|
-
_context7.next =
|
|
6323
|
+
_context7.next = 35;
|
|
6025
6324
|
break;
|
|
6026
6325
|
}
|
|
6027
6326
|
allElementsInBackGrid = this.boxPlannerGrid.getAllElementsInBackGrid();
|
|
6028
6327
|
if (!(allElementsInBackGrid.length > 0)) {
|
|
6029
|
-
_context7.next =
|
|
6328
|
+
_context7.next = 35;
|
|
6030
6329
|
break;
|
|
6031
6330
|
}
|
|
6032
6331
|
return _context7.abrupt("return", {
|
|
6332
|
+
failed: false,
|
|
6033
6333
|
doDeleteBackGrid: true,
|
|
6034
6334
|
elemIdsToDelete: allElementsInBackGrid.map(function (element) {
|
|
6035
6335
|
return element.ElementId;
|
|
@@ -6037,23 +6337,24 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
6037
6337
|
deletionType: 'BoxPlanner_backside',
|
|
6038
6338
|
changedOPT: changedOPT
|
|
6039
6339
|
});
|
|
6040
|
-
case
|
|
6041
|
-
return _context7.abrupt("break",
|
|
6042
|
-
case
|
|
6043
|
-
_context7.next =
|
|
6340
|
+
case 35:
|
|
6341
|
+
return _context7.abrupt("break", 36);
|
|
6342
|
+
case 36:
|
|
6343
|
+
_context7.next = 52;
|
|
6044
6344
|
break;
|
|
6045
|
-
case
|
|
6345
|
+
case 38:
|
|
6046
6346
|
if (!(changedOPT && changedOPT['OPTFARBE_RAHMEN'] && changedOPT['OPTFARBE_RAHMEN'] == 'OPVSCHWARZ_MATT' && this.boxPlannerGrid.getPlannerHasActiveBackside())) {
|
|
6047
|
-
_context7.next =
|
|
6347
|
+
_context7.next = 44;
|
|
6048
6348
|
break;
|
|
6049
6349
|
}
|
|
6050
6350
|
//If the double modul is active but the color is changed to black - disable double modul
|
|
6051
6351
|
_allElementsInBackGrid = this.boxPlannerGrid.getAllElementsInBackGrid();
|
|
6052
6352
|
if (!(_allElementsInBackGrid.length > 0)) {
|
|
6053
|
-
_context7.next =
|
|
6353
|
+
_context7.next = 42;
|
|
6054
6354
|
break;
|
|
6055
6355
|
}
|
|
6056
6356
|
return _context7.abrupt("return", {
|
|
6357
|
+
failed: false,
|
|
6057
6358
|
doDeleteBackGrid: true,
|
|
6058
6359
|
elemIdsToDelete: _allElementsInBackGrid.map(function (element) {
|
|
6059
6360
|
return element.ElementId;
|
|
@@ -6063,34 +6364,37 @@ var DivaBoxPlanner = /*#__PURE__*/function () {
|
|
|
6063
6364
|
targetElements: targetElements,
|
|
6064
6365
|
viewMessageCodex: 'BOXPLAN_BLACKFRAME_INCOMPATIBLE_ELEMENT_WARNING'
|
|
6065
6366
|
});
|
|
6066
|
-
case
|
|
6067
|
-
_context7.next =
|
|
6367
|
+
case 42:
|
|
6368
|
+
_context7.next = 52;
|
|
6068
6369
|
break;
|
|
6069
|
-
case
|
|
6070
|
-
_context7.next =
|
|
6370
|
+
case 44:
|
|
6371
|
+
_context7.next = 46;
|
|
6071
6372
|
return this.constructionRulesHandler.updateOptionLogicBoxPlanner(this.boxPlannerGrid, changedOPT, targetElements);
|
|
6072
|
-
case
|
|
6373
|
+
case 46:
|
|
6073
6374
|
_message = _context7.sent;
|
|
6074
6375
|
if (!_message) {
|
|
6075
|
-
_context7.next =
|
|
6376
|
+
_context7.next = 51;
|
|
6076
6377
|
break;
|
|
6077
6378
|
}
|
|
6078
6379
|
return _context7.abrupt("return", {
|
|
6079
6380
|
doDeleteBackGrid: false,
|
|
6080
6381
|
elemIdsToDelete: [],
|
|
6081
|
-
viewMessageCodex: _message
|
|
6382
|
+
viewMessageCodex: _message,
|
|
6383
|
+
failed: false
|
|
6082
6384
|
});
|
|
6083
|
-
case
|
|
6385
|
+
case 51:
|
|
6084
6386
|
return _context7.abrupt("return", {
|
|
6085
6387
|
doDeleteBackGrid: false,
|
|
6086
|
-
elemIdsToDelete: []
|
|
6388
|
+
elemIdsToDelete: [],
|
|
6389
|
+
failed: false
|
|
6087
6390
|
});
|
|
6088
|
-
case
|
|
6391
|
+
case 52:
|
|
6089
6392
|
return _context7.abrupt("return", {
|
|
6090
6393
|
doDeleteBackGrid: false,
|
|
6091
|
-
elemIdsToDelete: []
|
|
6394
|
+
elemIdsToDelete: [],
|
|
6395
|
+
failed: false
|
|
6092
6396
|
});
|
|
6093
|
-
case
|
|
6397
|
+
case 53:
|
|
6094
6398
|
case "end":
|
|
6095
6399
|
return _context7.stop();
|
|
6096
6400
|
}
|