@crystaldesign/web-planner-logic 26.14.0-beta.3 → 26.14.0-beta.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/build/cjs/{DivaBoxPlanner-f8a6ed51.js → DivaBoxPlanner-67edb68b.js} +2 -2
  2. package/build/cjs/{DivaStandardPlanner-3f43813c.js → DivaStandardPlanner-29d25b93.js} +66 -11
  3. package/build/cjs/{DoorPlanner-10e3c18d.js → DoorPlanner-3193abf9.js} +1 -1
  4. package/build/cjs/{Host3DSignalR-cd189922.js → Host3DSignalR-c8859493.js} +10 -3
  5. package/build/cjs/{LiviqueWWSHandler-d4958b7f.js → LiviqueWWSHandler-7804d581.js} +1 -1
  6. package/build/cjs/{PfisterWWSHandler-a6dba3c8.js → PfisterWWSHandler-c6b93520.js} +1 -1
  7. package/build/cjs/{PlannerHandler2D-81ec05d6.js → PlannerHandler2D-7a79e191.js} +1 -1
  8. package/build/cjs/{SeriousBasketHandler-8422c0a8.js → SeriousBasketHandler-534a81ba.js} +1 -1
  9. package/build/cjs/{ShelfPlanner-ec113155.js → ShelfPlanner-f6b19965.js} +1 -1
  10. package/build/cjs/{StandardWWSHandler-72f6355a.js → StandardWWSHandler-eb367f31.js} +1 -1
  11. package/build/cjs/{index-00160b1a.js → index-03575eb4.js} +3707 -1994
  12. package/build/cjs/index.js +10 -1
  13. package/build/esm/{DivaBoxPlanner-e93a8a11.js → DivaBoxPlanner-b5817973.js} +2 -2
  14. package/build/esm/{DivaStandardPlanner-54024d74.js → DivaStandardPlanner-2084715b.js} +66 -11
  15. package/build/esm/{DoorPlanner-de2fbac4.js → DoorPlanner-d2a5deac.js} +1 -1
  16. package/build/esm/{Host3DSignalR-c2e185b3.js → Host3DSignalR-ae4a5ae9.js} +10 -3
  17. package/build/esm/{LiviqueWWSHandler-accb6d18.js → LiviqueWWSHandler-7bfacb71.js} +1 -1
  18. package/build/esm/{PfisterWWSHandler-326e6be1.js → PfisterWWSHandler-cc745e52.js} +1 -1
  19. package/build/esm/{PlannerHandler2D-400364fb.js → PlannerHandler2D-2bf51f9b.js} +1 -1
  20. package/build/esm/{SeriousBasketHandler-a90650e7.js → SeriousBasketHandler-817d4898.js} +1 -1
  21. package/build/esm/{ShelfPlanner-83981004.js → ShelfPlanner-e996961c.js} +1 -1
  22. package/build/esm/{StandardWWSHandler-2dfbafa0.js → StandardWWSHandler-314f6b1f.js} +1 -1
  23. package/build/esm/{index-7c0351f5.js → index-51900283.js} +3699 -1995
  24. package/build/esm/index.js +1 -1
  25. package/build/types/web-planner-logic/src/headless/findOptionValue.d.ts +10 -0
  26. package/build/types/web-planner-logic/src/headless/findOptionValue.d.ts.map +1 -0
  27. package/build/types/web-planner-logic/src/headless/headlessArtifactPass.d.ts +10 -0
  28. package/build/types/web-planner-logic/src/headless/headlessArtifactPass.d.ts.map +1 -1
  29. package/build/types/web-planner-logic/src/headless/headlessBasketSync.d.ts +18 -0
  30. package/build/types/web-planner-logic/src/headless/headlessBasketSync.d.ts.map +1 -0
  31. package/build/types/web-planner-logic/src/headless/headlessFacade.d.ts +13 -1
  32. package/build/types/web-planner-logic/src/headless/headlessFacade.d.ts.map +1 -1
  33. package/build/types/web-planner-logic/src/headless/headlessPreviewRenderer.d.ts +26 -0
  34. package/build/types/web-planner-logic/src/headless/headlessPreviewRenderer.d.ts.map +1 -0
  35. package/build/types/web-planner-logic/src/headless/headlessRenderPlanner.d.ts +29 -0
  36. package/build/types/web-planner-logic/src/headless/headlessRenderPlanner.d.ts.map +1 -0
  37. package/build/types/web-planner-logic/src/headless/headlessSession.d.ts +14 -1
  38. package/build/types/web-planner-logic/src/headless/headlessSession.d.ts.map +1 -1
  39. package/build/types/web-planner-logic/src/index.d.ts +16 -3
  40. package/build/types/web-planner-logic/src/index.d.ts.map +1 -1
  41. package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts +7 -19
  42. package/build/types/web-planner-logic/src/interface/API/AiImageResult.d.ts.map +1 -1
  43. package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts +4 -1
  44. package/build/types/web-planner-logic/src/interface/API/ViewConfigDataType.d.ts.map +1 -1
  45. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts +3 -0
  46. package/build/types/web-planner-logic/src/interface/Articles/ArticleDataType.d.ts.map +1 -1
  47. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts +8 -0
  48. package/build/types/web-planner-logic/src/interface/Articles/CatalogArticleDataType.d.ts.map +1 -1
  49. package/build/types/web-planner-logic/src/interface/Articles/PriceObject.d.ts +3 -0
  50. package/build/types/web-planner-logic/src/interface/Articles/PriceObject.d.ts.map +1 -1
  51. package/build/types/web-planner-logic/src/interface/Configuration.d.ts +6 -0
  52. package/build/types/web-planner-logic/src/interface/Configuration.d.ts.map +1 -1
  53. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts +3 -1
  54. package/build/types/web-planner-logic/src/interface/DivaCatalogDataType.d.ts.map +1 -1
  55. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts +10 -0
  56. package/build/types/web-planner-logic/src/interface/IDM/ArticleApi.d.ts.map +1 -1
  57. package/build/types/web-planner-logic/src/interface/IDM/IDMCatalog.d.ts +22 -0
  58. package/build/types/web-planner-logic/src/interface/IDM/IDMCatalog.d.ts.map +1 -1
  59. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts +4 -0
  60. package/build/types/web-planner-logic/src/interface/ShelfPlanner/plannerData.d.ts.map +1 -1
  61. package/build/types/web-planner-logic/src/interface/ViewModel/index.d.ts +87 -2
  62. package/build/types/web-planner-logic/src/interface/ViewModel/index.d.ts.map +1 -1
  63. package/build/types/web-planner-logic/src/interface/webPlannerParams/WebPlannerParamsType.d.ts +2 -2
  64. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts +5 -0
  65. package/build/types/web-planner-logic/src/logic/Article/ArticleOptionState.d.ts.map +1 -1
  66. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts +2 -0
  67. package/build/types/web-planner-logic/src/logic/Article/DivaArticle.d.ts.map +1 -1
  68. package/build/types/web-planner-logic/src/logic/Article/DivaArticleHandler.d.ts.map +1 -1
  69. package/build/types/web-planner-logic/src/logic/Article/Engine/DivaArticleEngine.d.ts.map +1 -1
  70. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts +17 -0
  71. package/build/types/web-planner-logic/src/logic/Article/Engine/IDMArticleEngine.d.ts.map +1 -1
  72. package/build/types/web-planner-logic/src/logic/Article/idmMeasurePrice.d.ts +61 -0
  73. package/build/types/web-planner-logic/src/logic/Article/idmMeasurePrice.d.ts.map +1 -0
  74. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts +4 -0
  75. package/build/types/web-planner-logic/src/logic/Basket/DivaBasketHandler.d.ts.map +1 -1
  76. package/build/types/web-planner-logic/src/logic/ConfigTree/DivaConfigTreeHandler.d.ts.map +1 -1
  77. package/build/types/web-planner-logic/src/logic/ConfigTree/Shelfplanner/ShelfPlannerGrid.d.ts.map +1 -1
  78. package/build/types/web-planner-logic/src/logic/DivaApiHandler.d.ts.map +1 -1
  79. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts +30 -3
  80. package/build/types/web-planner-logic/src/logic/DivaWebPlanner.d.ts.map +1 -1
  81. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts +27 -1
  82. package/build/types/web-planner-logic/src/logic/Planner/DivaPlannerHandler.d.ts.map +1 -1
  83. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts +8 -0
  84. package/build/types/web-planner-logic/src/logic/Planner/DivaStandardPlanner.d.ts.map +1 -1
  85. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/choosableValues.d.ts +12 -0
  86. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/choosableValues.d.ts.map +1 -0
  87. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/choosableValues.test.d.ts +2 -0
  88. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/choosableValues.test.d.ts.map +1 -0
  89. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartValues.d.ts +14 -0
  90. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartValues.d.ts.map +1 -0
  91. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementParts.d.ts +20 -0
  92. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementParts.d.ts.map +1 -0
  93. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartsBlock.d.ts +38 -0
  94. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartsBlock.d.ts.map +1 -0
  95. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartsBlock.test.d.ts +2 -0
  96. package/build/types/web-planner-logic/src/logic/Planner/ElementParts/elementPartsBlock.test.d.ts.map +1 -0
  97. package/build/types/web-planner-logic/src/logic/Planner/Rendering/Host3DSignalR.d.ts.map +1 -1
  98. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts +8 -0
  99. package/build/types/web-planner-logic/src/logic/Planner/Rendering/PlannerHandler3D.d.ts.map +1 -1
  100. package/build/types/web-planner-logic/src/logic/Planner/Rendering/types.d.ts +4 -0
  101. package/build/types/web-planner-logic/src/logic/Planner/Rendering/types.d.ts.map +1 -1
  102. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts +16 -0
  103. package/build/types/web-planner-logic/src/logic/Set/DivaSetHandler.d.ts.map +1 -1
  104. package/build/types/web-planner-logic/src/logic/captureSetImagesWithoutSave.d.ts +29 -0
  105. package/build/types/web-planner-logic/src/logic/captureSetImagesWithoutSave.d.ts.map +1 -0
  106. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts +7 -0
  107. package/build/types/web-planner-logic/src/model/Articles/Article/CatalogArticleData.d.ts.map +1 -1
  108. package/build/types/web-planner-logic/src/model/Articles/Article/IDMCatalogArticle.d.ts.map +1 -1
  109. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts +3 -0
  110. package/build/types/web-planner-logic/src/model/Catalog/CatalogData.d.ts.map +1 -1
  111. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts +6 -0
  112. package/build/types/web-planner-logic/src/model/Catalog/IDMCatalogData.d.ts.map +1 -1
  113. package/build/types/web-planner-logic/src/model/Properties/propertySchemaRegistry.d.ts.map +1 -1
  114. package/build/types/web-planner-logic/src/test/captureSetImagesWithoutSave.test.d.ts +2 -0
  115. package/build/types/web-planner-logic/src/test/captureSetImagesWithoutSave.test.d.ts.map +1 -0
  116. package/build/types/web-planner-logic/src/test/divaApiHandler.aiRendering.test.d.ts +2 -0
  117. package/build/types/web-planner-logic/src/test/divaApiHandler.aiRendering.test.d.ts.map +1 -0
  118. package/build/types/web-planner-logic/src/test/dragKeepsDockingRules.test.d.ts +2 -0
  119. package/build/types/web-planner-logic/src/test/dragKeepsDockingRules.test.d.ts.map +1 -0
  120. package/build/types/web-planner-logic/src/test/dragTransOrder.test.d.ts +3 -0
  121. package/build/types/web-planner-logic/src/test/dragTransOrder.test.d.ts.map +1 -0
  122. package/build/types/web-planner-logic/src/test/freeTextDefaultValue.test.d.ts +2 -0
  123. package/build/types/web-planner-logic/src/test/freeTextDefaultValue.test.d.ts.map +1 -0
  124. package/build/types/web-planner-logic/src/test/getConfigStepKeyOfOption.test.d.ts +2 -0
  125. package/build/types/web-planner-logic/src/test/getConfigStepKeyOfOption.test.d.ts.map +1 -0
  126. package/build/types/web-planner-logic/src/test/headlessArtifactPassSavedImage.test.d.ts +2 -0
  127. package/build/types/web-planner-logic/src/test/headlessArtifactPassSavedImage.test.d.ts.map +1 -0
  128. package/build/types/web-planner-logic/src/test/headlessBasketSync.test.d.ts +2 -0
  129. package/build/types/web-planner-logic/src/test/headlessBasketSync.test.d.ts.map +1 -0
  130. package/build/types/web-planner-logic/src/test/headlessConfigSingle.test.d.ts +2 -0
  131. package/build/types/web-planner-logic/src/test/headlessConfigSingle.test.d.ts.map +1 -0
  132. package/build/types/web-planner-logic/src/test/headlessOptionStates.test.d.ts +2 -0
  133. package/build/types/web-planner-logic/src/test/headlessOptionStates.test.d.ts.map +1 -0
  134. package/build/types/web-planner-logic/src/test/headlessPreviewRenderer.test.d.ts +2 -0
  135. package/build/types/web-planner-logic/src/test/headlessPreviewRenderer.test.d.ts.map +1 -0
  136. package/build/types/web-planner-logic/src/test/hidingRenderScript.test.d.ts +2 -0
  137. package/build/types/web-planner-logic/src/test/hidingRenderScript.test.d.ts.map +1 -0
  138. package/build/types/web-planner-logic/src/test/idmMeasurePrice.test.d.ts +2 -0
  139. package/build/types/web-planner-logic/src/test/idmMeasurePrice.test.d.ts.map +1 -0
  140. package/build/types/web-planner-logic/src/test/idmMeasurePriceEngine.test.d.ts +2 -0
  141. package/build/types/web-planner-logic/src/test/idmMeasurePriceEngine.test.d.ts.map +1 -0
  142. package/build/types/web-planner-logic/src/test/idmPlanningSizeChoice.test.d.ts +2 -0
  143. package/build/types/web-planner-logic/src/test/idmPlanningSizeChoice.test.d.ts.map +1 -0
  144. package/build/types/web-planner-logic/src/test/orderlineVariantValues.test.d.ts +2 -0
  145. package/build/types/web-planner-logic/src/test/orderlineVariantValues.test.d.ts.map +1 -0
  146. package/build/types/web-planner-logic/src/test/requiredUserInputOptions.test.d.ts +2 -0
  147. package/build/types/web-planner-logic/src/test/requiredUserInputOptions.test.d.ts.map +1 -0
  148. package/build/types/web-planner-logic/src/test/shelfPlannerGroup.test.d.ts +2 -0
  149. package/build/types/web-planner-logic/src/test/shelfPlannerGroup.test.d.ts.map +1 -0
  150. package/package.json +4 -4
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var index = require('./index-00160b1a.js');
5
+ var index = require('./index-03575eb4.js');
6
6
  var plannerCore = require('@crystaldesign/planner-core');
