kitchen-simulator 4.0.1-react-18 → 4.0.1

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 (180) hide show
  1. package/README.md +3 -0
  2. package/es/AppContext.js +1 -1
  3. package/es/LiteKitchenConfigurator.js +156 -108
  4. package/es/LiteRenderer.js +159 -130
  5. package/es/actions/export.js +25 -12
  6. package/es/assets/gltf/door_sliding.bin +0 -0
  7. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  8. package/es/assets/img/svg/bottombar/elevation.svg +12 -5
  9. package/es/catalog/catalog.js +21 -5
  10. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  11. package/es/catalog/properties/export.js +21 -0
  12. package/es/catalog/properties/property-checkbox.js +68 -0
  13. package/es/catalog/properties/property-color.js +39 -0
  14. package/es/catalog/properties/property-enum.js +50 -0
  15. package/es/catalog/properties/property-hidden.js +19 -0
  16. package/es/catalog/properties/property-lenght-measure.js +100 -0
  17. package/es/catalog/properties/property-length-measure.js +84 -0
  18. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  19. package/es/catalog/properties/property-number.js +48 -0
  20. package/es/catalog/properties/property-read-only.js +26 -0
  21. package/es/catalog/properties/property-string.js +48 -0
  22. package/es/catalog/properties/property-toggle.js +39 -0
  23. package/es/catalog/properties/shared-property-style.js +14 -0
  24. package/es/catalog/utils/exporter.js +1 -0
  25. package/es/catalog/utils/item-loader.js +17 -12
  26. package/es/class/hole.js +0 -2
  27. package/es/class/item.js +95 -69
  28. package/es/class/line.js +4 -8
  29. package/es/class/project.js +91 -80
  30. package/es/components/content.js +5 -2
  31. package/es/components/export.js +4 -6
  32. package/es/components/style/button.js +106 -0
  33. package/es/components/style/cancel-button.js +21 -0
  34. package/es/components/style/content-container.js +30 -0
  35. package/es/components/style/content-title.js +25 -0
  36. package/es/components/style/delete-button.js +24 -0
  37. package/es/components/style/export.js +28 -2
  38. package/es/components/style/form-block.js +20 -0
  39. package/es/components/style/form-color-input.js +26 -0
  40. package/es/components/style/form-label.js +22 -0
  41. package/es/components/style/form-number-input.js +11 -22
  42. package/es/components/style/form-number-input_2.js +200 -0
  43. package/es/components/style/form-select.js +19 -0
  44. package/es/components/style/form-slider.js +60 -0
  45. package/es/components/style/form-submit-button.js +25 -0
  46. package/es/components/style/form-text-input.js +69 -0
  47. package/es/components/viewer2d/group.js +5 -4
  48. package/es/components/viewer2d/item.js +339 -299
  49. package/es/components/viewer2d/layer.js +1 -1
  50. package/es/components/viewer2d/line.js +17 -47
  51. package/es/components/viewer2d/ruler.js +5 -3
  52. package/es/components/viewer2d/rulerDist.js +8 -7
  53. package/es/components/viewer2d/rulerX.js +3 -0
  54. package/es/components/viewer2d/rulerY.js +3 -0
  55. package/es/components/viewer2d/scene.js +4 -1
  56. package/es/components/viewer2d/state.js +1 -1
  57. package/es/components/viewer2d/utils.js +2 -2
  58. package/es/components/viewer2d/viewer2d.js +51 -84
  59. package/es/components/viewer3d/scene-creator.js +51 -15
  60. package/es/components/viewer3d/viewer3d-first-person.js +8 -0
  61. package/es/components/viewer3d/viewer3d.js +80 -88
  62. package/es/constants.js +6 -2
  63. package/es/devLiteRenderer.js +491 -150
  64. package/es/index.js +567 -25
  65. package/es/models.js +2 -1
  66. package/es/plugins/SVGLoader.js +1414 -0
  67. package/es/plugins/console-debugger.js +0 -2
  68. package/es/styles/export.js +5 -0
  69. package/es/styles/tabs.css +40 -0
  70. package/es/utils/geometry.js +52 -96
  71. package/es/utils/helper.js +38 -1
  72. package/es/utils/isolate-event-handler.js +781 -577
  73. package/es/utils/molding.js +457 -11
  74. package/lib/AppContext.js +1 -1
  75. package/lib/LiteKitchenConfigurator.js +155 -108
  76. package/lib/LiteRenderer.js +158 -130
  77. package/lib/actions/export.js +35 -39
  78. package/lib/assets/gltf/door_sliding.bin +0 -0
  79. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  80. package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
  81. package/lib/catalog/catalog.js +20 -4
  82. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  83. package/lib/catalog/properties/export.js +81 -0
  84. package/lib/catalog/properties/property-checkbox.js +76 -0
  85. package/lib/catalog/properties/property-color.js +47 -0
  86. package/lib/catalog/properties/property-enum.js +58 -0
  87. package/lib/catalog/properties/property-hidden.js +27 -0
  88. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  89. package/lib/catalog/properties/property-length-measure.js +92 -0
  90. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  91. package/lib/catalog/properties/property-number.js +56 -0
  92. package/lib/catalog/properties/property-read-only.js +34 -0
  93. package/lib/catalog/properties/property-string.js +56 -0
  94. package/lib/catalog/properties/property-toggle.js +47 -0
  95. package/lib/catalog/properties/shared-property-style.js +21 -0
  96. package/lib/catalog/utils/exporter.js +1 -0
  97. package/lib/catalog/utils/item-loader.js +17 -12
  98. package/lib/class/hole.js +0 -2
  99. package/lib/class/item.js +93 -67
  100. package/lib/class/line.js +3 -7
  101. package/lib/class/project.js +91 -80
  102. package/lib/components/content.js +5 -2
  103. package/lib/components/export.js +6 -26
  104. package/lib/components/style/button.js +115 -0
  105. package/lib/components/style/cancel-button.js +29 -0
  106. package/lib/components/style/content-container.js +38 -0
  107. package/lib/components/style/content-title.js +35 -0
  108. package/lib/components/style/delete-button.js +34 -0
  109. package/lib/components/style/export.js +105 -1
  110. package/lib/components/style/form-block.js +28 -0
  111. package/lib/components/style/form-color-input.js +34 -0
  112. package/lib/components/style/form-label.js +30 -0
  113. package/lib/components/style/form-number-input.js +11 -22
  114. package/lib/components/style/form-number-input_2.js +209 -0
  115. package/lib/components/style/form-select.js +29 -0
  116. package/lib/components/style/form-slider.js +68 -0
  117. package/lib/components/style/form-submit-button.js +35 -0
  118. package/lib/components/style/form-text-input.js +78 -0
  119. package/lib/components/viewer2d/group.js +5 -4
  120. package/lib/components/viewer2d/item.js +337 -297
  121. package/lib/components/viewer2d/layer.js +1 -1
  122. package/lib/components/viewer2d/line.js +17 -47
  123. package/lib/components/viewer2d/ruler.js +4 -2
  124. package/lib/components/viewer2d/rulerDist.js +8 -7
  125. package/lib/components/viewer2d/rulerX.js +3 -0
  126. package/lib/components/viewer2d/rulerY.js +3 -0
  127. package/lib/components/viewer2d/scene.js +4 -1
  128. package/lib/components/viewer2d/state.js +1 -1
  129. package/lib/components/viewer2d/utils.js +2 -2
  130. package/lib/components/viewer2d/viewer2d.js +49 -81
  131. package/lib/components/viewer3d/scene-creator.js +49 -13
  132. package/lib/components/viewer3d/viewer3d-first-person.js +8 -0
  133. package/lib/components/viewer3d/viewer3d.js +77 -84
  134. package/lib/constants.js +11 -7
  135. package/lib/devLiteRenderer.js +489 -148
  136. package/lib/index.js +567 -25
  137. package/lib/models.js +2 -1
  138. package/lib/plugins/SVGLoader.js +1419 -0
  139. package/lib/plugins/console-debugger.js +0 -2
  140. package/lib/styles/export.js +13 -0
  141. package/lib/styles/tabs.css +40 -0
  142. package/lib/utils/geometry.js +52 -96
  143. package/lib/utils/helper.js +40 -1
  144. package/lib/utils/isolate-event-handler.js +781 -576
  145. package/lib/utils/molding.js +458 -9
  146. package/package.json +21 -16
  147. package/es/mocks/appliancePayload.json +0 -27
  148. package/es/mocks/cabinetPayload.json +0 -1914
  149. package/es/mocks/cabinetPayload2.json +0 -76
  150. package/es/mocks/dataBundle2.json +0 -4
  151. package/es/mocks/distancePayload.json +0 -6
  152. package/es/mocks/doorStylePayload2.json +0 -84
  153. package/es/mocks/furnishingPayload.json +0 -23
  154. package/es/mocks/itemCDSPayload.json +0 -27
  155. package/es/mocks/lightingPayload.json +0 -23
  156. package/es/mocks/mockProps.json +0 -43
  157. package/es/mocks/mockProps2.json +0 -9
  158. package/es/mocks/moldingPayload.json +0 -19
  159. package/es/mocks/projectItemsCatalog.json +0 -133
  160. package/es/mocks/rectangleShape.json +0 -238
  161. package/es/mocks/replaceCabinetPayload.json +0 -81
  162. package/es/mocks/roomShapePayload.json +0 -5
  163. package/es/useAppContext.js +0 -8
  164. package/lib/mocks/appliancePayload.json +0 -27
  165. package/lib/mocks/cabinetPayload.json +0 -1914
  166. package/lib/mocks/cabinetPayload2.json +0 -76
  167. package/lib/mocks/dataBundle2.json +0 -4
  168. package/lib/mocks/distancePayload.json +0 -6
  169. package/lib/mocks/doorStylePayload2.json +0 -84
  170. package/lib/mocks/furnishingPayload.json +0 -23
  171. package/lib/mocks/itemCDSPayload.json +0 -27
  172. package/lib/mocks/lightingPayload.json +0 -23
  173. package/lib/mocks/mockProps.json +0 -43
  174. package/lib/mocks/mockProps2.json +0 -9
  175. package/lib/mocks/moldingPayload.json +0 -19
  176. package/lib/mocks/projectItemsCatalog.json +0 -133
  177. package/lib/mocks/rectangleShape.json +0 -238
  178. package/lib/mocks/replaceCabinetPayload.json +0 -81
  179. package/lib/mocks/roomShapePayload.json +0 -5
  180. package/lib/useAppContext.js +0 -16
