kitchen-simulator 5.0.0-test.4 → 5.0.0-test.5

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 (406) hide show
  1. package/package.json +1 -2
  2. package/src/@history.js +0 -3
  3. package/src/AppContext.js +0 -5
  4. package/src/KitchenConfigurator.jsx +0 -1517
  5. package/src/KitchenConfiguratorApp.jsx +0 -443
  6. package/src/actions/area-actions.js +0 -15
  7. package/src/actions/export.js +0 -38
  8. package/src/actions/groups-actions.js +0 -102
  9. package/src/actions/holes-actions.js +0 -152
  10. package/src/actions/items-actions.js +0 -393
  11. package/src/actions/lines-actions.js +0 -103
  12. package/src/actions/project-actions.js +0 -391
  13. package/src/actions/scene-actions.js +0 -44
  14. package/src/actions/user-actions.js +0 -75
  15. package/src/actions/vertices-actions.js +0 -34
  16. package/src/actions/viewer2d-actions.js +0 -79
  17. package/src/actions/viewer3d-actions.js +0 -32
  18. package/src/catalog/areas/area/planner-element.jsx +0 -43
  19. package/src/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  20. package/src/catalog/areas/area/textures/grass.jpg +0 -0
  21. package/src/catalog/areas/area/textures/parquet.jpg +0 -0
  22. package/src/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  23. package/src/catalog/areas/area/textures/tile1.jpg +0 -0
  24. package/src/catalog/back.png +0 -0
  25. package/src/catalog/catalog.js +0 -258
  26. package/src/catalog/doors.png +0 -0
  27. package/src/catalog/doorways.png +0 -0
  28. package/src/catalog/envMap/nx.hdr +0 -0
  29. package/src/catalog/envMap/ny.hdr +0 -0
  30. package/src/catalog/envMap/nz.hdr +0 -0
  31. package/src/catalog/envMap/px.hdr +0 -0
  32. package/src/catalog/envMap/py.hdr +0 -0
  33. package/src/catalog/envMap/pz.hdr +0 -0
  34. package/src/catalog/factories/area-factory-3d.js +0 -252
  35. package/src/catalog/factories/area-factory.jsx +0 -102
  36. package/src/catalog/factories/export.js +0 -9
  37. package/src/catalog/factories/wall-factory-3d.js +0 -296
  38. package/src/catalog/factories/wall-factory.jsx +0 -321
  39. package/src/catalog/holes/door-closet/planner-element.jsx +0 -251
  40. package/src/catalog/holes/door-double/door_double.png +0 -0
  41. package/src/catalog/holes/door-double/planner-element.jsx +0 -391
  42. package/src/catalog/holes/door-exterior/planner-element.jsx +0 -245
  43. package/src/catalog/holes/door-interior/planner-element.jsx +0 -256
  44. package/src/catalog/holes/door-panic/panicDoor.png +0 -0
  45. package/src/catalog/holes/door-panic/planner-element.jsx +0 -594
  46. package/src/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  47. package/src/catalog/holes/door-panic-double/planner-element.jsx +0 -574
  48. package/src/catalog/holes/door-sliding/planner-element.jsx +0 -256
  49. package/src/catalog/holes/doorway-framed/planner-element.jsx +0 -169
  50. package/src/catalog/holes/doorway-frameless/planner-element.jsx +0 -116
  51. package/src/catalog/holes/gate/gate.jpg +0 -0
  52. package/src/catalog/holes/window-clear/planner-element.jsx +0 -181
  53. package/src/catalog/holes/window-clear/texture.png +0 -0
  54. package/src/catalog/holes/window-cross/planner-element.jsx +0 -180
  55. package/src/catalog/holes/window-cross/texture.png +0 -0
  56. package/src/catalog/holes/window-double-hung/planner-element.jsx +0 -366
  57. package/src/catalog/holes/window-double-hung/texture.png +0 -0
  58. package/src/catalog/holes/window-vertical/planner-element.jsx +0 -290
  59. package/src/catalog/holes/window-vertical/texture.png +0 -0
  60. package/src/catalog/lines/wall/planner-element.jsx +0 -73
  61. package/src/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  62. package/src/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  63. package/src/catalog/lines/wall/textures/bricks.jpg +0 -0
  64. package/src/catalog/lines/wall/textures/bricks2.jpg +0 -0
  65. package/src/catalog/lines/wall/textures/bricks3.jpg +0 -0
  66. package/src/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  67. package/src/catalog/lines/wall/textures/morden.jpg +0 -0
  68. package/src/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  69. package/src/catalog/lines/wall/textures/painted.jpg +0 -0
  70. package/src/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  71. package/src/catalog/lines/wall/textures/plaster.jpg +0 -0
  72. package/src/catalog/lines/wall/wall.png +0 -0
  73. package/src/catalog/molding/molding-dcm/planner-element.jsx +0 -35
  74. package/src/catalog/molding/molding-dcm/texture.png +0 -0
  75. package/src/catalog/molding/molding-fbm/planner-element.jsx +0 -35
  76. package/src/catalog/molding/molding-fbm/texture.png +0 -0
  77. package/src/catalog/molding/molding-lrm/planner-element.jsx +0 -35
  78. package/src/catalog/molding/molding-lrm/texture.png +0 -0
  79. package/src/catalog/properties/export.js +0 -33
  80. package/src/catalog/properties/property-checkbox.jsx +0 -123
  81. package/src/catalog/properties/property-color.jsx +0 -52
  82. package/src/catalog/properties/property-enum.jsx +0 -87
  83. package/src/catalog/properties/property-hidden.jsx +0 -22
  84. package/src/catalog/properties/property-lenght-measure.jsx +0 -113
  85. package/src/catalog/properties/property-length-measure.jsx +0 -129
  86. package/src/catalog/properties/property-length-measure_hole.jsx +0 -110
  87. package/src/catalog/properties/property-number.jsx +0 -63
  88. package/src/catalog/properties/property-read-only.jsx +0 -37
  89. package/src/catalog/properties/property-string.jsx +0 -59
  90. package/src/catalog/properties/property-toggle.jsx +0 -51
  91. package/src/catalog/properties/shared-property-style.js +0 -13
  92. package/src/catalog/utils/FuseUtils.js +0 -61
  93. package/src/catalog/utils/exporter.js +0 -173
  94. package/src/catalog/utils/geom-utils.js +0 -301
  95. package/src/catalog/utils/item-loader.jsx +0 -2122
  96. package/src/catalog/utils/load-obj.js +0 -113
  97. package/src/catalog/utils/mtl-loader.js +0 -462
  98. package/src/catalog/utils/obj-loader.js +0 -544
  99. package/src/catalog/windows.png +0 -0
  100. package/src/class/FuseUtils.js +0 -61
  101. package/src/class/area.js +0 -159
  102. package/src/class/export.js +0 -37
  103. package/src/class/group.js +0 -565
  104. package/src/class/guide.js +0 -44
  105. package/src/class/hole.js +0 -1359
  106. package/src/class/item.js +0 -2050
  107. package/src/class/layer.js +0 -926
  108. package/src/class/line.js +0 -1780
  109. package/src/class/project.js +0 -875
  110. package/src/class/vertex.js +0 -409
  111. package/src/components/atoms/Snackbar/index.jsx +0 -43
  112. package/src/components/atoms/radio-button/index.jsx +0 -20
  113. package/src/components/atoms/radio-button/styles.js +0 -56
  114. package/src/components/button/MainButton.jsx +0 -157
  115. package/src/components/button/ToggleMeasureButton.jsx +0 -65
  116. package/src/components/catalog-view/catalog-breadcrumb.jsx +0 -53
  117. package/src/components/catalog-view/catalog-item.jsx +0 -229
  118. package/src/components/catalog-view/catalog-list.jsx +0 -173
  119. package/src/components/catalog-view/catalog-page-item.jsx +0 -110
  120. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +0 -80
  121. package/src/components/configurator/custom-configurator.jsx +0 -77
  122. package/src/components/configurator/project-configurator.jsx +0 -120
  123. package/src/components/content.jsx +0 -136
  124. package/src/components/export.js +0 -36
  125. package/src/components/firstsetting/button/styles.js +0 -223
  126. package/src/components/firstsetting/export.js +0 -9
  127. package/src/components/firstsetting/firstsetting-content-button.jsx +0 -198
  128. package/src/components/firstsetting/firstsetting-toggle-button.jsx +0 -101
  129. package/src/components/firstsetting/firstsetting.jsx +0 -814
  130. package/src/components/footerbar/button/ControlButton.jsx +0 -43
  131. package/src/components/footerbar/button/DirectionButton.jsx +0 -54
  132. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +0 -36
  133. package/src/components/footerbar/button/ToggleButton.jsx +0 -58
  134. package/src/components/footerbar/button/ToggleConvertButton.jsx +0 -48
  135. package/src/components/footerbar/button/ToggleMeasureButton.jsx +0 -33
  136. package/src/components/footerbar/button/styles.js +0 -217
  137. package/src/components/footerbar/export.js +0 -9
  138. package/src/components/footerbar/footer-content-button.jsx +0 -198
  139. package/src/components/footerbar/footer-toggle-button.jsx +0 -101
  140. package/src/components/footerbar/footerbar.jsx +0 -1103
  141. package/src/components/footerbar/styles.js +0 -263
  142. package/src/components/header/button/MenuButton.jsx +0 -46
  143. package/src/components/header/button/SaveButton.jsx +0 -54
  144. package/src/components/header/button/styles.js +0 -181
  145. package/src/components/header/export.js +0 -5
  146. package/src/components/header/header.jsx +0 -631
  147. package/src/components/header/header.style.css +0 -47
  148. package/src/components/header/styles.js +0 -320
  149. package/src/components/login/Login.js +0 -77
  150. package/src/components/login/LoginForm/index.js +0 -108
  151. package/src/components/login/Register.js +0 -83
  152. package/src/components/login/RegisterForm/index.js +0 -171
  153. package/src/components/login/jwtService.js +0 -201
  154. package/src/components/login/style.css +0 -158
  155. package/src/components/login/style.scss +0 -260
  156. package/src/components/molecules/slider/index.jsx +0 -15
  157. package/src/components/molecules/slider/styles.js +0 -0
  158. package/src/components/molecules/slider/styles.scss +0 -3
  159. package/src/components/myprojects/export.js +0 -5
  160. package/src/components/myprojects/index.jsx +0 -445
  161. package/src/components/myprojects/styles.js +0 -241
  162. package/src/components/sidebar/custom-accordion.jsx +0 -48
  163. package/src/components/sidebar/export.js +0 -15
  164. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +0 -73
  165. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +0 -101
  166. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +0 -149
  167. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +0 -316
  168. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +0 -108
  169. package/src/components/sidebar/panel-element-editor/element-editor.jsx +0 -1070
  170. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  171. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +0 -104
  172. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +0 -155
  173. package/src/components/sidebar/panel-group-editor.jsx +0 -272
  174. package/src/components/sidebar/panel-groups.jsx +0 -310
  175. package/src/components/sidebar/panel-guides.jsx +0 -192
  176. package/src/components/sidebar/panel-layer-elements.jsx +0 -298
  177. package/src/components/sidebar/panel-layers.jsx +0 -381
  178. package/src/components/sidebar/panel.jsx +0 -71
  179. package/src/components/sidebar/sidebar.jsx +0 -106
  180. package/src/components/sidebar/toolbar-panel.jsx +0 -139
  181. package/src/components/sign/export.js +0 -7
  182. package/src/components/sign/main/index.jsx +0 -523
  183. package/src/components/sign/main/styles.js +0 -163
  184. package/src/components/style/button.jsx +0 -95
  185. package/src/components/style/cancel-button.jsx +0 -20
  186. package/src/components/style/content-container.jsx +0 -29
  187. package/src/components/style/content-title.jsx +0 -20
  188. package/src/components/style/delete-button.jsx +0 -23
  189. package/src/components/style/export.jsx +0 -48
  190. package/src/components/style/form-block.jsx +0 -13
  191. package/src/components/style/form-color-input.jsx +0 -27
  192. package/src/components/style/form-label.jsx +0 -15
  193. package/src/components/style/form-number-input.jsx +0 -196
  194. package/src/components/style/form-number-input_2.jsx +0 -191
  195. package/src/components/style/form-select.jsx +0 -38
  196. package/src/components/style/form-slider.jsx +0 -36
  197. package/src/components/style/form-submit-button.jsx +0 -23
  198. package/src/components/style/form-text-input.jsx +0 -65
  199. package/src/components/toolbar/button/ControlButton.jsx +0 -41
  200. package/src/components/toolbar/button/DirectionButton.jsx +0 -34
  201. package/src/components/toolbar/button/RightButton.jsx +0 -103
  202. package/src/components/toolbar/button/ToggleButton.jsx +0 -41
  203. package/src/components/toolbar/button/index.jsx +0 -55
  204. package/src/components/toolbar/button/styles.js +0 -127
  205. package/src/components/toolbar/components/DoorStyleMenu.jsx +0 -103
  206. package/src/components/toolbar/components/Pricing.jsx +0 -126
  207. package/src/components/toolbar/components/ReviewForQuote.jsx +0 -635
  208. package/src/components/toolbar/export.js +0 -21
  209. package/src/components/toolbar/main/Alert.js +0 -122
  210. package/src/components/toolbar/main/TakePictureModal.jsx +0 -104
  211. package/src/components/toolbar/main/confirm-popup.jsx +0 -99
  212. package/src/components/toolbar/main/index.jsx +0 -5687
  213. package/src/components/toolbar/main/lShaped.json +0 -311
  214. package/src/components/toolbar/main/longNarrow.json +0 -238
  215. package/src/components/toolbar/main/myComponents.js +0 -123
  216. package/src/components/toolbar/main/oRectangle.json +0 -220
  217. package/src/components/toolbar/main/rectangle.json +0 -238
  218. package/src/components/toolbar/main/style.css +0 -107
  219. package/src/components/toolbar/main/styles.js +0 -696
  220. package/src/components/toolbar/plugin-item.jsx +0 -123
  221. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +0 -73
  222. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +0 -102
  223. package/src/components/toolbar/popup/appliance/index.jsx +0 -83
  224. package/src/components/toolbar/popup/autosaveprompt/index.jsx +0 -150
  225. package/src/components/toolbar/popup/autosaveprompt/styles.css +0 -64
  226. package/src/components/toolbar/popup/autosaveprompt/styles.js +0 -40
  227. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +0 -73
  228. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +0 -119
  229. package/src/components/toolbar/popup/cabinet/index.jsx +0 -85
  230. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +0 -63
  231. package/src/components/toolbar/popup/doorStyle/index.jsx +0 -71
  232. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +0 -139
  233. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -2
  234. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +0 -157
  235. package/src/components/toolbar/popup/downloadsummary/index.jsx +0 -643
  236. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +0 -51
  237. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +0 -175
  238. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +0 -283
  239. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +0 -2257
  240. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -93
  241. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +0 -132
  242. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +0 -2198
  243. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +0 -152
  244. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +0 -149
  245. package/src/components/toolbar/popup/downloadsummary/styles.css +0 -177
  246. package/src/components/toolbar/popup/downloadsummary/styles.js +0 -453
  247. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +0 -34
  248. package/src/components/toolbar/popup/finishingtouch/index.jsx +0 -58
  249. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +0 -112
  250. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +0 -116
  251. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +0 -101
  252. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +0 -254
  253. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
  254. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
  255. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
  256. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
  257. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -86
  258. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +0 -109
  259. package/src/components/toolbar/popup/floorplan/index.jsx +0 -60
  260. package/src/components/toolbar/popup/index.jsx +0 -241
  261. package/src/components/toolbar/popup/newproject/index.jsx +0 -59
  262. package/src/components/toolbar/popup/newproject/styles.css +0 -64
  263. package/src/components/toolbar/popup/newproject/styles.js +0 -41
  264. package/src/components/toolbar/popup/product/appliance.jsx +0 -54
  265. package/src/components/toolbar/popup/product/cabinetproduct.jsx +0 -15
  266. package/src/components/toolbar/popup/product/doorstyle.jsx +0 -58
  267. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +0 -47
  268. package/src/components/toolbar/popup/product/floor.jsx +0 -36
  269. package/src/components/toolbar/popup/product/floorproduct.jsx +0 -42
  270. package/src/components/toolbar/popup/product/index.jsx +0 -36
  271. package/src/components/toolbar/popup/product/primary.jsx +0 -77
  272. package/src/components/toolbar/popup/product/productline.jsx +0 -93
  273. package/src/components/toolbar/popup/product/reviewItem.jsx +0 -427
  274. package/src/components/toolbar/popup/product/reviewMolding.jsx +0 -310
  275. package/src/components/toolbar/popup/product/style.css +0 -54
  276. package/src/components/toolbar/popup/product/styles.js +0 -260
  277. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +0 -146
  278. package/src/components/toolbar/popup/savedesign/index.jsx +0 -495
  279. package/src/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
  280. package/src/components/toolbar/popup/savedesign/styles.js +0 -151
  281. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +0 -87
  282. package/src/components/toolbar/popup/styles.js +0 -909
  283. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +0 -192
  284. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +0 -96
  285. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +0 -54
  286. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +0 -25
  287. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +0 -116
  288. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -38
  289. package/src/components/toolbar/popup/submitforquote/index.jsx +0 -698
  290. package/src/components/toolbar/popup/submitforquote/styles.css +0 -105
  291. package/src/components/toolbar/popup/submitforquote/styles.js +0 -294
  292. package/src/components/toolbar/popup/submitprompt/index.jsx +0 -89
  293. package/src/components/toolbar/popup/submitprompt/styles.css +0 -64
  294. package/src/components/toolbar/popup/submitprompt/styles.js +0 -42
  295. package/src/components/toolbar/toolbar-button.jsx +0 -90
  296. package/src/components/toolbar/toolbar-load-button.jsx +0 -36
  297. package/src/components/toolbar/toolbar-save-button.jsx +0 -32
  298. package/src/components/tutorial-view/Modal.jsx +0 -584
  299. package/src/components/tutorial-view/style.css +0 -111
  300. package/src/components/tutorial-view/styles.js +0 -65
  301. package/src/components/viewer2d/area.jsx +0 -98
  302. package/src/components/viewer2d/export.js +0 -48
  303. package/src/components/viewer2d/grids/grid-horizontal-streak.jsx +0 -40
  304. package/src/components/viewer2d/grids/grid-streak.jsx +0 -32
  305. package/src/components/viewer2d/grids/grid-vertical-streak.jsx +0 -41
  306. package/src/components/viewer2d/grids/grids.jsx +0 -30
  307. package/src/components/viewer2d/group.jsx +0 -57
  308. package/src/components/viewer2d/item.jsx +0 -618
  309. package/src/components/viewer2d/layer.jsx +0 -214
  310. package/src/components/viewer2d/line.jsx +0 -1358
  311. package/src/components/viewer2d/ruler.jsx +0 -136
  312. package/src/components/viewer2d/rulerDist.jsx +0 -192
  313. package/src/components/viewer2d/rulerX.jsx +0 -141
  314. package/src/components/viewer2d/rulerY.jsx +0 -138
  315. package/src/components/viewer2d/scene.jsx +0 -94
  316. package/src/components/viewer2d/snap.jsx +0 -118
  317. package/src/components/viewer2d/state.jsx +0 -77
  318. package/src/components/viewer2d/utils.js +0 -195
  319. package/src/components/viewer2d/vertex.jsx +0 -76
  320. package/src/components/viewer2d/viewer2d.jsx +0 -1830
  321. package/src/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -3078
  322. package/src/components/viewer3d/dcm.js +0 -226
  323. package/src/components/viewer3d/fbm.js +0 -383
  324. package/src/components/viewer3d/front3D.jsx +0 -63
  325. package/src/components/viewer3d/grid-creator.js +0 -25
  326. package/src/components/viewer3d/grids/grid-horizontal-streak.js +0 -41
  327. package/src/components/viewer3d/grids/grid-streak.js +0 -34
  328. package/src/components/viewer3d/grids/grid-vertical-streak.js +0 -42
  329. package/src/components/viewer3d/libs/first-person-controls.js +0 -70
  330. package/src/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1265
  331. package/src/components/viewer3d/libs/mtl-loader.js +0 -462
  332. package/src/components/viewer3d/libs/obj-loader.js +0 -653
  333. package/src/components/viewer3d/libs/orbit-controls.js +0 -945
  334. package/src/components/viewer3d/libs/pointer-lock-controls.js +0 -67
  335. package/src/components/viewer3d/lrm.js +0 -358
  336. package/src/components/viewer3d/model.js +0 -830
  337. package/src/components/viewer3d/pointer-lock-navigation.js +0 -140
  338. package/src/components/viewer3d/ruler-utils/itemRect.jsx +0 -91
  339. package/src/components/viewer3d/ruler-utils/layer3D.jsx +0 -528
  340. package/src/components/viewer3d/ruler-utils/ruler3D.jsx +0 -218
  341. package/src/components/viewer3d/ruler-utils/scene3D.jsx +0 -87
  342. package/src/components/viewer3d/ruler-utils/state3D.jsx +0 -25
  343. package/src/components/viewer3d/scene-creator.js +0 -5172
  344. package/src/components/viewer3d/three-memory-cleaner.js +0 -65
  345. package/src/components/viewer3d/viewer3d-first-person.js +0 -395
  346. package/src/components/viewer3d/viewer3d.js +0 -3376
  347. package/src/components/wizardstep/button/styles.js +0 -677
  348. package/src/components/wizardstep/export.js +0 -5
  349. package/src/components/wizardstep/index.jsx +0 -1372
  350. package/src/components/wizardstep/styles.js +0 -688
  351. package/src/components/wizardstep/wizardstep-content-button.jsx +0 -198
  352. package/src/components/wizardstep/wizardstep-toggle-button.jsx +0 -101
  353. package/src/constants.js +0 -731
  354. package/src/hooks/useCheckCart.js +0 -38
  355. package/src/hooks/useGetPricesBySku.js +0 -59
  356. package/src/hooks/useValidateToken.js +0 -181
  357. package/src/index.js +0 -32
  358. package/src/models.js +0 -541
  359. package/src/plugins/SVGLoader.js +0 -1991
  360. package/src/plugins/autosave.js +0 -39
  361. package/src/plugins/console-debugger.js +0 -36
  362. package/src/plugins/export.js +0 -11
  363. package/src/plugins/keyboard.js +0 -194
  364. package/src/reducers/areas-reducer.js +0 -13
  365. package/src/reducers/export.js +0 -39
  366. package/src/reducers/groups-reducer.js +0 -73
  367. package/src/reducers/holes-reducer.js +0 -125
  368. package/src/reducers/items-reducer.js +0 -286
  369. package/src/reducers/lines-reducer.js +0 -96
  370. package/src/reducers/project-reducer.js +0 -239
  371. package/src/reducers/reducer.js +0 -59
  372. package/src/reducers/scene-reducer.js +0 -41
  373. package/src/reducers/user-reducer.js +0 -30
  374. package/src/reducers/vertices-reducer.js +0 -34
  375. package/src/reducers/viewer2d-reducer.js +0 -81
  376. package/src/reducers/viewer3d-reducer.js +0 -65
  377. package/src/shared-style.js +0 -72
  378. package/src/styles/export.js +0 -7
  379. package/src/styles/tabs.css +0 -40
  380. package/src/translator/en.js +0 -106
  381. package/src/translator/it.js +0 -80
  382. package/src/translator/ru.js +0 -80
  383. package/src/translator/translator.js +0 -81
  384. package/src/utils/browser.js +0 -36
  385. package/src/utils/email-validator.js +0 -5
  386. package/src/utils/export.js +0 -39
  387. package/src/utils/geometry.js +0 -2572
  388. package/src/utils/get-edges-of-subgraphs.js +0 -29
  389. package/src/utils/graph-cycles.js +0 -259
  390. package/src/utils/graph-inner-cycles.js +0 -49
  391. package/src/utils/graph.js +0 -147
  392. package/src/utils/helper.js +0 -431
  393. package/src/utils/history.js +0 -37
  394. package/src/utils/id-broker.js +0 -9
  395. package/src/utils/logger.js +0 -8
  396. package/src/utils/math.js +0 -51
  397. package/src/utils/molding.js +0 -973
  398. package/src/utils/name-generator.js +0 -5
  399. package/src/utils/objects-utils.js +0 -56
  400. package/src/utils/phone-validator.js +0 -4
  401. package/src/utils/process-black-list.js +0 -10
  402. package/src/utils/react-if.jsx +0 -20
  403. package/src/utils/snap-scene.js +0 -102
  404. package/src/utils/snap.js +0 -184
  405. package/src/utils/threeCSG.es6.js +0 -578
  406. package/src/version.js +0 -1