7
7
  require('@babel/runtime/helpers/slicedToArray');
8
8
  require('@babel/runtime/helpers/asyncToGenerator');
@@ -41,24 +41,33 @@ exports.OptionCatalogData = index.OptionCatalogData;
41
41
  exports.PROPERTY_SCHEMAS = index.PROPERTY_SCHEMAS;
42
42
  exports.PlannerElementData = index.PlannerElementData;
43
43
  exports.Rendering = index.Rendering;
44
+ exports.SET_IMAGES_CAPTURED_EVENT = index.SET_IMAGES_CAPTURED_EVENT;
44
45
  exports.Vector2 = index.Vector2;
45
46
  exports.Vector3 = index.Vector3;
46
47
  exports.Vector4 = index.Vector4;
48
+ exports.applyArtifactsToBasketJson = index.applyArtifactsToBasketJson;
47
49
  exports.bootMark = index.bootMark;
48
50
  exports.bootMarksEnabled = index.bootMarksEnabled;
49
51
  exports.bootNetworkMark = index.bootNetworkMark;
50
52
  exports.bootNow = index.bootNow;
51
53
  exports.bootRequestName = index.bootRequestName;
52
54
  exports.canSwitchTo = index.canSwitchTo;
55
+ exports.choosableValueCount = index.choosableValueCount;
53
56
  exports.collectStructureStepKeys = index.collectStructureStepKeys;
