kitchen-simulator 4.0.0-react-18 → 4.0.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.
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 +41 -16
  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 +41 -16
  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
@@ -34,8 +34,6 @@ function consoleDebugger() {
34
34
  });
35
35
  console.groupCollapsed('KitchenConfigurator');
36
36
  console.info('KitchenConfigurator is ready');
37
- console.info('console.log(KitchenConfigurator)');
38
- console.log(window.KitchenConfigurator);
39
37
  console.groupEnd();
40
38
  };
41
39
  }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = exports.TabsStyle = void 0;
8
+ var TabsStyle = _interopRequireWildcard(require("./tabs.css"));
9
+ exports.TabsStyle = TabsStyle;
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
11
+ var _default = exports["default"] = {
12
+ TabsStyle: TabsStyle
13
+ };
@@ -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
+ }
@@ -1973,7 +1973,7 @@ function getAllHoleRect(scene, val) {
1973
1973
  layer.lines.forEach(function (line) {
1974
1974
  line.holes.forEach(function (holeID) {
1975
1975
  var hole = layer.holes.get(holeID);
1976
- holes.push(hole);
1976
+ if (hole) holes.push(hole);
1977
1977
  });
1978
1978
  });
1979
1979
  var i = 0;
@@ -2205,7 +2205,7 @@ function relationshipOfTwoOverlappedLines2(srcLine, destLine) {
2205
2205
  lineSX = _sort4[0],
2206
2206
  lineDX = _sort4[1];
2207
2207
  var isReversedSrcLineIdx = false;
2208
- if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
2208
+ 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;
2209
2209
  var compare0 = comparator(lineSX[0], lineDX[0]);
2210
2210
  var compare1 = comparator(lineSX[1], lineDX[0]);
2211
2211
  var compare2 = comparator(lineSX[1], lineDX[1]);
@@ -2559,31 +2559,13 @@ function getCalcRectFromItem2(itemInfo) {
2559
2559
  var m3y = y + h * Math.cos(rotRad);
2560
2560
  var m1x = x + h * Math.sin(rotRad);
2561
2561
  var m1y = y - h * Math.cos(rotRad);
2562
- var x0 = mx + h * Math.sin(rotRad);
2563
- var y0 = my - h * Math.cos(rotRad);
2564
- var x3 = mx * 2 - x0;
2565
- var y3 = my * 2 - y0;
2566
- var x1 = x * 2 - x3;
2567
- var y1 = y * 2 - y3;
2568
- var x2 = x * 2 - x0;
2569
- var y2 = y * 2 - y0;
2570
2562
  return {
2571
2563
  rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
2572
2564
  };
2573
2565
  }
2574
- function getAllItems2(layer, catalog) {
2566
+ function getAllItems2(curItem, layer) {
2575
2567
  var rectarray = [];
2576
- var currentItem;
2577
- var selectedItem;
2578
- if (layer.selected.items.size > 0) {
2579
- selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
2580
- var catid = selectedItem.type;
2581
- var cat = findCatalogElement(catalog, catid);
2582
- currentItem = {
2583
- selectedItem: selectedItem,
2584
- cat: cat
2585
- };
2586
- }
2568
+ var tempHeight = curItem.get('properties').get('depth');
2587
2569
  layer.items.forEach(function (item) {
2588
2570
  var val = {
2589
2571
  pos: {
@@ -2592,27 +2574,14 @@ function getAllItems2(layer, catalog) {
2592
2574
  },
2593
2575
  rotRad: item.rotation / 180 * Math.PI
2594
2576
  };
2595
- var catid = item.type;
2596
- var cat = findCatalogElement(catalog, catid);
2597
2577
  var width = (0, _convertUnitsLite.convert)(item.properties.getIn(['width', '_length'])).from('in').to('cm');
2598
2578
  var height = (0, _convertUnitsLite.convert)(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
2599
- // let width = cat.info.sizeinfo.width;
2600
- // let height = cat.info.sizeinfo.depth;
2601
2579
  val.size = {
2602
2580
  width: width,
2603
2581
  height: height
2604
2582
  };
2605
- var otherItem = {
2606
- item: item,
2607
- cat: cat
2608
- };
2609
-
2610
- // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
2611
- // return;
2612
- // }
2613
-
2614
- if (!item.selected) {
2615
- var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
2583
+ if (curItem.get('id') !== item.id) {
2584
+ 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']);
2616
2585
  if (detectObjectsAtSameAltitudeFlag) {
2617
2586
  var x = val.pos.x;
2618
2587
  var y = val.pos.y;
@@ -2644,67 +2613,27 @@ function getAllItems2(layer, catalog) {
2644
2613
  }
2645
2614
  }
2646
2615
  });
2647
-
2648
- // layer.holes.forEach(hole => {
2649
- // let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
2650
- // let catid = hole.type;
2651
- // let cat = catalog.elements[catid];
2652
- // let width = hole.properties.getIn(['width']).getIn(['length']);
2653
- // let height = hole.properties.getIn(['height']).getIn(['length']);
2654
- // val.size = {width, height};
2655
- // let otherItem = {
2656
- // hole,
2657
- // cat
2658
- // }
2659
-
2660
- // // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
2661
- // // return;
2662
- // // }
2663
-
2664
- // if (!hole.selected) {
2665
- // let x = val.pos.x;
2666
- // let y = val.pos.y;
2667
- // let rotRad = val.rotRad;
2668
- // let w = val.size.width / 2;
2669
- // let mx = x - w * Math.cos(rotRad);
2670
- // let my = y - w * Math.sin(rotRad);
2671
- // let kx = x + w * Math.cos(rotRad);
2672
- // let ky = y + w * Math.sin(rotRad);
2673
- // let x0 = mx - 10 * Math.sin(rotRad);
2674
- // let y0 = my + 10 * Math.cos(rotRad);
2675
- // let x3 = mx + 10 * Math.sin(rotRad);
2676
- // let y3 = my - 10 * Math.cos(rotRad);
2677
- // let x1 = kx - 10 * Math.sin(rotRad);
2678
- // let y1 = ky + 10 * Math.cos(rotRad);
2679
- // let x2 = kx + 10 * Math.sin(rotRad);
2680
- // let y2 = ky - 10 * Math.cos(rotRad);
2681
- // rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
2682
- // rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
2683
- // rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
2684
- // rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
2685
- // }
2686
- // });
2687
2616
  return {
2688
2617
  others: rectarray
2689
2618
  };
2690
2619
  }
2691
- function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
2692
- if ((0, _helper.isEmpty)(attributesFormData)) return [];
2693
- var x = attributesFormData.get('x');
2694
- var y = attributesFormData.get('y');
2695
- var rotRad = attributesFormData.get('rotation') / 180 * Math.PI;
2620
+ function calcDistancesFromItemToWalls(curItem, layer) {
2621
+ if ((0, _helper.isEmpty)(curItem)) return [];
2622
+ var x = curItem.get('x');
2623
+ var y = curItem.get('y');
2624
+ var rotRad = curItem.get('rotation') / 180 * Math.PI;
2696
2625
  var width, height;
2697
- if (attributesFormData.get('properties').get('width') || attributesFormData.get('properties').get('depth')) {
2698
- width = (0, _convertUnitsLite.convert)(attributesFormData.get('properties').get('width').get('_length')).from(attributesFormData.get('properties').get('width').get('_unit')).to('cm');
2699
- height = (0, _convertUnitsLite.convert)(attributesFormData.get('properties').get('depth').get('_length')).from(attributesFormData.get('properties').get('depth').get('_unit')).to('cm');
2626
+ if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
2627
+ width = (0, _convertUnitsLite.convert)(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
2628
+ height = (0, _convertUnitsLite.convert)(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
2700
2629
  } else {
2701
- width = (0, _convertUnitsLite.convert)(attributesFormData.info.sizeinfo.width).from('in').to('cm');
2702
- height = (0, _convertUnitsLite.convert)(attributesFormData.info.sizeinfo.depth).from('in').to('cm');
2630
+ width = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.width).from('in').to('cm');
2631
+ height = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.depth).from('in').to('cm');
2703
2632
  }
2704
2633
  var center_h = 3 * height / 8;
2705
- var center_x = x;
2634
+ var center_x = x; // middle of front line of cabinet rect
2706
2635
  var center_y = y;
2707
- var center_x1 = x - center_h * Math.sin(rotRad);
2636
+ var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
2708
2637
  var center_y1 = y + center_h * Math.cos(rotRad);
2709
2638
  var PointArray = [];
2710
2639
  var itemInfo = {
@@ -2719,24 +2648,37 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
2719
2648
  height: height
2720
2649
  };
2721
2650
  var curiteminfo = getCalcRectFromItem2(itemInfo);
2722
- var allItemRect = getAllItems2(layer, catalog);
2651
+ var allItemRect = getAllItems2(curItem, layer);
2723
2652
  var allLines = getAllLines(layer);
2724
2653
  var allLineRects = buildRectFromLines(layer, allLines);
2725
2654
  var allRect = allLineRects.concat(allItemRect.others);
2726
- curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
2727
- var comparelength = [];
2655
+ var _loop = function _loop(i) {
2656
+ // [rectCenterPoint] has four middle points of cabinet rect edges
2657
+ var centerpoint = curiteminfo.rectCenterPoint[i];
2658
+ var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
2728
2659
  var a;
2729
- var RectLineFuction;
2660
+ var RectLineFuction; // normal line of cabinet rect edge
2730
2661
  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);
2731
2662
  allRect.forEach(function (linerect) {
2663
+ // calc distance to all other lines
2732
2664
  var p0 = clone_point(linerect.rect[2]);
2733
2665
  var p1 = clone_point(linerect.rect[3]);
2734
- var lineFunction = {};
2666
+ var lineFunction = {}; // other line function
2735
2667
  if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
2668
+ // intersection between normal line and other line
2736
2669
  var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
2737
2670
  if (coordinatePoint !== undefined) {
2738
- 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)) {
2739
- if (pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
2671
+ if (
2672
+ // intersection point is on the other line
2673
+ 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)) {
2674
+ // check the intersection point is outside direction of edge
2675
+ var isOutside = true;
2676
+ for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
2677
+ if (j === i) continue;
2678
+ var otherCenterPoint = curiteminfo.rectCenterPoint[j];
2679
+ if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
2680
+ }
2681
+ if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
2740
2682
  comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
2741
2683
  a = Math.min.apply(null, comparelength);
2742
2684
  }
@@ -2744,7 +2686,21 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
2744
2686
  }
2745
2687
  });
2746
2688
  PointArray.push([a, centerpoint[1]]);
2689
+ };
2690
+ for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
2691
+ _loop(i);
2692
+ }
2693
+ PointArray.forEach(function (pointElement, index) {
2694
+ if (pointElement[0] == undefined) PointArray[index][0] = 0;
2747
2695
  });
2696
+ var cnt = 0;
2697
+ PointArray.forEach(function (pointElement) {
2698
+ if (pointElement[0] == 0) cnt++;
2699
+ });
2700
+ if (cnt == 4 || cnt == 3) {
2701
+ PointArray[0][0] = 100;
2702
+ PointArray[1][0] = 100;
2703
+ }
2748
2704
  return {
2749
2705
  PointArray: PointArray
2750
2706
  };
@@ -22,7 +22,9 @@ exports.refineProductForSummaryPdf = exports.refineMoldingForSummaryPdf = void 0
22
22
  exports.replaceMeshesWithLineSegments = replaceMeshesWithLineSegments;
23
23
  exports.textureCube = void 0;
24
24
  exports.toPlainObject = toPlainObject;
25
- exports.updateViwer2D = exports.translateDrawer = void 0;
25
+ exports.translateDrawer = void 0;
26
+ exports.updatePayloadOfInternalEvent = updatePayloadOfInternalEvent;
27
+ exports.updateViwer2D = void 0;
26
28
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
27
29
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
28
30
  var _HDRCubeTextureLoader = require("three/examples/jsm/loaders/HDRCubeTextureLoader.js");
@@ -32,6 +34,7 @@ var _utils = require("./../components/viewer2d/utils");
32
34
  var _convertUnitsLite = require("./convert-units-lite");
33
35
  var _math = require("./math");
34
36
  var _awsSdk = _interopRequireDefault(require("aws-sdk"));
37
+ var _export = require("./export");
35
38
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
36
39
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
37
40
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -422,4 +425,40 @@ function centering2D(state) {
422
425
  });
423
426
  if (viewer2DActions) updateViwer2D(viewer, viewer2DActions);
424
427
  return state;
428
+ }
429
+ function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
430
+ var pointArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
431
+ if (isEmpty(currentObject)) return null;
432
+ var updatedPayload = currentObject.toJS();
433
+ if (isEmpty(layer) || isEmpty(catalog)) return updatedPayload;
434
+ if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'lines') {
435
+ // caculating length of selected line//
436
+ var v_a = layer.vertices.get(currentObject.vertices.get(0));
437
+ var v_b = layer.vertices.get(currentObject.vertices.get(1));
438
+ var distance = _export.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
439
+ var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to(layer.unit);
440
+ updatedPayload.length = _length;
441
+ //////////////////////////////////////
442
+ } else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
443
+ var _catalog$elements$cur;
444
+ // check this cabinet has warning box
445
+ updatedPayload.isWarning = (0, _utils.isWarningItem)(currentObject);
446
+ // check this item is available molding
447
+ updatedPayload.isMoldingAvailable = _export.MoldingUtils.isEnableItemForMolding(layer, currentObject);
448
+ // check this item is snapped to wall
449
+ updatedPayload.isAttachedWall = _export.MoldingUtils.isAttachedWall(layer, currentObject);
450
+ // update distArray
451
+ if (pointArray) updatedPayload.distArray = pointArray;
452
+
453
+ // update sku_number using sku_array
454
+ var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
455
+ 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;
456
+ var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
457
+ return sku.door_color_id === currentDoorColorId;
458
+ });
459
+ if (correctSKU) {
460
+ updatedPayload.sku_number = correctSKU.sku;
461
+ }
462
+ }
463
+ return updatedPayload;
425
464
  }