@@ -1,1358 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { GeometryUtils } from '../../utils/export';
4
- import Ruler from './ruler';
5
- import {
6
- BASE_CABINET_LAYOUTPOS,
7
- LINE_THICKNESS,
8
- WALL_CABINET_LAYOUTPOS
9
- } from '../../../src/constants';
10
- import * as Three from 'three';
11
- import { isEmpty } from './utils';
12
- import Tooltip from '@material-ui/core/Tooltip';
13
-
14
- const STYLE = {
15
- stroke: 'rgb(77, 77, 77)',
16
- strokeWidth: '1px'
17
- };
18
- const STYLE_ANGLE = {
19
- stroke: 'rgb(77, 77, 77)',
20
- strokeWidth: 1,
21
- strokeLinecap: 'round',
22
- strokeLinejoin: 'round',
23
- strokeMiterlimit: 2.613,
24
- fill: 'transparent'
25
- };
26
- const STYLE_TEXT = {
27
- textAnchor: 'middle',
28
- fontSize: '7px',
29
- fontWeight: 'middle',
30
- fontFamily: "'Microsoft YaHei UI', Courier, monospace"
31
- };
32
-
33
- export function compareVertices(v0, v1) {
34
- return v0.x === v1.x ? v0.y - v1.y : v0.x - v1.x;
35
- }
36
-
37
- export default function Line({
38
- line,
39
- allLine,
40
- layer,
41
- scene,
42
- num,
43
- catalog,
44
- state,
45
- relatedLines
46
- }) {
47
- let {
48
- showWallLengthMeasure,
49
- showWallCabinetMeasure,
50
- showBaseCabinetMeasure,
51
- showWindowDoorMeasure
52
- } = scene;
53
- if (!catalog.getElement(line.type)) {
54
- return null;
55
- }
56
-
57
- let vertex0 = layer.vertices.get(line.vertices.get(0));
58
- let vertex1 = layer.vertices.get(line.vertices.get(1));
59
- if (vertex0.id === vertex1.id || GeometryUtils.samePoints(vertex0, vertex1))
60
- return null; //avoid 0-length lines
61
- let { x: x1, y: y1 } = vertex0;
62
- let { x: x2, y: y2 } = vertex1;
63
- let relatedvertice0x, relatedvertice0y, relatedvertice1x, relatedvertice1y;
64
- // relatedvertice0x = relatedVertice.point.x;
65
- // relatedvertice0y = relatedVertice.point.y;
66
- line.relatedVertices.forEach(relatedVertice => {
67
- if (relatedVertice.index == undefined)
68
- relatedVertice = relatedVertice.toJSON();
69
- if (relatedVertice.index == 0) {
70
- relatedvertice0x = relatedVertice.point.x;
71
- relatedvertice0y = relatedVertice.point.y;
72
- } else {
73
- relatedvertice1x = relatedVertice.point.x;
74
- relatedvertice1y = relatedVertice.point.y;
75
- }
76
- });
77
-
78
- let thickness = LINE_THICKNESS;
79
- let half_thickness = thickness / 2;
80
- // if (compareVertices(vertex0, vertex1) >= 0 && vertex0.x !== vertex1.x) {
81
- // ({ x: x1, y: y1 } = vertex1);
82
- // ({ x: x2, y: y2 } = vertex0);
83
- // }
84
-
85
- let length = GeometryUtils.pointsDistance(x1, y1, x2, y2);
86
- // let length = GeometryUtils.pointsDistance(relatedvertice0x,relatedvertice0y,relatedvertice1x,relatedvertice1y);
87
- let rightHoleLength, leftHoleLength, holeLength;
88
- let angle = GeometryUtils.angleBetweenTwoPointsAndOrigin(x1, y1, x2, y2);
89
- let baseSpace = 20;
90
- let base_item = GeometryUtils.getAllItemSpecified(
91
- scene,
92
- catalog,
93
- BASE_CABINET_LAYOUTPOS
94
- );
95
- // let relatedLines = [];
96
- let angleVertices = [];
97
- let layerID = state.getIn(['scene', 'selectedLayer']);
98
- let drawingLineID = state
99
- .getIn(['scene', 'layers', layerID, 'selected', 'lines'])
100
- ?.toJS();
101
- if (!isEmpty(drawingLineID)) {
102
- let drawingLine = state
103
- .getIn(['scene', 'layers', layerID, 'lines', drawingLineID[0]])
104
- .toJS();
105
- let allLines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
106
- let allLinesArray = state
107
- .getIn(['scene', 'layers', layerID, 'lines'])
108
- .toArray();
109
- let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
110
- let reget = false;
111
- relatedLines.forEach(relLine => {
112
- if (!allLinesArray.some(alLine => alLine.id === relLine.id)) {
113
- reget = true;
114
- }
115
- });
116
- if (reget) {
117
- relatedLines = [];
118
- GeometryUtils.getRelatedLines(
119
- relatedLines,
120
- drawingLine,
121
- vertices,
122
- allLines
123
- );
124
- }
125
- // get the angle of two lines and check the angle.
126
- if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
127
- relatedLines.forEach(line => {
128
- // get the points of two lines(drawing line and related line)
129
- // the first value is overlapped point of two lines as a center of angle.
130
- if (!isEmpty(line)) {
131
- let points = [];
132
- let anglePoints = [];
133
- line.vertices.forEach(vt => {
134
- if (drawingLine.vertices.some(dvt => dvt === vt)) {
135
- points.push(vt);
136
- }
137
- });
138
- line.vertices.forEach(vt => {
139
- if (!points.some(pt => pt === vt)) {
140
- points.push(vt);
141
- }
142
- });
143
- drawingLine.vertices.forEach(vt => {
144
- if (!points.some(pt => pt === vt)) {
145
- points.push(vt);
146
- }
147
- });
148
- if (points.length < 3) {
149
- points.push(points[points.length - 1]);
150
- }
151
- points.forEach(point => anglePoints.push(vertices[point]));
152
- angleVertices.push(anglePoints);
153
- }
154
- });
155
- }
156
- }
157
- const l2 = { x: x1, y: y1 };
158
- const l3 = { x: x2, y: y2 };
159
- const isSnapped = itemRect => {
160
- const r0 = itemRect.rect[0];
161
- const r1 = itemRect.rect[1];
162
- const r2 = itemRect.rect[2];
163
- const r3 = itemRect.rect[3];
164
- let delta23 =
165
- GeometryUtils.verticesDistance(l2, r3) +
166
- GeometryUtils.verticesDistance(r3, r2) +
167
- GeometryUtils.verticesDistance(r2, l3) -
168
- GeometryUtils.verticesDistance(l3, l2);
169
- if (delta23 < 0.1) {
170
- return true;
171
- } else {
172
- return false;
173
- }
174
- };
175
- // base cabinet
176
- let baseRuler = [];
177
- let base_posArray = [];
178
- if (base_item.cur) {
179
- base_item.others.push(base_item.cur);
180
- }
181
- base_item.others.forEach(itemRect => {
182
- const r2 = itemRect.rect[2];
183
- const r3 = itemRect.rect[3];
184
- if (isSnapped(itemRect)) {
185
- base_posArray.push(r2);
186
- base_posArray.push(r3);
187
- }
188
- });
189
- base_posArray.push(l2);
190
- base_posArray.push(l3);
191
- let base_posAndwidth = [];
192
- if (
193
- Math.abs(angle) === 0 ||
194
- Math.abs(angle) === 180 ||
195
- GeometryUtils.almostEqual(y1, y2)
196
- ) {
197
- base_posArray.sort((a, b) => {
198
- return a.x - b.x;
199
- });
200
- if (base_posArray.length > 2) {
201
- for (let index = 0; index < base_posArray.length - 1; index++) {
202
- const element = base_posArray[index];
203
- base_posAndwidth.push({
204
- pos: element,
205
- length: base_posArray[index + 1].x - element.x
206
- });
207
- }
208
- }
209
- } else {
210
- base_posArray.sort((a, b) => {
211
- return a.y - b.y;
212
- });
213
- if (base_posArray.length > 2) {
214
- for (let index = 0; index < base_posArray.length - 1; index++) {
215
- const element = base_posArray[index];
216
- base_posAndwidth.push({
217
- pos: element,
218
- length: Math.abs(
219
- (base_posArray[index + 1].y - element.y) /
220
- Math.sin((angle / 180) * Math.PI)
221
- )
222
- });
223
- }
224
- }
225
- }
226
- if (!showBaseCabinetMeasure || base_posArray.length <= 2) {
227
- baseSpace -= 20;
228
- }
229
- baseRuler = base_posAndwidth.map(pAw => {
230
- if (pAw.length > 1) {
231
- if (
232
- Math.abs(angle) === 0 ||
233
- Math.abs(angle) === 180 ||
234
- GeometryUtils.almostEqual(y1, y2)
235
- ) {
236
- if (x1 - x2 > 0) {
237
- return (
238
- <g>
239
- <line
240
- x1={pAw.pos.x + pAw.length}
241
- y1={pAw.pos.y}
242
- x2={pAw.pos.x + pAw.length}
243
- y2={pAw.pos.y - thickness / 2 - baseSpace}
244
- style={STYLE}
245
- />
246
- <Ruler
247
- key={4}
248
- layer={layer}
249
- unit={scene.unit}
250
- rulerUnit={scene.rulerUnit}
251
- length={pAw.length}
252
- transform={`translate(${pAw.pos.x}, ${
253
- pAw.pos.y - thickness / 2 - baseSpace
254
- } ) rotate(${angle + 180}, 0, 0)`}
255
- />
256
- <line
257
- x1={pAw.pos.x}
258
- y1={pAw.pos.y}
259
- x2={pAw.pos.x}
260
- y2={pAw.pos.y - thickness / 2 - baseSpace}
261
- style={STYLE}
262
- />
263
- </g>
264
- );
265
- } else {
266
- return (
267
- <g>
268
- <line
269
- x1={pAw.pos.x + pAw.length}
270
- y1={pAw.pos.y}
271
- x2={pAw.pos.x + pAw.length}
272
- y2={pAw.pos.y + thickness / 2 + baseSpace}
273
- style={STYLE}
274
- />
275
- <Ruler
276
- key={4}
277
- layer={layer}
278
- unit={scene.unit}
279
- rulerUnit={scene.rulerUnit}
280
- length={pAw.length}
281
- transform={`translate(${pAw.pos.x}, ${
282
- pAw.pos.y + thickness / 2 + baseSpace
283
- } ) rotate(${angle}, 0, 0)`}
284
- />
285
- <line
286
- x1={pAw.pos.x}
287
- y1={pAw.pos.y}
288
- x2={pAw.pos.x}
289
- y2={pAw.pos.y + thickness / 2 + baseSpace}
290
- style={STYLE}
291
- />
292
- </g>
293
- );
294
- }
295
- } else {
296
- if (y1 - y2 > 0) {
297
- if (x1 - x2 < 0 || GeometryUtils.almostEqual(x1, x2)) {
298
- return (
299
- <g>
300
- <line
301
- x1={
302
- pAw.pos.x - pAw.length * Math.cos((angle / 180) * Math.PI)
303
- }
304
- y1={
305
- pAw.pos.y - pAw.length * Math.sin((angle / 180) * Math.PI)
306
- }
307
- x2={
308
- pAw.pos.x -
309
- pAw.length * Math.cos((angle / 180) * Math.PI) -
310
- (thickness / 2 + baseSpace) *
311
- Math.sin((angle / 180) * Math.PI)
312
- }
313
- y2={
314
- pAw.pos.y -
315
- pAw.length * Math.sin((angle / 180) * Math.PI) +
316
- (thickness / 2 + baseSpace) *
317
- Math.cos((angle / 180) * Math.PI)
318
- }
319
- style={STYLE}
320
- />
321
- <Ruler
322
- key={5}
323
- layer={layer}
324
- unit={scene.unit}
325
- rulerUnit={scene.rulerUnit}
326
- length={pAw.length}
327
- transform={`translate(${
328
- pAw.pos.x -
329
- pAw.length * Math.cos((angle / 180) * Math.PI) -
330
- (thickness / 2 + baseSpace) *
331
- Math.sin((angle / 180) * Math.PI)
332
- }, ${
333
- pAw.pos.y -
334
- pAw.length * Math.sin((angle / 180) * Math.PI) +
335
- (thickness / 2 + baseSpace) *
336
- Math.cos((angle / 180) * Math.PI)
337
- } ) rotate(${angle}, 0, 0)`}
338
- />
339
- <line
340
- x1={pAw.pos.x}
341
- y1={pAw.pos.y}
342
- x2={
343
- pAw.pos.x -
344
- (thickness / 2 + baseSpace) *
345
- Math.sin((angle / 180) * Math.PI)
346
- }
347
- y2={
348
- pAw.pos.y +
349
- (thickness / 2 + baseSpace) *
350
- Math.cos((angle / 180) * Math.PI)
351
- }
352
- style={STYLE}
353
- />
354
- </g>
355
- );
356
- } else {
357
- return (
358
- <g>
359
- <line
360
- x1={pAw.pos.x}
361
- y1={pAw.pos.y}
362
- x2={
363
- pAw.pos.x -
364
- (thickness / 2 + baseSpace) *
365
- Math.sin((angle / 180) * Math.PI)
366
- }
367
- y2={
368
- pAw.pos.y +
369
- (thickness / 2 + baseSpace) *
370
- Math.cos((angle / 180) * Math.PI)
371
- }
372
- style={STYLE}
373
- />
374
- <Ruler
375
- key={5}
376
- layer={layer}
377
- unit={scene.unit}
378
- rulerUnit={scene.rulerUnit}
379
- length={pAw.length}
380
- transform={`translate(${
381
- pAw.pos.x -
382
- (thickness / 2 + baseSpace) *
383
- Math.sin((angle / 180) * Math.PI)
384
- }, ${
385
- pAw.pos.y +
386
- (thickness / 2 + baseSpace) *
387
- Math.cos((angle / 180) * Math.PI)
388
- } ) rotate(${angle}, 0, 0) scale(-1, -1)`}
389
- />
390
- <line
391
- x1={
392
- pAw.pos.x - pAw.length * Math.cos((angle / 180) * Math.PI)
393
- }
394
- y1={
395
- pAw.pos.y - pAw.length * Math.sin((angle / 180) * Math.PI)
396
- }
397
- x2={
398
- pAw.pos.x -
399
- pAw.length * Math.cos((angle / 180) * Math.PI) -
400
- (thickness / 2 + baseSpace) *
401
- Math.sin((angle / 180) * Math.PI)
402
- }
403
- y2={
404
- pAw.pos.y -
405
- pAw.length * Math.sin((angle / 180) * Math.PI) +
406
- (thickness / 2 + baseSpace) *
407
- Math.cos((angle / 180) * Math.PI)
408
- }
409
- style={STYLE}
410
- />
411
- </g>
412
- );
413
- }
414
- } else {
415
- if (x1 - x2 < 0 || GeometryUtils.almostEqual(x1, x2)) {
416
- return (
417
- <g>
418
- <line
419
- x1={pAw.pos.x}
420
- y1={pAw.pos.y}
421
- x2={
422
- pAw.pos.x -
423
- (thickness / 2 + baseSpace) *
424
- Math.sin((angle / 180) * Math.PI)
425
- }
426
- y2={
427
- pAw.pos.y +
428
- (thickness / 2 + baseSpace) *
429
- Math.cos((angle / 180) * Math.PI)
430
- }
431
- style={STYLE}
432
- />
433
- <Ruler
434
- key={5}
435
- layer={layer}
436
- unit={scene.unit}
437
- rulerUnit={scene.rulerUnit}
438
- length={pAw.length}
439
- transform={`translate(${
440
- pAw.pos.x -
441
- (thickness / 2 + baseSpace) *
442
- Math.sin((angle / 180) * Math.PI)
443
- }, ${
444
- pAw.pos.y +
445
- (thickness / 2 + baseSpace) *
446
- Math.cos((angle / 180) * Math.PI)
447
- } ) rotate(${angle}, 0, 0)`}
448
- />
449
-
450
- <line
451
- x1={
452
- pAw.pos.x + pAw.length * Math.cos((angle / 180) * Math.PI)
453
- }
454
- y1={
455
- pAw.pos.y + pAw.length * Math.sin((angle / 180) * Math.PI)
456
- }
457
- x2={
458
- pAw.pos.x +
459
- pAw.length * Math.cos((angle / 180) * Math.PI) -
460
- (thickness / 2 + baseSpace) *
461
- Math.sin((angle / 180) * Math.PI)
462
- }
463
- y2={
464
- pAw.pos.y +
465
- pAw.length * Math.sin((angle / 180) * Math.PI) +
466
- (thickness / 2 + baseSpace) *
467
- Math.cos((angle / 180) * Math.PI)
468
- }
469
- style={STYLE}
470
- />
471
- </g>
472
- );
473
- } else {
474
- return (
475
- <g>
476
- <line
477
- x1={
478
- pAw.pos.x + pAw.length * Math.cos((angle / 180) * Math.PI)
479
- }
480
- y1={
481
- pAw.pos.y + pAw.length * Math.sin((angle / 180) * Math.PI)
482
- }
483
- x2={
484
- pAw.pos.x +
485
- pAw.length * Math.cos((angle / 180) * Math.PI) -
486
- (thickness / 2 + baseSpace) *
487
- Math.sin((angle / 180) * Math.PI)
488
- }
489
- y2={
490
- pAw.pos.y +
491
- pAw.length * Math.sin((angle / 180) * Math.PI) +
492
- (thickness / 2 + baseSpace) *
493
- Math.cos((angle / 180) * Math.PI)
494
- }
495
- style={STYLE}
496
- />
497
- <Ruler
498
- key={5}
499
- layer={layer}
500
- unit={scene.unit}
501
- rulerUnit={scene.rulerUnit}
502
- length={pAw.length}
503
- transform={`translate(${
504
- pAw.pos.x +
505
- pAw.length * Math.cos((angle / 180) * Math.PI) -
506
- (thickness / 2 + baseSpace) *
507
- Math.sin((angle / 180) * Math.PI)
508
- }, ${
509
- pAw.pos.y +
510
- pAw.length * Math.sin((angle / 180) * Math.PI) +
511
- (thickness / 2 + baseSpace) *
512
- Math.cos((angle / 180) * Math.PI)
513
- } ) rotate(${angle}, 0, 0) scale(-1, -1)`}
514
- />
515
- <line
516
- x1={pAw.pos.x}
517
- y1={pAw.pos.y}
518
- x2={
519
- pAw.pos.x -
520
- (thickness / 2 + baseSpace) *
521
- Math.sin((angle / 180) * Math.PI)
522
- }
523
- y2={
524
- pAw.pos.y +
525
- (thickness / 2 + baseSpace) *
526
- Math.cos((angle / 180) * Math.PI)
527
- }
528
- style={STYLE}
529
- />
530
- </g>
531
- );
532
- }
533
- }
534
- }
535
- }
536
- });
537
- let doorSpace = baseSpace + 20;
538
- let renderedHoles = line.holes.map(holeID => {
539
- let hole = layer.holes.get(holeID);
540
- if (hole === undefined) {
541
- return '';
542
- }
543
- let startAt = length * hole.offset;
544
-
545
- let renderedHole = catalog
546
- .getElement(hole.type)
547
- .render2D(hole, layer, scene);
548
- return (
549
- <g
550
- key={holeID}
551
- transform={`translate(${startAt}, 3.5)`}
552
- data-element-root
553
- data-prototype={hole.prototype}
554
- data-id={hole.id}
555
- data-selected={hole.selected}
556
- data-layer={layer.id}
557
- >
558
- {renderedHole}
559
- </g>
560
- );
561
- });
562
- let renderedLine = catalog
563
- .getElement(line.type)
564
- .render2D(line, layer, scene, state);
565
- let holeTemp = [];
566
- let renderedRuler = [];
567
- let renderedAllRuler = [];
568
-
569
- if (!line.holes.size || !showWindowDoorMeasure) {
570
- doorSpace -= 20;
571
- }
572
-
573
- let allRuler = [0],
574
- holeData = [];
575
- let lineHoles = line.holes.sortBy(holeID => {
576
- let hole = layer.holes.get(holeID);
577
- return !hole ? 0 : hole.offset;
578
- });
579
- lineHoles.forEach(holeID => {
580
- let hole = layer.holes.get(holeID);
581
- if (hole !== undefined) {
582
- let startAt = length * hole.offset;
583
-
584
- let holeWidth = hole.properties.toJS().width.length;
585
- allRuler.push(startAt - holeWidth / 2);
586
- allRuler.push(startAt + holeWidth / 2);
587
- holeData[`${startAt - holeWidth / 2}_${startAt + holeWidth / 2}`] =
588
- holeID;
589
- }
590
- });
591
- allRuler.push(length);
592
-
593
- // wall cabinet
594
- let wallSpace = doorSpace + 20;
595
- let wall_item = GeometryUtils.getAllItemSpecified(
596
- scene,
597
- catalog,
598
- WALL_CABINET_LAYOUTPOS
599
- );
600
- let wallRuler = [];
601
- let wall_posArray = [];
602
- if (wall_item.cur) {
603
- wall_item.others.push(wall_item.cur);
604
- }
605
- wall_item.others.forEach(itemRect => {
606
- const r2 = itemRect.rect[2];
607
- const r3 = itemRect.rect[3];
608
- if (isSnapped(itemRect)) {
609
- wall_posArray.push(r2);
610
- wall_posArray.push(r3);
611
- }
612
- });
613
- wall_posArray.push(l2);
614
- wall_posArray.push(l3);
615
- let wall_posAndwidth = [];
616
- if (
617
- Math.abs(angle) === 0 ||
618
- Math.abs(angle) === 180 ||
619
- GeometryUtils.almostEqual(y1, y2)
620
- ) {
621
- wall_posArray.sort((a, b) => {
622
- return a.x - b.x;
623
- });
624
- if (wall_posArray.length > 2) {
625
- for (let index = 0; index < wall_posArray.length - 1; index++) {
626
- const element = wall_posArray[index];
627
- wall_posAndwidth.push({
628
- pos: element,
629
- length: wall_posArray[index + 1].x - element.x
630
- });
631
- }
632
- }
633
- } else {
634
- wall_posArray.sort((a, b) => {
635
- return a.y - b.y;
636
- });
637
- if (wall_posArray.length > 2) {
638
- for (let index = 0; index < wall_posArray.length - 1; index++) {
639
- const element = wall_posArray[index];
640
- wall_posAndwidth.push({
641
- pos: element,
642
- length: Math.abs(
643
- (wall_posArray[index + 1].y - element.y) /
644
- Math.sin((angle / 180) * Math.PI)
645
- )
646
- });
647
- }
648
- }
649
- }
650
- if (!showWallCabinetMeasure || wall_posArray.length <= 2) {
651
- wallSpace -= 20;
652
- }
653
- wallRuler = wall_posAndwidth.map(pAw => {
654
- if (pAw.length > 1) {
655
- if (
656
- Math.abs(angle) === 0 ||
657
- Math.abs(angle) === 180 ||
658
- GeometryUtils.almostEqual(y1, y2)
659
- ) {
660
- if (x1 - x2 > 0) {
661
- return (
662
- <g>
663
- <line
664
- x1={pAw.pos.x + pAw.length}
665
- y1={pAw.pos.y}
666
- x2={pAw.pos.x + pAw.length}
667
- y2={pAw.pos.y - thickness / 2 - wallSpace}
668
- style={STYLE}
669
- />
670
- <Ruler
671
- key={4}
672
- layer={layer}
673
- unit={scene.unit}
674
- rulerUnit={scene.rulerUnit}
675
- length={pAw.length}
676
- transform={`translate(${pAw.pos.x}, ${
677
- pAw.pos.y - thickness / 2 - wallSpace
678
- } ) rotate(${angle + 180}, 0, 0)`}
679
- />
680
- <line
681
- x1={pAw.pos.x}
682
- y1={pAw.pos.y}
683
- x2={pAw.pos.x}
684
- y2={pAw.pos.y - thickness / 2 - wallSpace}
685
- style={STYLE}
686
- />
687
- </g>
688
- );
689
- } else {
690
- return (
691
- <g>
692
- <line
693
- x1={pAw.pos.x + pAw.length}
694
- y1={pAw.pos.y}
695
- x2={pAw.pos.x + pAw.length}
696
- y2={pAw.pos.y + thickness / 2 + wallSpace}
697
- style={STYLE}
698
- />
699
- <Ruler
700
- key={4}
701
- layer={layer}
702
- unit={scene.unit}
703
- rulerUnit={scene.rulerUnit}
704
- length={pAw.length}
705
- transform={`translate(${pAw.pos.x}, ${
706
- pAw.pos.y + thickness / 2 + wallSpace
707
- } ) rotate(${angle}, 0, 0)`}
708
- />
709
- <line
710
- x1={pAw.pos.x}
711
- y1={pAw.pos.y}
712
- x2={pAw.pos.x}
713
- y2={pAw.pos.y + thickness / 2 + wallSpace}
714
- style={STYLE}
715
- />
716
- </g>
717
- );
718
- }
719
- } else {
720
- if (y1 - y2 > 0) {
721
- if (x1 - x2 < 0 || GeometryUtils.almostEqual(x1, x2)) {
722
- return (
723
- <g>
724
- <line
725
- x1={
726
- pAw.pos.x - pAw.length * Math.cos((angle / 180) * Math.PI)
727
- }
728
- y1={
729
- pAw.pos.y - pAw.length * Math.sin((angle / 180) * Math.PI)
730
- }
731
- x2={
732
- pAw.pos.x -
733
- pAw.length * Math.cos((angle / 180) * Math.PI) -
734
- (thickness / 2 + wallSpace) *
735
- Math.sin((angle / 180) * Math.PI)
736
- }
737
- y2={
738
- pAw.pos.y -
739
- pAw.length * Math.sin((angle / 180) * Math.PI) +
740
- (thickness / 2 + wallSpace) *
741
- Math.cos((angle / 180) * Math.PI)
742
- }
743
- style={STYLE}
744
- />
745
- <Ruler
746
- key={5}
747
- layer={layer}
748
- unit={scene.unit}
749
- rulerUnit={scene.rulerUnit}
750
- length={pAw.length}
751
- transform={`translate(${
752
- pAw.pos.x -
753
- pAw.length * Math.cos((angle / 180) * Math.PI) -
754
- (thickness / 2 + wallSpace) *
755
- Math.sin((angle / 180) * Math.PI)
756
- }, ${
757
- pAw.pos.y -
758
- pAw.length * Math.sin((angle / 180) * Math.PI) +
759
- (thickness / 2 + wallSpace) *
760
- Math.cos((angle / 180) * Math.PI)
761
- } ) rotate(${angle}, 0, 0)`}
762
- />
763
- <line
764
- x1={pAw.pos.x}
765
- y1={pAw.pos.y}
766
- x2={
767
- pAw.pos.x -
768
- (thickness / 2 + wallSpace) *
769
- Math.sin((angle / 180) * Math.PI)
770
- }
771
- y2={
772
- pAw.pos.y +
773
- (thickness / 2 + wallSpace) *
774
- Math.cos((angle / 180) * Math.PI)
775
- }
776
- style={STYLE}
777
- />
778
- </g>
779
- );
780
- } else {
781
- return (
782
- <g>
783
- <line
784
- x1={pAw.pos.x}
785
- y1={pAw.pos.y}
786
- x2={
787
- pAw.pos.x -
788
- (thickness / 2 + wallSpace) *
789
- Math.sin((angle / 180) * Math.PI)
790
- }
791
- y2={
792
- pAw.pos.y +
793
- (thickness / 2 + wallSpace) *
794
- Math.cos((angle / 180) * Math.PI)
795
- }
796
- style={STYLE}
797
- />
798
- <Ruler
799
- key={5}
800
- layer={layer}
801
- unit={scene.unit}
802
- rulerUnit={scene.rulerUnit}
803
- length={pAw.length}
804
- transform={`translate(${
805
- pAw.pos.x -
806
- (thickness / 2 + wallSpace) *
807
- Math.sin((angle / 180) * Math.PI)
808
- }, ${
809
- pAw.pos.y +
810
- (thickness / 2 + wallSpace) *
811
- Math.cos((angle / 180) * Math.PI)
812
- } ) rotate(${angle}, 0, 0) scale(-1, -1)`}
813
- />
814
- <line
815
- x1={
816
- pAw.pos.x - pAw.length * Math.cos((angle / 180) * Math.PI)
817
- }
818
- y1={
819
- pAw.pos.y - pAw.length * Math.sin((angle / 180) * Math.PI)
820
- }
821
- x2={
822
- pAw.pos.x -
823
- pAw.length * Math.cos((angle / 180) * Math.PI) -
824
- (thickness / 2 + wallSpace) *
825
- Math.sin((angle / 180) * Math.PI)
826
- }
827
- y2={
828
- pAw.pos.y -
829
- pAw.length * Math.sin((angle / 180) * Math.PI) +
830
- (thickness / 2 + wallSpace) *
831
- Math.cos((angle / 180) * Math.PI)
832
- }
833
- style={STYLE}
834
- />
835
- </g>
836
- );
837
- }
838
- } else {
839
- if (x1 - x2 < 0 || GeometryUtils.almostEqual(x1, x2)) {
840
- return (
841
- <g>
842
- <line
843
- x1={pAw.pos.x}
844
- y1={pAw.pos.y}
845
- x2={
846
- pAw.pos.x -
847
- (thickness / 2 + wallSpace) *
848
- Math.sin((angle / 180) * Math.PI)
849
- }
850
- y2={
851
- pAw.pos.y +
852
- (thickness / 2 + wallSpace) *
853
- Math.cos((angle / 180) * Math.PI)
854
- }
855
- style={STYLE}
856
- />
857
- <Ruler
858
- key={5}
859
- layer={layer}
860
- unit={scene.unit}
861
- rulerUnit={scene.rulerUnit}
862
- length={pAw.length}
863
- transform={`translate(${
864
- pAw.pos.x -
865
- (thickness / 2 + wallSpace) *
866
- Math.sin((angle / 180) * Math.PI)
867
- }, ${
868
- pAw.pos.y +
869
- (thickness / 2 + wallSpace) *
870
- Math.cos((angle / 180) * Math.PI)
871
- } ) rotate(${angle}, 0, 0)`}
872
- />
873
- <line
874
- x1={
875
- pAw.pos.x + pAw.length * Math.cos((angle / 180) * Math.PI)
876
- }
877
- y1={
878
- pAw.pos.y + pAw.length * Math.sin((angle / 180) * Math.PI)
879
- }
880
- x2={
881
- pAw.pos.x +
882
- pAw.length * Math.cos((angle / 180) * Math.PI) -
883
- (thickness / 2 + wallSpace) *
884
- Math.sin((angle / 180) * Math.PI)
885
- }
886
- y2={
887
- pAw.pos.y +
888
- pAw.length * Math.sin((angle / 180) * Math.PI) +
889
- (thickness / 2 + wallSpace) *
890
- Math.cos((angle / 180) * Math.PI)
891
- }
892
- style={STYLE}
893
- />
894
- </g>
895
- );
896
- } else {
897
- return (
898
- <g>
899
- <line
900
- x1={
901
- pAw.pos.x + pAw.length * Math.cos((angle / 180) * Math.PI)
902
- }
903
- y1={
904
- pAw.pos.y + pAw.length * Math.sin((angle / 180) * Math.PI)
905
- }
906
- x2={
907
- pAw.pos.x +
908
- pAw.length * Math.cos((angle / 180) * Math.PI) -
909
- (thickness / 2 + wallSpace) *
910
- Math.sin((angle / 180) * Math.PI)
911
- }
912
- y2={
913
- pAw.pos.y +
914
- pAw.length * Math.sin((angle / 180) * Math.PI) +
915
- (thickness / 2 + wallSpace) *
916
- Math.cos((angle / 180) * Math.PI)
917
- }
918
- style={STYLE}
919
- />
920
-
921
- <Ruler
922
- key={5}
923
- layer={layer}
924
- unit={scene.unit}
925
- rulerUnit={scene.rulerUnit}
926
- length={pAw.length}
927
- transform={`translate(${
928
- pAw.pos.x +
929
- pAw.length * Math.cos((angle / 180) * Math.PI) -
930
- (thickness / 2 + wallSpace) *
931
- Math.sin((angle / 180) * Math.PI)
932
- }, ${
933
- pAw.pos.y +
934
- pAw.length * Math.sin((angle / 180) * Math.PI) +
935
- (thickness / 2 + wallSpace) *
936
- Math.cos((angle / 180) * Math.PI)
937
- } ) rotate(${angle}, 0, 0) scale(-1, -1)`}
938
- />
939
- <line
940
- x1={pAw.pos.x}
941
- y1={pAw.pos.y}
942
- x2={
943
- pAw.pos.x -
944
- (thickness / 2 + wallSpace) *
945
- Math.sin((angle / 180) * Math.PI)
946
- }
947
- y2={
948
- pAw.pos.y +
949
- (thickness / 2 + wallSpace) *
950
- Math.cos((angle / 180) * Math.PI)
951
- }
952
- style={STYLE}
953
- />
954
- </g>
955
- );
956
- }
957
- }
958
- }
959
- }
960
- });
961
- let lineSpace = wallSpace + 20;
962
- //the space from the dimensioning line to the top
963
- let lineSpacedimension1 = 5;
964
- //the space from the dimensioning line to the bottom
965
- let lineSpacedimension2 = 15;
966
- if (compareVertices(vertex0, vertex1) >= 0 && vertex0.x !== vertex1.x) {
967
- renderedRuler.push(
968
- <g>
969
- <line
970
- x1={length}
971
- y1={half_thickness + lineSpace + lineSpacedimension1}
972
- x2={length}
973
- y2={half_thickness + lineSpacedimension2}
974
- style={STYLE}
975
- />
976
- <Ruler
977
- key={0}
978
- layer={layer}
979
- unit={scene.unit}
980
- rulerUnit={scene.rulerUnit}
981
- length={length}
982
- transform={`translate(${length}, ${
983
- half_thickness + lineSpace
984
- }) scale(-1, -1)`}
985
- />
986
- <line
987
- x1={0}
988
- y1={half_thickness + lineSpace + lineSpacedimension1}
989
- x2={0}
990
- y2={half_thickness + lineSpacedimension2}
991
- style={STYLE}
992
- />
993
- </g>
994
- );
995
- } else {
996
- renderedRuler.push(
997
- <g>
998
- <line
999
- x1={0}
1000
- y1={half_thickness + lineSpace + lineSpacedimension1}
1001
- x2={0}
1002
- y2={half_thickness + lineSpacedimension2}
1003
- style={STYLE}
1004
- />
1005
- <Ruler
1006
- key={0}
1007
- layer={layer}
1008
- unit={scene.unit}
1009
- rulerUnit={scene.rulerUnit}
1010
- length={length}
1011
- transform={`translate(0, ${half_thickness + lineSpace})`}
1012
- />
1013
- <line
1014
- x1={length}
1015
- y1={half_thickness + lineSpace + lineSpacedimension1}
1016
- x2={length}
1017
- y2={half_thickness + lineSpacedimension2}
1018
- style={STYLE}
1019
- />
1020
- </g>
1021
- );
1022
- }
1023
-
1024
- allRuler.sort((a, b) => a - b);
1025
-
1026
- if (allRuler.length > 2) {
1027
- allRuler.forEach((rulerData, index) => {
1028
- const element = allRuler[index + 1] - allRuler[index];
1029
- if (!Number.isNaN(element)) {
1030
- let dataProtoType = 'ruler';
1031
- let dataId = holeData[`${allRuler[index]}_${allRuler[index + 1]}`];
1032
- if (!dataId) {
1033
- let holeID1 = holeData[`${allRuler[index - 1]}_${allRuler[index]}`];
1034
- let holeID2 =
1035
- holeData[`${allRuler[index + 1]}_${allRuler[index + 2]}`];
1036
- if (holeID1 && holeID2) {
1037
- dataId = `${holeID1},${holeID2}`;
1038
- dataProtoType = 'twoHoleRuler';
1039
- } else if (holeID1) {
1040
- dataId = holeID1;
1041
- dataProtoType = 'rightHoleRuler';
1042
- } else if (holeID2) {
1043
- dataId = holeID2;
1044
- dataProtoType = 'leftHoleRuler';
1045
- }
1046
- } else {
1047
- dataProtoType = 'rulerHole';
1048
- }
1049
- if (compareVertices(vertex0, vertex1) >= 0 && vertex0.x !== vertex1.x) {
1050
- renderedAllRuler.push(
1051
- <g transform={`translate(${x1}, ${y1}) rotate(${angle}, 0, 0)`}>
1052
- <line
1053
- x1={allRuler[index]}
1054
- y1={half_thickness}
1055
- x2={allRuler[index]}
1056
- y2={half_thickness + doorSpace}
1057
- style={STYLE}
1058
- />
1059
- <Ruler
1060
- key={`allRuler_${index}`}
1061
- layer={layer}
1062
- unit={scene.unit}
1063
- rulerUnit={scene.rulerUnit}
1064
- length={element}
1065
- transform={`translate(${allRuler[index] + element}, ${
1066
- half_thickness + doorSpace
1067
- } ) scale(-1, -1)`}
1068
- />
1069
- <line
1070
- x1={allRuler[index] + element}
1071
- y1={half_thickness}
1072
- x2={allRuler[index] + element}
1073
- y2={half_thickness + doorSpace}
1074
- style={STYLE}
1075
- />
1076
- </g>
1077
- );
1078
- } else {
1079
- renderedAllRuler.push(
1080
- <g transform={`translate(${x1}, ${y1}) rotate(${angle}, 0, 0)`}>
1081
- <line
1082
- x1={allRuler[index]}
1083
- y1={half_thickness}
1084
- x2={allRuler[index]}
1085
- y2={half_thickness + doorSpace}
1086
- style={STYLE}
1087
- />
1088
- <Ruler
1089
- key={`allRuler_${index}`}
1090
- layer={layer}
1091
- unit={scene.unit}
1092
- rulerUnit={scene.rulerUnit}
1093
- length={element}
1094
- transform={`translate(${allRuler[index]}, ${
1095
- half_thickness + doorSpace
1096
- } )`}
1097
- />
1098
- <line
1099
- x1={allRuler[index] + element}
1100
- y1={half_thickness}
1101
- x2={allRuler[index] + element}
1102
- y2={half_thickness + doorSpace}
1103
- style={STYLE}
1104
- />
1105
- </g>
1106
- );
1107
- }
1108
- }
1109
- });
1110
- }
1111
- return (
1112
- <g>
1113
- <g
1114
- transform={`translate(${x1}, ${y1}) rotate(${angle}, 0, 0)`}
1115
- data-element-root
1116
- data-prototype={'ruler'}
1117
- data-id={line.id}
1118
- data-selected={line.selected}
1119
- data-layer={layer.id}
1120
- data-length={length}
1121
- >
1122
- {showWallLengthMeasure ? renderedRuler : null}
1123
- </g>
1124
- {/* Show the angle and angle text */}
1125
- {line.selected &&
1126
- angleVertices.map((vertex, index) => {
1127
- let lineGroup = vertex[0].lines;
1128
- let angles = [];
1129
- let thickness = [];
1130
- let vectories = [];
1131
- // get the vector of lines
1132
- lineGroup.forEach(line => {
1133
- line = layer.lines.get(line);
1134
- let vertex0 = layer.vertices.get(line.vertices.get(0));
1135
- let vertex1 = layer.vertices.get(line.vertices.get(1));
1136
- let vec =
1137
- vertex0 === vertex[0]
1138
- ? new Three.Vector2(
1139
- vertex1.x - vertex0.x,
1140
- vertex1.y - vertex0.y
1141
- )
1142
- : new Three.Vector2(
1143
- vertex0.x - vertex1.x,
1144
- vertex0.y - vertex1.y
1145
- );
1146
- let angle = vec.angle();
1147
- let thick = 15;
1148
- angles.push(angle);
1149
- thickness.push(thick);
1150
- vectories.push(vec.normalize());
1151
- });
1152
-
1153
- // calculate the angle between two lines
1154
- let center = new Three.Vector2(vertex[0].x, vertex[0].y);
1155
- let pos1 = new Three.Vector2(vertex[1].x, vertex[1].y);
1156
- let pos2 = new Three.Vector2(vertex[2].x, vertex[2].y);
1157
- let cen = center.clone();
1158
- let pos = pos1.clone();
1159
-
1160
- let vec1 = pos.sub(cen).normalize();
1161
- pos = pos2.clone();
1162
- let vec2 = pos.sub(cen).normalize();
1163
- let v1 = vec1.clone(),
1164
- v2 = vec2.clone();
1165
- let vec = v1.add(v2).normalize();
1166
- let angle = Math.abs(
1167
- Math.floor(
1168
- (vec1.angle() * 180) / Math.PI -
1169
- (vec2.angle() * 180) / Math.PI +
1170
- 0.5
1171
- )
1172
- );
1173
- angle = angle > 180 ? 360 - angle : angle;
1174
-
1175
- let rotDir = vec1.cross(vec2) > 0; // true: rotate CCW, false: rotate CW
1176
-
1177
- // Angle Text Position
1178
-
1179
- let angleTextO = center.clone();
1180
- let textTranslation = vec1
1181
- .clone()
1182
- .add(vec2)
1183
- .normalize()
1184
- .multiplyScalar(25);
1185
- angleTextO.add(textTranslation);
1186
- angleTextO.y -= 5; // half the height of text `angle`
1187
-
1188
- let tx = 0;
1189
- let ty = 0;
1190
-
1191
- vec = vec.multiplyScalar(35);
1192
- vec1 = vec1.multiplyScalar(35);
1193
- let cen1 = center.clone(),
1194
- cen2 = center.clone();
1195
- center = center.add(vec);
1196
-
1197
- pos1 = cen1.add(vec1);
1198
- let rotated = pos1
1199
- .clone()
1200
- .rotateAround(cen2, ((angle / 2.0) * Math.PI) / 180);
1201
- let lines = [];
1202
-
1203
- let t = center.distanceTo(rotated) < 5 ? 1 : -1;
1204
- pos2 = pos1.clone().rotateAround(cen2, (t * angle * Math.PI) / 180);
1205
-
1206
- // Angle SVG Path
1207
- lines.push(
1208
- <path
1209
- style={STYLE_ANGLE}
1210
- d={`
1211
- M ${vertex[0].x},${vertex[0].y} \
1212
- L ${pos1.x},${pos1.y} \
1213
- A 30,30 ${angle} 0 ${t > 0 ? 1 : 0} ${pos2.x},${pos2.y} z
1214
- `}
1215
- />
1216
- );
1217
-
1218
- let length = angle;
1219
- // draw angle and angle text
1220
- return (
1221
- <g
1222
- key={index}
1223
- transform={`translate(${tx}, ${ty})`}
1224
- data-element-root
1225
- data-prototype="angleChange"
1226
- data-layer={layer.id}
1227
- data-selected="true"
1228
- data-id={[vertex[0].id, vertex[1].id, rotDir]}
1229
- data-length={length}
1230
- >
1231
- {lines}
1232
- <text
1233
- transform={`translate(${angleTextO.x}, ${angleTextO.y}) scale(1.5, -1.5)`}
1234
- style={STYLE_TEXT}
1235
- >
1236
- {angle}
1237
- </text>
1238
- <circle
1239
- transform={`translate(${angleTextO.x}, ${angleTextO.y}) translate(10, 9)`}
1240
- fill="transparent"
1241
- stroke="rgb(77, 77, 77)"
1242
- strokeWidth={1}
1243
- r={2}
1244
- ></circle>
1245
- </g>
1246
- );
1247
- })}
1248
- {showWindowDoorMeasure ? renderedAllRuler : null}
1249
- {showBaseCabinetMeasure ? baseRuler : null}
1250
- {showWallCabinetMeasure ? wallRuler : null}
1251
- <g
1252
- data-element-root
1253
- data-prototype={line.prototype}
1254
- data-id={line.id}
1255
- id={line.id}
1256
- data-selected={line.selected}
1257
- data-layer={layer.id}
1258
- style={line.selected ? { cursor: 'move' } : {}}
1259
- >
1260
- {renderedLine}
1261
- <g transform={`translate(${x1}, ${y1}) rotate(${angle}, 0, 0)`}>
1262
- {renderedHoles}
1263
- </g>
1264
- </g>
1265
- {line.selected && (
1266
- <Tooltip title="Elevation View">
1267
- <g
1268
- id={'elevation-button'}
1269
- key={1}
1270
- transform={`translate(${x1 + 35}, ${y1 - 15})`}
1271
- style={{ cursor: 'pointer' }}
1272
- >
1273
- <defs>
1274
- <filter id="shadow">
1275
- <feDropShadow dx="0" dy="0" stdDeviation="0.6"></feDropShadow>
1276
- </filter>
1277
- </defs>
1278
- <rect
1279
- rx="4"
1280
- ry="4"
1281
- y="20"
1282
- height="22"
1283
- width="22"
1284
- fill="white"
1285
- filter="url(#shadow)"
1286
- />
1287
- <image
1288
- href="/assets/img/svg/bottombar/elevation.svg"
1289
- x="5"
1290
- y="-36"
1291
- height="12"
1292
- width="12"
1293
- style={{ transform: 'rotateX(180deg)' }}
1294
- />
1295
- </g>
1296
- </Tooltip>
1297
- )}
1298
- {line.selected && (
1299
- <g
1300
- id={'remove-button'}
1301
- key={2}
1302
- transform={`translate(${x1 + 10}, ${y1})`}
1303
- style={{ cursor: 'pointer' }}
1304
- >
1305
- <defs>
1306
- <filter id="shadow">
1307
- <feDropShadow dx="0" dy="0" stdDeviation="0.6"></feDropShadow>
1308
- </filter>
1309
- </defs>
1310
- <rect
1311
- rx="4"
1312
- ry="4"
1313
- y="5"
1314
- height="22"
1315
- width="22"
1316
- fill="white"
1317
- filter="url(#shadow)"
1318
- />
1319
- <image
1320
- href="/assets/img/svg/delete.svg"
1321
- x="3"
1322
- y="-24"
1323
- height="16"
1324
- width="16"
1325
- style={{ transform: 'rotateX(180deg)' }}
1326
- />
1327
- </g>
1328
- )}
1329
- <use
1330
- id={'use elevation button'}
1331
- xlinkHref={'#elevation-button'}
1332
- data-element-root
1333
- data-prototype={line.prototype}
1334
- data-id={line.id}
1335
- data-selected={line.selected}
1336
- data-layer={layer.id}
1337
- data-part="elevation"
1338
- />
1339
- <use
1340
- id={'use remove button'}
1341
- xlinkHref={'#remove-button'}
1342
- data-element-root
1343
- data-prototype={line.prototype}
1344
- data-id={line.id}
1345
- data-selected={line.selected}
1346
- data-layer={layer.id}
1347
- data-part="remove"
1348
- />
1349
- </g>
1350
- );
1351
- }
1352
-
1353
- Line.propTypes = {
1354
- line: PropTypes.object.isRequired,
1355
- layer: PropTypes.object.isRequired,
1356
- scene: PropTypes.object.isRequired,
1357
- catalog: PropTypes.object.isRequired
1358
- };