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
package/src/class/hole.js DELETED
@@ -1,1359 +0,0 @@
1
- import { Map, List, fromJS } from 'immutable';
2
- import { Layer, Group } from './export';
3
-
4
- import { IDBroker, NameGenerator } from '../utils/export';
5
-
6
- import { nearestSnap, addLineSegmentSnap } from '../utils/snap';
7
-
8
- import {
9
- MODE_IDLE,
10
- MODE_IDLE_3D,
11
- MODE_DRAWING_HOLE,
12
- MODE_DRAWING_HOLE_3D,
13
- MODE_DRAGGING_HOLE,
14
- MODE_DRAGGING_HOLE_3D
15
- } from '../constants';
16
-
17
- import { GeometryUtils } from '../utils/export';
18
-
19
- class Hole {
20
- static create(
21
- state,
22
- layerID,
23
- type,
24
- lineID,
25
- offset,
26
- properties,
27
- holeX,
28
- holeY
29
- ) {
30
- let holeID = IDBroker.acquireID();
31
- let hole = state.catalog.factoryElement(
32
- type,
33
- {
34
- id: holeID,
35
- url: state.catalog.getIn(['elements', type, 'info', 'url']),
36
- type,
37
- offset,
38
- line: lineID,
39
- x: holeX,
40
- y: holeY
41
- },
42
- properties
43
- );
44
-
45
- state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);
46
- state = state.updateIn(
47
- ['scene', 'layers', layerID, 'lines', lineID, 'holes'],
48
- holes => holes.push(holeID)
49
- );
50
- // get vertex order/////
51
- let element = state.scene.layers.getIn([layerID, 'lines', lineID]);
52
- let layer = state.getIn(['scene', 'layers', layerID]);
53
- let vetName0 = element.vertices.get(0);
54
- let vetName1 = element.vertices.get(1);
55
- let verticesArray = [];
56
- layer.areas.forEach(data => {
57
- verticesArray.push(data.vertices.toJS());
58
- });
59
- for (let i = 0; i < verticesArray.length; i++) {
60
- let vertices = verticesArray[i];
61
- if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
62
- let index0 = vertices.indexOf(vetName0);
63
- let index1 = vertices.indexOf(vetName1);
64
- // if vertex order chanege//
65
- if (index1 + 1 == index0) {
66
- return { updatedState: state, hole };
67
- }
68
- if (index0 == 0 && index1 == vertices.length - 1) {
69
- return { updatedState: state, hole };
70
- }
71
- // ////////////////////////
72
- }
73
- }
74
- // ///////////////////////////
75
- properties = hole.properties.toJS();
76
- if (properties.hasOwnProperty('flip_orizzontal')) {
77
- properties['flip_orizzontal'] = true;
78
- }
79
- if (properties.hasOwnProperty('flip_horizontal')) {
80
- properties['flip_horizontal'] = true;
81
- }
82
- state = this.setJsProperties(
83
- state,
84
- layerID,
85
- holeID,
86
- properties
87
- ).updatedState;
88
- return { updatedState: state, hole };
89
- }
90
-
91
- static select(state, layerID, holeID) {
92
- state = Layer.select(state, layerID).updatedState;
93
- state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;
94
-
95
- return { updatedState: state };
96
- }
97
-
98
- static remove(state, layerID, holeID) {
99
- let hole = state.getIn(['scene', 'layers', layerID, 'holes', holeID]);
100
- state = this.unselect(state, layerID, holeID).updatedState;
101
- state = Layer.removeElement(state, layerID, 'holes', holeID).updatedState;
102
-
103
- state = state.updateIn(
104
- ['scene', 'layers', layerID, 'lines', hole.line, 'holes'],
105
- holes => {
106
- let index = holes.findIndex(ID => holeID === ID);
107
- return index !== -1 ? holes.remove(index) : holes;
108
- }
109
- );
110
-
111
- state
112
- .getIn(['scene', 'groups'])
113
- .forEach(
114
- group =>
115
- (state = Group.removeElement(
116
- state,
117
- group.id,
118
- layerID,
119
- 'holes',
120
- holeID
121
- ).updatedState)
122
- );
123
-
124
- return { updatedState: state };
125
- }
126
-
127
- static unselect(state, layerID, holeID) {
128
- state = Layer.unselect(state, layerID, 'holes', holeID).updatedState;
129
-
130
- return { updatedState: state };
131
- }
132
-
133
- static selectToolDrawingHole(state, sceneComponentType) {
134
- let snapElements = new List().withMutations(snapElements => {
135
- let { lines, vertices } = state.getIn([
136
- 'scene',
137
- 'layers',
138
- state.scene.selectedLayer
139
- ]);
140
-
141
- lines.forEach(line => {
142
- let { x: x1, y: y1 } = vertices.get(line.vertices.get(0));
143
- let { x: x2, y: y2 } = vertices.get(line.vertices.get(1));
144
- addLineSegmentSnap(snapElements, x1, y1, x2, y2, 20, 1, line.id);
145
- });
146
- });
147
-
148
- state = state.merge({
149
- mode: MODE_DRAWING_HOLE,
150
- snapElements,
151
- drawingSupport: Map({
152
- type: sceneComponentType
153
- })
154
- });
155
-
156
- return { updatedState: state };
157
- }
158
-
159
- static selectToolDrawingHole3D(state, sceneComponentType) {
160
- let snapElements = new List().withMutations(snapElements => {
161
- let { lines, vertices } = state.getIn([
162
- 'scene',
163
- 'layers',
164
- state.scene.selectedLayer
165
- ]);
166
-
167
- lines.forEach(line => {
168
- let { x: x1, y: y1 } = vertices.get(line.vertices.get(0));
169
- let { x: x2, y: y2 } = vertices.get(line.vertices.get(1));
170
- addLineSegmentSnap(snapElements, x1, y1, x2, y2, 20, 1, line.id);
171
- });
172
- });
173
-
174
- state = state.merge({
175
- mode: MODE_DRAWING_HOLE_3D,
176
- snapElements,
177
- drawingSupport: Map({
178
- type: sceneComponentType
179
- })
180
- });
181
- state = state.mergeIn(['scene', 'loadFlag'], false);
182
-
183
- return { updatedState: state };
184
- }
185
-
186
- static updateDrawingHole(state, layerID, x, y) {
187
- let catalog = state.catalog;
188
- //calculate snap and overwrite coords if needed
189
- //force snap to segment
190
- let snap = nearestSnap(
191
- state.snapElements,
192
- x,
193
- y,
194
- state.snapMask.merge({ SNAP_SEGMENT: true })
195
- );
196
- if (snap) ({ x, y } = snap.point);
197
-
198
- let selectedHole = state
199
- .getIn(['scene', 'layers', layerID, 'selected', 'holes'])
200
- .first();
201
-
202
- if (snap) {
203
- let lineID = snap.snap.related.get(0);
204
- let vertices = state.getIn([
205
- 'scene',
206
- 'layers',
207
- layerID,
208
- 'lines',
209
- lineID,
210
- 'vertices'
211
- ]);
212
- let { x: x1, y: y1 } = state.getIn([
213
- 'scene',
214
- 'layers',
215
- layerID,
216
- 'vertices',
217
- vertices.get(0)
218
- ]);
219
- let { x: x2, y: y2 } = state.getIn([
220
- 'scene',
221
- 'layers',
222
- layerID,
223
- 'vertices',
224
- vertices.get(1)
225
- ]);
226
-
227
- // // I need min and max vertices on this line segment
228
- let minVertex = GeometryUtils.minVertex(
229
- { x: x1, y: y1 },
230
- { x: x2, y: y2 }
231
- );
232
- let maxVertex = GeometryUtils.maxVertex(
233
- { x: x1, y: y1 },
234
- { x: x2, y: y2 }
235
- );
236
-
237
- let width = catalog
238
- .factoryElement(state.drawingSupport.get('type'))
239
- .properties.getIn(['width', 'length']);
240
-
241
- // // Now I need min and max possible coordinates for the hole on the line. They depend on the width of the hole
242
- let lineLength = GeometryUtils.pointsDistance(x1, y1, x2, y2);
243
- let alpha = GeometryUtils.absAngleBetweenTwoPoints(x1, y1, x2, y2);
244
- let cosAlpha = GeometryUtils.cosWithThreshold(Math.abs(alpha), 0.0000001);
245
- let sinAlpha = GeometryUtils.sinWithThreshold(Math.abs(alpha), 0.0000001);
246
- let minLeftVertexHole = {
247
- x:
248
- minVertex.x +
249
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) *
250
- cosAlpha,
251
- y:
252
- minVertex.y +
253
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * sinAlpha
254
- };
255
-
256
- let maxRightVertexHole = {
257
- x:
258
- minVertex.x +
259
- lineLength * cosAlpha -
260
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) *
261
- cosAlpha,
262
- y:
263
- minVertex.y +
264
- lineLength * sinAlpha -
265
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * sinAlpha
266
- };
267
-
268
- let offset;
269
- if (x < minLeftVertexHole.x) {
270
- offset = GeometryUtils.pointPositionOnLineSegment(
271
- minVertex.x,
272
- minVertex.y,
273
- maxVertex.x,
274
- maxVertex.y,
275
- minLeftVertexHole.x,
276
- minLeftVertexHole.y
277
- );
278
- offset = minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
279
- } else {
280
- if (x > maxRightVertexHole.x) {
281
- offset = GeometryUtils.pointPositionOnLineSegment(
282
- minVertex.x,
283
- minVertex.y,
284
- maxVertex.x,
285
- maxVertex.y,
286
- maxRightVertexHole.x,
287
- maxRightVertexHole.y
288
- );
289
- offset =
290
- minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
291
- } else if (x === minLeftVertexHole.x && x === maxRightVertexHole.x) {
292
- if (y < minLeftVertexHole.y) {
293
- offset = GeometryUtils.pointPositionOnLineSegment(
294
- minVertex.x,
295
- minVertex.y,
296
- maxVertex.x,
297
- maxVertex.y,
298
- minLeftVertexHole.x,
299
- minLeftVertexHole.y
300
- );
301
- offset =
302
- minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
303
- } else if (y > maxRightVertexHole.y) {
304
- offset = GeometryUtils.pointPositionOnLineSegment(
305
- minVertex.x,
306
- minVertex.y,
307
- maxVertex.x,
308
- maxVertex.y,
309
- maxRightVertexHole.x,
310
- maxRightVertexHole.y
311
- );
312
- offset =
313
- minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
314
- } else {
315
- offset = GeometryUtils.pointPositionOnLineSegment(
316
- x1,
317
- y1,
318
- x2,
319
- y2,
320
- x,
321
- y
322
- );
323
- }
324
- } else {
325
- offset = GeometryUtils.pointPositionOnLineSegment(
326
- x1,
327
- y1,
328
- x2,
329
- y2,
330
- x,
331
- y
332
- );
333
- // offset =
334
- // minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
335
- }
336
- }
337
-
338
- if (
339
- this.checkHoleCollide(
340
- state.getIn(['scene', 'layers', layerID]),
341
- lineID,
342
- selectedHole,
343
- x,
344
- y,
345
- width
346
- )
347
- ) {
348
- return { updatedState: state };
349
- }
350
-
351
- //if hole does exist, update
352
- if (state.getIn(['drawingSupport', 'currentID'])) {
353
- let hole = state.getIn([
354
- 'scene',
355
- 'layers',
356
- layerID,
357
- 'holes',
358
- state.getIn(['drawingSupport', 'currentID'])
359
- ]);
360
- hole = hole.merge({
361
- offset: offset,
362
- line: lineID,
363
- x: x,
364
- y: y,
365
- rotation: alpha
366
- });
367
- state = state.mergeIn(
368
- [
369
- 'scene',
370
- 'layers',
371
- layerID,
372
- 'holes',
373
- state.getIn(['drawingSupport', 'currentID'])
374
- ],
375
- hole
376
- );
377
- //remove from old line ( if present )
378
- let index = state
379
- .getIn(['scene', 'layers', layerID, 'lines'])
380
- .findEntry(line => {
381
- return (
382
- line.id !== lineID &&
383
- line
384
- .get('holes')
385
- .contains(state.getIn(['drawingSupport', 'currentID']))
386
- );
387
- });
388
-
389
- if (index) {
390
- let removed = index[1]
391
- .get('holes')
392
- .filter(hl => hl !== state.getIn(['drawingSupport', 'currentID']));
393
- state = state.setIn(
394
- ['scene', 'layers', layerID, 'lines', index[0], 'holes'],
395
- removed
396
- );
397
- }
398
-
399
- // //add to line
400
- let line_holes = state.getIn([
401
- 'scene',
402
- 'layers',
403
- layerID,
404
- 'lines',
405
- lineID,
406
- 'holes'
407
- ]);
408
- if (
409
- !line_holes.contains(state.getIn(['drawingSupport', 'currentID']))
410
- ) {
411
- state = state.setIn(
412
- ['scene', 'layers', layerID, 'lines', lineID, 'holes'],
413
- line_holes.push(state.getIn(['drawingSupport', 'currentID']))
414
- );
415
- }
416
- // get vertex order/////
417
- let element = state.scene.layers.getIn([layerID, 'lines', lineID]);
418
-
419
- let layer = state.getIn(['scene', 'layers', layerID]);
420
- let vetName0 = element.vertices.get(0);
421
- let vetName1 = element.vertices.get(1);
422
- let verticesArray = [];
423
- layer.areas.forEach(data => {
424
- verticesArray.push(data.vertices.toJS());
425
- });
426
- for (let i = 0; i < verticesArray.length; i++) {
427
- let vertices = verticesArray[i];
428
- if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
429
- let index0 = vertices.indexOf(vetName0);
430
- let index1 = vertices.indexOf(vetName1);
431
- // if vertex order chanege//
432
- if (index1 + 1 == index0) {
433
- if (hole != undefined) {
434
- let properties = hole.properties.toJS();
435
- if (properties.hasOwnProperty('flip_orizzontal')) {
436
- properties['flip_orizzontal'] = false;
437
- }
438
- if (properties.hasOwnProperty('flip_horizontal')) {
439
- properties['flip_horizontal'] = false;
440
- }
441
- state = this.setJsProperties(
442
- state,
443
- layerID,
444
- state.getIn(['drawingSupport', 'currentID']),
445
- properties
446
- ).updatedState;
447
- }
448
- return { updatedState: state };
449
- }
450
- if (index0 == 0 && index1 == vertices.length - 1) {
451
- if (hole != undefined) {
452
- let properties = hole.properties.toJS();
453
- if (properties.hasOwnProperty('flip_orizzontal')) {
454
- properties['flip_orizzontal'] = false;
455
- }
456
- if (properties.hasOwnProperty('flip_horizontal')) {
457
- properties['flip_horizontal'] = false;
458
- }
459
- state = this.setJsProperties(
460
- state,
461
- layerID,
462
- state.getIn(['drawingSupport', 'currentID']),
463
- properties
464
- ).updatedState;
465
- }
466
- return { updatedState: state };
467
- }
468
- // ////////////////////////
469
- }
470
- }
471
- // ///////////////////////////
472
- if (hole != undefined) {
473
- let properties = hole.properties.toJS();
474
- if (properties.hasOwnProperty('flip_orizzontal')) {
475
- properties['flip_orizzontal'] = true;
476
- }
477
- if (properties.hasOwnProperty('flip_horizontal')) {
478
- properties['flip_horizontal'] = true;
479
- }
480
-
481
- state = this.setJsProperties(
482
- state,
483
- layerID,
484
- state.getIn(['drawingSupport', 'currentID']),
485
- properties
486
- ).updatedState;
487
- }
488
- } else {
489
- //if hole does not exist, create
490
- let { updatedState: stateH, hole } = this.create(
491
- state,
492
- layerID,
493
- state.drawingSupport.get('type'),
494
- lineID,
495
- offset
496
- );
497
- state = Hole.select(stateH, layerID, hole.id).updatedState;
498
- state = state.setIn(['drawingSupport', 'currentID'], hole.id);
499
- }
500
- }
501
- //i've lost the snap while trying to drop the hole
502
- else if (false && selectedHole) {
503
- //think if enable
504
- state = Hole.remove(state, layerID, selectedHole).updatedState;
505
- }
506
-
507
- return { updatedState: state };
508
- }
509
-
510
- static updateDrawingHole3D(state, layerID, x, y) {
511
- let catalog = state.catalog;
512
- //calculate snap and overwrite coords if needed
513
- //force snap to segment
514
- let snap = nearestSnap(
515
- state.snapElements,
516
- x,
517
- y,
518
- state.snapMask.merge({ SNAP_SEGMENT: true })
519
- );
520
- if (snap) ({ x, y } = snap.point);
521
-
522
- let selectedHole = state
523
- .getIn(['scene', 'layers', layerID, 'selected', 'holes'])
524
- .first();
525
-
526
- if (snap) {
527
- let lineID = snap.snap.related.get(0);
528
- let vertices = state.getIn([
529
- 'scene',
530
- 'layers',
531
- layerID,
532
- 'lines',
533
- lineID,
534
- 'vertices'
535
- ]);
536
- let { x: x1, y: y1 } = state.getIn([
537
- 'scene',
538
- 'layers',
539
- layerID,
540
- 'vertices',
541
- vertices.get(0)
542
- ]);
543
- let { x: x2, y: y2 } = state.getIn([
544
- 'scene',
545
- 'layers',
546
- layerID,
547
- 'vertices',
548
- vertices.get(1)
549
- ]);
550
-
551
- // // I need min and max vertices on this line segment
552
- let minVertex = GeometryUtils.minVertex(
553
- { x: x1, y: y1 },
554
- { x: x2, y: y2 }
555
- );
556
- let maxVertex = GeometryUtils.maxVertex(
557
- { x: x1, y: y1 },
558
- { x: x2, y: y2 }
559
- );
560
-
561
- let width = catalog
562
- .factoryElement(state.drawingSupport.get('type'))
563
- .properties.getIn(['width', 'length']);
564
-
565
- // // Now I need min and max possible coordinates for the hole on the line. They depend on the width of the hole
566
- let lineLength = GeometryUtils.pointsDistance(x1, y1, x2, y2);
567
- let alpha = GeometryUtils.absAngleBetweenTwoPoints(x1, y1, x2, y2);
568
- let cosAlpha = GeometryUtils.cosWithThreshold(Math.abs(alpha), 0.0000001);
569
- let sinAlpha = GeometryUtils.sinWithThreshold(Math.abs(alpha), 0.0000001);
570
- let minLeftVertexHole = {
571
- x:
572
- minVertex.x +
573
- ((state.mode.includes('ING_HOLE_3D') ? width + 1 : width) / 2) *
574
- cosAlpha,
575
- y:
576
- minVertex.y +
577
- ((state.mode.includes('ING_HOLE_3D') ? width + 1 : width) / 2) *
578
- sinAlpha
579
- };
580
-
581
- let maxRightVertexHole = {
582
- x:
583
- minVertex.x +
584
- lineLength * cosAlpha -
585
- ((state.mode.includes('ING_HOLE_3D') ? width + 1 : width) / 2) *
586
- cosAlpha,
587
- y:
588
- minVertex.y +
589
- lineLength * sinAlpha -
590
- ((state.mode.includes('ING_HOLE_3D') ? width + 1 : width) / 2) *
591
- sinAlpha
592
- };
593
-
594
- let offset;
595
- if (x < minLeftVertexHole.x) {
596
- offset = GeometryUtils.pointPositionOnLineSegment(
597
- minVertex.x,
598
- minVertex.y,
599
- maxVertex.x,
600
- maxVertex.y,
601
- minLeftVertexHole.x,
602
- minLeftVertexHole.y
603
- );
604
- } else if (x > maxRightVertexHole.x) {
605
- offset = GeometryUtils.pointPositionOnLineSegment(
606
- minVertex.x,
607
- minVertex.y,
608
- maxVertex.x,
609
- maxVertex.y,
610
- maxRightVertexHole.x,
611
- maxRightVertexHole.y
612
- );
613
- } else {
614
- if (x === minLeftVertexHole.x && x === maxRightVertexHole.x) {
615
- if (y < minLeftVertexHole.y) {
616
- offset = GeometryUtils.pointPositionOnLineSegment(
617
- minVertex.x,
618
- minVertex.y,
619
- maxVertex.x,
620
- maxVertex.y,
621
- minLeftVertexHole.x,
622
- minLeftVertexHole.y
623
- );
624
- /*
625
- offset =
626
- minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
627
- */
628
- } else if (y > maxRightVertexHole.y) {
629
- offset = GeometryUtils.pointPositionOnLineSegment(
630
- minVertex.x,
631
- minVertex.y,
632
- maxVertex.x,
633
- maxVertex.y,
634
- maxRightVertexHole.x,
635
- maxRightVertexHole.y
636
- );
637
- /*
638
- offset =
639
- minVertex.x === x1 && minVertex.y === y1 ? offset : 1 - offset;
640
- */
641
- } else {
642
- offset = GeometryUtils.pointPositionOnLineSegment(
643
- x1,
644
- y1,
645
- x2,
646
- y2,
647
- x,
648
- y
649
- );
650
- }
651
- } else {
652
- offset = GeometryUtils.pointPositionOnLineSegment(
653
- x1,
654
- y1,
655
- x2,
656
- y2,
657
- x,
658
- y
659
- );
660
- }
661
- }
662
-
663
- if (
664
- this.checkHoleCollide(
665
- state.getIn(['scene', 'layers', layerID]),
666
- lineID,
667
- selectedHole,
668
- x,
669
- y,
670
- width
671
- )
672
- ) {
673
- return { updatedState: state };
674
- }
675
-
676
- //if hole does exist, update
677
- if (state.getIn(['drawingSupport', 'currentID'])) {
678
- let hole = state.getIn([
679
- 'scene',
680
- 'layers',
681
- layerID,
682
- 'holes',
683
- state.getIn(['drawingSupport', 'currentID'])
684
- ]);
685
- hole = hole.merge({
686
- offset: offset,
687
- line: lineID,
688
- x: x,
689
- y: y,
690
- rotation: alpha
691
- });
692
- state = state.mergeIn(
693
- [
694
- 'scene',
695
- 'layers',
696
- layerID,
697
- 'holes',
698
- state.getIn(['drawingSupport', 'currentID'])
699
- ],
700
- hole
701
- );
702
-
703
- //remove from old line ( if present )
704
- let index = state
705
- .getIn(['scene', 'layers', layerID, 'lines'])
706
- .findEntry(line => {
707
- return (
708
- line.id !== lineID &&
709
- line
710
- .get('holes')
711
- .contains(state.getIn(['drawingSupport', 'currentID']))
712
- );
713
- });
714
-
715
- if (index && state.mode !== 'MODE_DRAWING_HOLE_3D') {
716
- let removed = index[1]
717
- .get('holes')
718
- .filter(hl => hl !== state.getIn(['drawingSupport', 'currentID']));
719
- state = state.setIn(
720
- ['scene', 'layers', layerID, 'lines', index[0], 'holes'],
721
- removed
722
- );
723
- }
724
-
725
- //add to line
726
- let line_holes = state.getIn([
727
- 'scene',
728
- 'layers',
729
- layerID,
730
- 'lines',
731
- lineID,
732
- 'holes'
733
- ]);
734
- if (
735
- !line_holes.contains(state.getIn(['drawingSupport', 'currentID'])) &&
736
- state.mode !== 'MODE_DRAWING_HOLE_3D'
737
- ) {
738
- state = state.setIn(
739
- ['scene', 'layers', layerID, 'lines', lineID, 'holes'],
740
- line_holes.push(state.getIn(['drawingSupport', 'currentID']))
741
- );
742
- }
743
-
744
- // get vertex order/////
745
- let element = state.scene.layers.getIn([layerID, 'lines', lineID]);
746
-
747
- let layer = state.getIn(['scene', 'layers', layerID]);
748
- let vetName0 = element.vertices.get(0);
749
- let vetName1 = element.vertices.get(1);
750
- let verticesArray = [];
751
- layer.areas.forEach(data => {
752
- verticesArray.push(data.vertices.toJS());
753
- });
754
- for (let i = 0; i < verticesArray.length; i++) {
755
- let vertices = verticesArray[i];
756
- if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
757
- let index0 = vertices.indexOf(vetName0);
758
- let index1 = vertices.indexOf(vetName1);
759
- // if vertex order chanege//
760
- if (index1 + 1 == index0) {
761
- if (hole != undefined) {
762
- let properties = hole.properties.toJS();
763
- if (properties.hasOwnProperty('flip_orizzontal')) {
764
- properties['flip_orizzontal'] = false;
765
- }
766
- if (properties.hasOwnProperty('flip_horizontal')) {
767
- properties['flip_horizontal'] = false;
768
- }
769
- state = this.setJsProperties(
770
- state,
771
- layerID,
772
- state.getIn(['drawingSupport', 'currentID']),
773
- properties
774
- ).updatedState;
775
- if (state.mode === 'MODE_DRAWING_HOLE_3D') {
776
- state = state.setIn(
777
- [
778
- 'scene',
779
- 'layers',
780
- layerID,
781
- 'holes',
782
- state.getIn(['drawingSupport', 'currentID']),
783
- 'visible'
784
- ],
785
- false
786
- );
787
- } else {
788
- state = state.setIn(
789
- [
790
- 'scene',
791
- 'layers',
792
- layerID,
793
- 'holes',
794
- state.getIn(['drawingSupport', 'currentID']),
795
- 'visible'
796
- ],
797
- true
798
- );
799
- }
800
- }
801
- return { updatedState: state };
802
- }
803
- if (index0 == 0 && index1 == vertices.length - 1) {
804
- if (hole != undefined) {
805
- let properties = hole.properties.toJS();
806
- if (properties.hasOwnProperty('flip_orizzontal')) {
807
- properties['flip_orizzontal'] = false;
808
- }
809
- if (properties.hasOwnProperty('flip_horizontal')) {
810
- properties['flip_horizontal'] = false;
811
- }
812
- state = this.setJsProperties(
813
- state,
814
- layerID,
815
- state.getIn(['drawingSupport', 'currentID']),
816
- properties
817
- ).updatedState;
818
- if (state.mode === 'MODE_DRAWING_HOLE_3D') {
819
- state = state.setIn(
820
- [
821
- 'scene',
822
- 'layers',
823
- layerID,
824
- 'holes',
825
- state.getIn(['drawingSupport', 'currentID']),
826
- 'visible'
827
- ],
828
- false
829
- );
830
- } else {
831
- state = state.setIn(
832
- [
833
- 'scene',
834
- 'layers',
835
- layerID,
836
- 'holes',
837
- state.getIn(['drawingSupport', 'currentID']),
838
- 'visible'
839
- ],
840
- true
841
- );
842
- }
843
- }
844
- return { updatedState: state };
845
- }
846
- // ////////////////////////
847
- }
848
- }
849
- // ///////////////////////////
850
- if (hole != undefined) {
851
- let properties = hole.properties.toJS();
852
- if (properties.hasOwnProperty('flip_orizzontal')) {
853
- properties['flip_orizzontal'] = true;
854
- }
855
- if (properties.hasOwnProperty('flip_horizontal')) {
856
- properties['flip_horizontal'] = true;
857
- }
858
-
859
- state = this.setJsProperties(
860
- state,
861
- layerID,
862
- state.getIn(['drawingSupport', 'currentID']),
863
- properties
864
- ).updatedState;
865
- if (state.mode === 'MODE_DRAWING_HOLE_3D') {
866
- state = state.setIn(
867
- [
868
- 'scene',
869
- 'layers',
870
- layerID,
871
- 'holes',
872
- state.getIn(['drawingSupport', 'currentID']),
873
- 'visible'
874
- ],
875
- false
876
- );
877
- } else {
878
- state = state.setIn(
879
- [
880
- 'scene',
881
- 'layers',
882
- layerID,
883
- 'holes',
884
- state.getIn(['drawingSupport', 'currentID']),
885
- 'visible'
886
- ],
887
- true
888
- );
889
- }
890
- }
891
- } else {
892
- //if hole does not exist, create
893
- let { updatedState: stateH, hole } = this.create(
894
- state,
895
- layerID,
896
- state.drawingSupport.get('type'),
897
- lineID,
898
- offset
899
- );
900
- state = Hole.select(stateH, layerID, hole.id).updatedState;
901
- state = state.setIn(['drawingSupport', 'currentID'], hole.id);
902
- }
903
- }
904
- if (state.mode !== 'MODE_DRAWING_HOLE_3D') {
905
- state = state
906
- .getIn(['scene', 'layers', layerID, 'holes'])
907
- .reduce((oldReduceState, element) => {
908
- oldReduceState = oldReduceState.setIn(
909
- ['scene', 'layers', layerID, 'holes', element.id, 'visible'],
910
- true
911
- );
912
- return oldReduceState;
913
- }, state);
914
- }
915
- return { updatedState: state };
916
- }
917
-
918
- static endCreatingHole(state) {
919
- state = state.merge({
920
- isOpen: false,
921
- openedType: 0
922
- });
923
- return { updatedState: state };
924
- }
925
- static updatePopupOpen(state, value) {
926
- state = state.merge({
927
- openedType: value
928
- });
929
- return { updatedState: state };
930
- }
931
-
932
- static endDrawingHole(state, layerID, x, y) {
933
- state = this.updateDrawingHole(state, layerID, x, y).updatedState;
934
- state = Layer.unselectAll(state, layerID).updatedState;
935
- let popup = state.get('popup');
936
- state = state.merge({
937
- drawingSupport: Map({
938
- type: state.drawingSupport.get('type')
939
- }),
940
- isOpen: !popup,
941
- mode: MODE_IDLE
942
- });
943
- state = Layer.unselectAll(state, layerID).updatedState;
944
- return { updatedState: state };
945
- }
946
-
947
- static endDrawingHole3D(state, layerID, x, y) {
948
- state = state.merge({
949
- mode: MODE_IDLE_3D
950
- });
951
- state = this.updateDrawingHole3D(state, layerID, x, y).updatedState;
952
- state = Layer.unselectAll(state, layerID).updatedState;
953
- let popup = state.get('popup');
954
- state = state.merge({
955
- drawingSupport: Map({
956
- type: state.drawingSupport.get('type')
957
- }),
958
- isOpen: !popup,
959
- mode: MODE_IDLE_3D
960
- });
961
- return { updatedState: state };
962
- }
963
-
964
- static beginDraggingHole(state, layerID, holeID, x, y) {
965
- let layer = state.getIn(['scene', 'layers', layerID]);
966
- let hole = layer.getIn(['holes', holeID]);
967
- let line = layer.getIn(['lines', hole.line]);
968
- let v0 = layer.getIn(['vertices', line.vertices.get(0)]);
969
- let v1 = layer.getIn(['vertices', line.vertices.get(1)]);
970
-
971
- let snapElements = addLineSegmentSnap(
972
- List(),
973
- v0.x,
974
- v0.y,
975
- v1.x,
976
- v1.y,
977
- 9999999,
978
- 1,
979
- null
980
- );
981
-
982
- state = state.merge({
983
- mode: MODE_DRAGGING_HOLE,
984
- snapElements,
985
- draggingSupport: Map({
986
- layerID,
987
- holeID,
988
- startPointX: x,
989
- startPointY: y
990
- })
991
- });
992
-
993
- return { updatedState: state };
994
- }
995
-
996
- static beginDraggingHole3D(state, layerID, holeID, x, y) {
997
- let layer = state.getIn(['scene', 'layers', layerID]);
998
- let hole = layer.getIn(['holes', holeID]);
999
- let line = layer.getIn(['lines', hole.line]);
1000
- let v0 = layer.getIn(['vertices', line.vertices.get(0)]);
1001
- let v1 = layer.getIn(['vertices', line.vertices.get(1)]);
1002
-
1003
- let snapElements = addLineSegmentSnap(
1004
- List(),
1005
- v0.x,
1006
- v0.y,
1007
- v1.x,
1008
- v1.y,
1009
- 9999999,
1010
- 1,
1011
- null
1012
- );
1013
-
1014
- state = state.updateIn(
1015
- ['scene', 'layers', layerID, 'lines', hole.line, 'holes'],
1016
- holes => {
1017
- let index = holes.findIndex(ID => holeID === ID);
1018
- return index !== -1 ? holes.remove(index) : holes;
1019
- }
1020
- );
1021
-
1022
- state = state.merge({
1023
- mode: MODE_DRAGGING_HOLE_3D,
1024
- snapElements,
1025
- draggingSupport: Map({
1026
- layerID,
1027
- holeID,
1028
- startPointX: x,
1029
- startPointY: y
1030
- })
1031
- });
1032
-
1033
- return { updatedState: state };
1034
- }
1035
-
1036
- static updateDraggingHole(state, x, y) {
1037
- //calculate snap and overwrite coords if needed
1038
- //force snap to segment
1039
- let snap = nearestSnap(
1040
- state.snapElements,
1041
- x,
1042
- y,
1043
- state.snapMask.merge({ SNAP_SEGMENT: true })
1044
- );
1045
- if (!snap) return state;
1046
-
1047
- let { draggingSupport, scene } = state;
1048
-
1049
- let layerID = draggingSupport.get('layerID');
1050
- let holeID = draggingSupport.get('holeID');
1051
- let startPointX = draggingSupport.get('startPointX');
1052
- let startPointY = draggingSupport.get('startPointY');
1053
-
1054
- let layer = state.getIn(['scene', 'layers', layerID]);
1055
- let hole = layer.getIn(['holes', holeID]);
1056
- let line = layer.getIn(['lines', hole.line]);
1057
- let v0 = layer.getIn(['vertices', line.vertices.get(0)]);
1058
- let v1 = layer.getIn(['vertices', line.vertices.get(1)]);
1059
- ({ x, y } = snap.point);
1060
-
1061
- // I need min and max vertices on this line segment
1062
- let minVertex = GeometryUtils.minVertex(v0, v1);
1063
- let maxVertex = GeometryUtils.maxVertex(v0, v1);
1064
-
1065
- // Now I need min and max possible coordinates for the hole on the line. They depend on the width of the hole
1066
-
1067
- let width = hole.properties.get('width').get('length');
1068
- let lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);
1069
- let alpha = Math.atan2(v1.y - v0.y, Math.abs(v1.x - v0.x));
1070
- let alpha1 = Math.atan2(v1.y - v0.y, v1.x - v0.x);
1071
- let angle_temp;
1072
- if ((180 * alpha1) / Math.PI < 0) {
1073
- angle_temp = (180 * alpha1) / Math.PI + 360;
1074
- } else {
1075
- angle_temp = (180 * alpha1) / Math.PI;
1076
- }
1077
- let cosWithThreshold = alpha => {
1078
- let cos = Math.cos(Math.abs(alpha));
1079
- return cos < 0.0000001 ? 0 : cos;
1080
- };
1081
-
1082
- let sinWithThreshold = alpha => {
1083
- let sin = Math.sin(Math.abs(alpha));
1084
- return sin < 0.0000001 ? 0 : sin;
1085
- };
1086
-
1087
- let cosAlpha = cosWithThreshold(Math.abs(alpha));
1088
- let sinAlpha = sinWithThreshold(Math.abs(alpha));
1089
-
1090
- let minLeftVertexHole = {
1091
- x:
1092
- minVertex.x +
1093
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * cosAlpha,
1094
- y:
1095
- minVertex.y +
1096
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * sinAlpha
1097
- };
1098
-
1099
- let maxRightVertexHole = {
1100
- x:
1101
- minVertex.x +
1102
- lineLength * cosAlpha -
1103
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * cosAlpha,
1104
- y:
1105
- minVertex.y +
1106
- lineLength * sinAlpha -
1107
- ((state.mode.includes('ING_HOLE') ? width + 1 : width) / 2) * sinAlpha
1108
- };
1109
- // Now I need to verify if the snap vertex (with coordinates x and y) is on the line segment
1110
-
1111
- let offset;
1112
-
1113
- if (x < minLeftVertexHole.x) {
1114
- // Snap point is previous the the line
1115
- offset = GeometryUtils.pointPositionOnLineSegment(
1116
- minVertex.x,
1117
- minVertex.y,
1118
- maxVertex.x,
1119
- maxVertex.y,
1120
- minLeftVertexHole.x,
1121
- minLeftVertexHole.y
1122
- );
1123
- offset = minVertex === v0 ? offset : 1 - offset;
1124
- } else {
1125
- // Snap point is after the line or on the line
1126
- if (x > maxRightVertexHole.x) {
1127
- offset = GeometryUtils.pointPositionOnLineSegment(
1128
- minVertex.x,
1129
- minVertex.y,
1130
- maxVertex.x,
1131
- maxVertex.y,
1132
- maxRightVertexHole.x,
1133
- maxRightVertexHole.y
1134
- );
1135
- offset = minVertex === v0 ? offset : 1 - offset;
1136
- } else if (x === minLeftVertexHole.x && x === maxRightVertexHole.x) {
1137
- // I am on a vertical line, I need to check y coordinates
1138
- if (y < minLeftVertexHole.y) {
1139
- offset = GeometryUtils.pointPositionOnLineSegment(
1140
- minVertex.x,
1141
- minVertex.y,
1142
- maxVertex.x,
1143
- maxVertex.y,
1144
- minLeftVertexHole.x,
1145
- minLeftVertexHole.y
1146
- );
1147
- offset = minVertex === v0 ? offset : 1 - offset;
1148
- } else if (y > maxRightVertexHole.y) {
1149
- offset = GeometryUtils.pointPositionOnLineSegment(
1150
- minVertex.x,
1151
- minVertex.y,
1152
- maxVertex.x,
1153
- maxVertex.y,
1154
- maxRightVertexHole.x,
1155
- maxRightVertexHole.y
1156
- );
1157
- offset = minVertex === v0 ? offset : 1 - offset;
1158
- } else {
1159
- offset = GeometryUtils.pointPositionOnLineSegment(
1160
- minVertex.x,
1161
- minVertex.y,
1162
- maxVertex.x,
1163
- maxVertex.y,
1164
- x,
1165
- y
1166
- );
1167
- offset = minVertex === v0 ? offset : 1 - offset;
1168
- }
1169
- } else {
1170
- offset = GeometryUtils.pointPositionOnLineSegment(
1171
- minVertex.x,
1172
- minVertex.y,
1173
- maxVertex.x,
1174
- maxVertex.y,
1175
- x,
1176
- y
1177
- );
1178
- if (angle_temp > 90 && angle_temp < 270) {
1179
- offset = 1 - offset;
1180
- }
1181
- }
1182
- }
1183
- if (this.checkHoleCollide(layer, hole.line, holeID, x, y, width)) {
1184
- return { updatedState: state };
1185
- }
1186
-
1187
- hole = hole.set('offset', offset);
1188
- hole = hole.merge({
1189
- x: x,
1190
- y: y,
1191
- rotation: alpha
1192
- });
1193
- state = state.merge({
1194
- scene: scene.mergeIn(['layers', layerID, 'holes', holeID], hole)
1195
- });
1196
- state = state.updateIn(
1197
- ['scene', 'layers', layerID, 'lines', hole.line, 'holes'],
1198
- holes => {
1199
- console.log(holes, 'holes');
1200
- let index = holes.findIndex(ID => holeID === ID);
1201
- console.log(index, 'index');
1202
- return index === -1 ? holes.push(holeID) : holes;
1203
- }
1204
- );
1205
- return { updatedState: state };
1206
- }
1207
-
1208
- static updateDraggingHoleChanged(state, x, y, layerID, holeID) {
1209
- let { scene } = state;
1210
-
1211
- let hole = scene.getIn(['layers', layerID, 'holes', holeID]);
1212
- hole = hole.merge({
1213
- x: x,
1214
- y: y
1215
- });
1216
-
1217
- state = state.merge({
1218
- scene: scene.mergeIn(['layers', layerID, 'holes', holeID], hole)
1219
- });
1220
-
1221
- return { updatedState: state };
1222
- }
1223
-
1224
- static updateDraggingHoleRulerChanged(state, width, layerID, holeID) {
1225
- let { scene } = state;
1226
- state = state.mergeIn(
1227
- [
1228
- 'scene',
1229
- 'layers',
1230
- layerID,
1231
- 'holes',
1232
- holeID,
1233
- 'properties',
1234
- 'width',
1235
- 'length'
1236
- ],
1237
- width
1238
- );
1239
-
1240
- return { updatedState: state };
1241
- }
1242
-
1243
- static endDraggingHole3D(state, x, y) {
1244
- if (state === undefined) return;
1245
- state = this.updateDraggingHole(state, x, y).updatedState;
1246
- let { draggingSupport } =
1247
- state.draggingSupport !== undefined ? state : null;
1248
- if (
1249
- draggingSupport &&
1250
- draggingSupport.size === 0 &&
1251
- draggingSupport === null
1252
- )
1253
- return { updatedState: state };
1254
- let layerID = draggingSupport.get('layerID');
1255
- let holeID = draggingSupport.get('holeID');
1256
- let layer = state.getIn(['scene', 'layers', layerID]);
1257
- let hole = layer.getIn(['holes', holeID]);
1258
- state = state.updateIn(
1259
- ['scene', 'layers', layerID, 'lines', hole.line, 'holes'],
1260
- holes => {
1261
- let index = holes.findIndex(ID => holeID === ID);
1262
- return index === -1 ? holes.push(holeID) : holes;
1263
- }
1264
- );
1265
- state = state.merge({
1266
- mode: MODE_IDLE_3D,
1267
- draggingSupport: Map({})
1268
- });
1269
-
1270
- return { updatedState: state };
1271
- }
1272
-
1273
- static checkHoleCollide(layer, lineID, selectedHoleID, hx, hy, hw) {
1274
- let line = layer.getIn(['lines', lineID]);
1275
- let holes = line.getIn(['holes']);
1276
-
1277
- let bCollide = holes.some(holeID => {
1278
- if (holeID == selectedHoleID) return false;
1279
-
1280
- let hole = layer.getIn(['holes', holeID]);
1281
- let dx = hole.get('x') - hx;
1282
- let dy = hole.get('y') - hy;
1283
- let dw = (hole.properties.get('width').get('length') + hw) / 2;
1284
- if (dx * dx + dy * dy < dw * dw) {
1285
- return true;
1286
- }
1287
- });
1288
-
1289
- return bCollide;
1290
- }
1291
-
1292
- static endDraggingHole(state, x, y) {
1293
- state = this.updateDraggingHole(state, x, y).updatedState;
1294
- state = state.merge({ mode: MODE_IDLE });
1295
-
1296
- return { updatedState: state };
1297
- }
1298
-
1299
- static setProperties(state, layerID, holeID, properties) {
1300
- state = state.setIn(
1301
- ['scene', 'layers', layerID, 'holes', holeID, 'properties'],
1302
- properties
1303
- );
1304
-
1305
- return { updatedState: state };
1306
- }
1307
-
1308
- static setJsProperties(state, layerID, holeID, properties) {
1309
- return this.setProperties(state, layerID, holeID, fromJS(properties));
1310
- }
1311
-
1312
- static updateProperties(state, layerID, holeID, properties) {
1313
- properties.forEach((v, k) => {
1314
- if (
1315
- state.hasIn([
1316
- 'scene',
1317
- 'layers',
1318
- layerID,
1319
- 'holes',
1320
- holeID,
1321
- 'properties',
1322
- k
1323
- ])
1324
- )
1325
- state = state.mergeIn(
1326
- ['scene', 'layers', layerID, 'holes', holeID, 'properties', k],
1327
- v
1328
- );
1329
- });
1330
-
1331
- return { updatedState: state };
1332
- }
1333
-
1334
- static updateJsProperties(state, layerID, holeID, properties) {
1335
- return this.updateProperties(state, layerID, holeID, fromJS(properties));
1336
- }
1337
-
1338
- static setAttributes(state, layerID, holeID, holesAttributes) {
1339
- let hAttr = holesAttributes.toJS();
1340
- let { offsetA, offsetB, offset } = hAttr;
1341
-
1342
- delete hAttr['offsetA'];
1343
- delete hAttr['offsetB'];
1344
- delete hAttr['offset'];
1345
-
1346
- let misc = new Map({ _unitA: offsetA._unit, _unitB: offsetB._unit });
1347
-
1348
- state = state
1349
- .mergeIn(['scene', 'layers', layerID, 'holes', holeID], fromJS(hAttr))
1350
- .mergeDeepIn(
1351
- ['scene', 'layers', layerID, 'holes', holeID],
1352
- new Map({ offset, misc })
1353
- );
1354
-
1355
- return { updatedState: state };
1356
- }
1357
- }
1358
-
1359
- export { Hole as default };