@crystaldesign/web-planner-logic 26.3.0-beta.8 → 26.3.0-rc.0
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-79175554.js → DivaBoxPlanner-185e3d91.js} +32 -57
- package/build/cjs/{DivaStandardPlanner-dd42a0a9.js → DivaStandardPlanner-e3bb84bd.js} +28 -6
- package/build/cjs/{DoorPlanner-90472b69.js → DoorPlanner-eabb345c.js} +1 -1
- package/build/cjs/{Host3DSignalR-867a94ef.js → Host3DSignalR-572a3770.js} +1 -1
- package/build/cjs/{LiviqueWWSHandler-316e06ff.js → LiviqueWWSHandler-f12ccd19.js} +1 -1
- package/build/cjs/{PfisterWWSHandler-93e12209.js → PfisterWWSHandler-06c52e7b.js} +1 -1
- package/build/cjs/{PlannerHandler2D-6c5cc33b.js → PlannerHandler2D-640d5871.js} +154 -25
- package/build/cjs/{SeriousBasketHandler-bfa89b28.js → SeriousBasketHandler-93c02d45.js} +1 -1
- package/build/cjs/{ShelfPlanner-bdfb41c4.js → ShelfPlanner-a7f6daa9.js} +1 -1
- package/build/cjs/{StandardWWSHandler-cb2098fc.js → StandardWWSHandler-307bad5a.js} +1 -1
- package/build/cjs/{index-d0f2d17b.js → index-f7a97168.js} +4610 -4182
- package/build/cjs/index.js +2 -1
- package/build/esm/{DivaBoxPlanner-91f62b7e.js → DivaBoxPlanner-f6fb057e.js} +32 -57
- package/build/esm/{DivaStandardPlanner-ff91bdbd.js → DivaStandardPlanner-bcc97f9c.js} +28 -6
- package/build/esm/{DoorPlanner-2acf1760.js → DoorPlanner-f38ec7e4.js} +1 -1
- package/build/esm/{Host3DSignalR-f44b6c1c.js → Host3DSignalR-9da79a1b.js} +1 -1
- package/build/esm/{LiviqueWWSHandler-e3d42585.js → LiviqueWWSHandler-40f0b3ac.js} +1 -1
- package/build/esm/{PfisterWWSHandler-5458def6.js → PfisterWWSHandler-a647f961.js} +1 -1
- package/build/esm/{PlannerHandler2D-2dde982f.js → PlannerHandler2D-a21266d5.js} +153 -25
- package/build/esm/{SeriousBasketHandler-b9b7b268.js → SeriousBasketHandler-dc0cc1fa.js} +1 -1
- package/build/esm/{ShelfPlanner-2513adfd.js → ShelfPlanner-b11b96a2.js} +1 -1
- package/build/esm/{StandardWWSHandler-fe06015c.js → StandardWWSHandler-020fae77.js} +1 -1
- package/build/esm/{index-03958637.js → index-2eec9e88.js} +4610 -4182
- package/build/esm/index.js +1 -1
- package/build/types/web-planner-logic/src/index.d.ts +3 -2
- 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 +1 -0
- 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 +17 -2
- package/build/types/web-planner-logic/src/interface/API/Checkout.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/TemplateConfigType.d.ts +2 -2
- package/build/types/web-planner-logic/src/interface/API/TemplateConfigType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts +2 -0
- package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Configuration.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ConfiguratorStructureDataType.d.ts +1 -1
- package/build/types/web-planner-logic/src/interface/ConfiguratorStructureDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/CoreTypes/index.d.ts +2 -0
- 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 +1 -0
- package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts +1 -0
- package/build/types/web-planner-logic/src/interface/OptionTypes/CatalogOptionDataTypes.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/Planner/DockingPointDataType.d.ts +8 -0
- package/build/types/web-planner-logic/src/interface/Planner/DockingPointDataType.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts +2 -1
- package/build/types/web-planner-logic/src/interface/ViewTypes/index.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +1 -1
- package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts +1 -0
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTree.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/ConfigTree/SummaryHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts +3 -4
- package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaCatalogHandler.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +4 -1
- 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 -2
- 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.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +2 -6
- 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 +2 -6
- package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/PlannerHandler2D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts +22 -0
- package/build/types/web-planner-logic/src/logic/Planner/PlannerUtils/SVGUtils.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +0 -6
- package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts +3 -0
- package/build/types/web-planner-logic/src/logic/Set/DivaSet.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +6 -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/IDMCatalogArticle.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 +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/Options/ArticleOptionData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Options/ArticleOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts +1 -0
- package/build/types/web-planner-logic/src/model/Options/CatalogOptionData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/BoundingBox.d.ts +11 -3
- package/build/types/web-planner-logic/src/model/Planner/BoundingBox.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts +14 -3
- package/build/types/web-planner-logic/src/model/Planner/PlannerElementData.d.ts.map +1 -1
- package/build/types/web-planner-logic/src/model/Planner/PlannerInteractionData.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-f7a97168.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
11
11
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
12
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
12
|
+
var PlannerHandler2D = require('./PlannerHandler2D-640d5871.js');
|
|
13
13
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
14
14
|
require('axios');
|
|
15
15
|
require('@crystaldesign/basket-model');
|
|
@@ -2162,7 +2162,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2162
2162
|
//If rule == dir only correct this element if it is the target
|
|
2163
2163
|
|
|
2164
2164
|
if (rule.dir == 'TOP' && boxPlannerGrid.getElementHasBottomElement(allElementIds[i])) {
|
|
2165
|
-
var bottomElements = boxPlannerGrid.getBottomElements(allElementIds[i]);
|
|
2165
|
+
var bottomElements = boxPlannerGrid.getBottomElements(allElementIds[i], rule.onlyDirectNeighbor);
|
|
2166
2166
|
for (var bElemNr = 0; bElemNr < bottomElements.length; bElemNr++) {
|
|
2167
2167
|
if (targetElements.indexOf(bottomElements[bElemNr].getElementId()) >= 0) {
|
|
2168
2168
|
doCheckRule = true;
|
|
@@ -2170,7 +2170,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2170
2170
|
}
|
|
2171
2171
|
}
|
|
2172
2172
|
if (rule.dir == 'DOWN' && boxPlannerGrid.getElementHasTopElement(allElementIds[i])) {
|
|
2173
|
-
var topElements = boxPlannerGrid.getTopElements(allElementIds[i]);
|
|
2173
|
+
var topElements = boxPlannerGrid.getTopElements(allElementIds[i], rule.onlyDirectNeighbor);
|
|
2174
2174
|
for (var tElemNr = 0; tElemNr < topElements.length; tElemNr++) {
|
|
2175
2175
|
if (targetElements.indexOf(topElements[tElemNr].getElementId()) >= 0) {
|
|
2176
2176
|
doCheckRule = true;
|
|
@@ -2179,7 +2179,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2179
2179
|
}
|
|
2180
2180
|
if (rule.dir == 'LEFT_RIGHT') {
|
|
2181
2181
|
if (boxPlannerGrid.getElementHasLeftElement(allElementIds[i])) {
|
|
2182
|
-
var allLeftElements = boxPlannerGrid.getLeftElements(allElementIds[i]);
|
|
2182
|
+
var allLeftElements = boxPlannerGrid.getLeftElements(allElementIds[i], rule.onlyDirectNeighbor);
|
|
2183
2183
|
for (var lElemNr = 0; lElemNr < allLeftElements.length; lElemNr++) {
|
|
2184
2184
|
if (targetElements.indexOf(allLeftElements[lElemNr].getElementId()) >= 0) {
|
|
2185
2185
|
doCheckRule = true;
|
|
@@ -2187,7 +2187,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
2187
2187
|
}
|
|
2188
2188
|
}
|
|
2189
2189
|
if (boxPlannerGrid.getElementHasRightElement(allElementIds[i])) {
|
|
2190
|
-
var allRightElements = boxPlannerGrid.getRightElements(allElementIds[i]);
|
|
2190
|
+
var allRightElements = boxPlannerGrid.getRightElements(allElementIds[i], rule.onlyDirectNeighbor);
|
|
2191
2191
|
for (var rElemNr = 0; rElemNr < allRightElements.length; rElemNr++) {
|
|
2192
2192
|
if (targetElements.indexOf(allRightElements[rElemNr].getElementId()) >= 0) {
|
|
2193
2193
|
doCheckRule = true;
|
|
@@ -3145,7 +3145,7 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3145
3145
|
retailArticleRules: constructionRule.retailArticleRules
|
|
3146
3146
|
};
|
|
3147
3147
|
}
|
|
3148
|
-
} else if (constructionRule.range ==
|
|
3148
|
+
} else if (constructionRule.range == 'singular') {
|
|
3149
3149
|
var _allValid = false;
|
|
3150
3150
|
//Do check if all Elements satify the rules
|
|
3151
3151
|
for (var j = 0; j < allElements.length; j++) {
|
|
@@ -3182,35 +3182,6 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3182
3182
|
return this.constructionRulesLoaded;
|
|
3183
3183
|
}
|
|
3184
3184
|
|
|
3185
|
-
/* This is a hardcoded System4/Quadro functionality
|
|
3186
|
-
* we need a aussenblech on the side of every door side
|
|
3187
|
-
* but not if the neighbor door has the same shared side -> then we do not
|
|
3188
|
-
* need any
|
|
3189
|
-
*/
|
|
3190
|
-
}, {
|
|
3191
|
-
key: "correctAussenblech",
|
|
3192
|
-
value: function correctAussenblech(boxPlannerGrid, optionHandler, curElementId) {
|
|
3193
|
-
if (boxPlannerGrid.getForceSingleCellPerElement()) {
|
|
3194
|
-
var right = boxPlannerGrid.getNeighborElements(curElementId, "RIGHT");
|
|
3195
|
-
var left = boxPlannerGrid.getNeighborElements(curElementId, "LEFT");
|
|
3196
|
-
var curopt = this.getOptionVal(curElementId, "OPTTUER", optionHandler);
|
|
3197
|
-
if (right.length > 0 && curopt) {
|
|
3198
|
-
var rightopt = this.getOptionVal(right[0].ElementId, "OPTTUER", optionHandler);
|
|
3199
|
-
if (rightopt && rightopt == 'OPVLINKS' && curopt == 'OPVRECHTS') {
|
|
3200
|
-
optionHandler.get(curElementId).set('OPTAUSSENBLECH_RECHTS', 'OPVOHNE');
|
|
3201
|
-
optionHandler.get(curElementId).set('OPTAUSSENBLECH_LINKS', 'OPVOHNE');
|
|
3202
|
-
}
|
|
3203
|
-
}
|
|
3204
|
-
if (left.length > 0 && curopt) {
|
|
3205
|
-
var leftopt = this.getOptionVal(left[0].ElementId, "OPTTUER", optionHandler);
|
|
3206
|
-
if (leftopt && leftopt == 'OPVRECHTS' && curopt == 'OPVLINKS') {
|
|
3207
|
-
optionHandler.get(curElementId).set('OPTAUSSENBLECH_LINKS', 'OPVOHNE');
|
|
3208
|
-
optionHandler.get(curElementId).set('OPTAUSSENBLECH_RECHTS', 'OPVOHNE');
|
|
3209
|
-
}
|
|
3210
|
-
}
|
|
3211
|
-
}
|
|
3212
|
-
}
|
|
3213
|
-
|
|
3214
3185
|
//Die gleiche Option kann sowohl nach rechts als auch nach oben gesetzt werden (Rahmen rechts oben). Wenn das der Fall ist, darf wenn es rechts keinen Nachbarn gibt nicht mit doShow überschrieben werden, wenn es vorher bei TOP versteckt wurde
|
|
3215
3186
|
//Deshalb darf es nicht angeschalten werden, wenn es in der gleichen Runde ausgeschalten wurde
|
|
3216
3187
|
/*
|
|
@@ -3359,13 +3330,13 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3359
3330
|
i = 0;
|
|
3360
3331
|
case 55:
|
|
3361
3332
|
if (!(i < boxPlannerGrid.getColumnCount())) {
|
|
3362
|
-
_context.next =
|
|
3333
|
+
_context.next = 68;
|
|
3363
3334
|
break;
|
|
3364
3335
|
}
|
|
3365
3336
|
j = 0;
|
|
3366
3337
|
case 57:
|
|
3367
3338
|
if (!(j < boxPlannerGrid.getRowCount(i, false))) {
|
|
3368
|
-
_context.next =
|
|
3339
|
+
_context.next = 65;
|
|
3369
3340
|
break;
|
|
3370
3341
|
}
|
|
3371
3342
|
_elementId2 = (_boxPlannerGrid$getPl4 = boxPlannerGrid.getPlannerElementAtGridPos(i, j, false)) === null || _boxPlannerGrid$getPl4 === void 0 ? void 0 : _boxPlannerGrid$getPl4.getElementId();
|
|
@@ -3373,27 +3344,26 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3373
3344
|
_context.next = 61;
|
|
3374
3345
|
break;
|
|
3375
3346
|
}
|
|
3376
|
-
return _context.abrupt("continue",
|
|
3347
|
+
return _context.abrupt("continue", 62);
|
|
3377
3348
|
case 61:
|
|
3378
3349
|
this.correctBack(boxPlannerGrid, optionHandler, _elementId2);
|
|
3379
|
-
|
|
3380
|
-
case 63:
|
|
3350
|
+
case 62:
|
|
3381
3351
|
j++;
|
|
3382
3352
|
_context.next = 57;
|
|
3383
3353
|
break;
|
|
3384
|
-
case
|
|
3354
|
+
case 65:
|
|
3385
3355
|
i++;
|
|
3386
3356
|
_context.next = 55;
|
|
3387
3357
|
break;
|
|
3388
|
-
case
|
|
3358
|
+
case 68:
|
|
3389
3359
|
doChangeRetailArticleNumbers = this.doChangeRetailArticleNumbers(boxPlannerGrid, optionHandler);
|
|
3390
|
-
_context.next =
|
|
3360
|
+
_context.next = 71;
|
|
3391
3361
|
return this.updateCfgValuesByPlanner(optionHandler, undefined, this.constructionRules.partlistRules.bundleRules, doChangeRetailArticleNumbers);
|
|
3392
|
-
case
|
|
3362
|
+
case 71:
|
|
3393
3363
|
LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting Option Values of all Articles: ' + (new Date().getTime() - startTime));
|
|
3394
3364
|
LOG$2.debug('BoxPlanner updateOptionLogic - Duration after setting updating configurator: ' + (new Date().getTime() - startTime));
|
|
3395
3365
|
return _context.abrupt("return", resultMessage);
|
|
3396
|
-
case
|
|
3366
|
+
case 74:
|
|
3397
3367
|
case "end":
|
|
3398
3368
|
return _context.stop();
|
|
3399
3369
|
}
|
|
@@ -3447,7 +3417,8 @@ var ConstructionRulesHandler = /*#__PURE__*/function () {
|
|
|
3447
3417
|
}, {
|
|
3448
3418
|
key: "getForceWholePlanningSameHeight",
|
|
3449
3419
|
value: function getForceWholePlanningSameHeight() {
|
|
3450
|
-
|
|
3420
|
+
var _this$constructionRul2;
|
|
3421
|
+
return !!((_this$constructionRul2 = this.constructionRules) !== null && _this$constructionRul2 !== void 0 && _this$constructionRul2.forceWholePlanningSameHeight);
|
|
3451
3422
|
}
|
|
3452
3423
|
}]);
|
|
3453
3424
|
}();
|
|
@@ -3897,7 +3868,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3897
3868
|
*/
|
|
3898
3869
|
}, {
|
|
3899
3870
|
key: "getTopElements",
|
|
3900
|
-
value: function getTopElements(elementId) {
|
|
3871
|
+
value: function getTopElements(elementId, onlyDirectNeighbor) {
|
|
3901
3872
|
var _curGrid$plannedEleme;
|
|
3902
3873
|
var result = this.getCellsInGridByElementId(elementId);
|
|
3903
3874
|
var curGrid = result.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
@@ -3909,6 +3880,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3909
3880
|
var element = topElement.plannedElement;
|
|
3910
3881
|
if (!element) break;
|
|
3911
3882
|
neighborPlannerElements.push(this.plannerElements.get(element.elementId));
|
|
3883
|
+
if (onlyDirectNeighbor) break;
|
|
3912
3884
|
topElement = curGrid[element.area.fromX][element.area.toY];
|
|
3913
3885
|
}
|
|
3914
3886
|
return neighborPlannerElements;
|
|
@@ -3968,7 +3940,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3968
3940
|
*/
|
|
3969
3941
|
}, {
|
|
3970
3942
|
key: "getBottomElements",
|
|
3971
|
-
value: function getBottomElements(elementId) {
|
|
3943
|
+
value: function getBottomElements(elementId, onlyDirectNeighbor) {
|
|
3972
3944
|
var _curGrid$plannedEleme2;
|
|
3973
3945
|
var result = this.getCellsInGridByElementId(elementId);
|
|
3974
3946
|
var curGrid = result.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
@@ -3981,6 +3953,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
3981
3953
|
var element = topElement.plannedElement;
|
|
3982
3954
|
if (!element) break;
|
|
3983
3955
|
neighborPlannerElements.push(this.plannerElements.get(element.elementId));
|
|
3956
|
+
if (onlyDirectNeighbor) break;
|
|
3984
3957
|
topElement = (_curGrid$element$area = curGrid[element.area.fromX]) === null || _curGrid$element$area === void 0 ? void 0 : _curGrid$element$area[element.area.fromY - 1];
|
|
3985
3958
|
}
|
|
3986
3959
|
return neighborPlannerElements;
|
|
@@ -4011,7 +3984,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4011
3984
|
*/
|
|
4012
3985
|
}, {
|
|
4013
3986
|
key: "getRightElements",
|
|
4014
|
-
value: function getRightElements(elementId) {
|
|
3987
|
+
value: function getRightElements(elementId, onlyDirectNeighbor) {
|
|
4015
3988
|
var result = this.getCellsInGridByElementId(elementId);
|
|
4016
3989
|
var curGrid = result.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
4017
3990
|
var rightElements = [];
|
|
@@ -4025,6 +3998,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4025
3998
|
if (cell && _elementId2 && rightElementIds.indexOf(_elementId2) == -1) {
|
|
4026
3999
|
rightElementIds.push(_elementId2);
|
|
4027
4000
|
rightElements.push(this.plannerElements.get(_elementId2));
|
|
4001
|
+
if (onlyDirectNeighbor) break;
|
|
4028
4002
|
}
|
|
4029
4003
|
}
|
|
4030
4004
|
return rightElements;
|
|
@@ -4054,7 +4028,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4054
4028
|
*/
|
|
4055
4029
|
}, {
|
|
4056
4030
|
key: "getLeftElements",
|
|
4057
|
-
value: function getLeftElements(elementId) {
|
|
4031
|
+
value: function getLeftElements(elementId, onlyDirectNeighbor) {
|
|
4058
4032
|
var result = this.getCellsInGridByElementId(elementId);
|
|
4059
4033
|
var curGrid = result.backside ? this.generalPlanningState.grids[1].matrix : this.generalPlanningState.grids[0].matrix;
|
|
4060
4034
|
var rightElements = [];
|
|
@@ -4068,6 +4042,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4068
4042
|
if (cell && _elementId3 && rightElementIds.indexOf(_elementId3) == -1) {
|
|
4069
4043
|
rightElementIds.push(_elementId3);
|
|
4070
4044
|
rightElements.push(this.plannerElements.get(_elementId3));
|
|
4045
|
+
if (onlyDirectNeighbor) break;
|
|
4071
4046
|
}
|
|
4072
4047
|
}
|
|
4073
4048
|
return rightElements;
|
|
@@ -4204,6 +4179,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4204
4179
|
var endHeight = 0;
|
|
4205
4180
|
for (var y = 0; y < currentRow.length;) {
|
|
4206
4181
|
var cell = currentRow[y];
|
|
4182
|
+
if (!cell || !cell.plannedElement) continue;
|
|
4207
4183
|
if (cell.index.y < res.startRowIndex) startHeight = Math.round((startHeight + cell.plannedElement.size.height) * 1000) / 1000;
|
|
4208
4184
|
if (cell.index.y < res.endRowIndex) endHeight = Math.round((endHeight + cell.plannedElement.size.height) * 1000) / 1000;
|
|
4209
4185
|
y = cell.plannedElement.area.toY;
|
|
@@ -4217,7 +4193,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4217
4193
|
for (var x = plannedElement.area.toX; x < curGrid.length;) {
|
|
4218
4194
|
var _neighbourRow$0$plann, _neighbourRow$0$plann2;
|
|
4219
4195
|
var neighbourRow = curGrid[x];
|
|
4220
|
-
for (var _y = 0; _y < neighbourRow.length;) {
|
|
4196
|
+
for (var _y = 0; _y < (neighbourRow === null || neighbourRow === void 0 ? void 0 : neighbourRow.length);) {
|
|
4221
4197
|
var _cell5$plannedElement, _cell5$plannedElement2;
|
|
4222
4198
|
var _cell5 = neighbourRow[_y];
|
|
4223
4199
|
if (neighbours.includes(_cell5)) continue;
|
|
@@ -4239,11 +4215,11 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4239
4215
|
case 'LEFT':
|
|
4240
4216
|
for (var _x2 = plannedElement.area.fromX - 1; _x2 >= 0;) {
|
|
4241
4217
|
var _neighbourRow = curGrid[_x2];
|
|
4242
|
-
for (var _y2 = 0; _y2 < _neighbourRow.length;) {
|
|
4218
|
+
for (var _y2 = 0; _y2 < (_neighbourRow === null || _neighbourRow === void 0 ? void 0 : _neighbourRow.length);) {
|
|
4243
4219
|
var _cell6$plannedElement, _cell6$plannedElement2;
|
|
4244
4220
|
var _cell6 = _neighbourRow[_y2];
|
|
4245
4221
|
if (neighbours.includes(_cell6)) continue;
|
|
4246
|
-
if (plannedElement.area.fromY == _y2 && this.gridSetupParams.forceSingleCellPerElement && plannedElement.area.
|
|
4222
|
+
if (plannedElement.area.fromY == _y2 && this.gridSetupParams.forceSingleCellPerElement && plannedElement.area.fromX - 1 == _x2) neighbours.push(_cell6);else if (clean && !this.gridSetupParams.forceSingleCellPerElement && neighbourSize == startHeight) neighbours.push(_cell6);else if (!clean && neighbourSize >= startHeight && neighbourSize <= endHeight) neighbours.push(_cell6);
|
|
4247
4223
|
neighbourSize = Math.round((neighbourSize + _cell6.plannedElement.size.height) * 1000) / 1000;
|
|
4248
4224
|
_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;
|
|
4249
4225
|
}
|
|
@@ -4864,13 +4840,12 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4864
4840
|
_cell.plannedElement.area.toY += diff.y;
|
|
4865
4841
|
}
|
|
4866
4842
|
}
|
|
4867
|
-
} else if (diff.x != 0 && diff.x > free) {
|
|
4843
|
+
} else if (diff.x != 0 && (diff.x > free || diff.x < 0)) {
|
|
4868
4844
|
// if there is enough free space on the right no need to move
|
|
4869
4845
|
for (var _x6 = cell.plannedElement.area.fromX; _x6 < grid.length; _x6++) {
|
|
4870
4846
|
for (var _y5 = cell.plannedElement.area.fromY; _y5 < cell.plannedElement.area.toY; _y5++) {
|
|
4871
4847
|
var _cell9 = grid[_x6][_y5];
|
|
4872
4848
|
if (!_cell9 || _cell9.plannedElement.elementId == elementId) continue; //already corrected
|
|
4873
|
-
|
|
4874
4849
|
_cell9.index.x += diff.x;
|
|
4875
4850
|
_cell9.plannedElement.area.fromX += diff.x;
|
|
4876
4851
|
_cell9.plannedElement.area.toX += diff.x;
|
|
@@ -4887,7 +4862,7 @@ var BoxPlannerGrid = /*#__PURE__*/function () {
|
|
|
4887
4862
|
var cell = plannedCells[idx];
|
|
4888
4863
|
var area = cell.plannedElement.area;
|
|
4889
4864
|
if (newGrid.find(function (x) {
|
|
4890
|
-
return x.find(function (y) {
|
|
4865
|
+
return x && x.find(function (y) {
|
|
4891
4866
|
var _y$plannedElement3, _cell$plannedElement9;
|
|
4892
4867
|
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);
|
|
4893
4868
|
});
|
|
@@ -5,9 +5,9 @@ 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-f7a97168.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
|
-
var PlannerHandler2D = require('./PlannerHandler2D-
|
|
10
|
+
var PlannerHandler2D = require('./PlannerHandler2D-640d5871.js');
|
|
11
11
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
12
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
13
13
|
require('@babel/runtime/helpers/toConsumableArray');
|
|
@@ -227,15 +227,29 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
227
227
|
var refDockingPoint = refElement.getDockingPointById(dockingPoint.OnDP.DpId);
|
|
228
228
|
if (refDockingPoint == undefined) return updateConfig;
|
|
229
229
|
var worldPosNewElement = new index.Vector3(0, 0, 0);
|
|
230
|
+
var worldPosNewElementIgnoreOLF = new index.Vector3(0, 0, 0);
|
|
231
|
+
|
|
232
|
+
// DP LocalWorldPos is OLF-corner-relative when HasOLFPolygon (from SVG). Convert to OLT-corner-relative for WorldPosCornerIgnoreOLF.
|
|
233
|
+
var refDPLocalOlt = refElement.HasOLFPolygon ? new index.Vector2(refDockingPoint.LocalWorldPos.x - refElement.getOltLeft(), refDockingPoint.LocalWorldPos.z - refElement.getOltTop()) : new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
234
|
+
var newDPLocalOlt = plannerElement.HasOLFPolygon ? new index.Vector2(dockingPoint.LocalWorldPos.x - plannerElement.getOltLeft(), dockingPoint.LocalWorldPos.z - plannerElement.getOltTop()) : new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z);
|
|
230
235
|
var rotatedLocalRefDP = new index.Vector2(refDockingPoint.LocalWorldPos.x, refDockingPoint.LocalWorldPos.z);
|
|
231
236
|
rotatedLocalRefDP = index.Vector2.rotateOrigin(rotatedLocalRefDP, refElement.RotDeg);
|
|
232
237
|
var angleToRot = refElement.RotDeg + refDockingPoint.RotDeg - dockingPoint.RotDeg;
|
|
233
238
|
plannerElement.RotDeg = angleToRot;
|
|
239
|
+
var refWorldPosCor = refElement.WorldPosCorner;
|
|
240
|
+
// For ref without OLF: use same corner for both alignments (no OLF/OLT split; WorldPosCornerIgnoreOLF getter also does this).
|
|
241
|
+
var refWorldPosCorIgnoreOLF = refElement.HasOLFPolygon ? refElement.WorldPosCornerIgnoreOLF : refWorldPosCor;
|
|
234
242
|
var rotatedLocalDP2D = index.Vector2.rotateOrigin(new index.Vector2(dockingPoint.LocalWorldPos.x, dockingPoint.LocalWorldPos.z), angleToRot);
|
|
235
|
-
worldPosNewElement.x =
|
|
236
|
-
worldPosNewElement.y =
|
|
237
|
-
worldPosNewElement.z =
|
|
243
|
+
worldPosNewElement.x = refWorldPosCor.x + rotatedLocalRefDP.x - rotatedLocalDP2D.x;
|
|
244
|
+
worldPosNewElement.y = refWorldPosCor.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
245
|
+
worldPosNewElement.z = refWorldPosCor.z + rotatedLocalRefDP.y - rotatedLocalDP2D.y;
|
|
246
|
+
var rotatedRefDPOlt = index.Vector2.rotateOrigin(refDPLocalOlt, refElement.RotDeg);
|
|
247
|
+
var rotatedNewDPOlt = index.Vector2.rotateOrigin(newDPLocalOlt, angleToRot);
|
|
248
|
+
worldPosNewElementIgnoreOLF.x = refWorldPosCorIgnoreOLF.x + rotatedRefDPOlt.x - rotatedNewDPOlt.x;
|
|
249
|
+
worldPosNewElementIgnoreOLF.z = refWorldPosCorIgnoreOLF.z + rotatedRefDPOlt.y - rotatedNewDPOlt.y;
|
|
250
|
+
worldPosNewElementIgnoreOLF.y = refWorldPosCorIgnoreOLF.y + refDockingPoint.LocalWorldPos.y - dockingPoint.LocalWorldPos.y;
|
|
238
251
|
plannerElement.WorldPosCorner = worldPosNewElement;
|
|
252
|
+
plannerElement.WorldPosCornerIgnoreOLF = worldPosNewElementIgnoreOLF;
|
|
239
253
|
updateConfig = this.set.onDockingChanged(plannerElement.ElementId, refElement.ElementId, 'DOCK', dockingPoint.Type);
|
|
240
254
|
var data = this.set.getPlannerData(plannerElement.ElementId);
|
|
241
255
|
plannerElement.updatePlannerData(data);
|
|
@@ -1804,16 +1818,24 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
|
|
|
1804
1818
|
var width = this.plannerBoundingBox.getWidth(catalog.PlannerMeasureDigits);
|
|
1805
1819
|
var depth = this.plannerBoundingBox.getDepth(catalog.PlannerMeasureDigits);
|
|
1806
1820
|
var height = this.plannerBoundingBox.getHeight(catalog.PlannerMeasureDigits);
|
|
1821
|
+
var widthIgnoreOLF = this.plannerBoundingBox.getWidth(catalog.PlannerMeasureDigits, true);
|
|
1822
|
+
var depthIgnoreOLF = this.plannerBoundingBox.getDepth(catalog.PlannerMeasureDigits, true);
|
|
1823
|
+
var heightIgnoreOLF = this.plannerBoundingBox.getHeight(catalog.PlannerMeasureDigits, true);
|
|
1824
|
+
var olfDefined = widthIgnoreOLF !== width || depthIgnoreOLF !== depth || heightIgnoreOLF !== height;
|
|
1807
1825
|
return {
|
|
1808
1826
|
width: width,
|
|
1809
1827
|
height: height,
|
|
1810
|
-
depth: depth
|
|
1828
|
+
depth: depth,
|
|
1829
|
+
widthIgnoreOLF: olfDefined ? widthIgnoreOLF : undefined,
|
|
1830
|
+
depthIgnoreOLF: olfDefined ? depthIgnoreOLF : undefined,
|
|
1831
|
+
heightIgnoreOLF: olfDefined ? heightIgnoreOLF : undefined
|
|
1811
1832
|
};
|
|
1812
1833
|
}
|
|
1813
1834
|
}, {
|
|
1814
1835
|
key: "updatePlannerBoundingBox",
|
|
1815
1836
|
value: function updatePlannerBoundingBox() {
|
|
1816
1837
|
this.plannerBoundingBox.calcPlannerBoundingBox(this.getAllPlannerElements());
|
|
1838
|
+
this.plannerBoundingBox.calcPlannerBoundingBoxIgnoreOLF(this.getAllPlannerElements());
|
|
1817
1839
|
}
|
|
1818
1840
|
}, {
|
|
1819
1841
|
key: "getCatalogData",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
require('./index-
|
|
6
|
+
require('./index-f7a97168.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -5,7 +5,7 @@ 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-f7a97168.js');
|
|
9
9
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
10
10
|
var signalr = require('@microsoft/signalr');
|
|
11
11
|
var io = require('socket.io-client');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
require('./index-
|
|
5
|
+
require('./index-f7a97168.js');
|
|
6
6
|
require('@babel/runtime/helpers/slicedToArray');
|
|
7
7
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
8
8
|
require('@babel/runtime/helpers/defineProperty');
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
|
-
var index = require('./index-
|
|
5
|
+
var index = require('./index-f7a97168.js');
|
|
6
6
|
var basketModel = require('@crystaldesign/basket-model');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
@@ -5,7 +5,8 @@ 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-f7a97168.js');
|
|
9
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
9
10
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
10
11
|
var fabric = require('fabric');
|
|
11
12
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
@@ -18,6 +19,7 @@ var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallChec
|
|
|
18
19
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
19
20
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
20
21
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
22
|
+
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
21
23
|
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
22
24
|
var DivaUtils__default = /*#__PURE__*/_interopDefaultLegacy(DivaUtils);
|
|
23
25
|
var serialize__default = /*#__PURE__*/_interopDefaultLegacy(serialize);
|
|
@@ -134,18 +136,122 @@ var SVGUtils = /*#__PURE__*/function () {
|
|
|
134
136
|
var yArr = points.map(function (c) {
|
|
135
137
|
return c.y;
|
|
136
138
|
});
|
|
137
|
-
var
|
|
138
|
-
var
|
|
139
|
-
var
|
|
140
|
-
var
|
|
141
|
-
var width =
|
|
142
|
-
var height =
|
|
139
|
+
var minX = Math.min.apply(Math, _toConsumableArray__default["default"](xArr));
|
|
140
|
+
var maxX = Math.max.apply(Math, _toConsumableArray__default["default"](xArr));
|
|
141
|
+
var minY = Math.min.apply(Math, _toConsumableArray__default["default"](yArr));
|
|
142
|
+
var maxY = Math.max.apply(Math, _toConsumableArray__default["default"](yArr));
|
|
143
|
+
var width = maxX - minX;
|
|
144
|
+
var height = maxY - minY;
|
|
143
145
|
return {
|
|
144
146
|
width: width,
|
|
145
|
-
height: height
|
|
147
|
+
height: height,
|
|
148
|
+
minX: minX,
|
|
149
|
+
minY: minY
|
|
146
150
|
};
|
|
147
151
|
}
|
|
148
152
|
|
|
153
|
+
/**
|
|
154
|
+
* Returns OLF geometry (minX, minY, width, height) from SVG - supports rect and polygon.
|
|
155
|
+
* Iterates through matches to find first rect/polygon (handles Illustrator group wrappers).
|
|
156
|
+
*/
|
|
157
|
+
}, {
|
|
158
|
+
key: "getOLFGeometryFromSvg",
|
|
159
|
+
value: function getOLFGeometryFromSvg(content) {
|
|
160
|
+
var parser = new DOMParser();
|
|
161
|
+
var xmlDocument = parser.parseFromString(content, 'application/xml');
|
|
162
|
+
var olfObjs = xmlDocument.evaluate("//*[starts-with(@id,'OLF')]", xmlDocument, null, 7, null);
|
|
163
|
+
for (var i = 0; i < olfObjs.snapshotLength; i++) {
|
|
164
|
+
var obj = olfObjs.snapshotItem(i);
|
|
165
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.nodeName) === 'rect') {
|
|
166
|
+
var _obj$getAttribute, _obj$getAttribute2, _obj$getAttribute3, _obj$getAttribute4;
|
|
167
|
+
var x = parseFloat((_obj$getAttribute = obj.getAttribute('x')) !== null && _obj$getAttribute !== void 0 ? _obj$getAttribute : '0');
|
|
168
|
+
var y = parseFloat((_obj$getAttribute2 = obj.getAttribute('y')) !== null && _obj$getAttribute2 !== void 0 ? _obj$getAttribute2 : '0');
|
|
169
|
+
var width = parseFloat((_obj$getAttribute3 = obj.getAttribute('width')) !== null && _obj$getAttribute3 !== void 0 ? _obj$getAttribute3 : '0');
|
|
170
|
+
var height = parseFloat((_obj$getAttribute4 = obj.getAttribute('height')) !== null && _obj$getAttribute4 !== void 0 ? _obj$getAttribute4 : '0');
|
|
171
|
+
return {
|
|
172
|
+
minX: x,
|
|
173
|
+
minY: y,
|
|
174
|
+
width: width,
|
|
175
|
+
height: height
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.nodeName) === 'polygon') {
|
|
179
|
+
var pts = obj.getAttribute('points');
|
|
180
|
+
if (pts) {
|
|
181
|
+
var points = pts.split(/\s+/).reduce(function (acc, p) {
|
|
182
|
+
var _p$split = p.split(','),
|
|
183
|
+
_p$split2 = _slicedToArray__default["default"](_p$split, 2),
|
|
184
|
+
x = _p$split2[0],
|
|
185
|
+
y = _p$split2[1];
|
|
186
|
+
if (x != null && y != null) acc.push(new index.Vector2(Number(x), Number(y)));
|
|
187
|
+
return acc;
|
|
188
|
+
}, []);
|
|
189
|
+
if (points.length) {
|
|
190
|
+
var bbox = this.getBoundingBoxOfPoints(points);
|
|
191
|
+
return {
|
|
192
|
+
minX: bbox.minX,
|
|
193
|
+
minY: bbox.minY,
|
|
194
|
+
width: bbox.width,
|
|
195
|
+
height: bbox.height
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return undefined;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
/**
|
|
205
|
+
* Returns OLT geometry (x, y, width, height) from SVG attributes - untransformed coords.
|
|
206
|
+
* Iterates through matches to find first rect/polygon (handles Illustrator group wrappers).
|
|
207
|
+
*/
|
|
208
|
+
}, {
|
|
209
|
+
key: "getOLTGeometryFromSvg",
|
|
210
|
+
value: function getOLTGeometryFromSvg(content) {
|
|
211
|
+
var parser = new DOMParser();
|
|
212
|
+
var xmlDocument = parser.parseFromString(content, 'application/xml');
|
|
213
|
+
var oltObjs = xmlDocument.evaluate("//*[starts-with(@id,'OLT')]", xmlDocument, null, 7, null);
|
|
214
|
+
for (var i = 0; i < oltObjs.snapshotLength; i++) {
|
|
215
|
+
var obj = oltObjs.snapshotItem(i);
|
|
216
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.nodeName) === 'rect') {
|
|
217
|
+
var _obj$getAttribute5, _obj$getAttribute6, _obj$getAttribute7, _obj$getAttribute8;
|
|
218
|
+
var x = parseFloat((_obj$getAttribute5 = obj.getAttribute('x')) !== null && _obj$getAttribute5 !== void 0 ? _obj$getAttribute5 : '0');
|
|
219
|
+
var y = parseFloat((_obj$getAttribute6 = obj.getAttribute('y')) !== null && _obj$getAttribute6 !== void 0 ? _obj$getAttribute6 : '0');
|
|
220
|
+
var width = parseFloat((_obj$getAttribute7 = obj.getAttribute('width')) !== null && _obj$getAttribute7 !== void 0 ? _obj$getAttribute7 : '0');
|
|
221
|
+
var height = parseFloat((_obj$getAttribute8 = obj.getAttribute('height')) !== null && _obj$getAttribute8 !== void 0 ? _obj$getAttribute8 : '0');
|
|
222
|
+
return {
|
|
223
|
+
x: x,
|
|
224
|
+
y: y,
|
|
225
|
+
width: width,
|
|
226
|
+
height: height
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
if ((obj === null || obj === void 0 ? void 0 : obj.nodeName) === 'polygon') {
|
|
230
|
+
var pts = obj.getAttribute('points');
|
|
231
|
+
if (pts) {
|
|
232
|
+
var points = pts.split(/\s+/).reduce(function (acc, p) {
|
|
233
|
+
var _p$split3 = p.split(','),
|
|
234
|
+
_p$split4 = _slicedToArray__default["default"](_p$split3, 2),
|
|
235
|
+
x = _p$split4[0],
|
|
236
|
+
y = _p$split4[1];
|
|
237
|
+
if (x != null && y != null) acc.push(new index.Vector2(Number(x), Number(y)));
|
|
238
|
+
return acc;
|
|
239
|
+
}, []);
|
|
240
|
+
if (points.length) {
|
|
241
|
+
var bbox = this.getBoundingBoxOfPoints(points);
|
|
242
|
+
return {
|
|
243
|
+
x: bbox.minX,
|
|
244
|
+
y: bbox.minY,
|
|
245
|
+
width: bbox.width,
|
|
246
|
+
height: bbox.height
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
return undefined;
|
|
253
|
+
}
|
|
254
|
+
|
|
149
255
|
/**
|
|
150
256
|
* This function looks if the svg has a Mask HTML element. If so it removes all masks from SVG
|
|
151
257
|
* @param content
|
|
@@ -2069,15 +2175,24 @@ var PlannerHandler2D = /*#__PURE__*/function () {
|
|
|
2069
2175
|
}
|
|
2070
2176
|
plannerElement.OLTPolygon = oltPoints;
|
|
2071
2177
|
var olf = this.svgUtils.getPointOfPoligonById(svgXml, 'OLF');
|
|
2178
|
+
var olfGeoEarly = this.svgUtils.getOLFGeometryFromSvg(svgXml);
|
|
2072
2179
|
if (olf !== null && olf !== void 0 && olf.length) {
|
|
2073
|
-
var
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
plannerElement.setupOLF(olf,
|
|
2180
|
+
var _olfGeoEarly$width, _olfGeoEarly$height;
|
|
2181
|
+
var olfBBox = this.svgUtils.getBoundingBoxOfPoints(olf);
|
|
2182
|
+
// Prefer getOLFGeometryFromSvg for dims - single source of truth, handles split(/\s+/) correctly
|
|
2183
|
+
var olfW = (_olfGeoEarly$width = olfGeoEarly === null || olfGeoEarly === void 0 ? void 0 : olfGeoEarly.width) !== null && _olfGeoEarly$width !== void 0 ? _olfGeoEarly$width : olfBBox.width;
|
|
2184
|
+
var olfD = (_olfGeoEarly$height = olfGeoEarly === null || olfGeoEarly === void 0 ? void 0 : olfGeoEarly.height) !== null && _olfGeoEarly$height !== void 0 ? _olfGeoEarly$height : olfBBox.height;
|
|
2185
|
+
plannerElement.setupOLF(olf, olfW, olfD);
|
|
2079
2186
|
} else {
|
|
2080
|
-
|
|
2187
|
+
var olfGeo = this.svgUtils.getOLFGeometryFromSvg(svgXml);
|
|
2188
|
+
if (olfGeo) {
|
|
2189
|
+
var olfRectPoints = [new index.Vector2(olfGeo.minX, olfGeo.minY), new index.Vector2(olfGeo.minX + olfGeo.width, olfGeo.minY), new index.Vector2(olfGeo.minX + olfGeo.width, olfGeo.minY + olfGeo.height), new index.Vector2(olfGeo.minX, olfGeo.minY + olfGeo.height)];
|
|
2190
|
+
plannerElement.setupOLF(olfRectPoints, olfGeo.width, olfGeo.height);
|
|
2191
|
+
} else if (sizes !== null && sizes !== void 0 && sizes.heightOLF, sizes !== null && sizes !== void 0 && sizes.widthOLF) {
|
|
2192
|
+
plannerElement.setupOLF(olf, sizes === null || sizes === void 0 ? void 0 : sizes.widthOLF, sizes === null || sizes === void 0 ? void 0 : sizes.heightOLF);
|
|
2193
|
+
} else {
|
|
2194
|
+
plannerElement.clearOLF();
|
|
2195
|
+
}
|
|
2081
2196
|
}
|
|
2082
2197
|
|
|
2083
2198
|
//if we are running in node js dont do fabric stuff
|
|
@@ -2102,8 +2217,6 @@ var PlannerHandler2D = /*#__PURE__*/function () {
|
|
|
2102
2217
|
break;
|
|
2103
2218
|
case 'OLT':
|
|
2104
2219
|
object.stroke = 'none';
|
|
2105
|
-
oltTop = object.top;
|
|
2106
|
-
oltLeft = object.left;
|
|
2107
2220
|
oltWidth = object.width;
|
|
2108
2221
|
oltDepth = object.height;
|
|
2109
2222
|
break;
|
|
@@ -2111,6 +2224,16 @@ var PlannerHandler2D = /*#__PURE__*/function () {
|
|
|
2111
2224
|
}
|
|
2112
2225
|
olfObjects.push(object);
|
|
2113
2226
|
}
|
|
2227
|
+
// oltLeft/oltTop/oltWidth/oltDepth from SVG attributes (untransformed) - Fabric values wrong for transformed rects
|
|
2228
|
+
var olfGeo = that.svgUtils.getOLFGeometryFromSvg(svgXml);
|
|
2229
|
+
var oltGeo = that.svgUtils.getOLTGeometryFromSvg(svgXml);
|
|
2230
|
+
if (olfGeo && oltGeo) {
|
|
2231
|
+
oltLeft = oltGeo.x - olfGeo.minX;
|
|
2232
|
+
oltTop = oltGeo.y - olfGeo.minY;
|
|
2233
|
+
oltWidth = oltGeo.width;
|
|
2234
|
+
oltDepth = oltGeo.height;
|
|
2235
|
+
}
|
|
2236
|
+
|
|
2114
2237
|
//hier wird definitv fabric.js Element erstellt
|
|
2115
2238
|
var fabricShapeOLF = fabric.fabric.util.groupSVGElements(olfObjects, options);
|
|
2116
2239
|
fabricShapeOLF.set({
|
|
@@ -2137,14 +2260,20 @@ var PlannerHandler2D = /*#__PURE__*/function () {
|
|
|
2137
2260
|
plannerElement.SvgData = svgXml;
|
|
2138
2261
|
fabric.fabric.loadSVGFromString(svgXmlOLT, function (objectsOLT, optionsOLT) {
|
|
2139
2262
|
plannerElement.cleanShapeOLT2D();
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2263
|
+
if (oltGeo) {
|
|
2264
|
+
optionsOLT.width = oltGeo.width;
|
|
2265
|
+
optionsOLT.height = oltGeo.height;
|
|
2266
|
+
} else {
|
|
2267
|
+
for (var objNo = 0; objNo < objects.length; objNo++) {
|
|
2268
|
+
var object = objects[objNo];
|
|
2269
|
+
var objID;
|
|
2270
|
+
if (object.id) {
|
|
2271
|
+
objID = object.id.toString();
|
|
2272
|
+
if (objID.startsWith('OLT')) {
|
|
2273
|
+
optionsOLT.height = object.height;
|
|
2274
|
+
optionsOLT.width = object.width;
|
|
2275
|
+
break;
|
|
2276
|
+
}
|
|
2148
2277
|
}
|
|
2149
2278
|
}
|
|
2150
2279
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
4
4
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-f7a97168.js');
|
|
7
7
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
8
8
|
require('@babel/runtime/helpers/slicedToArray');
|
|
9
9
|
require('@babel/runtime/helpers/asyncToGenerator');
|
|
@@ -6,7 +6,7 @@ var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
|
6
6
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
7
7
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
8
8
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
9
|
-
var index = require('./index-
|
|
9
|
+
var index = require('./index-f7a97168.js');
|
|
10
10
|
var DivaUtils = require('@crystaldesign/diva-utils');
|
|
11
11
|
require('@babel/runtime/helpers/slicedToArray');
|
|
12
12
|
require('@babel/runtime/helpers/objectWithoutProperties');
|