54
57
  exports.creatRenderOrders = index.creatRenderOrders;
58
+ exports.createHeadlessPreviewRenderer = index.createHeadlessPreviewRenderer;
55
59
  exports["default"] = index.DivaWebPlanner;
60
+ exports.describeMeasurePrice = index.describeMeasurePrice;
56
61
  exports.dockingFiltersMatch = index.dockingFiltersMatch;
62
+ exports.findOptionValue = index.findOptionValue;
63
+ exports.getElementPartDefinitions = index.getElementPartDefinitions;
57
64
  exports.getOrigProductId = index.getOrigProductId;
58
65
  exports.getSeriousSetNamePlaceholder = index.getSeriousSetNamePlaceholder;
59
66
  exports.getViewerStateToggles = index.getViewerStateToggles;
60
67
  exports.headlessSession = index.headlessSession;
61
68
  exports.loadAndRepairBasket = index.loadAndRepairBasket;
69
+ exports.loadElementPartStepValues = index.loadElementPartStepValues;
70
+ exports.measureWithUnit = index.measureWithUnit;
62
71
  exports.propertyEncodingOf = index.propertyEncodingOf;
63
72
  exports.runHeadlessArtifactPass = index.runHeadlessArtifactPass;
64
73
  exports.runHeadlessArtifactPassBatch = index.runHeadlessArtifactPassBatch;
