kitchen-simulator 1.1.1-test.48 → 1.1.1-test.49

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 (359) hide show
  1. package/lib/KitchenConfiguratorApp.js +3 -0
  2. package/package.json +1 -1
  3. package/es/@history.js +0 -2
  4. package/es/AppContext.js +0 -3
  5. package/es/KitchenConfigurator.js +0 -645
  6. package/es/KitchenConfiguratorApp.js +0 -478
  7. package/es/actions/area-actions.js +0 -14
  8. package/es/actions/export.js +0 -23
  9. package/es/actions/groups-actions.js +0 -89
  10. package/es/actions/holes-actions.js +0 -119
  11. package/es/actions/items-actions.js +0 -313
  12. package/es/actions/lines-actions.js +0 -81
  13. package/es/actions/project-actions.js +0 -281
  14. package/es/actions/scene-actions.js +0 -33
  15. package/es/actions/vertices-actions.js +0 -27
  16. package/es/actions/viewer2d-actions.js +0 -58
  17. package/es/actions/viewer3d-actions.js +0 -23
  18. package/es/catalog/areas/area/planner-element.js +0 -40
  19. package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  20. package/es/catalog/areas/area/textures/grass.jpg +0 -0
  21. package/es/catalog/areas/area/textures/parquet.jpg +0 -0
  22. package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  23. package/es/catalog/areas/area/textures/tile1.jpg +0 -0
  24. package/es/catalog/catalog.js +0 -277
  25. package/es/catalog/envMap/nx.hdr +0 -0
  26. package/es/catalog/envMap/ny.hdr +0 -0
  27. package/es/catalog/envMap/nz.hdr +0 -0
  28. package/es/catalog/envMap/px.hdr +0 -0
  29. package/es/catalog/envMap/py.hdr +0 -0
  30. package/es/catalog/envMap/pz.hdr +0 -0
  31. package/es/catalog/factories/area-factory-3d.js +0 -181
  32. package/es/catalog/factories/area-factory.js +0 -81
  33. package/es/catalog/factories/export.js +0 -7
  34. package/es/catalog/factories/wall-factory-3d.js +0 -202
  35. package/es/catalog/factories/wall-factory.js +0 -268
  36. package/es/catalog/holes/door-closet/planner-element.js +0 -222
  37. package/es/catalog/holes/door-double/door_double.png +0 -0
  38. package/es/catalog/holes/door-double/planner-element.js +0 -315
  39. package/es/catalog/holes/door-exterior/planner-element.js +0 -215
  40. package/es/catalog/holes/door-interior/planner-element.js +0 -227
  41. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  42. package/es/catalog/holes/door-panic/planner-element.js +0 -503
  43. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  44. package/es/catalog/holes/door-panic-double/planner-element.js +0 -463
  45. package/es/catalog/holes/door-sliding/planner-element.js +0 -225
  46. package/es/catalog/holes/doorway-framed/planner-element.js +0 -145
  47. package/es/catalog/holes/doorway-frameless/planner-element.js +0 -104
  48. package/es/catalog/holes/export.js +0 -13
  49. package/es/catalog/holes/gate/gate.jpg +0 -0
  50. package/es/catalog/holes/window-clear/planner-element.js +0 -166
  51. package/es/catalog/holes/window-clear/texture.png +0 -0
  52. package/es/catalog/holes/window-cross/planner-element.js +0 -165
  53. package/es/catalog/holes/window-cross/texture.png +0 -0
  54. package/es/catalog/holes/window-double-hung/planner-element.js +0 -303
  55. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  56. package/es/catalog/holes/window-vertical/planner-element.js +0 -276
  57. package/es/catalog/holes/window-vertical/texture.png +0 -0
  58. package/es/catalog/lines/wall/planner-element.js +0 -70
  59. package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  60. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  61. package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
  62. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  63. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  64. package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  65. package/es/catalog/lines/wall/textures/morden.jpg +0 -0
  66. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  67. package/es/catalog/lines/wall/textures/painted.jpg +0 -0
  68. package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  69. package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
  70. package/es/catalog/lines/wall/wall.png +0 -0
  71. package/es/catalog/molding/molding-dcm/planner-element.js +0 -28
  72. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  73. package/es/catalog/molding/molding-fbm/planner-element.js +0 -28
  74. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  75. package/es/catalog/molding/molding-lrm/planner-element.js +0 -28
  76. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  77. package/es/catalog/properties/export.js +0 -21
  78. package/es/catalog/properties/property-checkbox.js +0 -116
  79. package/es/catalog/properties/property-color.js +0 -39
  80. package/es/catalog/properties/property-enum.js +0 -97
  81. package/es/catalog/properties/property-hidden.js +0 -19
  82. package/es/catalog/properties/property-lenght-measure.js +0 -101
  83. package/es/catalog/properties/property-length-measure.js +0 -134
  84. package/es/catalog/properties/property-length-measure_hole.js +0 -101
  85. package/es/catalog/properties/property-number.js +0 -48
  86. package/es/catalog/properties/property-read-only.js +0 -26
  87. package/es/catalog/properties/property-string.js +0 -48
  88. package/es/catalog/properties/property-toggle.js +0 -39
  89. package/es/catalog/properties/shared-property-style.js +0 -14
  90. package/es/catalog/utils/FuseUtils.js +0 -82
  91. package/es/catalog/utils/exporter.js +0 -148
  92. package/es/catalog/utils/geom-utils.js +0 -189
  93. package/es/catalog/utils/item-loader.js +0 -1521
  94. package/es/catalog/utils/load-obj.js +0 -91
  95. package/es/catalog/utils/mtl-loader.js +0 -358
  96. package/es/catalog/utils/obj-loader.js +0 -477
  97. package/es/class/FuseUtils.js +0 -82
  98. package/es/class/area.js +0 -145
  99. package/es/class/export.js +0 -24
  100. package/es/class/group.js +0 -440
  101. package/es/class/guide.js +0 -62
  102. package/es/class/hole.js +0 -929
  103. package/es/class/item.js +0 -1883
  104. package/es/class/layer.js +0 -667
  105. package/es/class/line.js +0 -1180
  106. package/es/class/project.js +0 -793
  107. package/es/class/vertex.js +0 -202
  108. package/es/components/content.js +0 -107
  109. package/es/components/disclaimer/disclaimer.js +0 -97
  110. package/es/components/export.js +0 -9
  111. package/es/components/style/button.js +0 -113
  112. package/es/components/style/cancel-button.js +0 -22
  113. package/es/components/style/content-container.js +0 -33
  114. package/es/components/style/content-title.js +0 -29
  115. package/es/components/style/delete-button.js +0 -25
  116. package/es/components/style/export.js +0 -31
  117. package/es/components/style/form-block.js +0 -24
  118. package/es/components/style/form-color-input.js +0 -27
  119. package/es/components/style/form-label.js +0 -26
  120. package/es/components/style/form-number-input.js +0 -213
  121. package/es/components/style/form-number-input_2.js +0 -206
  122. package/es/components/style/form-select.js +0 -68
  123. package/es/components/style/form-slider.js +0 -61
  124. package/es/components/style/form-submit-button.js +0 -26
  125. package/es/components/style/form-text-input.js +0 -95
  126. package/es/components/viewer2d/area.js +0 -81
  127. package/es/components/viewer2d/export.js +0 -31
  128. package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -37
  129. package/es/components/viewer2d/grids/grid-streak.js +0 -37
  130. package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -37
  131. package/es/components/viewer2d/grids/grids.js +0 -35
  132. package/es/components/viewer2d/group.js +0 -53
  133. package/es/components/viewer2d/item.js +0 -513
  134. package/es/components/viewer2d/layer.js +0 -164
  135. package/es/components/viewer2d/line.js +0 -882
  136. package/es/components/viewer2d/ruler.js +0 -100
  137. package/es/components/viewer2d/rulerDist.js +0 -146
  138. package/es/components/viewer2d/rulerX.js +0 -151
  139. package/es/components/viewer2d/rulerY.js +0 -153
  140. package/es/components/viewer2d/scene.js +0 -140
  141. package/es/components/viewer2d/snap.js +0 -74
  142. package/es/components/viewer2d/state.js +0 -78
  143. package/es/components/viewer2d/utils.js +0 -198
  144. package/es/components/viewer2d/vertex.js +0 -65
  145. package/es/components/viewer2d/viewer2d.js +0 -1398
  146. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2592
  147. package/es/components/viewer3d/dcm.js +0 -401
  148. package/es/components/viewer3d/fbm.js +0 -414
  149. package/es/components/viewer3d/front3D.js +0 -66
  150. package/es/components/viewer3d/grid-creator.js +0 -25
  151. package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -36
  152. package/es/components/viewer3d/grids/grid-streak.js +0 -27
  153. package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -36
  154. package/es/components/viewer3d/libs/first-person-controls.js +0 -67
  155. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1281
  156. package/es/components/viewer3d/libs/mtl-loader.js +0 -357
  157. package/es/components/viewer3d/libs/obj-loader.js +0 -462
  158. package/es/components/viewer3d/libs/orbit-controls.js +0 -699
  159. package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -46
  160. package/es/components/viewer3d/lrm.js +0 -305
  161. package/es/components/viewer3d/model.js +0 -708
  162. package/es/components/viewer3d/pointer-lock-navigation.js +0 -115
  163. package/es/components/viewer3d/ruler-utils/itemRect.js +0 -61
  164. package/es/components/viewer3d/ruler-utils/layer3D.js +0 -495
  165. package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -227
  166. package/es/components/viewer3d/ruler-utils/scene3D.js +0 -60
  167. package/es/components/viewer3d/ruler-utils/state3D.js +0 -18
  168. package/es/components/viewer3d/scene-creator.js +0 -3608
  169. package/es/components/viewer3d/three-memory-cleaner.js +0 -51
  170. package/es/components/viewer3d/viewer3d-first-person.js +0 -315
  171. package/es/components/viewer3d/viewer3d.js +0 -2527
  172. package/es/constants.js +0 -636
  173. package/es/index.js +0 -16
  174. package/es/models.js +0 -510
  175. package/es/plugins/SVGLoader.js +0 -1412
  176. package/es/plugins/autosave.js +0 -33
  177. package/es/plugins/console-debugger.js +0 -37
  178. package/es/plugins/export.js +0 -9
  179. package/es/plugins/keyboard.js +0 -101
  180. package/es/reducers/areas-reducer.js +0 -12
  181. package/es/reducers/export.js +0 -25
  182. package/es/reducers/groups-reducer.js +0 -38
  183. package/es/reducers/holes-reducer.js +0 -62
  184. package/es/reducers/items-reducer.js +0 -140
  185. package/es/reducers/lines-reducer.js +0 -45
  186. package/es/reducers/project-reducer.js +0 -129
  187. package/es/reducers/reducer.js +0 -19
  188. package/es/reducers/scene-reducer.js +0 -28
  189. package/es/reducers/user-reducer.js +0 -40
  190. package/es/reducers/vertices-reducer.js +0 -19
  191. package/es/reducers/viewer2d-reducer.js +0 -75
  192. package/es/reducers/viewer3d-reducer.js +0 -56
  193. package/es/shared-style.js +0 -66
  194. package/es/styles/export.js +0 -5
  195. package/es/styles/tabs.css +0 -40
  196. package/es/translator/en.js +0 -104
  197. package/es/translator/it.js +0 -79
  198. package/es/translator/ru.js +0 -79
  199. package/es/translator/translator.js +0 -84
  200. package/es/utils/browser.js +0 -33
  201. package/es/utils/email-validator.js +0 -4
  202. package/es/utils/export.js +0 -25
  203. package/es/utils/geometry.js +0 -2420
  204. package/es/utils/get-edges-of-subgraphs.js +0 -27
  205. package/es/utils/graph-cycles.js +0 -237
  206. package/es/utils/graph-inner-cycles.js +0 -46
  207. package/es/utils/graph.js +0 -150
  208. package/es/utils/helper.js +0 -268
  209. package/es/utils/history.js +0 -29
  210. package/es/utils/id-broker.js +0 -19
  211. package/es/utils/logger.js +0 -8
  212. package/es/utils/math.js +0 -50
  213. package/es/utils/molding.js +0 -871
  214. package/es/utils/name-generator.js +0 -18
  215. package/es/utils/objects-utils.js +0 -50
  216. package/es/utils/phone-validator.js +0 -4
  217. package/es/utils/process-black-list.js +0 -18
  218. package/es/utils/react-if.js +0 -18
  219. package/es/utils/snap-scene.js +0 -99
  220. package/es/utils/snap.js +0 -237
  221. package/es/utils/summarizeCart.js +0 -24
  222. package/es/utils/threeCSG.es6.js +0 -498
  223. package/es/version.js +0 -2
  224. package/lib/catalog/properties/property-string.js +0 -55
  225. package/lib/catalog/properties/property-toggle.js +0 -46
  226. package/lib/catalog/properties/shared-property-style.js +0 -20
  227. package/lib/catalog/utils/FuseUtils.js +0 -88
  228. package/lib/catalog/utils/exporter.js +0 -155
  229. package/lib/catalog/utils/geom-utils.js +0 -205
  230. package/lib/catalog/utils/item-loader.js +0 -1533
  231. package/lib/catalog/utils/load-obj.js +0 -99
  232. package/lib/catalog/utils/mtl-loader.js +0 -363
  233. package/lib/catalog/utils/obj-loader.js +0 -482
  234. package/lib/class/FuseUtils.js +0 -88
  235. package/lib/class/area.js +0 -150
  236. package/lib/class/export.js +0 -96
  237. package/lib/class/group.js +0 -445
  238. package/lib/class/guide.js +0 -67
  239. package/lib/class/hole.js +0 -934
  240. package/lib/class/item.js +0 -1889
  241. package/lib/class/layer.js +0 -672
  242. package/lib/class/line.js +0 -1186
  243. package/lib/class/project.js +0 -799
  244. package/lib/class/vertex.js +0 -207
  245. package/lib/components/content.js +0 -116
  246. package/lib/components/disclaimer/disclaimer.js +0 -105
  247. package/lib/components/export.js +0 -33
  248. package/lib/components/style/button.js +0 -120
  249. package/lib/components/style/cancel-button.js +0 -29
  250. package/lib/components/style/content-container.js +0 -40
  251. package/lib/components/style/content-title.js +0 -37
  252. package/lib/components/style/delete-button.js +0 -34
  253. package/lib/components/style/export.js +0 -121
  254. package/lib/components/style/form-block.js +0 -31
  255. package/lib/components/style/form-color-input.js +0 -34
  256. package/lib/components/style/form-label.js +0 -33
  257. package/lib/components/style/form-number-input.js +0 -220
  258. package/lib/components/style/form-number-input_2.js +0 -213
  259. package/lib/components/style/form-select.js +0 -75
  260. package/lib/components/style/form-slider.js +0 -68
  261. package/lib/components/style/form-submit-button.js +0 -35
  262. package/lib/components/style/form-text-input.js +0 -101
  263. package/lib/components/viewer2d/area.js +0 -88
  264. package/lib/components/viewer2d/export.js +0 -121
  265. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -44
  266. package/lib/components/viewer2d/grids/grid-streak.js +0 -44
  267. package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -44
  268. package/lib/components/viewer2d/grids/grids.js +0 -44
  269. package/lib/components/viewer2d/group.js +0 -62
  270. package/lib/components/viewer2d/item.js +0 -521
  271. package/lib/components/viewer2d/layer.js +0 -171
  272. package/lib/components/viewer2d/line.js +0 -892
  273. package/lib/components/viewer2d/ruler.js +0 -107
  274. package/lib/components/viewer2d/rulerDist.js +0 -153
  275. package/lib/components/viewer2d/rulerX.js +0 -158
  276. package/lib/components/viewer2d/rulerY.js +0 -160
  277. package/lib/components/viewer2d/scene.js +0 -147
  278. package/lib/components/viewer2d/snap.js +0 -83
  279. package/lib/components/viewer2d/state.js +0 -87
  280. package/lib/components/viewer2d/utils.js +0 -210
  281. package/lib/components/viewer2d/vertex.js +0 -74
  282. package/lib/components/viewer2d/viewer2d.js +0 -1405
  283. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2597
  284. package/lib/components/viewer3d/dcm.js +0 -407
  285. package/lib/components/viewer3d/fbm.js +0 -420
  286. package/lib/components/viewer3d/front3D.js +0 -75
  287. package/lib/components/viewer3d/grid-creator.js +0 -34
  288. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -44
  289. package/lib/components/viewer3d/grids/grid-streak.js +0 -35
  290. package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -44
  291. package/lib/components/viewer3d/libs/first-person-controls.js +0 -74
  292. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1287
  293. package/lib/components/viewer3d/libs/mtl-loader.js +0 -363
  294. package/lib/components/viewer3d/libs/obj-loader.js +0 -468
  295. package/lib/components/viewer3d/libs/orbit-controls.js +0 -705
  296. package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -52
  297. package/lib/components/viewer3d/lrm.js +0 -311
  298. package/lib/components/viewer3d/model.js +0 -714
  299. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -122
  300. package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -68
  301. package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -502
  302. package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -234
  303. package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -68
  304. package/lib/components/viewer3d/ruler-utils/state3D.js +0 -25
  305. package/lib/components/viewer3d/scene-creator.js +0 -3642
  306. package/lib/components/viewer3d/three-memory-cleaner.js +0 -60
  307. package/lib/components/viewer3d/viewer3d-first-person.js +0 -320
  308. package/lib/components/viewer3d/viewer3d.js +0 -2532
  309. package/lib/constants.js +0 -645
  310. package/lib/index.js +0 -96
  311. package/lib/models.js +0 -517
  312. package/lib/plugins/SVGLoader.js +0 -1417
  313. package/lib/plugins/autosave.js +0 -39
  314. package/lib/plugins/console-debugger.js +0 -44
  315. package/lib/plugins/export.js +0 -33
  316. package/lib/plugins/keyboard.js +0 -107
  317. package/lib/reducers/areas-reducer.js +0 -18
  318. package/lib/reducers/export.js +0 -97
  319. package/lib/reducers/groups-reducer.js +0 -44
  320. package/lib/reducers/holes-reducer.js +0 -68
  321. package/lib/reducers/items-reducer.js +0 -146
  322. package/lib/reducers/lines-reducer.js +0 -51
  323. package/lib/reducers/project-reducer.js +0 -135
  324. package/lib/reducers/reducer.js +0 -26
  325. package/lib/reducers/scene-reducer.js +0 -34
  326. package/lib/reducers/user-reducer.js +0 -46
  327. package/lib/reducers/vertices-reducer.js +0 -25
  328. package/lib/reducers/viewer2d-reducer.js +0 -82
  329. package/lib/reducers/viewer3d-reducer.js +0 -63
  330. package/lib/shared-style.js +0 -72
  331. package/lib/styles/export.js +0 -13
  332. package/lib/translator/en.js +0 -110
  333. package/lib/translator/it.js +0 -85
  334. package/lib/translator/ru.js +0 -85
  335. package/lib/translator/translator.js +0 -90
  336. package/lib/utils/browser.js +0 -40
  337. package/lib/utils/email-validator.js +0 -10
  338. package/lib/utils/export.js +0 -56
  339. package/lib/utils/geometry.js +0 -2516
  340. package/lib/utils/get-edges-of-subgraphs.js +0 -34
  341. package/lib/utils/graph-cycles.js +0 -240
  342. package/lib/utils/graph-inner-cycles.js +0 -54
  343. package/lib/utils/graph.js +0 -157
  344. package/lib/utils/helper.js +0 -291
  345. package/lib/utils/history.js +0 -36
  346. package/lib/utils/id-broker.js +0 -25
  347. package/lib/utils/logger.js +0 -14
  348. package/lib/utils/math.js +0 -57
  349. package/lib/utils/molding.js +0 -895
  350. package/lib/utils/name-generator.js +0 -23
  351. package/lib/utils/objects-utils.js +0 -60
  352. package/lib/utils/phone-validator.js +0 -10
  353. package/lib/utils/process-black-list.js +0 -24
  354. package/lib/utils/react-if.js +0 -24
  355. package/lib/utils/snap-scene.js +0 -105
  356. package/lib/utils/snap.js +0 -249
  357. package/lib/utils/summarizeCart.js +0 -30
  358. package/lib/utils/threeCSG.es6.js +0 -503
  359. package/lib/version.js +0 -8