@@ -27,8 +27,6 @@ export default function consoleDebugger() {
27
27
  });
28
28
  console.groupCollapsed('KitchenConfigurator');
29
29
  console.info('KitchenConfigurator is ready');
30
- console.info('console.log(KitchenConfigurator)');
31
- console.log(window.KitchenConfigurator);
32
30
  console.groupEnd();
33
31
  };
34
32
  }
@@ -0,0 +1,5 @@
1
+ import * as TabsStyle from "./tabs.css";
2
+ export { TabsStyle };
3
+ export default {
4
+ TabsStyle: TabsStyle
5
+ };
@@ -0,0 +1,40 @@
1
+ .react-tabs__tab-list {
2
+ border-bottom: 1px solid #aaa;
3
+ margin: 0 0 10px;
4
+ padding: 0;
5
+ }
6
+
7
+ .react-tabs__tab {
8
+ display: inline-block;
9
+ border: 1px solid transparent;
10
+ border-bottom: none;
11
+ bottom: -1px;
12
+ position: relative;
13
+ list-style: none;
14
+ padding: 6px 12px;
15
+ cursor: pointer;
16
+ }
17
+
18
+ .react-tabs__tab--selected,
19
+ .react-tabs__tab:focus {
20
+ border-color: #aaa;
21
+ color: #1ca6fc;
22
+ outline: none;
23
+ }
24
+
25
+ .react-tabs__tab-panel {
26
+ display: none;
27
+ }
28
+
29
+ .react-tabs__tab-panel--selected {
30
+ display: block;
31
+ }
32
+
33
+ @keyframes spin {
34
+ from {
35
+ transform: rotate(0deg);
36
+ }
37
+ to {
38
+ transform: rotate(360deg);
39
+ }
40
+ }
@@ -1873,7 +1873,7 @@ export function getAllHoleRect(scene, val) {
1873
1873
  layer.lines.forEach(function (line) {
1874
1874
  line.holes.forEach(function (holeID) {
1875
1875
  var hole = layer.holes.get(holeID);
1876
- holes.push(hole);
1876
+ if (hole) holes.push(hole);
1877
1877
  });
1878
1878
  });
1879
1879
  var i = 0;
@@ -2105,7 +2105,7 @@ export function relationshipOfTwoOverlappedLines2(srcLine, destLine) {
2105
2105
  lineSX = _sort4[0],
2106
2106
  lineDX = _sort4[1];
2107
2107
  var isReversedSrcLineIdx = false;
2108
- if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
2108
+ if (lineSX[0].x === line0[0].x && lineSX[0].y === line0[0].y) isReversedSrcLineIdx = false;else if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
2109
2109
  var compare0 = comparator(lineSX[0], lineDX[0]);
2110
2110
  var compare1 = comparator(lineSX[1], lineDX[0]);
2111
2111
  var compare2 = comparator(lineSX[1], lineDX[1]);
@@ -2459,31 +2459,13 @@ function getCalcRectFromItem2(itemInfo) {
2459
2459
  var m3y = y + h * Math.cos(rotRad);
2460
2460
  var m1x = x + h * Math.sin(rotRad);
2461
2461
  var m1y = y - h * Math.cos(rotRad);
2462
- var x0 = mx + h * Math.sin(rotRad);
2463
- var y0 = my - h * Math.cos(rotRad);
2464
- var x3 = mx * 2 - x0;
2465
- var y3 = my * 2 - y0;
2466
- var x1 = x * 2 - x3;
2467
- var y1 = y * 2 - y3;
2468
- var x2 = x * 2 - x0;
2469
- var y2 = y * 2 - y0;
2470
2462
  return {
2471
2463
  rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
2472
2464
  };
2473
2465
  }
2474
- function getAllItems2(layer, catalog) {
2466
+ function getAllItems2(curItem, layer) {
2475
2467
  var rectarray = [];
2476
- var currentItem;
2477
- var selectedItem;
2478
- if (layer.selected.items.size > 0) {
2479
- selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
2480
- var catid = selectedItem.type;
2481
- var cat = findCatalogElement(catalog, catid);
2482
- currentItem = {
2483
- selectedItem: selectedItem,
2484
- cat: cat
2485
- };
2486
- }
2468
+ var tempHeight = curItem.get('properties').get('depth');
2487
2469
  layer.items.forEach(function (item) {
2488
2470
  var val = {
2489
2471
  pos: {
@@ -2492,27 +2474,14 @@ function getAllItems2(layer, catalog) {
2492
2474
  },
2493
2475
  rotRad: item.rotation / 180 * Math.PI
2494
2476
  };
2495
- var catid = item.type;
2496
- var cat = findCatalogElement(catalog, catid);
2497
2477
  var width = convert(item.properties.getIn(['width', '_length'])).from('in').to('cm');
2498
2478
  var height = convert(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
2499
- // let width = cat.info.sizeinfo.width;
2500
- // let height = cat.info.sizeinfo.depth;
2501
2479
  val.size = {
2502
2480
  width: width,
2503
2481
  height: height
2504
2482
  };
2505
- var otherItem = {
2506
- item: item,
2507
- cat: cat
2508
- };
2509
-
2510
- // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
2511
- // return;
2512
- // }
2513
-
2514
- if (!item.selected) {
2515
- var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
2483
+ if (curItem.get('id') !== item.id) {
2484
+ var detectObjectsAtSameAltitudeFlag = curItem.get('layoutpos') === 'Base' ? item.properties.getIn(['altitude', '_length']) <= curItem.get('properties').getIn(['altitude', '_length']) + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= curItem.get('properties').getIn(['altitude', '_length']);
2516
2485
  if (detectObjectsAtSameAltitudeFlag) {
2517
2486
  var x = val.pos.x;
2518
2487
  var y = val.pos.y;
@@ -2544,67 +2513,27 @@ function getAllItems2(layer, catalog) {
2544
2513
  }
2545
2514
  }
2546
2515
  });
2547
-
2548
- // layer.holes.forEach(hole => {
2549
- // let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
2550
- // let catid = hole.type;
2551
- // let cat = catalog.elements[catid];
2552
- // let width = hole.properties.getIn(['width']).getIn(['length']);
2553
- // let height = hole.properties.getIn(['height']).getIn(['length']);
2554
- // val.size = {width, height};
2555
- // let otherItem = {
2556
- // hole,
2557
- // cat
2558
- // }
2559
-
2560
- // // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
2561
- // // return;
2562
- // // }
2563
-
2564
- // if (!hole.selected) {
2565
- // let x = val.pos.x;
2566
- // let y = val.pos.y;
2567
- // let rotRad = val.rotRad;
2568
- // let w = val.size.width / 2;
2569
- // let mx = x - w * Math.cos(rotRad);
2570
- // let my = y - w * Math.sin(rotRad);
2571
- // let kx = x + w * Math.cos(rotRad);
2572
- // let ky = y + w * Math.sin(rotRad);
2573
- // let x0 = mx - 10 * Math.sin(rotRad);
2574
- // let y0 = my + 10 * Math.cos(rotRad);
2575
- // let x3 = mx + 10 * Math.sin(rotRad);
2576
- // let y3 = my - 10 * Math.cos(rotRad);
2577
- // let x1 = kx - 10 * Math.sin(rotRad);
2578
- // let y1 = ky + 10 * Math.cos(rotRad);
2579
- // let x2 = kx + 10 * Math.sin(rotRad);
2580
- // let y2 = ky - 10 * Math.cos(rotRad);
2581
- // rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
2582
- // rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
2583
- // rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
2584
- // rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
2585
- // }
2586
- // });
2587
2516
  return {
2588
2517
  others: rectarray
2589
2518
  };
2590
2519
  }
2591
- export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
2592
- if (isEmpty(attributesFormData)) return [];
2593
- var x = attributesFormData.get('x');
2594
- var y = attributesFormData.get('y');
2595
- var rotRad = attributesFormData.get('rotation') / 180 * Math.PI;
2520
+ export function calcDistancesFromItemToWalls(curItem, layer) {
2521
+ if (isEmpty(curItem)) return [];
2522
+ var x = curItem.get('x');
2523
+ var y = curItem.get('y');
2524
+ var rotRad = curItem.get('rotation') / 180 * Math.PI;
2596
2525
  var width, height;
2597
- if (attributesFormData.get('properties').get('width') || attributesFormData.get('properties').get('depth')) {
2598
- width = convert(attributesFormData.get('properties').get('width').get('_length')).from(attributesFormData.get('properties').get('width').get('_unit')).to('cm');
2599
- height = convert(attributesFormData.get('properties').get('depth').get('_length')).from(attributesFormData.get('properties').get('depth').get('_unit')).to('cm');
2526
+ if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
2527
+ width = convert(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
2528
+ height = convert(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
2600
2529
  } else {
2601
- width = convert(attributesFormData.info.sizeinfo.width).from('in').to('cm');
2602
- height = convert(attributesFormData.info.sizeinfo.depth).from('in').to('cm');
2530
+ width = convert(curItem.info.sizeinfo.width).from('in').to('cm');
2531
+ height = convert(curItem.info.sizeinfo.depth).from('in').to('cm');
2603
2532
  }
2604
2533
  var center_h = 3 * height / 8;
2605
- var center_x = x;
2534
+ var center_x = x; // middle of front line of cabinet rect
2606
2535
  var center_y = y;
2607
- var center_x1 = x - center_h * Math.sin(rotRad);
2536
+ var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
2608
2537
  var center_y1 = y + center_h * Math.cos(rotRad);
2609
2538
  var PointArray = [];
2610
2539
  var itemInfo = {
@@ -2619,24 +2548,37 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
2619
2548
  height: height
2620
2549
  };
2621
2550
  var curiteminfo = getCalcRectFromItem2(itemInfo);
2622
- var allItemRect = getAllItems2(layer, catalog);
2551
+ var allItemRect = getAllItems2(curItem, layer);
2623
2552
  var allLines = getAllLines(layer);
2624
2553
  var allLineRects = buildRectFromLines(layer, allLines);
2625
2554
  var allRect = allLineRects.concat(allItemRect.others);
2626
- curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
2627
- var comparelength = [];
2555
+ var _loop = function _loop(i) {
2556
+ // [rectCenterPoint] has four middle points of cabinet rect edges
2557
+ var centerpoint = curiteminfo.rectCenterPoint[i];
2558
+ var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
2628
2559
  var a;
2629
- var RectLineFuction;
2560
+ var RectLineFuction; // normal line of cabinet rect edge
2630
2561
  if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
2631
2562
  allRect.forEach(function (linerect) {
2563
+ // calc distance to all other lines
2632
2564
  var p0 = clone_point(linerect.rect[2]);
2633
2565
  var p1 = clone_point(linerect.rect[3]);
2634
- var lineFunction = {};
2566
+ var lineFunction = {}; // other line function
2635
2567
  if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
2568
+ // intersection between normal line and other line
2636
2569
  var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
2637
2570
  if (coordinatePoint !== undefined) {
2638
- if (pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
2639
- if (pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
2571
+ if (
2572
+ // intersection point is on the other line
2573
+ pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
2574
+ // check the intersection point is outside direction of edge
2575
+ var isOutside = true;
2576
+ for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
2577
+ if (j === i) continue;
2578
+ var otherCenterPoint = curiteminfo.rectCenterPoint[j];
2579
+ if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
2580
+ }
2581
+ if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
2640
2582
  comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
2641
2583
  a = Math.min.apply(null, comparelength);
2642
2584
  }
@@ -2644,7 +2586,21 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
2644
2586
  }
2645
2587
  });
2646
2588
  PointArray.push([a, centerpoint[1]]);
2589
+ };
2590
+ for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
2591
+ _loop(i);
2592
+ }
2593
+ PointArray.forEach(function (pointElement, index) {
2594
+ if (pointElement[0] == undefined) PointArray[index][0] = 0;
2647
2595
  });
2596
+ var cnt = 0;
2597
+ PointArray.forEach(function (pointElement) {
2598
+ if (pointElement[0] == 0) cnt++;
2599
+ });
2600
+ if (cnt == 4 || cnt == 3) {
2601
+ PointArray[0][0] = 100;
2602
+ PointArray[1][0] = 100;
2603
+ }
2648
2604
  return {
2649
2605
  PointArray: PointArray
2650
2606
  };
@@ -5,10 +5,11 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
5
5
  import { HDRCubeTextureLoader } from 'three/examples/jsm/loaders/HDRCubeTextureLoader.js';
6
6
  import { ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT, ANIMATE_STEP_MAX, DECIMAL_PLACES_2, HDR_URLS, MAX_ZOOM_IN_SCALE, MODE_ELEVATION_VIEW, ZOOM_VARIABLE } from "../constants";
7
7
  import * as Three from 'three';
8
- import { returnReplaceableDeepSearchType } from "./../components/viewer2d/utils";
8
+ import { isWarningItem, returnReplaceableDeepSearchType } from "./../components/viewer2d/utils";
9
9
  import { convert } from "./convert-units-lite";
10
10
  import { formatNumber } from "./math";
11
11
  import AWS from 'aws-sdk';
12
+ import { GeometryUtils, MoldingUtils } from "./export";
12
13
  var s3 = new AWS.S3({
13
14
  accessKeyId: process.env.REACT_APP_AWS_ID,
14
15
  secretAccessKey: process.env.REACT_APP_AWS_SECRET
@@ -396,4 +397,40 @@ export function centering2D(state) {
396
397
  });
397
398
  if (viewer2DActions) updateViwer2D(viewer, viewer2DActions);
398
399
  return state;
400
+ }
401
+ export function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
402
+ var pointArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
403
+ if (isEmpty(currentObject)) return null;
404
+ var updatedPayload = currentObject.toJS();
405
+ if (isEmpty(layer) || isEmpty(catalog)) return updatedPayload;
406
+ if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'lines') {
407
+ // caculating length of selected line//
408
+ var v_a = layer.vertices.get(currentObject.vertices.get(0));
409
+ var v_b = layer.vertices.get(currentObject.vertices.get(1));
410
+ var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
411
+ var _length = convert(distance).from('cm').to(layer.unit);
412
+ updatedPayload.length = _length;
413
+ //////////////////////////////////////
414
+ } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
415
+ var _catalog$elements$cur;
416
+ // check this cabinet has warning box
417
+ updatedPayload.isWarning = isWarningItem(currentObject);
418
+ // check this item is available molding
419
+ updatedPayload.isMoldingAvailable = MoldingUtils.isEnableItemForMolding(layer, currentObject);
420
+ // check this item is snapped to wall
421
+ updatedPayload.isAttachedWall = MoldingUtils.isAttachedWall(layer, currentObject);
422
+ // update distArray
423
+ if (pointArray) updatedPayload.distArray = pointArray;
424
+
425
+ // update sku_number using sku_array
426
+ var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
427
+ var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
428
+ var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
429
+ return sku.door_color_id === currentDoorColorId;
430
+ });
431
+ if (correctSKU) {
432
+ updatedPayload.sku_number = correctSKU.sku;
433
+ }
434
+ }
435
+ return updatedPayload;
399
436
  }