@@ -3,11 +3,11 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { u as Vector2, V as Vector3, P as PlannerElementData, J as BoundingBox } from './index-7c0351f5.js';
6
+ import { u as Vector2, V as Vector3, P as PlannerElementData, J as BoundingBox } from './index-51900283.js';
7
7
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
8
8
  import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
9
9
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
10
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-400364fb.js';
10
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-2bf51f9b.js';
11
11
  import '@babel/runtime/helpers/objectWithoutProperties';
12
12
  import 'axios';
13
13
  import '@babel/runtime/helpers/typeof';
@@ -5,10 +5,10 @@ import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
7
7
  import _regeneratorRuntime from '@babel/runtime/regenerator';
8
- import { V as Vector3, p as poseOf, g as getSnapPlace, c as getDockingGroups, d as getElementShape, e as getCarrierSlots, h as getSlotPlaces, m as moveGroupRigidly, i as isSamePose, j as getGroupBlock, k as fitsInsideRoom, l as keepInsideRoom, n as bindToWalls, o as sameGeoExtent, q as getCornerEnd, r as getDoorClearanceRects, t as rectCorners, u as Vector2, M as MAX_GUEST_DEPTH, v as slotExempt, w as bodiesOverlap, x as getNearestMember, y as toPlacementOffset, z as getTurnDeg, A as moveSlotMember, B as moveShape, C as layersCollide, D as shapesCollide, P as PlannerElementData, E as parseGuestPlacement, F as saveElementArticleCodex, H as parseSetPlanData, I as isSavePlannerV2, J as BoundingBox, K as movePoints } from './index-7c0351f5.js';
8
+ import { V as Vector3, p as poseOf, g as getSnapPlace, c as getDockingGroups, d as getElementShape, e as getCarrierSlots, h as getSlotPlaces, m as moveGroupRigidly, i as isSamePose, j as getGroupBlock, k as fitsInsideRoom, l as keepInsideRoom, n as bindToWalls, o as sameGeoExtent, q as getCornerEnd, r as getDoorClearanceRects, t as rectCorners, u as Vector2, M as MAX_GUEST_DEPTH, v as slotExempt, w as bodiesOverlap, x as getNearestMember, y as toPlacementOffset, z as getTurnDeg, A as moveSlotMember, B as moveShape, C as layersCollide, D as shapesCollide, P as PlannerElementData, E as parseGuestPlacement, F as saveElementArticleCodex, H as parseSetPlanData, I as isSavePlannerV2, J as BoundingBox, K as movePoints } from './index-51900283.js';
9
9
  import DivaUtils, { DivaError, md5 } from '@crystaldesign/diva-utils';