package/es/class/item.js DELETED
@@ -1,1883 +0,0 @@
1
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
- function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
3
- function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
5
- function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
6
- function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
7
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
8
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
- function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
11
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
12
- function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
13
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
14
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
- function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
16
- import convert from 'convert-units';
17
- import { Group, Hole, Layer } from "./export";
18
- import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
19
- import { fromJS, Map } from 'immutable';
20
- import { INSTALLATION_SUFFIX_TYPE, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
21
- import { debugUtil } from "../utils/helper";
22
- import { hasMoldingLayout } from "../utils/molding";
23
- import { getInstallationSuffix } from "../components/viewer2d/utils";
24
- var allItemRect;
25
- var allItemSnap;
26
- var allLines;
27
- var allLineRects;
28
- var allLineSnap;
29
- var allRect;
30
- var time1;
31
- var time2;
32
- var Item = /*#__PURE__*/function () {
33
- function Item() {
34
- _classCallCheck(this, Item);
35
- }
36
- return _createClass(Item, null, [{
37
- key: "create",
38
- value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
39
- var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
40
- var itemID = IDBroker.acquireID();
41
- var item = state.catalog.factoryElement(type, {
42
- id: itemID,
43
- itemID: state.catalog.getIn(['elements', type, 'itemID']),
44
- name: NameGenerator.generateName('items', state.catalog.getIn(['elements', type, 'info', 'title'])),
45
- sku_number: state.catalog.getIn(['elements', type, 'obj']).toJS().sku_number,
46
- //style: state.catalog.getIn(['elements', type, 'info', 'door']),
47
- category: state.catalog.getIn(['elements', type, 'type']),
48
- layoutpos: state.catalog.getIn(['elements', type, 'info', 'layoutpos']),
49
- cabinet_category: state.catalog.getIn(['elements', type, 'obj']).toJS().cabinet_category,
50
- type: type,
51
- height: height,
52
- width: width,
53
- x: x,
54
- y: y,
55
- rotation: rotation,
56
- isDuplication: isDuplication
57
- }, null, state);
58
- if (item.category === 'cabinet') {
59
- var layer = state.getIn(['scene', 'layers', layerID]);
60
- if (state.doorStyle !== null && state.doorStyle !== undefined) {
61
- var _state$doorStyle, _temp$doorStyles;
62
- var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
63
- var cds = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
64
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
65
- });
66
- if (cds) {
67
- var updatedDoorStyles = _objectSpread(_objectSpread(_objectSpread({}, temp.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
68
- cabinet_door_style_id: cds.cabinet_door_style_id
69
- });
70
- item = item.merge({
71
- doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
72
- doorStyles: updatedDoorStyles
73
- }))
74
- });
75
- } else {
76
- var _state$oStyle;
77
- var styleObj = (_state$oStyle = state.oStyle) === null || _state$oStyle === void 0 || (_state$oStyle = _state$oStyle.toJS()) === null || _state$oStyle === void 0 ? void 0 : _state$oStyle.oStyle;
78
- if (styleObj) {
79
- for (var _x in styleObj) {
80
- cds = styleObj[_x].data.doorStyles.cds.find(function (elem) {
81
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
82
- });
83
- if (cds) {
84
- var tmpDS = styleObj[_x].data;
85
- tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, tmpDS.doorStyles), cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
86
- cabinet_door_style_id: cds.cabinet_door_style_id
87
- });
88
- item = item.merge({
89
- doorStyle: fromJS(tmpDS)
90
- });
91
- break;
92
- }
93
- }
94
- }
95
- }
96
- } else {
97
- var _state$oStyle2;
98
- var _styleObj = (_state$oStyle2 = state.oStyle) === null || _state$oStyle2 === void 0 || (_state$oStyle2 = _state$oStyle2.toJS()) === null || _state$oStyle2 === void 0 ? void 0 : _state$oStyle2.oStyle;
99
- if (_styleObj) {
100
- for (var _x2 in _styleObj) {
101
- var _styleObj$_x;
102
- var _cds = (_styleObj$_x = _styleObj[_x2]) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.data) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.doorStyles) === null || _styleObj$_x === void 0 || (_styleObj$_x = _styleObj$_x.cds) === null || _styleObj$_x === void 0 ? void 0 : _styleObj$_x.find(function (elem) {
103
- return elem.itemID === state.catalog.getIn(['elements', type, 'itemID']);
104
- });
105
- if (_cds) {
106
- var _styleObj$_x2;
107
- var _tmpDS = (_styleObj$_x2 = _styleObj[_x2]) === null || _styleObj$_x2 === void 0 ? void 0 : _styleObj$_x2.data;
108
- _tmpDS.doorStyles = _objectSpread(_objectSpread(_objectSpread({}, _tmpDS.doorStyles), _cds.data && _cds.data[0] ? _cds.data[0] : {}), {}, {
109
- cabinet_door_style_id: _cds.cabinet_door_style_id
110
- });
111
- item = item.merge({
112
- doorStyle: fromJS(_tmpDS)
113
- });
114
- break;
115
- }
116
- }
117
- }
118
- }
119
- }
120
- if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {
121
- return {
122
- updatedState: state,
123
- item: null
124
- };
125
- }
126
- var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
127
- var _doorStyle$doorStyles, _cds$data;
128
- var doorStyle = item.get('doorStyle').toJS();
129
- var cds = doorStyle === null || doorStyle === void 0 || (_doorStyle$doorStyles = doorStyle.doorStyles) === null || _doorStyle$doorStyles === void 0 || (_doorStyle$doorStyles = _doorStyle$doorStyles.cds) === null || _doorStyle$doorStyles === void 0 ? void 0 : _doorStyle$doorStyles.find(function (elem) {
130
- return elem.itemID === item.itemID;
131
- });
132
- var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
133
- return element && element.is_euro_cds;
134
- })) || [];
135
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
136
- var newProperties = item.get('properties').toJS();
137
- if (newProperties.hasOwnProperty('depth')) {
138
- if (!newProperties.hasOwnProperty('oldDepth')) {
139
- newProperties['oldDepth'] = new Map({
140
- length: newProperties.depth.length,
141
- _length: newProperties.depth._length,
142
- _unit: newProperties.depth._unit
143
- });
144
- }
145
- newProperties['depth'] = new Map({
146
- length: convert(euro_cds[0].euro_length).from('in').to('cm'),
147
- _length: euro_cds[0].euro_length,
148
- _unit: 'in'
149
- });
150
- }
151
- if (newProperties.hasOwnProperty('height')) {
152
- if (!newProperties.hasOwnProperty('oldHeight')) {
153
- newProperties['oldHeight'] = new Map({
154
- length: newProperties.height.length,
155
- _length: newProperties.height._length,
156
- _unit: newProperties.height._unit
157
- });
158
- }
159
- newProperties['height'] = new Map({
160
- length: convert(euro_cds[0].euro_height).from('in').to('cm'),
161
- _length: euro_cds[0].euro_height,
162
- _unit: 'in'
163
- });
164
- }
165
- if (newProperties.hasOwnProperty('width')) {
166
- if (!newProperties.hasOwnProperty('oldWidth')) {
167
- newProperties['oldWidth'] = new Map({
168
- length: newProperties.width.length,
169
- _length: newProperties.width._length,
170
- _unit: newProperties.width._unit
171
- });
172
- }
173
- newProperties['width'] = new Map({
174
- length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
175
- _length: euro_cds[0].euro_width,
176
- _unit: 'in'
177
- });
178
- }
179
- item = item.merge({
180
- properties: fromJS(newProperties)
181
- });
182
- } else {
183
- var properties = item.get('properties').toJS();
184
- if (properties.hasOwnProperty('oldDepth')) {
185
- properties['depth'] = new Map({
186
- length: properties.oldDepth.length,
187
- _length: properties.oldDepth._length,
188
- _unit: properties.oldDepth._unit
189
- });
190
- }
191
- if (properties.hasOwnProperty('oldHeight')) {
192
- properties['height'] = new Map({
193
- length: properties.oldHeight.length,
194
- _length: properties.oldHeight._length,
195
- _unit: properties.oldHeight._unit
196
- });
197
- }
198
- if (properties.hasOwnProperty('oldWidth')) {
199
- properties['width'] = new Map({
200
- length: properties.oldWidth.length,
201
- _length: properties.oldWidth._length,
202
- _unit: properties.oldWidth._unit
203
- });
204
- }
205
- item = item.merge({
206
- properties: fromJS(properties)
207
- });
208
- }
209
- };
210
- item.category === 'cabinet' && setSizeOfItemByDoorStyle();
211
- item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
212
- state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
213
- if (item.type.includes('Light')) {
214
- var ceilHeight = state.getIn(['scene', 'layers', layerID, 'ceilHeight']);
215
- var ceilUnit = state.getIn(['scene', 'layers', layerID, 'unit']);
216
- ceilHeight = convert(ceilHeight).from(ceilUnit).to('cm');
217
- var newAltitude = ceilHeight - item.properties.getIn(['height', 'length']);
218
- newAltitude = convert(newAltitude).from('cm').to(ceilUnit);
219
- item = item.setIn(['properties', 'altitude', '_length'], newAltitude);
220
- state = state.setIn(['scene', 'layers', layerID, 'items', item.id], item);
221
- }
222
- if (item.category === 'cabinet') {
223
- // If create a copied object, copied object has original object's molding property.And if create a object, it has a layer's molding property.
224
- var layerMolding = state.getIn(['scene', 'layers', layerID, 'molding']).filter(function (md) {
225
- return hasMoldingLayout(md, item.layoutpos);
226
- });
227
- state = state.setIn(['scene', 'layers', layerID, 'items', itemID, 'molding'], layerMolding.length ? layerMolding : molding);
228
- }
229
- return {
230
- updatedState: state,
231
- item: item
232
- };
233
- }
234
- }, {
235
- key: "updateDoorHandle",
236
- value: function updateDoorHandle(item, layer) {
237
- var doorHandle = layer.get('doorHandle');
238
- if (doorHandle == '') return item;
239
- var dataJSON = item.toJS();
240
- var itemID = dataJSON.id;
241
- var doorStyle = dataJSON.doorStyle;
242
- var tmpDS = _objectSpread(_objectSpread({}, doorStyle), {}, {
243
- handle_gltf: doorHandle,
244
- metalness: 0.2,
245
- roughness: 0.1
246
- });
247
- var cnt = 0;
248
- for (var prop in doorStyle.doorStyles) cnt++;
249
- if (cnt !== 0) {
250
- for (var i = 1; i < 10; i++) {
251
- tmpDS['doorStyles']['door_handle_' + i + '_gltf'] = doorHandle;
252
- tmpDS['doorStyles']['fixed_drawer_door_handle_' + i + '_gltf'] = doorHandle;
253
- tmpDS['doorStyles']['drawer_door_handle_' + i + '_gltf'] = doorHandle;
254
- }
255
- }
256
- item = item.mergeIn(['doorStyle'], fromJS(tmpDS));
257
- return item;
258
- }
259
- }, {
260
- key: "select",
261
- value: function select(state, layerID, itemID) {
262
- state = Layer.select(state, layerID).updatedState;
263
- state = Layer.selectElement(state, layerID, 'items', itemID).updatedState;
264
- state = state.merge({
265
- replacingSupport: new Map({
266
- layerID: layerID,
267
- itemID: itemID
268
- })
269
- });
270
- return {
271
- updatedState: state
272
- };
273
- }
274
- }, {
275
- key: "selectHole",
276
- value: function selectHole(state, layerID, holeID) {
277
- state = Layer.select(state, layerID).updatedState;
278
- state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;
279
- return {
280
- updatedState: state
281
- };
282
- }
283
- }, {
284
- key: "editWidth",
285
- value: function editWidth(state, newWidth, layerID, itemID) {
286
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
287
- var properties = item.properties;
288
- if (newWidth === 0) {
289
- alert('You can not set width to 0');
290
- return {
291
- updatedState: state
292
- };
293
- }
294
- var width = new Map({
295
- _length: newWidth,
296
- _unit: 'in',
297
- length: convert(newWidth).from('in').to('cm')
298
- });
299
- properties = properties.set('width', width);
300
- state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties'], properties);
301
- return {
302
- updatedState: state
303
- };
304
- }
305
- }, {
306
- key: "prepareSnap",
307
- value: function prepareSnap(state, layerID) {
308
- var layer = state.getIn(['scene', 'layers', layerID]);
309
- var scene = state.get('scene');
310
- var catalog = state.catalog.toJS();
311
- allLines = GeometryUtils.getAllLines(layer);
312
- allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
313
- allItemRect = GeometryUtils.getAllItems(scene, catalog, allLineRects);
314
- allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);
315
- allLineSnap = GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);
316
- allRect = allItemRect.others.concat(allLineRects);
317
- allItemSnap = GeometryUtils.validateSnaps(allItemSnap, allRect);
318
- allLineSnap = GeometryUtils.validateSnaps(allLineSnap, allRect);
319
- }
320
- }, {
321
- key: "duplicateSelected",
322
- value: function duplicateSelected(state, currentObject) {
323
- var layerID = state.getIn(['scene', 'selectedLayer']);
324
- var layer = state.getIn(['scene', 'layers', layerID]);
325
- var objectID = currentObject.id;
326
- var myObject;
327
- var x = currentObject.x;
328
- var y = currentObject.y;
329
- var sceneComponentType, width, depth, rotRad;
330
- switch (currentObject.prototype) {
331
- case 'items':
332
- myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
333
- sceneComponentType = myObject.type;
334
- width = myObject.properties.getIn(['width', 'length']);
335
- depth = myObject.properties.getIn(['depth', 'length']);
336
- rotRad = myObject.rotation * Math.PI / 180;
337
- this.prepareSnap(state, layerID);
338
- var val = {
339
- pos: {
340
- x: x + width * Math.cos(rotRad),
341
- y: y + width * Math.sin(rotRad)
342
- },
343
- rotRad: rotRad
344
- };
345
- val.size = allItemRect.cur.size;
346
- val.layoutpos = allItemRect.cur.layoutpos;
347
- val.is_corner = allItemRect.cur.is_corner;
348
- var isrectSect = GeometryUtils.validInterSect(allRect, val);
349
- if (isrectSect) {
350
- // Duplicated object has a original object's molding property
351
- var _this$create = this.create(state, layerID, sceneComponentType, x + width * Math.cos(rotRad), y + width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
352
- stateI = _this$create.updatedState,
353
- item = _this$create.item;
354
- if (item === null) {
355
- alert('There are no Door Colors in this cabinet.');
356
- state = state.merge({
357
- mode: MODE_IDLE,
358
- drawingSupport: new Map()
359
- });
360
- } else {
361
- state = Item.select(stateI, layerID, item.id).updatedState;
362
- state = state.setIn(['drawingSupport', 'currentID'], item.id);
363
- }
364
- } else {
365
- var _val = {
366
- pos: {
367
- x: x - width * Math.cos(rotRad),
368
- y: y - width * Math.sin(rotRad)
369
- },
370
- rotRad: rotRad
371
- };
372
- _val.size = allItemRect.cur.size;
373
- _val.layoutpos = allItemRect.cur.layoutpos;
374
- _val.is_corner = allItemRect.cur.is_corner;
375
- var isRect = GeometryUtils.validInterSect(allRect, _val);
376
- if (isRect) {
377
- var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
378
- _stateI = _this$create2.updatedState,
379
- _item = _this$create2.item;
380
- if (_item === null) {
381
- alert('There are no Door Colors in this cabinet.');
382
- state = state.merge({
383
- mode: MODE_IDLE,
384
- drawingSupport: new Map()
385
- });
386
- } else {
387
- state = Item.select(_stateI, layerID, _item.id).updatedState;
388
- state = state.setIn(['drawingSupport', 'currentID'], _item.id);
389
- }
390
- } else {
391
- var _val2 = {
392
- pos: {
393
- x: x - depth * Math.sin(rotRad),
394
- y: y - depth * Math.cos(rotRad)
395
- },
396
- rotRad: rotRad
397
- };
398
- _val2.size = allItemRect.cur.size;
399
- _val2.layoutpos = allItemRect.cur.layoutpos;
400
- _val2.is_corner = allItemRect.cur.is_corner;
401
- var isRectDown = GeometryUtils.validInterSect(allRect, _val2);
402
- if (isRectDown) {
403
- var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
404
- _stateI2 = _this$create3.updatedState,
405
- _item2 = _this$create3.item;
406
- if (_item2 === null) {
407
- alert('There are no Door Colors in this cabinet.');
408
- state = state.merge({
409
- mode: MODE_IDLE,
410
- drawingSupport: new Map()
411
- });
412
- } else {
413
- state = Item.select(_stateI2, layerID, _item2.id).updatedState;
414
- state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
415
- }
416
- } else {
417
- var _val3 = {
418
- pos: {
419
- x: x + depth * Math.sin(rotRad),
420
- y: y + depth * Math.cos(rotRad)
421
- },
422
- rotRad: rotRad
423
- };
424
- _val3.size = allItemRect.cur.size;
425
- _val3.layoutpos = allItemRect.cur.layoutpos;
426
- _val3.is_corner = allItemRect.cur.is_corner;
427
- var isRectUp = GeometryUtils.validInterSect(allRect, _val3);
428
- if (isRectUp) {
429
- var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding),
430
- _stateI3 = _this$create4.updatedState,
431
- _item3 = _this$create4.item;
432
- if (_item3 === null) {
433
- alert('There are no Door Colors in this cabinet.');
434
- state = state.merge({
435
- mode: MODE_IDLE,
436
- drawingSupport: new Map()
437
- });
438
- } else {
439
- state = Item.select(_stateI3, layerID, _item3.id).updatedState;
440
- state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
441
- }
442
- } else {
443
- console.log('there is no space');
444
- alert('No more space!');
445
- }
446
- }
447
- }
448
- }
449
- break;
450
- case 'holes':
451
- this.prepareSnap(state, layerID);
452
- myObject = state.getIn(['scene', 'layers', layerID, 'holes', objectID]);
453
- var line = state.getIn(['scene', 'layers', layerID, 'lines', myObject.line]);
454
- sceneComponentType = myObject.type;
455
- width = myObject.get('properties').get('width').get('length');
456
- var myOffset = myObject.offset;
457
- var v0 = layer.getIn(['vertices', line.vertices.get(0)]);
458
- var v1 = layer.getIn(['vertices', line.vertices.get(1)]);
459
- var lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);
460
- var delta = width / 2 / lineLength + 0.00001;
461
- var allHoles = state.getIn(['scene', 'layers', layerID, 'holes']);
462
- var rightAble = true;
463
- var leftAble = true;
464
- if (myOffset + 3 * delta > 1) rightAble = false;else if (myOffset - 3 * delta < 0) leftAble = false;
465
- if (allHoles.size === 0) {
466
- var _this$createHole = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset + delta * 2, myObject.get('properties')),
467
- stateH = _this$createHole.updatedState,
468
- hole = _this$createHole.hole;
469
- state = this.selectHole(stateH, layerID, hole.id).updatedState;
470
- state = state.setIn(['drawingSupport', 'currentID'], hole.id);
471
- } else {
472
- allHoles.forEach(function (hole) {
473
- if (hole.line === line.id) if (!hole.selected) {
474
- var newDelta = hole.get('properties').get('width').get('length') / 2 / lineLength;
475
- if (myOffset < hole.offset) {
476
- if (myOffset + delta * 3 > hole.offset - newDelta) {
477
- rightAble = false;
478
- }
479
- } else {
480
- if (myOffset - delta * 3 < hole.offset + newDelta) {
481
- leftAble = false;
482
- }
483
- }
484
- }
485
- });
486
- }
487
- if (rightAble) {
488
- var _this$createHole2 = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset + delta * 2, myObject.get('properties')),
489
- _stateH = _this$createHole2.updatedState,
490
- _hole = _this$createHole2.hole;
491
- state = this.selectHole(_stateH, layerID, _hole.id).updatedState;
492
- state = state.setIn(['drawingSupport', 'currentID'], _hole.id);
493
- } else {
494
- if (leftAble) {
495
- var _this$createHole3 = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset - delta * 2, myObject.get('properties')),
496
- _stateH2 = _this$createHole3.updatedState,
497
- _hole2 = _this$createHole3.hole;
498
- state = this.selectHole(_stateH2, layerID, _hole2.id).updatedState;
499
- state = state.setIn(['drawingSupport', 'currentID'], _hole2.id);
500
- } else alert('No more space');
501
- }
502
- break;
503
- case 'lines':
504
- alert('Duplicating lines is not currently supported yet.');
505
- break;
506
- default:
507
- break;
508
- }
509
- return {
510
- updatedState: state
511
- };
512
- }
513
- }, {
514
- key: "storeDistArray",
515
- value: function storeDistArray(state, layerID, itemID, distArray) {
516
- var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
517
- var isEqualDist = function isEqualDist(a, b) {
518
- return a == b;
519
- };
520
- if (curDistArray) {
521
- var equal = curDistArray.every(function (curElement, index) {
522
- return isEqualDist(curElement[0], distArray[index][0]);
523
- });
524
- if (!equal) {
525
- state = state.setIn(['scene', 'layers', layerID, 'items', itemID, 'distArray'], distArray);
526
- }
527
- }
528
- return {
529
- updatedState: state
530
- };
531
- }
532
- }, {
533
- key: "validateItemPositions",
534
- value: function validateItemPositions(state, layerID) {
535
- var _this = this;
536
- var layer = state.getIn(['scene', 'layers', layerID]);
537
- function isItemInRect(item) {
538
- var _state$getIn = state.getIn(['scene']),
539
- width = _state$getIn.width,
540
- height = _state$getIn.height;
541
- return item.x >= 0 && item.x <= width && item.y >= 0 && item.y <= height;
542
- }
543
- layer.items.forEach(function (item) {
544
- if (!isItemInRect(item)) state = _this.remove(state, layerID, item.id).updatedState;
545
- });
546
- return {
547
- updatedState: state
548
- };
549
- }
550
- }, {
551
- key: "remove",
552
- value: function remove(state, layerID, itemID) {
553
- state = this.unselect(state, layerID, itemID).updatedState;
554
- state = Layer.removeElement(state, layerID, 'items', itemID).updatedState;
555
- state.getIn(['scene', 'groups']).forEach(function (group) {
556
- return state = Group.removeElement(state, group.id, layerID, 'items', itemID).updatedState;
557
- });
558
- return {
559
- updatedState: state
560
- };
561
- }
562
- }, {
563
- key: "replaceItem",
564
- value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
565
- state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
566
- state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
567
- // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
568
- return {
569
- updatedState: state
570
- };
571
- }
572
- }, {
573
- key: "unselect",
574
- value: function unselect(state, layerID, itemID) {
575
- state = Layer.unselect(state, layerID, 'items', itemID).updatedState;
576
- return {
577
- updatedState: state
578
- };
579
- }
580
- }, {
581
- key: "selectToolDrawingItem",
582
- value: function selectToolDrawingItem(state, sceneComponentType) {
583
- state = state.merge({
584
- mode: MODE_DRAWING_ITEM,
585
- drawingSupport: new Map({
586
- type: sceneComponentType
587
- })
588
- });
589
- return {
590
- updatedState: state
591
- };
592
- }
593
- }, {
594
- key: "selectToolDrawingItem3D",
595
- value: function selectToolDrawingItem3D(state, sceneComponentType) {
596
- state = state.merge({
597
- mode: MODE_DRAWING_ITEM_3D,
598
- drawingSupport: new Map({
599
- type: sceneComponentType
600
- })
601
- });
602
- state = state.mergeIn(['scene', 'loadFlag'], false);
603
- return {
604
- updatedState: state
605
- };
606
- }
607
- }, {
608
- key: "endCreatingCabinet",
609
- value: function endCreatingCabinet(state) {
610
- state = state.merge({
611
- isOpen: false,
612
- openedType: 0
613
- });
614
- return {
615
- updatedState: state
616
- };
617
- }
618
- }, {
619
- key: "updatePopupOpen",
620
- value: function updatePopupOpen(state, value) {
621
- state = state.merge({
622
- openedType: value
623
- });
624
- return {
625
- updatedState: state
626
- };
627
- }
628
- }, {
629
- key: "updateDrawingItem",
630
- value: function updateDrawingItem(state, layerID, x, y) {
631
- if (state.hasIn(['drawingSupport', 'currentID'])) {
632
- var mode = state.get('mode');
633
- if ([MODE_DRAWING_ITEM_3D].includes(mode)) {
634
- state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
635
- return item && item.merge({
636
- x: x,
637
- y: y
638
- });
639
- });
640
- state = state.merge({
641
- mode: MODE_IDLE_3D
642
- });
643
- }
644
- if ([MODE_DRAWING_ITEM].includes(mode)) {
645
- state = state.merge({
646
- mode: MODE_IDLE
647
- });
648
- state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
649
- return item && item.merge({
650
- x: x,
651
- y: y
652
- });
653
- });
654
- }
655
- } else {
656
- var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false),
657
- stateI = _this$create5.updatedState,
658
- item = _this$create5.item;
659
- if (item === null) {
660
- alert('There are no Door Colors in this cabinet.');
661
- state = state.merge({
662
- mode: MODE_IDLE,
663
- drawingSupport: new Map()
664
- });
665
- } else {
666
- state = Item.select(stateI, layerID, item.id).updatedState;
667
- state = state.setIn(['drawingSupport', 'currentID'], item.id);
668
- }
669
- }
670
- return {
671
- updatedState: state
672
- };
673
- }
674
- }, {
675
- key: "updateDraggingItemChanged",
676
- value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
677
- var _state = state,
678
- scene = _state.scene;
679
- // let originalX = draggingSupport.get('originalX');
680
- // let originalY = draggingSupport.get('originalY');
681
-
682
- // let diffX = x;
683
- // let diffY = y;
684
-
685
- var item = scene.getIn(['layers', layerID, 'items', itemID]);
686
- // let tX = originalX - diffX;
687
- // let tY = originalY - diffY;
688
- // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;
689
- // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
690
- item = item.merge({
691
- x: x,
692
- y: y
693
- });
694
- state = state.merge({
695
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
696
- });
697
- time2 = debugUtil();
698
- false && console.log('FPS:', Math.round(1000 / (time2 - time1)), ' Delta Time:', (time2 - time1) / 1000, '(s)');
699
- return {
700
- updatedState: state
701
- };
702
- }
703
- }, {
704
- key: "endDrawingItem",
705
- value: function endDrawingItem(state, layerID, x, y) {
706
- var catalog = state.catalog;
707
- state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;
708
- state = Layer.unselectAll(state, layerID).updatedState;
709
- var popup = state.get('popup');
710
- state = state.merge({
711
- drawingSupport: Map({
712
- type: state.drawingSupport.get('type')
713
- }),
714
- isOpen: !popup
715
- });
716
- state = Layer.unselectAll(state, layerID).updatedState;
717
- this.updateMolding(state);
718
- return {
719
- updatedState: state
720
- };
721
- }
722
- }, {
723
- key: "beginDraggingItem",
724
- value: function beginDraggingItem(state, layerID, itemID, x, y) {
725
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
726
- time1 = debugUtil();
727
- if (!item) return;
728
- state = state.merge({
729
- mode: MODE_DRAGGING_ITEM,
730
- draggingSupport: Map({
731
- layerID: layerID,
732
- itemID: itemID,
733
- startPointX: x,
734
- startPointY: y,
735
- originalX: item.x,
736
- originalY: item.y
737
- })
738
- });
739
- return {
740
- updatedState: state
741
- };
742
- }
743
- }, {
744
- key: "beginDraggingItem3D",
745
- value: function beginDraggingItem3D(state, layerID, itemID, x, y) {
746
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
747
- state = state.setIn(['scene', 'isEndDragging'], false);
748
- if (!item) return {
749
- updatedState: state
750
- };
751
- state = state.merge({
752
- mode: MODE_DRAGGING_ITEM_3D,
753
- draggingSupport: Map({
754
- layerID: layerID,
755
- itemID: itemID,
756
- startPointX: x,
757
- startPointY: y,
758
- originalX: item.x,
759
- originalY: item.y
760
- })
761
- });
762
- return {
763
- updatedState: state
764
- };
765
- }
766
- }, {
767
- key: "updateDraggingItem",
768
- value: function updateDraggingItem(state, x, y) {
769
- var _state2 = state,
770
- draggingSupport = _state2.draggingSupport,
771
- scene = _state2.scene;
772
- var layerID = draggingSupport.get('layerID');
773
- var itemID = draggingSupport.get('itemID');
774
- var startPointX = draggingSupport.get('startPointX');
775
- var startPointY = draggingSupport.get('startPointY');
776
- var originalX = draggingSupport.get('originalX');
777
- var originalY = draggingSupport.get('originalY');
778
- var diffX = startPointX - x;
779
- var diffY = startPointY - y;
780
- var item = scene.getIn(['layers', layerID, 'items', itemID]);
781
- if (!item) return {
782
- updatedState: state
783
- };
784
- var tX = originalX - diffX;
785
- var tY = originalY - diffY;
786
- tX = tX > scene.width ? scene.width : tX < 0 ? 0 : tX;
787
- tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;
788
- item = item.merge({
789
- x: tX,
790
- y: tY
791
- });
792
- state = state.merge({
793
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
794
- });
795
- return {
796
- updatedState: state
797
- };
798
- }
799
- }, {
800
- key: "updateDraggingItem3DX",
801
- value: function updateDraggingItem3DX(state, x) {
802
- var _state3 = state,
803
- draggingSupport = _state3.draggingSupport,
804
- scene = _state3.scene;
805
- var layerID = draggingSupport.get('layerID');
806
- var itemID = draggingSupport.get('itemID');
807
- var startPointX = draggingSupport.get('startPointX');
808
- var originalX = draggingSupport.get('originalX');
809
- var diffX = startPointX - x;
810
- var item = scene.getIn(['layers', layerID, 'items', itemID]);
811
- item = item.merge({
812
- x: originalX - diffX
813
- });
814
- state = state.merge({
815
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
816
- });
817
- return {
818
- updatedState: state
819
- };
820
- }
821
- }, {
822
- key: "updateDraggingItem3DY",
823
- value: function updateDraggingItem3DY(state, y) {
824
- var _state4 = state,
825
- draggingSupport = _state4.draggingSupport,
826
- scene = _state4.scene;
827
- var layerID = draggingSupport.get('layerID');
828
- var itemID = draggingSupport.get('itemID');
829
- var startPointY = draggingSupport.get('startPointY');
830
- var originalY = draggingSupport.get('originalY');
831
- var diffY = startPointY - y;
832
- var item = scene.getIn(['layers', layerID, 'items', itemID]);
833
- item = item.merge({
834
- y: originalY - diffY
835
- });
836
- state = state.merge({
837
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
838
- });
839
- return {
840
- updatedState: state
841
- };
842
- }
843
- }, {
844
- key: "endDraggingItem",
845
- value: function endDraggingItem(state, x, y) {
846
- state = this.updateDraggingItem(state, x, y).updatedState;
847
- state = state.merge({
848
- mode: MODE_IDLE
849
- });
850
- return {
851
- updatedState: state
852
- };
853
- }
854
- }, {
855
- key: "endDraggingItem3D",
856
- value: function endDraggingItem3D(state) {
857
- // state = this.updateDraggingItem(state, x, y).updatedState;
858
- state = state.merge({
859
- mode: MODE_IDLE_3D
860
- });
861
- state = state.setIn(['scene', 'isEndDragging'], true);
862
- return {
863
- updatedState: state
864
- };
865
- }
866
- }, {
867
- key: "beginRotatingItem",
868
- value: function beginRotatingItem(state, layerID, itemID, x, y) {
869
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
870
- var originRotation = item.get('rotation');
871
- state = state.merge({
872
- mode: MODE_ROTATING_ITEM,
873
- rotatingSupport: Map({
874
- layerID: layerID,
875
- itemID: itemID,
876
- x: x,
877
- y: y,
878
- originRotation: originRotation
879
- })
880
- });
881
- return {
882
- updatedState: state
883
- };
884
- }
885
- }, {
886
- key: "beginRotatingItem3D",
887
- value: function beginRotatingItem3D(state, layerID, itemID, x, y) {
888
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
889
- var originRotation = item.get('rotation');
890
- state = state.merge({
891
- mode: MODE_ROTATING_ITEM_3D,
892
- rotatingSupport: Map({
893
- layerID: layerID,
894
- itemID: itemID,
895
- x: x,
896
- y: y,
897
- originRotation: originRotation
898
- })
899
- });
900
- return {
901
- updatedState: state
902
- };
903
- }
904
- }, {
905
- key: "updateRotatingItem",
906
- value: function updateRotatingItem(state, x, y) {
907
- var _state5 = state,
908
- rotatingSupport = _state5.rotatingSupport,
909
- scene = _state5.scene;
910
- var layerID = rotatingSupport.get('layerID');
911
- var itemID = rotatingSupport.get('itemID');
912
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
913
- var origin = {
914
- x: rotatingSupport.get('x'),
915
- y: rotatingSupport.get('y'),
916
- originRotation: rotatingSupport.get('originRotation')
917
- };
918
- var newRot = Math.atan2(origin.y - item.y, origin.x - item.x) * 180 / Math.PI + 90;
919
- var deltaRot = newRot - origin.originRotation;
920
- var deltaX = x - item.x;
921
- var deltaY = y - item.y;
922
- var rotation = Math.atan2(deltaY, deltaX) * 180 / Math.PI + 90;
923
- rotation -= deltaRot;
924
- if (-5 < rotation && rotation < 5) rotation = 0;
925
- if (-95 < rotation && rotation < -85) rotation = -90;
926
- if (-185 < rotation && rotation < -175) rotation = -180;
927
- if (85 < rotation && rotation < 95) rotation = 90;
928
- if (-270 < rotation && rotation < -265) rotation = 90;
929
- if (175 < rotation && rotation < 185) rotation = 180;
930
- if (265 < rotation && rotation < 275) rotation = -90;
931
- item = item.merge({
932
- rotation: rotation
933
- });
934
- state = state.merge({
935
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
936
- });
937
- return {
938
- updatedState: state
939
- };
940
- }
941
- }, {
942
- key: "updateRotatingItemChanged",
943
- value: function updateRotatingItemChanged(state, rotation, layerID, itemID) {
944
- var scene = state.scene;
945
-
946
- // let originalX = draggingSupport.get('originalX');
947
- // let originalY = draggingSupport.get('originalY');
948
-
949
- // let diffX = x;
950
- // let diffY = y;
951
-
952
- var item = scene.getIn(['layers', layerID, 'items', itemID]);
953
- // let tX = originalX - diffX;
954
- // let tY = originalY - diffY;
955
- // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;
956
- // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
957
- item = item.merge({
958
- rotation: rotation
959
- });
960
- state = state.merge({
961
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
962
- });
963
- return {
964
- updatedState: state
965
- };
966
- }
967
- }, {
968
- key: "endRotatingItem",
969
- value: function endRotatingItem(state, x, y) {
970
- //state = this.updateRotatingItem(state, x, y).updatedState;
971
- state = state.merge({
972
- mode: MODE_IDLE
973
- });
974
- return {
975
- updatedState: state
976
- };
977
- }
978
- }, {
979
- key: "endRotatingItem3D",
980
- value: function endRotatingItem3D(state, x, y) {
981
- state = this.updateRotatingItem(state, x, y).updatedState;
982
- state = state.merge({
983
- mode: MODE_IDLE_3D
984
- });
985
- return {
986
- updatedState: state
987
- };
988
- }
989
- }, {
990
- key: "replaceSubmodule",
991
- value: function replaceSubmodule(state, url) {
992
- var _state6 = state,
993
- replacingSupport = _state6.replacingSupport,
994
- scene = _state6.scene;
995
- url = 'catalog/texture.png';
996
- var urlData = url.split('/');
997
- var newURL = '';
998
- var addURL = false;
999
- for (var i = 0; i < urlData.length; i++) {
1000
- if (urlData[i] == '') {
1001
- continue;
1002
- }
1003
- newURL += '/' + urlData[i];
1004
- }
1005
- var layerID = replacingSupport.get('layerID');
1006
- var itemID = replacingSupport.get('itemID');
1007
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1008
- var submodule = [];
1009
- var normalMap = [];
1010
- for (var _i = 0; _i < item.submodule.size; _i++) submodule.push(item.submodule.get(_i));
1011
- for (var _i2 = 0; _i2 < item.normalMap.size; _i2++) normalMap.push(item.normalMap.get(_i2));
1012
- //let submodule = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'submodule']);
1013
- urlData = newURL.split('/');
1014
- var flag = false;
1015
- if (urlData[urlData.length - 1].includes('.gltf')) {
1016
- for (var _i3 = 0; _i3 < submodule.length; _i3++) {
1017
- var pathData = submodule[_i3].split('/');
1018
- if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {
1019
- submodule[_i3] = newURL;
1020
- flag = true;
1021
- }
1022
- }
1023
- if (!flag) submodule.push(newURL);
1024
- item = item.merge({
1025
- submodule: submodule
1026
- });
1027
- } else {
1028
- for (var _i4 = 0; _i4 < normalMap.length; _i4++) {
1029
- var _pathData = normalMap[_i4].split('/');
1030
- if (_pathData[_pathData.length - 2] === urlData[urlData.length - 2]) {
1031
- normalMap[_i4] = newURL;
1032
- flag = true;
1033
- }
1034
- }
1035
- if (!flag) normalMap.push(newURL);
1036
- item = item.merge({
1037
- normalMap: normalMap
1038
- });
1039
- }
1040
- state = state.merge({
1041
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1042
- });
1043
- state = state.merge({
1044
- mode: MODE_IDLE_3D
1045
- });
1046
- return {
1047
- updatedState: state
1048
- };
1049
- }
1050
- }, {
1051
- key: "setProperties",
1052
- value: function setProperties(state, layerID, itemID, properties) {
1053
- state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties'], properties);
1054
- return {
1055
- updatedState: state
1056
- };
1057
- }
1058
- }, {
1059
- key: "setJsProperties",
1060
- value: function setJsProperties(state, layerID, itemID, properties) {
1061
- return this.setProperties(state, layerID, itemID, fromJS(properties));
1062
- }
1063
- }, {
1064
- key: "updateProperties",
1065
- value: function updateProperties(state, layerID, itemID, properties) {
1066
- properties.forEach(function (v, k) {
1067
- if (state.hasIn(['scene', 'layers', layerID, 'items', itemID, 'properties', k])) state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties', k], v);
1068
- });
1069
- return {
1070
- updatedState: state
1071
- };
1072
- }
1073
- }, {
1074
- key: "updateJsProperties",
1075
- value: function updateJsProperties(state, layerID, itemID, properties) {
1076
- return this.updateProperties(state, layerID, itemID, fromJS(properties));
1077
- }
1078
- }, {
1079
- key: "setAttributes",
1080
- value: function setAttributes(state, layerID, itemID, itemAttributes) {
1081
- state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID], itemAttributes);
1082
- return {
1083
- updatedState: state
1084
- };
1085
- }
1086
- }, {
1087
- key: "setJsAttributes",
1088
- value: function setJsAttributes(state, layerID, itemID, itemAttributes) {
1089
- itemAttributes = fromJS(itemAttributes);
1090
- return this.setAttributes(state, layerID, itemID, itemAttributes);
1091
- }
1092
- }, {
1093
- key: "animateObject",
1094
- value: function animateObject(state, value) {
1095
- var _state7 = state,
1096
- replacingSupport = _state7.replacingSupport,
1097
- scene = _state7.scene;
1098
- var layerID = replacingSupport.get('layerID');
1099
- var itemID = replacingSupport.get('itemID');
1100
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1101
- if (item !== undefined) {
1102
- var animCount = item.get('animate');
1103
- item = item.merge({
1104
- animValue: value,
1105
- animate: animCount + 1
1106
- });
1107
- state = state.merge({
1108
- scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1109
- });
1110
- state = state.merge({
1111
- mode: MODE_IDLE_3D
1112
- });
1113
- }
1114
- return {
1115
- updatedState: state
1116
- };
1117
- }
1118
- }, {
1119
- key: "removeReplacingSupport",
1120
- value: function removeReplacingSupport(state) {
1121
- state = state.merge({
1122
- replacingSupport: new Map()
1123
- });
1124
- return {
1125
- updatedState: state
1126
- };
1127
- }
1128
- }, {
1129
- key: "setInitialDoorStyle",
1130
- value: function setInitialDoorStyle(state, doorStyle, oStyle) {
1131
- if (doorStyle === undefined) {
1132
- state = state.merge({
1133
- oStyle: new Map({
1134
- oStyle: oStyle
1135
- })
1136
- });
1137
- } else {
1138
- state = state.merge({
1139
- doorStyle: doorStyle,
1140
- oStyle: new Map({
1141
- oStyle: oStyle
1142
- })
1143
- });
1144
- var _state8 = state,
1145
- scene = _state8.scene;
1146
- var layerID = scene.get('selectedLayer');
1147
- var layers = scene.layers.get(layerID);
1148
- var items = layers.items;
1149
- items.forEach(function (data) {
1150
- {
1151
- var itemID = data.id;
1152
- var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1153
- doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1154
- counttop: doorStyle.doorStyles.counttop
1155
- })
1156
- });
1157
- data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1158
- layers = layers.mergeIn(['items', itemID], data);
1159
- state = state.merge({
1160
- scene: scene.mergeIn(['layers', layerID], layers)
1161
- });
1162
- }
1163
- });
1164
- }
1165
- return {
1166
- updatedState: state
1167
- };
1168
- }
1169
- }, {
1170
- key: "setDoorStyle",
1171
- value: function setDoorStyle(state, doorStyle, pathes, isAll) {
1172
- var _this2 = this;
1173
- var keys = Object.keys(doorStyle.doorStyles);
1174
- keys = keys.filter(function (elem) {
1175
- return !elem.endsWith('_gltf');
1176
- });
1177
- var tmp = {};
1178
- for (var x in keys) {
1179
- tmp[keys[x]] = doorStyle.doorStyles[keys[x]];
1180
- }
1181
- state = state.setIn(['scene', 'layers', state.scene.selectedLayer, 'doorStyle'], doorStyle);
1182
- state = state.merge({
1183
- doorStyle: doorStyle
1184
- });
1185
- var layerID = state.scene.get('selectedLayer');
1186
- var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1187
- temp_layer_molding = temp_layer_molding.filter(function (md) {
1188
- return doorStyle.doorStyles.cds.some(function (ds) {
1189
- return md.itemID === ds.itemID;
1190
- });
1191
- });
1192
- state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1193
- var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1194
- var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1195
- var _cds$data2;
1196
- if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1197
- var itemID = data.id;
1198
- var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1199
- var layer = state.getIn(['scene', 'layers', layerID]);
1200
- var tmpMolding = _toConsumableArray(curItem.molding);
1201
- var temp_item_molding = _toConsumableArray(curItem.molding);
1202
- temp_item_molding = temp_item_molding.filter(function (md) {
1203
- return doorStyle.doorStyles.cds.some(function (ds) {
1204
- return ds.itemID === md.itemID;
1205
- });
1206
- });
1207
- tmpMolding.forEach(function (md) {
1208
- var itemGroup = MoldingUtils.getItemGroupFromMolding(layer, curItem, md);
1209
- itemGroup.forEach(function (it) {
1210
- state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1211
- });
1212
- });
1213
- var cds = doorStyle.doorStyles.cds.find(function (elem) {
1214
- return elem.itemID === data.itemID;
1215
- });
1216
- var euro_cds = (cds === null || cds === void 0 || (_cds$data2 = cds.data) === null || _cds$data2 === void 0 ? void 0 : _cds$data2.filter(function (element) {
1217
- return element && element.is_euro_cds;
1218
- })) || [];
1219
- var cds_data;
1220
- if (doorStyle.door_style_name === 'Euro & Frameless' && euro_cds.length > 0) {
1221
- cds_data = cds ? _objectSpread(_objectSpread({}, euro_cds[0]), {}, {
1222
- cabinet_door_style_id: cds.cabinet_door_style_id
1223
- }) : {};
1224
- var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1225
- if (newProperties.hasOwnProperty('depth')) {
1226
- if (!newProperties.hasOwnProperty('oldDepth')) {
1227
- newProperties['oldDepth'] = new Map({
1228
- length: newProperties.depth.length,
1229
- _length: newProperties.depth._length,
1230
- _unit: newProperties.depth._unit
1231
- });
1232
- }
1233
- newProperties['depth'] = new Map({
1234
- length: convert(euro_cds[0].euro_length).from('in').to('cm'),
1235
- _length: euro_cds[0].euro_length,
1236
- _unit: 'in'
1237
- });
1238
- }
1239
- if (newProperties.hasOwnProperty('height')) {
1240
- if (!newProperties.hasOwnProperty('oldHeight')) {
1241
- newProperties['oldHeight'] = new Map({
1242
- length: newProperties.height.length,
1243
- _length: newProperties.height._length,
1244
- _unit: newProperties.height._unit
1245
- });
1246
- }
1247
- newProperties['height'] = new Map({
1248
- length: convert(euro_cds[0].euro_height).from('in').to('cm'),
1249
- _length: euro_cds[0].euro_height,
1250
- _unit: 'in'
1251
- });
1252
- }
1253
- if (newProperties.hasOwnProperty('width')) {
1254
- if (!newProperties.hasOwnProperty('oldWidth')) {
1255
- newProperties['oldWidth'] = new Map({
1256
- length: newProperties.width.length,
1257
- _length: newProperties.width._length,
1258
- _unit: newProperties.width._unit
1259
- });
1260
- }
1261
- newProperties['width'] = new Map({
1262
- length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
1263
- _length: euro_cds[0].euro_width,
1264
- _unit: 'in'
1265
- });
1266
- }
1267
- state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1268
- } else {
1269
- cds_data = cds ? _objectSpread(_objectSpread({}, cds.data && cds.data[0] ? cds.data[0] : {}), {}, {
1270
- cabinet_door_style_id: cds.cabinet_door_style_id
1271
- }) : {};
1272
- var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1273
- if (properties.hasOwnProperty('oldDepth')) {
1274
- properties['depth'] = new Map({
1275
- length: properties.oldDepth.length,
1276
- _length: properties.oldDepth._length,
1277
- _unit: properties.oldDepth._unit
1278
- });
1279
- }
1280
- if (properties.hasOwnProperty('oldHeight')) {
1281
- properties['height'] = new Map({
1282
- length: properties.oldHeight.length,
1283
- _length: properties.oldHeight._length,
1284
- _unit: properties.oldHeight._unit
1285
- });
1286
- }
1287
- if (properties.hasOwnProperty('oldWidth')) {
1288
- properties['width'] = new Map({
1289
- length: properties.oldWidth.length,
1290
- _length: properties.oldWidth._length,
1291
- _unit: properties.oldWidth._unit
1292
- });
1293
- }
1294
- state = _this2.setJsProperties(state, layerID, itemID, properties).updatedState;
1295
- }
1296
- var tmpDS = {
1297
- id: doorStyle.id,
1298
- brightness: doorStyle.brightness,
1299
- color: doorStyle.color,
1300
- glossness: doorStyle.glossness,
1301
- name: doorStyle.name,
1302
- door_style_name: doorStyle.door_style_name,
1303
- texture: doorStyle.texture,
1304
- thumbnail: doorStyle.thumbnail,
1305
- type: doorStyle.type,
1306
- sku: doorStyle.sku,
1307
- color_sku_alias: doorStyle.color_sku_alias,
1308
- // alias name of color_sku for the current dealer
1309
- install: getInstallationSuffix(INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1310
- doorStyles: _objectSpread(_objectSpread({}, tmp), cds_data)
1311
- };
1312
- state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], fromJS(tmpDS));
1313
- };
1314
- if (isAll) {
1315
- var items = state.scene.layers.get(layerID).items;
1316
- items.forEach(setDoorStyleOfItem);
1317
- } else {
1318
- if (itemIDs.length > 0) {
1319
- var _loop = function _loop() {
1320
- var itemID = itemIDs[i];
1321
- var items = state.scene.layers.get(layerID).items;
1322
- items.forEach(function (data) {
1323
- if (itemID === data.id) {
1324
- setDoorStyleOfItem(data);
1325
- }
1326
- });
1327
- };
1328
- for (var i = 0; i < itemIDs.length; i++) {
1329
- _loop();
1330
- }
1331
- }
1332
- }
1333
- return {
1334
- updatedState: state
1335
- };
1336
- }
1337
- }, {
1338
- key: "setCounterTop",
1339
- value: function setCounterTop(state, counterTop) {
1340
- var _state9 = state,
1341
- scene = _state9.scene;
1342
- var layerID = scene.get('selectedLayer');
1343
- var layers = scene.layers.get(layerID);
1344
- layers = layers.mergeIn(['counterTop'], counterTop);
1345
- state = state.merge({
1346
- scene: scene.mergeIn(['layers', layerID], layers)
1347
- });
1348
- var items = layers.items;
1349
- items.forEach(function (data) {
1350
- {
1351
- var dataJSON = data.toJS();
1352
- var itemID = dataJSON.id;
1353
- var newCounter = dataJSON.counterTop;
1354
- newCounter = _objectSpread(_objectSpread({}, newCounter), counterTop);
1355
- data = data.mergeIn(['counterTop'], newCounter);
1356
- layers = layers.mergeIn(['items', itemID], data);
1357
- state = state.merge({
1358
- scene: scene.mergeIn(['layers', layerID], layers)
1359
- });
1360
- }
1361
- });
1362
- return {
1363
- updatedState: state
1364
- };
1365
- }
1366
- }, {
1367
- key: "setItemsDoorHandle",
1368
- value: function setItemsDoorHandle(state, scene, layer, layerID, elements_item) {
1369
- var _this3 = this;
1370
- elements_item.forEach(function (data) {
1371
- var itemID = data.id;
1372
- var item = _this3.updateDoorHandle(data, layer);
1373
- layer = layer.mergeIn(['items', itemID], item);
1374
- state = state.merge({
1375
- scene: scene.mergeIn(['layers', layerID], layer)
1376
- });
1377
- });
1378
- return {
1379
- updatedState: state
1380
- };
1381
- }
1382
- }, {
1383
- key: "setDoorHandle",
1384
- value: function setDoorHandle(state, doorHandle) {
1385
- var _state0 = state,
1386
- scene = _state0.scene;
1387
- var layerID = scene.get('selectedLayer');
1388
- var layer = scene.layers.get(layerID);
1389
- layer = layer.mergeIn(['doorHandle'], doorHandle);
1390
- state = state.merge({
1391
- scene: scene.mergeIn(['layers', layerID], layer)
1392
- });
1393
- var items = layer.items;
1394
- var selectedItems = items.filter(function (element) {
1395
- return element.selected === true;
1396
- }); // find selected items (default 1 selected)
1397
-
1398
- if (selectedItems.size === 0) {
1399
- state = this.setItemsDoorHandle(state, scene, layer, layerID, items).updatedState;
1400
- } else {
1401
- state = this.setItemsDoorHandle(state, scene, layer, layerID, selectedItems).updatedState;
1402
- }
1403
- return {
1404
- updatedState: state
1405
- };
1406
- }
1407
- }, {
1408
- key: "setHandleMaterial",
1409
- value: function setHandleMaterial(state, material) {
1410
- var _state1 = state,
1411
- scene = _state1.scene;
1412
- var layerID = scene.get('selectedLayer');
1413
- var layers = scene.layers.get(layerID);
1414
- var items = layers.items;
1415
- items.forEach(function (data) {
1416
- var dataJSON = data.toJS();
1417
- var itemID = dataJSON.id;
1418
- var doorStyle = dataJSON.doorStyle;
1419
- var tmpDS = _objectSpread(_objectSpread({}, doorStyle), {}, {
1420
- metalness: material.metalness,
1421
- roughness: material.roughness
1422
- });
1423
- data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1424
- layers = layers.mergeIn(['items', itemID], data);
1425
- state = state.merge({
1426
- scene: scene.mergeIn(['layers', layerID], layers)
1427
- });
1428
- });
1429
- return {
1430
- updatedState: state
1431
- };
1432
- }
1433
- }, {
1434
- key: "setWallColor",
1435
- value: function setWallColor(state, wallColor) {
1436
- var _state10 = state,
1437
- scene = _state10.scene;
1438
- var layerID = scene.get('selectedLayer');
1439
- var layer = scene.layers.get(layerID);
1440
- layer = layer.merge({
1441
- wallColor: wallColor
1442
- });
1443
- state = state.merge({
1444
- scene: scene.mergeIn(['layers', layerID], layer)
1445
- });
1446
- var lines = layer.lines;
1447
- lines.forEach(function (data) {
1448
- var dataJSON = data.toJS();
1449
- var lineID = dataJSON.id;
1450
- data = data.mergeIn(['wallColor'], wallColor);
1451
- layer = layer.mergeIn(['lines', lineID], data);
1452
- state = state.merge({
1453
- scene: scene.mergeIn(['layers', layerID], layer)
1454
- });
1455
- });
1456
- return {
1457
- updatedState: state
1458
- };
1459
- }
1460
- }, {
1461
- key: "setBacksplash",
1462
- value: function setBacksplash(state, backsplash) {
1463
- var _state11 = state,
1464
- scene = _state11.scene;
1465
- var layerID = scene.get('selectedLayer');
1466
- var layer = scene.layers.get(layerID);
1467
- var dataJSON = layer.toJS();
1468
- var newBack = dataJSON.backsplash;
1469
- var flag = true; // selected or not
1470
- // if backsplash is already set
1471
- if (layer.getIn(['backsplash']).uri === backsplash.uri) {
1472
- // unselect
1473
- newBack = _objectSpread(_objectSpread({}, newBack), {}, {
1474
- uri: ''
1475
- });
1476
- flag = false;
1477
- }
1478
- // else then, set backsplash
1479
- else newBack = _objectSpread(_objectSpread({}, newBack), backsplash);
1480
- layer = layer.mergeIn(['backsplash'], newBack);
1481
- layer = layer.set('backsplashApplied', flag);
1482
- state = state.merge({
1483
- scene: scene.mergeIn(['layers', layerID], layer)
1484
- });
1485
- return {
1486
- updatedState: state
1487
- };
1488
- }
1489
- }, {
1490
- key: "setMolding",
1491
- value: function setMolding(state, molding, isAll) {
1492
- var _state12 = state,
1493
- scene = _state12.scene;
1494
- var layerID = scene.get('selectedLayer');
1495
- var layer = scene.layers.get(layerID);
1496
- if (isAll) {
1497
- var tempLayerMolding = layer.molding;
1498
- var flag = tempLayerMolding.some(function (mol) {
1499
- return mol.name === molding.name;
1500
- });
1501
- if (flag) {
1502
- tempLayerMolding = tempLayerMolding.filter(function (mol) {
1503
- return mol.name !== molding.name;
1504
- });
1505
- } else {
1506
- if (tempLayerMolding.some(function (mol) {
1507
- return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1508
- })) {
1509
- tempLayerMolding = tempLayerMolding.filter(function (mol) {
1510
- return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1511
- });
1512
- }
1513
- tempLayerMolding = tempLayerMolding.concat(molding);
1514
- }
1515
- layer = layer.set('molding', tempLayerMolding);
1516
- state = state.merge({
1517
- scene: scene.mergeIn(['layers', layerID], layer)
1518
- });
1519
- layer.items.toArray().forEach(function (item) {
1520
- if (MoldingUtils.isEnableItemForMolding(layer, item, molding)) {
1521
- var tempItemMolding = item.molding;
1522
- if (flag) {
1523
- if (tempItemMolding.some(function (mol) {
1524
- return mol.name === molding.name;
1525
- })) {
1526
- tempItemMolding = tempItemMolding.filter(function (mol) {
1527
- return mol.name !== molding.name;
1528
- });
1529
- }
1530
- } else {
1531
- if (tempItemMolding.some(function (mol) {
1532
- return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1533
- })) {
1534
- tempItemMolding = tempItemMolding.filter(function (mol) {
1535
- return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1536
- });
1537
- }
1538
- tempItemMolding = tempItemMolding.concat(molding);
1539
- }
1540
- state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempItemMolding);
1541
- }
1542
- });
1543
- } else {
1544
- var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
1545
- if (MoldingUtils.isEnableItemForMolding(layer, selectedItem, molding)) {
1546
- var moldingGroup = MoldingUtils.getItemGroupFromMolding(layer, selectedItem, molding);
1547
- var tempSelItemMolding = selectedItem.molding;
1548
- var _flag = tempSelItemMolding.some(function (mol) {
1549
- return mol.name === molding.name;
1550
- });
1551
- moldingGroup.forEach(function (item) {
1552
- var tempItemMolding = item.molding;
1553
- if (_flag) {
1554
- if (tempItemMolding.some(function (mol) {
1555
- return mol.name === molding.name;
1556
- })) {
1557
- tempItemMolding = tempItemMolding.filter(function (mol) {
1558
- return mol.name !== molding.name;
1559
- });
1560
- }
1561
- } else {
1562
- if (tempItemMolding.some(function (mol) {
1563
- return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1564
- })) {
1565
- tempItemMolding = tempItemMolding.filter(function (mol) {
1566
- return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1567
- });
1568
- }
1569
- tempItemMolding = tempItemMolding.concat(molding);
1570
- }
1571
- state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempItemMolding);
1572
- });
1573
- }
1574
- }
1575
- return {
1576
- updatedState: state
1577
- };
1578
- }
1579
- }, {
1580
- key: "updateMolding",
1581
- value: function updateMolding(state) {
1582
- var _state13 = state,
1583
- scene = _state13.scene;
1584
- var layerID = scene.get('selectedLayer');
1585
- var layer = scene.layers.get(layerID);
1586
- var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
1587
- var snappedItemGroup = []; // The array that include snapped items with selected item.
1588
- if (!!selectedItem && selectedItem.category === 'cabinet') {
1589
- var itemGroups = [];
1590
- layer.items.toArray().forEach(function (curItem) {
1591
- if (selectedItem.id !== curItem.id && curItem.category === 'cabinet') {
1592
- if (MoldingUtils.isItemSnappedItem(selectedItem, curItem)) {
1593
- snappedItemGroup.push(curItem); // add the snapped item.
1594
- // add the snapped item that has same molding location type, layoutpos and height to itemGroups.
1595
- if (curItem.molding.length) {
1596
- curItem.molding.forEach(function (md) {
1597
- // This code check whether the curItem can be grouped with selected Item in molding.
1598
- if (MoldingUtils.tryMergeMDItem(layer, selectedItem, curItem, [selectedItem], md)) {
1599
- itemGroups.push({
1600
- base_item: curItem,
1601
- group: MoldingUtils.getItemGroupFromMolding(layer, curItem, md),
1602
- molding: md
1603
- });
1604
- }
1605
- });
1606
- }
1607
- }
1608
- }
1609
- });
1610
- var updateSelectItemMolding = function updateSelectItemMolding() {
1611
- var _loop2 = function _loop2() {
1612
- // check whether snapped item is same as selected item in layoutpos(Wall, Tall, Base)
1613
- if (MoldingUtils.isSameMoldingLayoutpos(selectedItem, snappedItemGroup[i])) {
1614
- // check whether snapped item is same in location(same location type and height).
1615
- var delMoldings = [];
1616
- for (var k = 0; k < selectedItem.molding.length; k++) {
1617
- if (MoldingUtils.isItemSameItemByLocation(selectedItem, snappedItemGroup[i], selectedItem.molding[k].location_type)) {
1618
- delMoldings.push(selectedItem.molding[k].itemID);
1619
- }
1620
- }
1621
- var resultMol = [];
1622
- selectedItem.molding.forEach(function (mol) {
1623
- if (!delMoldings.some(function (id) {
1624
- return id === mol.itemID;
1625
- })) {
1626
- resultMol.push(mol);
1627
- }
1628
- });
1629
- state = state.setIn(['scene', 'layers', layerID, 'items', selectedItem.id, 'molding'], resultMol);
1630
- }
1631
- };
1632
- for (var i = 0; i < snappedItemGroup.length; i++) {
1633
- _loop2();
1634
- }
1635
- };
1636
- var emptyMoldingArray = function emptyMoldingArray() {
1637
- var temp_items = [selectedItem];
1638
- var groupMoldings = [];
1639
- itemGroups.forEach(function (itGroup) {
1640
- groupMoldings.push(itGroup.molding);
1641
- itGroup.group.forEach(function (it) {
1642
- if (!temp_items.some(function (i) {
1643
- return i.id === it.id;
1644
- })) {
1645
- temp_items.push(it);
1646
- }
1647
- });
1648
- });
1649
- temp_items.forEach(function (item) {
1650
- var finalMoldings = [];
1651
- var tempMoldings = state.getIn(['scene', 'layers', layerID, 'items', item.id, 'molding']);
1652
- tempMoldings.forEach(function (molding) {
1653
- if (!groupMoldings.some(function (ml) {
1654
- return ml.itemID === molding.itemID;
1655
- })) {
1656
- finalMoldings.push(molding);
1657
- }
1658
- });
1659
- state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], finalMoldings);
1660
- });
1661
- updateSelectItemMolding();
1662
- };
1663
- var setLocationMolding = function setLocationMolding(location) {
1664
- var locationMolding = itemGroups.filter(function (it) {
1665
- return it.molding.location_type === location;
1666
- }).sort(function (a, b) {
1667
- if (a.group.length === b.group.length) {
1668
- return GeometryUtils.pointsDistance(a.base_item.x, a.base_item.y, selectedItem.x, selectedItem.y) - GeometryUtils.pointsDistance(b.base_item.x, b.base_item.y, selectedItem.x, selectedItem.y);
1669
- } else {
1670
- return a.group.length - b.group.length;
1671
- }
1672
- });
1673
- if (locationMolding.length) {
1674
- var locationMoldingItems = MoldingUtils.getItemGroupFromMolding(layer, selectedItem, locationMolding[0].molding);
1675
- locationMoldingItems.forEach(function (item) {
1676
- var tempMoldings = state.getIn(['scene', 'layers', layerID, 'items', item.id, 'molding']);
1677
- if (!tempMoldings.some(function (mol) {
1678
- return mol.itemID === locationMolding[0].molding.itemID;
1679
- })) tempMoldings.push(locationMolding[0].molding);
1680
- state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempMoldings);
1681
- });
1682
- }
1683
- };
1684
- if (itemGroups.length && layer.items.some(function (it) {
1685
- return MoldingUtils.isItemSnappedItem(selectedItem, it) && it.category === 'cabinet';
1686
- })) {
1687
- emptyMoldingArray();
1688
- for (var i = 0; i < MOLDING_LOCATIONS.length; i++) {
1689
- setLocationMolding(MOLDING_LOCATIONS[i]);
1690
- }
1691
- } else if (!itemGroups.length && selectedItem.molding.length) {
1692
- // Delete the selected Item's molding property if selItem attached the group that has no molding.
1693
- // If snapped items have no moldings and one item's property is same as selected Item, selected Item's molding should be deleted.
1694
- updateSelectItemMolding();
1695
- }
1696
- }
1697
- return {
1698
- updatedState: state
1699
- };
1700
- }
1701
- }, {
1702
- key: "setBacksplashVisible",
1703
- value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1704
- var _state14 = state,
1705
- scene = _state14.scene;
1706
- var layerID = scene.get('selectedLayer');
1707
- var layer = scene.layers.get(layerID);
1708
- layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
1709
- // let cabinet_category = layer.getIn(["items"], itemID).toJS()[itemID].cabinet_category;
1710
- // if (cabinet_category && (cabinet_category.search("Sink") !== -1 || cabinet_category.search("End/Angle") !== -1)) {
1711
- // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], true);
1712
- // } else {
1713
- // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], false);
1714
- // }
1715
- state = state.merge({
1716
- scene: scene.mergeIn(['layers', layerID], layer)
1717
- });
1718
- return {
1719
- updatedState: state
1720
- };
1721
- }
1722
- }, {
1723
- key: "setApplianceMaterial",
1724
- value: function setApplianceMaterial(state, material) {
1725
- var _state15 = state,
1726
- scene = _state15.scene;
1727
- var layerID = scene.get('selectedLayer');
1728
- var layers = scene.layers.get(layerID);
1729
- var items = layers.items;
1730
- items.forEach(function (data) {
1731
- var dataJSON = data.toJS();
1732
- var itemID = dataJSON.id;
1733
- var newMaterial = {
1734
- metalness: material.metalness,
1735
- roughness: material.roughness
1736
- };
1737
- data = data.mergeIn(['applianceMaterial'], newMaterial);
1738
- layers = layers.mergeIn(['items', itemID], data);
1739
- state = state.merge({
1740
- scene: scene.mergeIn(['layers', layerID], layers)
1741
- });
1742
- });
1743
- return {
1744
- updatedState: state
1745
- };
1746
- }
1747
- }, {
1748
- key: "setModelling",
1749
- value: function setModelling(state, molding) {
1750
- var _state16 = state,
1751
- scene = _state16.scene;
1752
- var layerID = scene.get('selectedLayer');
1753
- var layers = scene.layers.get(layerID);
1754
- var items = layers.items;
1755
- items.forEach(function (data) {
1756
- var dataJSON = data.toJS();
1757
- var itemID = dataJSON.id;
1758
- });
1759
- state = state.merge({
1760
- scene: scene.mergeIn(['layers', layerID], layers)
1761
- });
1762
- return {
1763
- updatedState: state
1764
- };
1765
- }
1766
- }, {
1767
- key: "updateItemsAltitude",
1768
- value: function updateItemsAltitude(state, layerID, itemID, value) {
1769
- var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1770
- var properties = item.get('properties');
1771
- var altitude = properties.get('altitude');
1772
- var length = altitude.get('length');
1773
- var _length = altitude.get('_length');
1774
- var _unit = altitude.get('_unit');
1775
- length = length - value;
1776
- switch (_unit) {
1777
- case 'mm':
1778
- _length = length * 10;
1779
- break;
1780
- case 'm':
1781
- _length = length * 0.01;
1782
- break;
1783
- default:
1784
- _length = length;
1785
- }
1786
- if (length <= 0) {
1787
- length = 0;
1788
- _length = 0;
1789
- }
1790
- state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties', 'altitude'], new Map({
1791
- length: length,
1792
- _length: _length,
1793
- _unit: _unit
1794
- }));
1795
- return {
1796
- updatedState: state
1797
- };
1798
- }
1799
- }, {
1800
- key: "createHole",
1801
- value: function createHole(state, layerID, type, lineID, offset, properties) {
1802
- var holeID = IDBroker.acquireID();
1803
- var hole = state.catalog.factoryElement(type, {
1804
- id: holeID,
1805
- url: state.catalog.getIn(['elements', type, 'info', 'url']),
1806
- type: type,
1807
- offset: offset,
1808
- line: lineID
1809
- }, properties);
1810
- state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);
1811
- state = state.updateIn(['scene', 'layers', layerID, 'lines', lineID, 'holes'], function (holes) {
1812
- return holes && holes.push(holeID);
1813
- });
1814
- // get vertex order/////
1815
- var element = state.scene.layers.getIn([layerID, 'lines', lineID]);
1816
- var layer = state.getIn(['scene', 'layers', layerID]);
1817
- var vetName0 = element.vertices.get(0);
1818
- var vetName1 = element.vertices.get(1);
1819
- var verticesArray = [];
1820
- layer.areas.forEach(function (data) {
1821
- verticesArray.push(data.vertices.toJS());
1822
- });
1823
- for (var i = 0; i < verticesArray.length; i++) {
1824
- var vertices = verticesArray[i];
1825
- if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
1826
- var index0 = vertices.indexOf(vetName0);
1827
- var index1 = vertices.indexOf(vetName1);
1828
- // if vertex order chanege//
1829
- if (index1 + 1 == index0) {
1830
- return {
1831
- updatedState: state,
1832
- hole: hole
1833
- };
1834
- }
1835
- if (index0 == 0 && index1 == vertices.length - 1) {
1836
- return {
1837
- updatedState: state,
1838
- hole: hole
1839
- };
1840
- }
1841
- // ////////////////////////
1842
- }
1843
- }
1844
- // ///////////////////////////
1845
- properties = hole.properties.toJS();
1846
- if (properties.hasOwnProperty('flip_orizzontal')) {
1847
- properties['flip_orizzontal'] = true;
1848
- }
1849
- if (properties.hasOwnProperty('flip_horizontal')) {
1850
- properties['flip_horizontal'] = true;
1851
- }
1852
- state = Hole.setJsProperties(state, layerID, holeID, properties).updatedState;
1853
- return {
1854
- updatedState: state,
1855
- hole: hole
1856
- };
1857
- }
1858
- }, {
1859
- key: "toggleLoadingCabinet",
1860
- value: function toggleLoadingCabinet(state) {
1861
- var _state17 = state,
1862
- scene = _state17.scene;
1863
- console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1864
- // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1865
- // state = state.set('scene', scene);
1866
- state = state.setIn(['scene', 'isLoadingCabinet'], !scene.isLoadingCabinet);
1867
- return {
1868
- updatedState: state
1869
- };
1870
- }
1871
- }, {
1872
- key: "endLoading",
1873
- value: function endLoading(state) {
1874
- var _state18 = state,
1875
- scene = _state18.scene;
1876
- state = state.setIn(['scene', 'loadFlag'], true);
1877
- return {
1878
- updatedState: state
1879
- };
1880
- }
1881
- }]);
1882
- }();
1883
- export { Item as default };