10
10
  import { computeDockedTransform } from '@crystaldesign/planner-core';
11
- import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-400364fb.js';
11
+ import { d as dockingPointHandlerInst, h as handler2D } from './PlannerHandler2D-2bf51f9b.js';
12
12
  import '@babel/runtime/helpers/objectWithoutProperties';
13
13
  import 'axios';
14
14
  import '@babel/runtime/helpers/typeof';
@@ -70,6 +70,15 @@ var PATH_STEP = 2;
70
70
  var DEPTH_NOISE = 1e-6;
71
71
  /** cm within which a dragged guest snaps into a free place of a slot that takes it. */
72
72
  var SLOT_SNAP_DISTANCE = 20;
73
+ /**
74
+ * cm within which a group dragged in a room docks (between the docking points), at least the viewer's own docking
75
+ * distance: as far as a slot snap reaches. The bodies block the drag at contact and a pointer moves several cm per event,
76
+ * so the group is mostly pushed into the element it docks to; it has to dock from such a pose, not only from the few cm
77
+ * before contact.
78
+ */
79
+ var ROOM_DOCK_SNAP_DISTANCE = SLOT_SNAP_DISTANCE;
80
+ /** cm between two docking points that meet at a dock pose (the float noise of the docked transform). */
81
+ var DOCK_CONTACT_DISTANCE = 0.1;
73
82
  /** cm within which a drag counts as back at its start (the float noise of the summed moves). */
74
83
  var START_NOISE = 1e-6;
75
84
  var toFloorRect = function toFloorRect(block, pose) {
@@ -1681,13 +1690,14 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1681
1690
  };
1682
1691
  }
1683
1692
 
1684
- // The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre, also where it runs
1685
- // into an obstacle: what it runs into there is kept as `blockedBy` (the viewer shows the drag blocked, a release there
1686
- // goes back to the start). A forced group that fits on no wall is kept inside the room like a free one. Back at the
1687
- // start (a cancel, a blocked release) it stands exactly where it started, nothing snaps.
1693
+ // The group follows the grabbed element rigidly to the wall or inside-room pose of the raw centre, and from there onto
1694
+ // a dock within ROOM_DOCK_SNAP_DISTANCE, also where it runs into an obstacle: what it runs into there is kept as
1695
+ // `blockedBy` (the viewer shows the drag blocked, a release there goes back to the start). A forced group that fits on
1696
+ // no wall is kept inside the room like a free one. Back at the start (a cancel, a blocked release) it stands exactly
1697
+ // where it started, nothing snaps.
1688
1698
  }, {
1689
1699
  key: "updateRoomDrag",
1690
- value: function updateRoomDrag(room, drag, deltaMove) {
1700
+ value: function updateRoomDrag(room, drag, deltaMove, autoDockingDistance) {
1691
1701
  drag.dx += deltaMove.x;
1692
1702
  drag.dz += deltaMove.z;
1693
1703
  var _drag$start2 = drag.start,
@@ -1706,12 +1716,19 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1706
1716
  center: drag.start.center,
1707
1717
  rotDeg: rotDeg
1708
1718
  };
1709
- var wanted = atStart ? startPose : slotPose !== null && slotPose !== void 0 ? slotPose : wallPose && (drag.wallMode === 'forced' || snapsToWall) ? wallPose : insidePose(block, {
1719
+ var placed = atStart ? startPose : slotPose !== null && slotPose !== void 0 ? slotPose : wallPose && (drag.wallMode === 'forced' || snapsToWall) ? wallPose : insidePose(block, {
1710
1720
  center: rawCenter,
1711
1721
  rotDeg: rotDeg
1712
1722
  }, room);
1713
- drag.blockedBy = this.blockersAt(drag, wanted);
1714
- moveGroupRigidly([].concat(_toConsumableArray(drag.members), _toConsumableArray(drag.followers)), drag.current, wanted);
1723
+ var group = [].concat(_toConsumableArray(drag.members), _toConsumableArray(drag.followers));
1724
+ moveGroupRigidly(group, drag.current, placed);
1725
+ // Pushed against the element it docks to, the group touches it docked instead of standing blocked in it, so the
1726
+ // release docks it (see snapToDock).
1727
+ var reach = autoDockingDistance === 0 ? 0 : Math.max(autoDockingDistance, ROOM_DOCK_SNAP_DISTANCE);
1728
+ var dock = atStart || slotPose ? undefined : this.getDockSnapPose(drag, placed, reach);
1729
+ var wanted = dock !== null && dock !== void 0 ? dock : placed;
1730
+ moveGroupRigidly(group, placed, wanted);
1731
+ drag.blockedBy = dock ? [] : this.blockersAt(drag, wanted);
1715
1732
  drag.current = wanted;
1716
1733
  drag.slotSnapped = !!slotPose;
1717
1734
  // A pair that overlapped at the start may only come apart, never go back in.
@@ -1724,6 +1741,44 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
1724
1741
  });
1725
1742
  }
1726
1743
 
1744
+ /**
1745
+ * The pose of the group, standing at `pose`, where the grabbed element docks onto the nearest dock outside the group and
1746
+ * its guests (see findDockSnap), where nothing blocks it; undefined when no dock is that near, or the room rule would
1747
+ * move the docked group or something blocks it there that it does not dock to: then the group stays where the pointer
1748
+ * has it. Docked elements may reach into each other as members of a group do (a side panel standing out of the
1749
+ * outline), so every element the group docks to at that pose (both neighbours of a gap it fills) does not block.
1750
+ */
1751
+ }, {
1752
+ key: "getDockSnapPose",
1753
+ value: function getDockSnapPose(drag, pose, autoDockingDistance) {
1754
+ var element = this.plannerElements.get(drag.elementId);
1755
+ var group = [].concat(_toConsumableArray(drag.members), _toConsumableArray(drag.followers));
1756
+ var unitIds = group.map(function (member) {
1757
+ return member.ElementId;
1758
+ });
1759
+ var snap = element && this.findDockSnap(element, autoDockingDistance, unitIds);
1760
+ if (!element || !snap) return undefined;
1761
+ var _this$snapMove = this.snapMove(element, snap),
1762
+ from = _this$snapMove.from,
1763
+ to = _this$snapMove.to;
1764
+ var docked = movePose(pose, from, to);
1765
+ if (!this.getKeptPose(drag, docked)) return undefined;
1766
+ moveGroupRigidly(group, pose, docked);
1767
+ var others = this.getAllPlannerElements().filter(function (other) {
1768
+ return !unitIds.includes(other.ElementId);
1769
+ });
1770
+ var dockedTo = new Set(group.flatMap(function (member) {
1771
+ return _toConsumableArray(dockingPointHandlerInst.searchDockableElementsInArea(member, others, DOCK_CONTACT_DISTANCE).values()).map(function (pair) {
1772
+ return pair.targetDP.ElementId;
1773
+ });
1774
+ }));
1775
+ moveGroupRigidly(group, docked, pose);
1776
+ var docksTo = function docksTo(obstacle) {
1777
+ return obstacle.setId === undefined && obstacle.elementId !== undefined && dockedTo.has(obstacle.elementId);
1778
+ };
1779
+ return this.blockersAt(drag, docked).every(docksTo) ? docked : undefined;
1780
+ }
1781
+
1727
1782
  // The unit moved rigidly onto the nearest dock of `element` outside it (see findDockSnap), else with `slots` into the
1728
1783
  // nearest free slot place (see findSlotSnap).
1729
1784
  }, {
@@ -3478,7 +3533,7 @@ var DivaStandardPlanner = /*#__PURE__*/function () {
3478
3533
  if (room && roomDrag && !roomDrag.rotating && transState == 'UPDATE' && roomDrag.members.some(function (member) {
3479
3534
  return member.ElementId == elementId;
3480
3535
  })) {
3481
- if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove);
3536
+ if (elementId == roomDrag.elementId) this.updateRoomDrag(room, roomDrag, deltaMove, autoDockingDistance);
3482
3537
  return false;
3483
3538
  }
3484
3539
  if (this.plannerElements.has(elementId)) {
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import './index-7c0351f5.js';
4
+ import './index-51900283.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { L as bootMark, R as Rendering, N as HQRenderScript } from './index-7c0351f5.js';
6
+ import { L as bootMark, R as Rendering, N as HQRenderScript } from './index-51900283.js';
7
7
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
8
8
  import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';
9
9
  import io from 'socket.io-client';
@@ -371,6 +371,7 @@ var Host3DSignalR = /*#__PURE__*/function () {
371
371
  }, {
372
372
  key: "request3D",
373
373
  value: function request3D(params) {
374
+ var _this3 = this;
374
375
  var that = this;
375
376
  if (!this.connectionIsReady() || !this.successfullyJoinedDivaNr) {
376
377
  //If connection is not ready or WebClient not successfully logged in - always force reload whole planning
@@ -396,11 +397,17 @@ var Host3DSignalR = /*#__PURE__*/function () {
396
397
  //Create options Request
397
398
  var options3DHost = this.create3DHostRequestOption(params);
398
399
  LOG.debug('request 3D (mediaType ' + ((_params$requestRender13 = params.requestRenderingParams) === null || _params$requestRender13 === void 0 ? void 0 : _params$requestRender13.mediaServiceSaveMode) + ') from 3D Host' + JSON.stringify(params));
400
+ // Closing the planner stops the connection and so cancels a pending request: expected, nothing to report.
401
+ var logUnlessClosed = function logUnlessClosed(err) {
402
+ if (!_this3.isClosed) LOG.error(new DivaError('Request to 3D Host failed. Message: ' + String(err), {
403
+ code: 'WC_0014'
404
+ }));
405
+ };
399
406
  if (params.doReloadWholePlanning) {
400
407
  LOG.debug('Host3DSignalR SaveProjectWithOptions');
401
- this.signalRConnection.invoke('SaveProjectWithOptions', this.sessionID, params.divaNr, JSON.stringify(params.planningData), this.renderSettings.RenderGroup, JSON.stringify(options3DHost));
408
+ this.signalRConnection.invoke('SaveProjectWithOptions', this.sessionID, params.divaNr, JSON.stringify(params.planningData), this.renderSettings.RenderGroup, JSON.stringify(options3DHost))["catch"](logUnlessClosed);
402
409
  } else {
403
- this.signalRConnection.invoke('RequestRenderingWithOptions', this.sessionID, params.divaNr, options3DHost.VPName, options3DHost.VPSize, params.renderHash, JSON.stringify(options3DHost));
410
+ this.signalRConnection.invoke('RequestRenderingWithOptions', this.sessionID, params.divaNr, options3DHost.VPName, options3DHost.VPSize, params.renderHash, JSON.stringify(options3DHost))["catch"](logUnlessClosed);
404
411
  }
405
412
  return {
406
413
  rendering: rendering,
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-7c0351f5.js';
3
+ import './index-51900283.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import { a as articleHandlerInstance } from './index-7c0351f5.js';
3
+ import { a as articleHandlerInstance } from './index-51900283.js';
4
4
  import { SAPOrderLineData } from '@crystaldesign/basket-model';
5
5
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
@@ -3,7 +3,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
3
3
  import _createClass from '@babel/runtime/helpers/createClass';
4
4
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
5
5
  import _regeneratorRuntime from '@babel/runtime/regenerator';
6
- import { u as Vector2, S as SVGUtils } from './index-7c0351f5.js';
6
+ import { u as Vector2, S as SVGUtils } from './index-51900283.js';
7
7
  import _possibleConstructorReturn from '@babel/runtime/helpers/possibleConstructorReturn';
8
8
  import _getPrototypeOf from '@babel/runtime/helpers/getPrototypeOf';
9
9
  import _get from '@babel/runtime/helpers/get';
@@ -1,7 +1,7 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
3
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
4
- import { s as summaryHandlerInstance } from './index-7c0351f5.js';
4
+ import { s as summaryHandlerInstance } from './index-51900283.js';
5
5
  import DivaUtils from '@crystaldesign/diva-utils';
6
6
  import '@babel/runtime/helpers/slicedToArray';
7
7
  import '@babel/runtime/helpers/asyncToGenerator';
@@ -4,7 +4,7 @@ import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
4
4
  import _createClass from '@babel/runtime/helpers/createClass';
5
5
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
6
6
  import _regeneratorRuntime from '@babel/runtime/regenerator';
7
- import { G as Grid, f as familyMembersOf, a as articleHandlerInstance, b as setHandlerInstance } from './index-7c0351f5.js';
7
+ import { G as Grid, f as familyMembersOf, a as articleHandlerInstance, b as setHandlerInstance } from './index-51900283.js';
8
8
  import DivaUtils, { DivaError } from '@crystaldesign/diva-utils';
9
9
  import '@babel/runtime/helpers/slicedToArray';
10
10
  import '@babel/runtime/helpers/objectWithoutProperties';
@@ -1,6 +1,6 @@
1
1
  import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
2
2
  import _createClass from '@babel/runtime/helpers/createClass';
3
- import './index-7c0351f5.js';
3
+ import './index-51900283.js';
4
4
  import '@babel/runtime/helpers/slicedToArray';
5
5
  import '@babel/runtime/helpers/asyncToGenerator';
6
6
  import '@babel/runtime/helpers/defineProperty';