kitchen-simulator 5.10.2-react.18 → 5.10.4-react.18

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 (579) hide show
  1. package/es/@history.js +2 -0
  2. package/es/AppContext.js +6 -0
  3. package/es/LiteKitchenConfigurator.js +474 -0
  4. package/es/LiteRenderer.js +363 -0
  5. package/es/WorkSpace.js +851 -0
  6. package/es/actions/area-actions.js +14 -0
  7. package/es/actions/export.js +23 -0
  8. package/es/actions/groups-actions.js +89 -0
  9. package/es/actions/holes-actions.js +119 -0
  10. package/es/actions/items-actions.js +316 -0
  11. package/es/actions/lines-actions.js +83 -0
  12. package/es/actions/project-actions.js +298 -0
  13. package/es/actions/scene-actions.js +33 -0
  14. package/es/actions/vertices-actions.js +27 -0
  15. package/es/actions/viewer2d-actions.js +58 -0
  16. package/es/actions/viewer3d-actions.js +23 -0
  17. package/es/assets/brown_photostudio_02_1k.hdr +0 -0
  18. package/es/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  19. package/es/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  20. package/es/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  21. package/es/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  22. package/es/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  23. package/es/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  24. package/es/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  25. package/es/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  26. package/es/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  27. package/es/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  28. package/es/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  29. package/es/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  30. package/es/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  31. package/es/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  32. package/es/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  33. package/es/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  34. package/es/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  35. package/es/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  36. package/es/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  37. package/es/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  38. package/es/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  39. package/es/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  40. package/es/assets/fonts/style.css +177 -0
  41. package/es/assets/gltf/door_closet.bin +0 -0
  42. package/es/assets/gltf/door_closet.fbx +0 -0
  43. package/es/assets/gltf/door_closet.gltf +1 -0
  44. package/es/assets/gltf/door_exterior.bin +0 -0
  45. package/es/assets/gltf/door_exterior.fbx +0 -0
  46. package/es/assets/gltf/door_exterior.gltf +1 -0
  47. package/es/assets/gltf/door_interior.bin +0 -0
  48. package/es/assets/gltf/door_interior.fbx +0 -0
  49. package/es/assets/gltf/door_interior.gltf +1 -0
  50. package/es/assets/gltf/door_sliding.bin +0 -0
  51. package/es/assets/gltf/door_sliding.fbx +0 -0
  52. package/es/assets/gltf/door_sliding.gltf +1 -0
  53. package/es/assets/gltf/doorway_framed.bin +0 -0
  54. package/es/assets/gltf/doorway_framed.fbx +0 -0
  55. package/es/assets/gltf/doorway_framed.gltf +1 -0
  56. package/es/assets/gltf/window_clear.bin +0 -0
  57. package/es/assets/gltf/window_clear.fbx +0 -0
  58. package/es/assets/gltf/window_clear.gltf +1 -0
  59. package/es/assets/gltf/window_cross.bin +0 -0
  60. package/es/assets/gltf/window_cross.fbx +0 -0
  61. package/es/assets/gltf/window_cross.gltf +1 -0
  62. package/es/assets/gltf/window_double_hung.bin +0 -0
  63. package/es/assets/gltf/window_double_hung.fbx +0 -0
  64. package/es/assets/gltf/window_double_hung.gltf +1 -0
  65. package/es/assets/gltf/window_vertical.bin +0 -0
  66. package/es/assets/gltf/window_vertical.fbx +0 -0
  67. package/es/assets/gltf/window_vertical.gltf +1 -0
  68. package/es/assets/img/TKC_thumbnail.png +0 -0
  69. package/es/assets/img/Toggle.png +0 -0
  70. package/es/assets/img/loading/loading.gif +0 -0
  71. package/es/assets/img/loading/loading_1.svg +11 -0
  72. package/es/assets/img/loading_large.gif +0 -0
  73. package/es/assets/img/png/door/closet.png +0 -0
  74. package/es/assets/img/png/door/doorwaysframed.png +0 -0
  75. package/es/assets/img/png/door/doorwaysframeles.png +0 -0
  76. package/es/assets/img/png/door/doorwaysframeless.png +0 -0
  77. package/es/assets/img/png/door/exterior.png +0 -0
  78. package/es/assets/img/png/door/interior.png +0 -0
  79. package/es/assets/img/png/door/sliding.png +0 -0
  80. package/es/assets/img/png/helper/outcome.png +0 -0
  81. package/es/assets/img/png/helper/video_preview_3d.png +0 -0
  82. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  83. package/es/assets/img/project_img.png +0 -0
  84. package/es/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  85. package/es/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  86. package/es/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
  87. package/es/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  88. package/es/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  89. package/es/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  90. package/es/assets/img/rta/rta_logo_box_maroon.png +0 -0
  91. package/es/assets/img/rta/rta_logo_box_white.png +0 -0
  92. package/es/assets/img/rta_menu.png +0 -0
  93. package/es/assets/img/step2.jpg +0 -0
  94. package/es/assets/img/step3.jpg +0 -0
  95. package/es/assets/img/step4.jpg +0 -0
  96. package/es/assets/img/step5.jpg +0 -0
  97. package/es/assets/img/step6.jpg +0 -0
  98. package/es/assets/img/step7.jpg +0 -0
  99. package/es/assets/img/step8.jpg +0 -0
  100. package/es/assets/img/svg/2d_delete_object.svg +33 -0
  101. package/es/assets/img/svg/2d_delete_object1.svg +33 -0
  102. package/es/assets/img/svg/2d_lock_object.svg +33 -0
  103. package/es/assets/img/svg/3d_item_move.svg +106 -0
  104. package/es/assets/img/svg/3d_item_rotation.svg +76 -0
  105. package/es/assets/img/svg/3d_item_warning_edit.svg +77 -0
  106. package/es/assets/img/svg/3d_item_warning_info.svg +81 -0
  107. package/es/assets/img/svg/accessories.svg +4 -0
  108. package/es/assets/img/svg/angle_icon.svg +39 -0
  109. package/es/assets/img/svg/blank_div.svg +14 -0
  110. package/es/assets/img/svg/bottombar/2d3d_button.svg +3 -0
  111. package/es/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
  112. package/es/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
  113. package/es/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
  114. package/es/assets/img/svg/bottombar/arrow-down.svg +3 -0
  115. package/es/assets/img/svg/bottombar/arrow-left.svg +3 -0
  116. package/es/assets/img/svg/bottombar/arrow-minus.svg +3 -0
  117. package/es/assets/img/svg/bottombar/arrow-plus.svg +11 -0
  118. package/es/assets/img/svg/bottombar/arrow-right.svg +3 -0
  119. package/es/assets/img/svg/bottombar/arrow-up.svg +3 -0
  120. package/es/assets/img/svg/bottombar/collapse.svg +3 -0
  121. package/es/assets/img/svg/bottombar/elevation-back.svg +6 -0
  122. package/es/assets/img/svg/bottombar/elevation-front.svg +6 -0
  123. package/es/assets/img/svg/bottombar/elevation-left.svg +6 -0
  124. package/es/assets/img/svg/bottombar/elevation-right.svg +7 -0
  125. package/es/assets/img/svg/bottombar/elevation.svg +13 -0
  126. package/es/assets/img/svg/bottombar/expand.svg +3 -0
  127. package/es/assets/img/svg/bottombar/help.svg +72 -0
  128. package/es/assets/img/svg/bottombar/incm_toggle.svg +39 -0
  129. package/es/assets/img/svg/bottombar/pan_1.svg +57 -0
  130. package/es/assets/img/svg/bottombar/pan_2.svg +27 -0
  131. package/es/assets/img/svg/bottombar/pan_3.svg +27 -0
  132. package/es/assets/img/svg/bottombar/pan_4.svg +27 -0
  133. package/es/assets/img/svg/bottombar/pan_5.svg +27 -0
  134. package/es/assets/img/svg/bottombar/settings.svg +23 -0
  135. package/es/assets/img/svg/bottombar/spin-down.svg +76 -0
  136. package/es/assets/img/svg/bottombar/spin-left.svg +75 -0
  137. package/es/assets/img/svg/bottombar/spin-right.svg +75 -0
  138. package/es/assets/img/svg/bottombar/spin-up.svg +76 -0
  139. package/es/assets/img/svg/bottombar/spin_1.svg +48 -0
  140. package/es/assets/img/svg/bottombar/spin_2.svg +31 -0
  141. package/es/assets/img/svg/bottombar/spin_3.svg +31 -0
  142. package/es/assets/img/svg/bottombar/spin_4.svg +31 -0
  143. package/es/assets/img/svg/bottombar/spin_5.svg +31 -0
  144. package/es/assets/img/svg/bottombar/zoomin.svg +29 -0
  145. package/es/assets/img/svg/bottombar/zoomout.svg +26 -0
  146. package/es/assets/img/svg/check.svg +10 -0
  147. package/es/assets/img/svg/close.svg +11 -0
  148. package/es/assets/img/svg/color/Black.svg +3 -0
  149. package/es/assets/img/svg/color/Blue.svg +3 -0
  150. package/es/assets/img/svg/color/Brown.svg +9 -0
  151. package/es/assets/img/svg/color/Cream.svg +3 -0
  152. package/es/assets/img/svg/color/Dark.svg +9 -0
  153. package/es/assets/img/svg/color/Gray.svg +3 -0
  154. package/es/assets/img/svg/color/Green.svg +3 -0
  155. package/es/assets/img/svg/color/Light.svg +9 -0
  156. package/es/assets/img/svg/color/Medium.svg +9 -0
  157. package/es/assets/img/svg/color/Unfinished.svg +9 -0
  158. package/es/assets/img/svg/color/White.svg +3 -0
  159. package/es/assets/img/svg/color/White.svg.bak +3 -0
  160. package/es/assets/img/svg/color/stone2.jpg +0 -0
  161. package/es/assets/img/svg/color/wood2.jpg +0 -0
  162. package/es/assets/img/svg/copy.svg +11 -0
  163. package/es/assets/img/svg/delete.svg +3 -0
  164. package/es/assets/img/svg/detail.svg +77 -0
  165. package/es/assets/img/svg/disclaimer/background.svg +758 -0
  166. package/es/assets/img/svg/disclaimer/logo-dots.svg +11 -0
  167. package/es/assets/img/svg/door/Closet.svg +11 -0
  168. package/es/assets/img/svg/door/Exterior.svg +5 -0
  169. package/es/assets/img/svg/door/Framed_dorway.svg +5 -0
  170. package/es/assets/img/svg/door/Frameless_dorway.svg +5 -0
  171. package/es/assets/img/svg/door/Interior.svg +7 -0
  172. package/es/assets/img/svg/door/Sliding.svg +5 -0
  173. package/es/assets/img/svg/doors_closet.svg +47 -0
  174. package/es/assets/img/svg/doors_exterior.svg +25 -0
  175. package/es/assets/img/svg/doors_interior.svg +29 -0
  176. package/es/assets/img/svg/doors_patio.svg +26 -0
  177. package/es/assets/img/svg/duplicate.svg +11 -0
  178. package/es/assets/img/svg/duplicate_object_left.svg +32 -0
  179. package/es/assets/img/svg/duplicate_object_right.svg +32 -0
  180. package/es/assets/img/svg/filtersActive.svg +19 -0
  181. package/es/assets/img/svg/firstsetting/L.svg +3 -0
  182. package/es/assets/img/svg/firstsetting/L2.svg +3 -0
  183. package/es/assets/img/svg/firstsetting/Open.svg +3 -0
  184. package/es/assets/img/svg/firstsetting/Square.svg +3 -0
  185. package/es/assets/img/svg/firstsetting/bar-active.svg +9 -0
  186. package/es/assets/img/svg/firstsetting/bar-normal.svg +3 -0
  187. package/es/assets/img/svg/firstsetting/bullet-current.svg +3 -0
  188. package/es/assets/img/svg/firstsetting/bullet-done.svg +3 -0
  189. package/es/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
  190. package/es/assets/img/svg/firstsetting/check-active.svg +3 -0
  191. package/es/assets/img/svg/firstsetting/check-normal.svg +3 -0
  192. package/es/assets/img/svg/firstsetting/pencil.svg +11 -0
  193. package/es/assets/img/svg/green_checkmark.svg +27 -0
  194. package/es/assets/img/svg/headerbar/assist.svg +3 -0
  195. package/es/assets/img/svg/headerbar/cart.svg +3 -0
  196. package/es/assets/img/svg/headerbar/check.svg +10 -0
  197. package/es/assets/img/svg/headerbar/consult_designer.svg +45 -0
  198. package/es/assets/img/svg/headerbar/edit_name.svg +26 -0
  199. package/es/assets/img/svg/headerbar/file-dollar.svg +13 -0
  200. package/es/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
  201. package/es/assets/img/svg/headerbar/plus.svg +11 -0
  202. package/es/assets/img/svg/headerbar/review_quote.svg +44 -0
  203. package/es/assets/img/svg/headerbar/ruler-measure.svg +11 -0
  204. package/es/assets/img/svg/headerbar/save.svg +3 -0
  205. package/es/assets/img/svg/headerbar/setting.svg +75 -0
  206. package/es/assets/img/svg/help/check.svg +10 -0
  207. package/es/assets/img/svg/help/search.svg +76 -0
  208. package/es/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
  209. package/es/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
  210. package/es/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
  211. package/es/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
  212. package/es/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
  213. package/es/assets/img/svg/intro/3-retrieve-project.svg +18 -0
  214. package/es/assets/img/svg/invert.svg +127 -0
  215. package/es/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
  216. package/es/assets/img/svg/lefttoolbar/appliance.svg +13 -0
  217. package/es/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
  218. package/es/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
  219. package/es/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
  220. package/es/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
  221. package/es/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
  222. package/es/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
  223. package/es/assets/img/svg/lefttoolbar/door-style.svg +20 -0
  224. package/es/assets/img/svg/lefttoolbar/door.svg +12 -0
  225. package/es/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
  226. package/es/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
  227. package/es/assets/img/svg/lefttoolbar/finishing.svg +13 -0
  228. package/es/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
  229. package/es/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
  230. package/es/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
  231. package/es/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
  232. package/es/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
  233. package/es/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
  234. package/es/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
  235. package/es/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
  236. package/es/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
  237. package/es/assets/img/svg/lefttoolbar/search.svg +76 -0
  238. package/es/assets/img/svg/lefttoolbar/view_more.svg +86 -0
  239. package/es/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
  240. package/es/assets/img/svg/lefttoolbar/window.svg +12 -0
  241. package/es/assets/img/svg/logo.svg +11 -0
  242. package/es/assets/img/svg/logo_with_text.svg +25 -0
  243. package/es/assets/img/svg/menubar/login.svg +84 -0
  244. package/es/assets/img/svg/menubar/my_projects.svg +85 -0
  245. package/es/assets/img/svg/menubar/new_project.svg +110 -0
  246. package/es/assets/img/svg/menubar/save_project.svg +84 -0
  247. package/es/assets/img/svg/options.svg +3 -0
  248. package/es/assets/img/svg/positioning.svg +3 -0
  249. package/es/assets/img/svg/rotate.png +0 -0
  250. package/es/assets/img/svg/rotate.svg +17 -0
  251. package/es/assets/img/svg/rotate_object_clockwise.svg +26 -0
  252. package/es/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
  253. package/es/assets/img/svg/toggleFilters.svg +19 -0
  254. package/es/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
  255. package/es/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
  256. package/es/assets/img/svg/toolbar/add_button.svg +36 -0
  257. package/es/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
  258. package/es/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
  259. package/es/assets/img/svg/toolbar/add_items_doors.svg +25 -0
  260. package/es/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
  261. package/es/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
  262. package/es/assets/img/svg/toolbar/add_items_windows.svg +28 -0
  263. package/es/assets/img/svg/toolbar/apply_button.svg +38 -0
  264. package/es/assets/img/svg/toolbar/arrow-plus.svg +11 -0
  265. package/es/assets/img/svg/toolbar/backsplash.svg +8 -0
  266. package/es/assets/img/svg/toolbar/cancel_button.svg +37 -0
  267. package/es/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
  268. package/es/assets/img/svg/toolbar/countertop.svg +7 -0
  269. package/es/assets/img/svg/toolbar/dcm.png +0 -0
  270. package/es/assets/img/svg/toolbar/dcm_off.svg +12 -0
  271. package/es/assets/img/svg/toolbar/dcm_on.svg +474 -0
  272. package/es/assets/img/svg/toolbar/delete_button.svg +37 -0
  273. package/es/assets/img/svg/toolbar/download.svg +77 -0
  274. package/es/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
  275. package/es/assets/img/svg/toolbar/edit_button.svg +75 -0
  276. package/es/assets/img/svg/toolbar/email_quote_button.svg +44 -0
  277. package/es/assets/img/svg/toolbar/fbm.png +0 -0
  278. package/es/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
  279. package/es/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
  280. package/es/assets/img/svg/toolbar/floorstyle.svg +9 -0
  281. package/es/assets/img/svg/toolbar/fmb.png +0 -0
  282. package/es/assets/img/svg/toolbar/fmb_off.svg +12 -0
  283. package/es/assets/img/svg/toolbar/fmb_on.svg +489 -0
  284. package/es/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
  285. package/es/assets/img/svg/toolbar/get_started_button.svg +41 -0
  286. package/es/assets/img/svg/toolbar/handles.svg +5 -0
  287. package/es/assets/img/svg/toolbar/lighting.svg +7 -0
  288. package/es/assets/img/svg/toolbar/lrm.png +0 -0
  289. package/es/assets/img/svg/toolbar/lrm_off.svg +12 -0
  290. package/es/assets/img/svg/toolbar/lrm_on.svg +470 -0
  291. package/es/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
  292. package/es/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
  293. package/es/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
  294. package/es/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
  295. package/es/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
  296. package/es/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
  297. package/es/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
  298. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
  299. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
  300. package/es/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
  301. package/es/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
  302. package/es/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
  303. package/es/assets/img/svg/toolbar/redo_button.svg +75 -0
  304. package/es/assets/img/svg/toolbar/redo_button1.svg +75 -0
  305. package/es/assets/img/svg/toolbar/review_quote_active.svg +14 -0
  306. package/es/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
  307. package/es/assets/img/svg/toolbar/save_project_button.svg +44 -0
  308. package/es/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
  309. package/es/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
  310. package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -0
  311. package/es/assets/img/svg/toolbar/style_change_button.svg +47 -0
  312. package/es/assets/img/svg/toolbar/take_picture.svg +75 -0
  313. package/es/assets/img/svg/toolbar/undo_button.svg +76 -0
  314. package/es/assets/img/svg/toolbar/undo_button1.svg +76 -0
  315. package/es/assets/img/svg/toolbar/use_button.svg +37 -0
  316. package/es/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
  317. package/es/assets/img/svg/topbar/edit_active.svg +10 -0
  318. package/es/assets/img/svg/topbar/edit_inactive.svg +10 -0
  319. package/es/assets/img/svg/topbar/redo_active.svg +42 -0
  320. package/es/assets/img/svg/topbar/redo_inactive.svg +23 -0
  321. package/es/assets/img/svg/topbar/select_all_active.svg +50 -0
  322. package/es/assets/img/svg/topbar/select_all_inactive.svg +32 -0
  323. package/es/assets/img/svg/topbar/take_picture_active.svg +51 -0
  324. package/es/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
  325. package/es/assets/img/svg/topbar/undo_active.svg +42 -0
  326. package/es/assets/img/svg/topbar/undo_inactive.svg +23 -0
  327. package/es/assets/img/svg/warning_info_2d.svg +81 -0
  328. package/es/assets/img/svg/window/Clear.svg +3 -0
  329. package/es/assets/img/svg/window/Cross.svg +5 -0
  330. package/es/assets/img/svg/window/Double_hung.svg +4 -0
  331. package/es/assets/img/svg/window/Vertical.svg +4 -0
  332. package/es/assets/img/svg/windows_clear.svg +23 -0
  333. package/es/assets/img/svg/windows_cross.svg +28 -0
  334. package/es/assets/img/svg/windows_double_hung.svg +24 -0
  335. package/es/assets/img/svg/windows_vertical.svg +24 -0
  336. package/es/assets/img/svg/wizardstep/Custom.svg +3 -0
  337. package/es/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
  338. package/es/assets/img/svg/wizardstep/L.svg +3 -0
  339. package/es/assets/img/svg/wizardstep/L2.svg +3 -0
  340. package/es/assets/img/svg/wizardstep/Open.svg +3 -0
  341. package/es/assets/img/svg/wizardstep/Square.svg +3 -0
  342. package/es/assets/img/svg/wizardstep/bar-active.svg +9 -0
  343. package/es/assets/img/svg/wizardstep/bar-normal.svg +3 -0
  344. package/es/assets/img/svg/wizardstep/bullet-current.svg +3 -0
  345. package/es/assets/img/svg/wizardstep/bullet-done.svg +3 -0
  346. package/es/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
  347. package/es/assets/img/svg/wizardstep/check-active.svg +3 -0
  348. package/es/assets/img/svg/wizardstep/check-normal.svg +3 -0
  349. package/es/assets/img/svg/wizardstep/detail_view.svg +87 -0
  350. package/es/assets/img/svg/wizardstep/pencil.svg +11 -0
  351. package/es/assets/img/svg/wizardstep/tile_view.svg +95 -0
  352. package/es/assets/img/texture/glass.jpg +0 -0
  353. package/es/assets/img/texture/steel.jpg +0 -0
  354. package/es/assets/img/texture/white1px.jpg +0 -0
  355. package/es/assets/img/texture/wood.jpg +0 -0
  356. package/es/assets/model/DCM.bin +0 -0
  357. package/es/assets/model/DCM.fbx +0 -0
  358. package/es/assets/model/DCM.gltf +1 -0
  359. package/es/assets/model/FBM.bin +0 -0
  360. package/es/assets/model/FBM.fbx +0 -0
  361. package/es/assets/model/FBM.gltf +1 -0
  362. package/es/assets/model/LRM.bin +0 -0
  363. package/es/assets/model/LRM.fbx +0 -0
  364. package/es/assets/model/LRM.gltf +1 -0
  365. package/es/assets/rtastore_logo.png +0 -0
  366. package/es/catalog/areas/area/planner-element.js +45 -0
  367. package/es/catalog/back.png +0 -0
  368. package/es/catalog/catalog.js +265 -0
  369. package/es/catalog/doors.png +0 -0
  370. package/es/catalog/doorways.png +0 -0
  371. package/es/catalog/envMap/nx.hdr +0 -0
  372. package/es/catalog/envMap/ny.hdr +0 -0
  373. package/es/catalog/envMap/nz.hdr +0 -0
  374. package/es/catalog/envMap/px.hdr +0 -0
  375. package/es/catalog/envMap/py.hdr +0 -0
  376. package/es/catalog/envMap/pz.hdr +0 -0
  377. package/es/catalog/export.js +0 -0
  378. package/es/catalog/factories/area-factory-3d.js +182 -0
  379. package/es/catalog/factories/area-factory.js +78 -0
  380. package/es/catalog/factories/export.js +7 -0
  381. package/es/catalog/factories/wall-factory-3d.js +202 -0
  382. package/es/catalog/factories/wall-factory.js +267 -0
  383. package/es/catalog/holes/door-closet/planner-element.js +222 -0
  384. package/es/catalog/holes/door-double/door_double.png +0 -0
  385. package/es/catalog/holes/door-double/planner-element.js +315 -0
  386. package/es/catalog/holes/door-exterior/planner-element.js +215 -0
  387. package/es/catalog/holes/door-interior/planner-element.js +227 -0
  388. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  389. package/es/catalog/holes/door-panic/planner-element.js +503 -0
  390. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  391. package/es/catalog/holes/door-panic-double/planner-element.js +463 -0
  392. package/es/catalog/holes/door-sliding/planner-element.js +225 -0
  393. package/es/catalog/holes/doorway-framed/planner-element.js +145 -0
  394. package/es/catalog/holes/doorway-frameless/planner-element.js +104 -0
  395. package/es/catalog/holes/export.js +13 -0
  396. package/es/catalog/holes/gate/gate.jpg +0 -0
  397. package/es/catalog/holes/window-clear/planner-element.js +166 -0
  398. package/es/catalog/holes/window-clear/texture.png +0 -0
  399. package/es/catalog/holes/window-cross/planner-element.js +165 -0
  400. package/es/catalog/holes/window-cross/texture.png +0 -0
  401. package/es/catalog/holes/window-double-hung/planner-element.js +303 -0
  402. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  403. package/es/catalog/holes/window-vertical/planner-element.js +276 -0
  404. package/es/catalog/holes/window-vertical/texture.png +0 -0
  405. package/es/catalog/lines/wall/planner-element.js +79 -0
  406. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  407. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  408. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  409. package/es/catalog/molding/molding-dcm/planner-element.js +26 -0
  410. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  411. package/es/catalog/molding/molding-fbm/planner-element.js +26 -0
  412. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  413. package/es/catalog/molding/molding-lrm/planner-element.js +26 -0
  414. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  415. package/es/catalog/properties/export.js +21 -0
  416. package/es/catalog/properties/property-checkbox.js +68 -0
  417. package/es/catalog/properties/property-color.js +39 -0
  418. package/es/catalog/properties/property-enum.js +50 -0
  419. package/es/catalog/properties/property-hidden.js +19 -0
  420. package/es/catalog/properties/property-lenght-measure.js +96 -0
  421. package/es/catalog/properties/property-length-measure.js +80 -0
  422. package/es/catalog/properties/property-length-measure_hole.js +96 -0
  423. package/es/catalog/properties/property-number.js +48 -0
  424. package/es/catalog/properties/property-read-only.js +26 -0
  425. package/es/catalog/properties/property-string.js +48 -0
  426. package/es/catalog/properties/property-toggle.js +39 -0
  427. package/es/catalog/properties/shared-property-style.js +14 -0
  428. package/es/catalog/utils/FuseUtils.js +79 -0
  429. package/es/catalog/utils/exporter.js +161 -0
  430. package/es/catalog/utils/geom-utils.js +189 -0
  431. package/es/catalog/utils/item-loader.js +1602 -0
  432. package/es/catalog/utils/load-obj.js +91 -0
  433. package/es/catalog/utils/mtl-loader.js +357 -0
  434. package/es/catalog/utils/obj-loader.js +476 -0
  435. package/es/catalog/windows.png +0 -0
  436. package/es/class/FuseUtils.js +79 -0
  437. package/es/class/area.js +141 -0
  438. package/es/class/export.js +24 -0
  439. package/es/class/group.js +431 -0
  440. package/es/class/guide.js +58 -0
  441. package/es/class/hole.js +924 -0
  442. package/es/class/item.js +1884 -0
  443. package/es/class/layer.js +663 -0
  444. package/es/class/line.js +1229 -0
  445. package/es/class/project.js +937 -0
  446. package/es/class/vertex.js +198 -0
  447. package/es/components/content.js +135 -0
  448. package/es/components/export.js +9 -0
  449. package/es/components/style/button.js +106 -0
  450. package/es/components/style/cancel-button.js +21 -0
  451. package/es/components/style/content-container.js +30 -0
  452. package/es/components/style/content-title.js +25 -0
  453. package/es/components/style/delete-button.js +24 -0
  454. package/es/components/style/export.js +31 -0
  455. package/es/components/style/form-block.js +20 -0
  456. package/es/components/style/form-color-input.js +26 -0
  457. package/es/components/style/form-label.js +22 -0
  458. package/es/components/style/form-number-input.js +192 -0
  459. package/es/components/style/form-number-input_2.js +238 -0
  460. package/es/components/style/form-select.js +19 -0
  461. package/es/components/style/form-slider.js +60 -0
  462. package/es/components/style/form-submit-button.js +25 -0
  463. package/es/components/style/form-text-input.js +69 -0
  464. package/es/components/viewer2d/area.js +81 -0
  465. package/es/components/viewer2d/export.js +31 -0
  466. package/es/components/viewer2d/grids/grid-horizontal-streak.js +36 -0
  467. package/es/components/viewer2d/grids/grid-streak.js +36 -0
  468. package/es/components/viewer2d/grids/grid-vertical-streak.js +36 -0
  469. package/es/components/viewer2d/grids/grids.js +30 -0
  470. package/es/components/viewer2d/group.js +48 -0
  471. package/es/components/viewer2d/item.js +243 -0
  472. package/es/components/viewer2d/layer.js +164 -0
  473. package/es/components/viewer2d/line.js +997 -0
  474. package/es/components/viewer2d/ruler.js +84 -0
  475. package/es/components/viewer2d/rulerDist.js +102 -0
  476. package/es/components/viewer2d/rulerX.js +142 -0
  477. package/es/components/viewer2d/rulerY.js +144 -0
  478. package/es/components/viewer2d/scene.js +108 -0
  479. package/es/components/viewer2d/snap.js +74 -0
  480. package/es/components/viewer2d/state.js +73 -0
  481. package/es/components/viewer2d/utils.js +193 -0
  482. package/es/components/viewer2d/vertex.js +66 -0
  483. package/es/components/viewer2d/viewer2d.js +1405 -0
  484. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +2585 -0
  485. package/es/components/viewer3d/dcm.js +401 -0
  486. package/es/components/viewer3d/fbm.js +414 -0
  487. package/es/components/viewer3d/front3D.js +62 -0
  488. package/es/components/viewer3d/grid-creator.js +25 -0
  489. package/es/components/viewer3d/grids/grid-horizontal-streak.js +36 -0
  490. package/es/components/viewer3d/grids/grid-streak.js +27 -0
  491. package/es/components/viewer3d/grids/grid-vertical-streak.js +36 -0
  492. package/es/components/viewer3d/libs/first-person-controls.js +67 -0
  493. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1281 -0
  494. package/es/components/viewer3d/libs/mtl-loader.js +357 -0
  495. package/es/components/viewer3d/libs/obj-loader.js +462 -0
  496. package/es/components/viewer3d/libs/orbit-controls.js +697 -0
  497. package/es/components/viewer3d/libs/pointer-lock-controls.js +44 -0
  498. package/es/components/viewer3d/lrm.js +305 -0
  499. package/es/components/viewer3d/model.js +708 -0
  500. package/es/components/viewer3d/pointer-lock-navigation.js +115 -0
  501. package/es/components/viewer3d/ruler-utils/itemRect.js +61 -0
  502. package/es/components/viewer3d/ruler-utils/layer3D.js +495 -0
  503. package/es/components/viewer3d/ruler-utils/ruler3D.js +224 -0
  504. package/es/components/viewer3d/ruler-utils/scene3D.js +59 -0
  505. package/es/components/viewer3d/ruler-utils/state3D.js +18 -0
  506. package/es/components/viewer3d/scene-creator.js +3818 -0
  507. package/es/components/viewer3d/three-memory-cleaner.js +51 -0
  508. package/es/components/viewer3d/viewer3d-first-person.js +311 -0
  509. package/es/components/viewer3d/viewer3d.js +2654 -0
  510. package/es/constants.js +769 -0
  511. package/es/index.html.ejs +264 -0
  512. package/es/index.js +627 -3
  513. package/es/models.js +512 -0
  514. package/es/plugins/SVGLoader.js +1414 -0
  515. package/es/plugins/console-debugger.js +34 -0
  516. package/es/plugins/export.js +7 -0
  517. package/es/plugins/keyboard.js +110 -0
  518. package/es/reducers/areas-reducer.js +12 -0
  519. package/es/reducers/export.js +25 -0
  520. package/es/reducers/groups-reducer.js +38 -0
  521. package/es/reducers/holes-reducer.js +62 -0
  522. package/es/reducers/items-reducer.js +143 -0
  523. package/es/reducers/lines-reducer.js +45 -0
  524. package/es/reducers/project-reducer.js +136 -0
  525. package/es/reducers/reducer.js +19 -0
  526. package/es/reducers/scene-reducer.js +28 -0
  527. package/es/reducers/user-reducer.js +41 -0
  528. package/es/reducers/vertices-reducer.js +19 -0
  529. package/es/reducers/viewer2d-reducer.js +77 -0
  530. package/es/reducers/viewer3d-reducer.js +58 -0
  531. package/es/shared-style.js +66 -0
  532. package/es/translator/en.js +104 -0
  533. package/es/translator/it.js +79 -0
  534. package/es/translator/ru.js +79 -0
  535. package/es/translator/translator.js +80 -0
  536. package/es/utils/browser.js +33 -0
  537. package/es/utils/convert-units-lite.js +29 -0
  538. package/es/utils/email-validator.js +4 -0
  539. package/es/utils/export.js +25 -0
  540. package/es/utils/geometry.js +2609 -0
  541. package/es/utils/get-edges-of-subgraphs.js +26 -0
  542. package/es/utils/graph-cycles.js +238 -0
  543. package/es/utils/graph-inner-cycles.js +46 -0
  544. package/es/utils/graph.js +145 -0
  545. package/es/utils/helper.js +436 -0
  546. package/es/utils/history.js +29 -0
  547. package/es/utils/id-broker.js +15 -0
  548. package/es/utils/isolate-event-handler.js +1622 -0
  549. package/es/utils/logger.js +8 -0
  550. package/es/utils/math.js +50 -0
  551. package/es/utils/molding.js +1347 -0
  552. package/es/utils/name-generator.js +17 -0
  553. package/es/utils/objects-utils.js +50 -0
  554. package/es/utils/phone-validator.js +4 -0
  555. package/es/utils/process-black-list.js +15 -0
  556. package/es/utils/react-if.js +18 -0
  557. package/es/utils/ruler.js +58 -0
  558. package/es/utils/snap-scene.js +94 -0
  559. package/es/utils/snap.js +231 -0
  560. package/es/utils/summarizeCart.js +24 -0
  561. package/es/utils/threeCSG.es6.js +494 -0
  562. package/es/version.js +1 -0
  563. package/package.json +3 -4
  564. package/es/index.js.LICENSE.txt +0 -45
  565. package/es/index.js.map +0 -1
  566. /package/es/{e8e5de0892f5375460bd.jpg → catalog/areas/area/textures/ceramic-tile.jpg} +0 -0
  567. /package/es/{e470a2ce76062955fa98.jpg → catalog/areas/area/textures/grass.jpg} +0 -0
  568. /package/es/{e5ae13166775e7d071e4.jpg → catalog/areas/area/textures/parquet.jpg} +0 -0
  569. /package/es/{c232d250fd899392b1b7.jpg → catalog/areas/area/textures/strand-porcelain.jpg} +0 -0
  570. /package/es/{c7ae6f4de09134ebe588.jpg → catalog/areas/area/textures/tile1.jpg} +0 -0
  571. /package/es/{81e7a7e6edf162e88b44.jpg → catalog/lines/wall/textures/bricks-normal.jpg} +0 -0
  572. /package/es/{340a84d3930143a53545.jpg → catalog/lines/wall/textures/bricks-normal2.jpg} +0 -0
  573. /package/es/{a07d30a04bda8ee03491.jpg → catalog/lines/wall/textures/bricks.jpg} +0 -0
  574. /package/es/{5c8d36b3e7223934f447.jpg → catalog/lines/wall/textures/morden-normal.jpg} +0 -0
  575. /package/es/{8fe0f1210d8ba435a790.jpg → catalog/lines/wall/textures/morden.jpg} +0 -0
  576. /package/es/{bee3f62687a97bcc3d9f.jpg → catalog/lines/wall/textures/painted.jpg} +0 -0
  577. /package/es/{1fc74a85baa030dbc913.jpg → catalog/lines/wall/textures/plaster-normal.jpg} +0 -0
  578. /package/es/{dad5ee758630256ee702.jpg → catalog/lines/wall/textures/plaster.jpg} +0 -0
  579. /package/es/{30a49a74d9bd10068b65.png → catalog/lines/wall/wall.png} +0 -0
@@ -0,0 +1,1884 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
2
+ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
3
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
4
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
5
+ 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; }
6
+ 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; }
7
+ import { convert } from "../utils/convert-units-lite";
8
+ import { Group, Hole, Layer } from "./export";
9
+ import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
10
+ import { fromJS, Map } from 'immutable';
11
+ import { INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, 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";
12
+ import { debugUtil, updatePayloadOfInternalEvent } from "../utils/helper";
13
+ import { isUndefined } from 'util';
14
+ import { hasMoldingLayout } from "../utils/molding";
15
+ import { getInstallationSuffix, isEmpty } from "../components/viewer2d/utils";
16
+ import { historyPush } from "../utils/history";
17
+ var allItemRect;
18
+ var allItemSnap;
19
+ var allLines;
20
+ var allLineRects;
21
+ var allLineSnap;
22
+ var allRect;
23
+ var time1;
24
+ var time2;
25
+ var Item = /*#__PURE__*/function () {
26
+ function Item() {
27
+ _classCallCheck(this, Item);
28
+ }
29
+ return _createClass(Item, null, [{
30
+ key: "create",
31
+ value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
32
+ var _item;
33
+ var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
34
+ var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
35
+ var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
36
+ var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
37
+ var itemID = IDBroker.acquireID();
38
+ var item = state.catalog.factoryElement(type, {
39
+ id: itemID,
40
+ itemID: state.catalog.getIn(['elements', type, 'itemID']),
41
+ name: NameGenerator.generateName('items', state.catalog.getIn(['elements', type, 'info', 'title'])),
42
+ sku_number: state.catalog.getIn(['elements', type, 'obj']).toJS().sku_number,
43
+ //style: state.catalog.getIn(['elements', type, 'info', 'door']),
44
+ category: state.catalog.getIn(['elements', type, 'type']),
45
+ layoutpos: state.catalog.getIn(['elements', type, 'info', 'layoutpos']),
46
+ cabinet_category: state.catalog.getIn(['elements', type, 'obj']).toJS().cabinet_category,
47
+ type: type,
48
+ height: height,
49
+ width: width,
50
+ x: x,
51
+ y: y,
52
+ rotation: rotation,
53
+ isDuplication: isDuplication,
54
+ isInitialPos: isInitialPos ? isInitialPos : false
55
+ }, null, state);
56
+ if (item.category === 'cabinet') {
57
+ if (isDuplication && refItem) {
58
+ item = item.merge({
59
+ doorStyle: refItem.doorStyle
60
+ });
61
+ } else {
62
+ var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
63
+ var layer = state.getIn(['scene', 'layers', layerID]);
64
+ var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
65
+ var cds = (_ref = (_temp$doorStyles$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) {
66
+ var _state;
67
+ return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
68
+ })) !== null && _temp$doorStyles$cds$ !== void 0 ? _temp$doorStyles$cds$ : temp === null || temp === void 0 || (_temp$cds = temp.cds) === null || _temp$cds === void 0 ? void 0 : _temp$cds.find(function (elem) {
69
+ var _state2;
70
+ return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
71
+ })) !== null && _ref !== void 0 ? _ref : (_state3 = state) === null || _state3 === void 0 || (_state3 = _state3.catalog) === null || _state3 === void 0 ? void 0 : _state3.getIn(['elements', type, 'cds']);
72
+ if (cds) {
73
+ var updatedDoorStyles = _objectSpread(_objectSpread({}, temp === null || temp === void 0 ? void 0 : temp.doorStyles), {}, {
74
+ cds: [cds],
75
+ cabinet_door_style_id: cds.cabinet_door_style_id
76
+ });
77
+ item = item.merge({
78
+ doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
79
+ doorStyles: updatedDoorStyles
80
+ }))
81
+ });
82
+ }
83
+ }
84
+ }
85
+ if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {
86
+ return {
87
+ updatedState: state,
88
+ item: null
89
+ };
90
+ }
91
+ var setSizeOfItemByDoorStyle = function setSizeOfItemByDoorStyle() {
92
+ var doorStyle = item.get('doorStyle').toJS();
93
+ var euroCDS = state.catalog.getIn(['elements', type, 'cds']).data.filter(function (element) {
94
+ return element && element.is_euro_cds;
95
+ });
96
+ if (doorStyle.door_style_name === 'Euro & Frameless' && euroCDS.length > 0) {
97
+ var newProperties = item.get('properties').toJS();
98
+ if (newProperties.hasOwnProperty('depth')) {
99
+ if (!newProperties.hasOwnProperty('oldDepth')) {
100
+ newProperties['oldDepth'] = new Map({
101
+ length: newProperties.depth.length,
102
+ _length: newProperties.depth._length,
103
+ _unit: newProperties.depth._unit
104
+ });
105
+ }
106
+ newProperties['depth'] = new Map({
107
+ length: convert(euroCDS[0].euro_length).from('in').to('cm'),
108
+ _length: euroCDS[0].euro_length,
109
+ _unit: 'in'
110
+ });
111
+ }
112
+ if (newProperties.hasOwnProperty('height')) {
113
+ if (!newProperties.hasOwnProperty('oldHeight')) {
114
+ newProperties['oldHeight'] = new Map({
115
+ length: newProperties.height.length,
116
+ _length: newProperties.height._length,
117
+ _unit: newProperties.height._unit
118
+ });
119
+ }
120
+ newProperties['height'] = new Map({
121
+ length: convert(euroCDS[0].euro_height).from('in').to('cm'),
122
+ _length: euroCDS[0].euro_height,
123
+ _unit: 'in'
124
+ });
125
+ }
126
+ if (newProperties.hasOwnProperty('width')) {
127
+ if (!newProperties.hasOwnProperty('oldWidth')) {
128
+ newProperties['oldWidth'] = new Map({
129
+ length: newProperties.width.length,
130
+ _length: newProperties.width._length,
131
+ _unit: newProperties.width._unit
132
+ });
133
+ }
134
+ newProperties['width'] = new Map({
135
+ length: convert(euroCDS[0].euro_width).from('in').to('cm') - 10,
136
+ _length: euroCDS[0].euro_width,
137
+ _unit: 'in'
138
+ });
139
+ }
140
+ item = item.merge({
141
+ properties: fromJS(newProperties)
142
+ });
143
+ } else {
144
+ var properties = item.get('properties').toJS();
145
+ if (properties.hasOwnProperty('oldDepth')) {
146
+ properties['depth'] = new Map({
147
+ length: properties.oldDepth.length,
148
+ _length: properties.oldDepth._length,
149
+ _unit: properties.oldDepth._unit
150
+ });
151
+ }
152
+ if (properties.hasOwnProperty('oldHeight')) {
153
+ properties['height'] = new Map({
154
+ length: properties.oldHeight.length,
155
+ _length: properties.oldHeight._length,
156
+ _unit: properties.oldHeight._unit
157
+ });
158
+ }
159
+ if (properties.hasOwnProperty('oldWidth')) {
160
+ properties['width'] = new Map({
161
+ length: properties.oldWidth.length,
162
+ _length: properties.oldWidth._length,
163
+ _unit: properties.oldWidth._unit
164
+ });
165
+ }
166
+ item = item.merge({
167
+ properties: fromJS(properties)
168
+ });
169
+ }
170
+ };
171
+ item.category === 'cabinet' && setSizeOfItemByDoorStyle();
172
+ if (!isEmpty(counterTopURI) && !isEmpty((_item = item) === null || _item === void 0 ? void 0 : _item.counterTop)) {
173
+ item.counterTop.uri = counterTopURI;
174
+ }
175
+ item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
176
+ state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
177
+ if (item.type.includes('Light')) {
178
+ var ceilHeight = state.getIn(['scene', 'layers', layerID, 'ceilHeight']);
179
+ var ceilUnit = state.getIn(['scene', 'layers', layerID, 'unit']);
180
+ ceilHeight = convert(ceilHeight).from(ceilUnit).to('cm');
181
+ var newAltitude = ceilHeight - item.properties.getIn(['height', 'length']);
182
+ newAltitude = convert(newAltitude).from('cm').to(ceilUnit);
183
+ item = item.setIn(['properties', 'altitude', '_length'], newAltitude);
184
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id], item);
185
+ }
186
+ if (item.category === 'cabinet') {
187
+ // 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.
188
+ var layerMolding = state.getIn(['scene', 'layers', layerID, 'molding']).filter(function (md) {
189
+ return hasMoldingLayout(md, item.layoutpos);
190
+ });
191
+ state = state.setIn(['scene', 'layers', layerID, 'items', itemID, 'molding'], layerMolding.length ? layerMolding : molding);
192
+ }
193
+ return {
194
+ updatedState: state,
195
+ item: item
196
+ };
197
+ }
198
+ }, {
199
+ key: "updateDoorHandle",
200
+ value: function updateDoorHandle(item, layer) {
201
+ var doorHandle = layer.get('doorHandle');
202
+ if (doorHandle == '') return item;
203
+ var dataJSON = item.toJS();
204
+ var itemID = dataJSON.id;
205
+ var doorStyle = dataJSON.doorStyle;
206
+ var tmpDS = _objectSpread(_objectSpread({}, doorStyle), {}, {
207
+ handle_gltf: doorHandle,
208
+ metalness: 0.2,
209
+ roughness: 0.1
210
+ });
211
+ var cnt = 0;
212
+ for (var prop in doorStyle.doorStyles) cnt++;
213
+ if (cnt !== 0) {
214
+ for (var i = 1; i < 10; i++) {
215
+ tmpDS['doorStyles']['door_handle_' + i + '_gltf'] = doorHandle;
216
+ tmpDS['doorStyles']['fixed_drawer_door_handle_' + i + '_gltf'] = doorHandle;
217
+ tmpDS['doorStyles']['drawer_door_handle_' + i + '_gltf'] = doorHandle;
218
+ }
219
+ }
220
+ item = item.mergeIn(['doorStyle'], fromJS(tmpDS));
221
+ return item;
222
+ }
223
+ }, {
224
+ key: "select",
225
+ value: function select(state, layerID, itemID) {
226
+ state = Layer.select(state, layerID).updatedState;
227
+ state = Layer.selectElement(state, layerID, 'items', itemID).updatedState;
228
+ state = state.merge({
229
+ replacingSupport: new Map({
230
+ layerID: layerID,
231
+ itemID: itemID
232
+ })
233
+ });
234
+ return {
235
+ updatedState: state
236
+ };
237
+ }
238
+ }, {
239
+ key: "selectHole",
240
+ value: function selectHole(state, layerID, holeID) {
241
+ state = Layer.select(state, layerID).updatedState;
242
+ state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;
243
+ return {
244
+ updatedState: state
245
+ };
246
+ }
247
+ }, {
248
+ key: "editWidth",
249
+ value: function editWidth(state, newWidth, layerID, itemID) {
250
+ var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
251
+ var properties = item.properties;
252
+ if (newWidth === 0) {
253
+ alert('You can not set width to 0');
254
+ return {
255
+ updatedState: state
256
+ };
257
+ }
258
+ var width = new Map({
259
+ _length: newWidth,
260
+ _unit: 'in',
261
+ length: convert(newWidth).from('in').to('cm')
262
+ });
263
+ properties = properties.set('width', width);
264
+ state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties'], properties);
265
+ return {
266
+ updatedState: state
267
+ };
268
+ }
269
+ }, {
270
+ key: "prepareSnap",
271
+ value: function prepareSnap(state, layerID) {
272
+ var layer = state.getIn(['scene', 'layers', layerID]);
273
+ var scene = state.get('scene');
274
+ var catalog = state.catalog.toJS();
275
+ allLines = GeometryUtils.getAllLines(layer);
276
+ allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
277
+ allItemRect = GeometryUtils.getAllItems(scene, catalog, allLineRects);
278
+ allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);
279
+ allLineSnap = GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);
280
+ allRect = allItemRect.others.concat(allLineRects);
281
+ allItemSnap = GeometryUtils.validateSnaps(allItemSnap, allRect);
282
+ allLineSnap = GeometryUtils.validateSnaps(allLineSnap, allRect);
283
+ }
284
+ }, {
285
+ key: "duplicateSelected",
286
+ value: function duplicateSelected(state, currentObject) {
287
+ var onInternalEvent = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
288
+ var layerID = state.getIn(['scene', 'selectedLayer']);
289
+ var layer = state.getIn(['scene', 'layers', layerID]);
290
+ var objectID = currentObject.id;
291
+ var myObject;
292
+ var x = currentObject.x;
293
+ var y = currentObject.y;
294
+ var sceneComponentType, width, depth, rotRad;
295
+ var duplicatedElement = null;
296
+ switch (currentObject.prototype) {
297
+ case 'items':
298
+ myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
299
+ sceneComponentType = myObject.type;
300
+ width = myObject.properties.getIn(['width', 'length']);
301
+ depth = myObject.properties.getIn(['depth', 'length']);
302
+ rotRad = myObject.rotation * Math.PI / 180;
303
+ this.prepareSnap(state, layerID);
304
+ var val = {
305
+ pos: {
306
+ x: x + width * Math.cos(rotRad),
307
+ y: y + width * Math.sin(rotRad)
308
+ },
309
+ rotRad: rotRad
310
+ };
311
+ val.size = allItemRect.cur.size;
312
+ val.layoutpos = allItemRect.cur.layoutpos;
313
+ val.is_corner = allItemRect.cur.is_corner;
314
+ var isrectSect = GeometryUtils.validInterSect(allRect, val);
315
+ if (isrectSect) {
316
+ // Duplicated object has a original object's molding property
317
+ 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, false, myObject),
318
+ stateI = _this$create.updatedState,
319
+ item = _this$create.item;
320
+ duplicatedElement = item;
321
+ if (item === null) {
322
+ alert('There are no Door Colors in this cabinet.');
323
+ state = state.merge({
324
+ mode: MODE_IDLE,
325
+ drawingSupport: new Map()
326
+ });
327
+ } else {
328
+ state = Item.select(stateI, layerID, item.id).updatedState;
329
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
330
+ }
331
+ } else {
332
+ var _val = {
333
+ pos: {
334
+ x: x - width * Math.cos(rotRad),
335
+ y: y - width * Math.sin(rotRad)
336
+ },
337
+ rotRad: rotRad
338
+ };
339
+ _val.size = allItemRect.cur.size;
340
+ _val.layoutpos = allItemRect.cur.layoutpos;
341
+ _val.is_corner = allItemRect.cur.is_corner;
342
+ var isRect = GeometryUtils.validInterSect(allRect, _val);
343
+ if (isRect) {
344
+ 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, false, myObject),
345
+ _stateI = _this$create2.updatedState,
346
+ _item2 = _this$create2.item;
347
+ duplicatedElement = _item2;
348
+ if (_item2 === null) {
349
+ alert('There are no Door Colors in this cabinet.');
350
+ state = state.merge({
351
+ mode: MODE_IDLE,
352
+ drawingSupport: new Map()
353
+ });
354
+ } else {
355
+ state = Item.select(_stateI, layerID, _item2.id).updatedState;
356
+ state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
357
+ }
358
+ } else {
359
+ var _val2 = {
360
+ pos: {
361
+ x: x - depth * Math.sin(rotRad),
362
+ y: y - depth * Math.cos(rotRad)
363
+ },
364
+ rotRad: rotRad
365
+ };
366
+ _val2.size = allItemRect.cur.size;
367
+ _val2.layoutpos = allItemRect.cur.layoutpos;
368
+ _val2.is_corner = allItemRect.cur.is_corner;
369
+ var isRectDown = GeometryUtils.validInterSect(allRect, _val2);
370
+ if (isRectDown) {
371
+ 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, false, myObject),
372
+ _stateI2 = _this$create3.updatedState,
373
+ _item3 = _this$create3.item;
374
+ duplicatedElement = _item3;
375
+ if (_item3 === null) {
376
+ alert('There are no Door Colors in this cabinet.');
377
+ state = state.merge({
378
+ mode: MODE_IDLE,
379
+ drawingSupport: new Map()
380
+ });
381
+ } else {
382
+ state = Item.select(_stateI2, layerID, _item3.id).updatedState;
383
+ state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
384
+ }
385
+ } else {
386
+ var _val3 = {
387
+ pos: {
388
+ x: x + depth * Math.sin(rotRad),
389
+ y: y + depth * Math.cos(rotRad)
390
+ },
391
+ rotRad: rotRad
392
+ };
393
+ _val3.size = allItemRect.cur.size;
394
+ _val3.layoutpos = allItemRect.cur.layoutpos;
395
+ _val3.is_corner = allItemRect.cur.is_corner;
396
+ var isRectUp = GeometryUtils.validInterSect(allRect, _val3);
397
+ if (isRectUp) {
398
+ 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, false, myObject),
399
+ _stateI3 = _this$create4.updatedState,
400
+ _item4 = _this$create4.item;
401
+ duplicatedElement = _item4;
402
+ if (_item4 === null) {
403
+ alert('There are no Door Colors in this cabinet.');
404
+ state = state.merge({
405
+ mode: MODE_IDLE,
406
+ drawingSupport: new Map()
407
+ });
408
+ } else {
409
+ state = Item.select(_stateI3, layerID, _item4.id).updatedState;
410
+ state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
411
+ }
412
+ } else {
413
+ console.log('there is no space');
414
+ alert('No more space!');
415
+ }
416
+ }
417
+ }
418
+ }
419
+ break;
420
+ case 'holes':
421
+ this.prepareSnap(state, layerID);
422
+ myObject = state.getIn(['scene', 'layers', layerID, 'holes', objectID]);
423
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', myObject.line]);
424
+ sceneComponentType = myObject.type;
425
+ width = myObject.get('properties').get('width').get('length');
426
+ var myOffset = myObject.offset;
427
+ var v0 = layer.getIn(['vertices', line.vertices.get(0)]);
428
+ var v1 = layer.getIn(['vertices', line.vertices.get(1)]);
429
+ var lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);
430
+ var delta = width / 2 / lineLength + 0.00001;
431
+ var allHoles = state.getIn(['scene', 'layers', layerID, 'holes']);
432
+ var rightAble = true;
433
+ var leftAble = true;
434
+ if (myOffset + 3 * delta > 1) rightAble = false;else if (myOffset - 3 * delta < 0) leftAble = false;
435
+ if (allHoles.size === 0) {
436
+ var _this$createHole = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset + delta * 2, myObject.get('properties')),
437
+ stateH = _this$createHole.updatedState,
438
+ hole = _this$createHole.hole;
439
+ state = this.selectHole(stateH, layerID, hole.id).updatedState;
440
+ state = state.setIn(['drawingSupport', 'currentID'], hole.id);
441
+ } else {
442
+ allHoles.forEach(function (hole) {
443
+ if (hole.line === line.id) if (!hole.selected) {
444
+ var newDelta = hole.get('properties').get('width').get('length') / 2 / lineLength;
445
+ if (myOffset < hole.offset) {
446
+ if (myOffset + delta * 3 > hole.offset - newDelta) {
447
+ rightAble = false;
448
+ }
449
+ } else {
450
+ if (myOffset - delta * 3 < hole.offset + newDelta) {
451
+ leftAble = false;
452
+ }
453
+ }
454
+ }
455
+ });
456
+ }
457
+ if (rightAble) {
458
+ var _this$createHole2 = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset + delta * 2, myObject.get('properties')),
459
+ _stateH = _this$createHole2.updatedState,
460
+ _hole = _this$createHole2.hole;
461
+ state = this.selectHole(_stateH, layerID, _hole.id).updatedState;
462
+ state = state.setIn(['drawingSupport', 'currentID'], _hole.id);
463
+ } else {
464
+ if (leftAble) {
465
+ var _this$createHole3 = this.createHole(state, layerID, sceneComponentType, myObject.line, myOffset - delta * 2, myObject.get('properties')),
466
+ _stateH2 = _this$createHole3.updatedState,
467
+ _hole2 = _this$createHole3.hole;
468
+ state = this.selectHole(_stateH2, layerID, _hole2.id).updatedState;
469
+ state = state.setIn(['drawingSupport', 'currentID'], _hole2.id);
470
+ } else alert('No more space');
471
+ }
472
+ break;
473
+ case 'lines':
474
+ alert('Duplicating lines is not currently supported yet.');
475
+ break;
476
+ default:
477
+ break;
478
+ }
479
+ if (onInternalEvent && duplicatedElement) {
480
+ var _state$get;
481
+ var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
482
+ var jsElement = updatePayloadOfInternalEvent(duplicatedElement, layer, catalog);
483
+ onInternalEvent({
484
+ type: INTERNAL_EVENT_DRAW_ELEMENT,
485
+ value: jsElement
486
+ });
487
+ }
488
+ return {
489
+ updatedState: state
490
+ };
491
+ }
492
+ }, {
493
+ key: "storeDistArray",
494
+ value: function storeDistArray(state, layerID, itemID, distArray) {
495
+ if (isEmpty(distArray)) return {
496
+ updatedState: state
497
+ };
498
+ var curDistArray = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'distArray']);
499
+ distArray.forEach(function (dist) {
500
+ dist[0] < 0 ? dist[0] = 0 : dist[0];
501
+ });
502
+ var isEqualDist = function isEqualDist(a, b) {
503
+ return a == b;
504
+ };
505
+ if (curDistArray) {
506
+ var equal = curDistArray.every(function (curElement, index) {
507
+ return isEqualDist(curElement[0], distArray[index][0]);
508
+ });
509
+ if (!equal) {
510
+ state = state.setIn(['scene', 'layers', layerID, 'items', itemID, 'distArray'], distArray);
511
+ }
512
+ }
513
+ return {
514
+ updatedState: state
515
+ };
516
+ }
517
+ }, {
518
+ key: "validateItemPositions",
519
+ value: function validateItemPositions(state, layerID) {
520
+ var _this = this;
521
+ var layer = state.getIn(['scene', 'layers', layerID]);
522
+ function isItemInRect(item) {
523
+ var _state$getIn = state.getIn(['scene']),
524
+ width = _state$getIn.width,
525
+ height = _state$getIn.height;
526
+ return item.x >= 0 && item.x <= width && item.y >= 0 && item.y <= height;
527
+ }
528
+ layer.items.forEach(function (item) {
529
+ if (!isItemInRect(item)) state = _this.remove(state, layerID, item.id).updatedState;
530
+ });
531
+ return {
532
+ updatedState: state
533
+ };
534
+ }
535
+ }, {
536
+ key: "remove",
537
+ value: function remove(state, layerID, itemID) {
538
+ state = this.unselect(state, layerID, itemID).updatedState;
539
+ state = Layer.removeElement(state, layerID, 'items', itemID).updatedState;
540
+ state.getIn(['scene', 'groups']).forEach(function (group) {
541
+ return state = Group.removeElement(state, group.id, layerID, 'items', itemID).updatedState;
542
+ });
543
+ return {
544
+ updatedState: state
545
+ };
546
+ }
547
+ }, {
548
+ key: "replaceItem",
549
+ value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
550
+ var _currentObject$counte;
551
+ var counterTopURI = '';
552
+ if (!isEmpty(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
553
+ var _currentObject$counte2;
554
+ counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
555
+ } else if (!isEmpty(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;else counterTopURI = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
556
+ state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
557
+ state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false, [], false, null, counterTopURI).updatedState;
558
+ // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
559
+ return {
560
+ updatedState: state
561
+ };
562
+ }
563
+ }, {
564
+ key: "unselect",
565
+ value: function unselect(state, layerID, itemID) {
566
+ state = Layer.unselect(state, layerID, 'items', itemID).updatedState;
567
+ return {
568
+ updatedState: state
569
+ };
570
+ }
571
+ }, {
572
+ key: "selectToolDrawingItem",
573
+ value: function selectToolDrawingItem(state, sceneComponentType) {
574
+ state = state.merge({
575
+ mode: MODE_DRAWING_ITEM,
576
+ drawingSupport: new Map({
577
+ type: sceneComponentType
578
+ })
579
+ });
580
+ return {
581
+ updatedState: state
582
+ };
583
+ }
584
+ }, {
585
+ key: "selectToolDrawingItem3D",
586
+ value: function selectToolDrawingItem3D(state, sceneComponentType) {
587
+ state = state.merge({
588
+ mode: MODE_DRAWING_ITEM_3D,
589
+ drawingSupport: new Map({
590
+ type: sceneComponentType
591
+ })
592
+ });
593
+ state = state.mergeIn(['scene', 'loadFlag'], false);
594
+
595
+ // place the item at random position
596
+ var layerID = state.scene.get('selectedLayer');
597
+ state = this.updateDrawingItem(state, layerID, 0, 0).updatedState;
598
+ return {
599
+ updatedState: state
600
+ };
601
+ }
602
+ }, {
603
+ key: "endCreatingCabinet",
604
+ value: function endCreatingCabinet(state) {
605
+ state = state.merge({
606
+ isOpen: false,
607
+ openedType: 0
608
+ });
609
+ return {
610
+ updatedState: state
611
+ };
612
+ }
613
+ }, {
614
+ key: "updatePopupOpen",
615
+ value: function updatePopupOpen(state, value) {
616
+ state = state.merge({
617
+ openedType: value
618
+ });
619
+ return {
620
+ updatedState: state
621
+ };
622
+ }
623
+ }, {
624
+ key: "updateDrawingItem",
625
+ value: function updateDrawingItem(state, layerID, x, y) {
626
+ var isInitialPos = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
627
+ if (state.hasIn(['drawingSupport', 'currentID'])) {
628
+ var mode = state.get('mode');
629
+ if ([MODE_DRAWING_ITEM_3D].includes(mode)) {
630
+ state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
631
+ return item && item.merge({
632
+ x: x,
633
+ y: y,
634
+ isInitialPos: isInitialPos ? isInitialPos : false
635
+ });
636
+ });
637
+ state = state.merge({
638
+ mode: MODE_IDLE_3D
639
+ });
640
+ }
641
+ if ([MODE_DRAWING_ITEM].includes(mode)) {
642
+ state = state.merge({
643
+ mode: MODE_IDLE
644
+ });
645
+ state = state.updateIn(['scene', 'layers', layerID, 'items', state.getIn(['drawingSupport', 'currentID'])], function (item) {
646
+ return item && item.merge({
647
+ x: x,
648
+ y: y,
649
+ isInitialPos: isInitialPos ? isInitialPos : false
650
+ });
651
+ });
652
+ }
653
+ } else {
654
+ var _this$create5 = this.create(state, layerID, state.getIn(['drawingSupport', 'type']), x, y, 200, 100, 0, false, [], isInitialPos),
655
+ stateI = _this$create5.updatedState,
656
+ item = _this$create5.item;
657
+ if (item === null) {
658
+ alert('There are no Door Colors in this cabinet.');
659
+ state = state.merge({
660
+ mode: MODE_IDLE,
661
+ drawingSupport: new Map()
662
+ });
663
+ } else {
664
+ state = Item.select(stateI, layerID, item.id).updatedState;
665
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
666
+ }
667
+ }
668
+ return {
669
+ updatedState: state
670
+ };
671
+ }
672
+ }, {
673
+ key: "updateDraggingItemChanged",
674
+ value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
675
+ var _state4 = state,
676
+ scene = _state4.scene;
677
+ // let originalX = draggingSupport.get('originalX');
678
+ // let originalY = draggingSupport.get('originalY');
679
+
680
+ // let diffX = x;
681
+ // let diffY = y;
682
+
683
+ var item = scene.getIn(['layers', layerID, 'items', itemID]);
684
+ // let tX = originalX - diffX;
685
+ // let tY = originalY - diffY;
686
+ // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;
687
+ // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
688
+ item = item.merge({
689
+ x: x,
690
+ y: y,
691
+ isInitialPos: false
692
+ });
693
+ state = state.merge({
694
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
695
+ });
696
+ time2 = debugUtil();
697
+ false && console.log('FPS:', Math.round(1000 / (time2 - time1)), ' Delta Time:', (time2 - time1) / 1000, '(s)');
698
+ return {
699
+ updatedState: state
700
+ };
701
+ }
702
+ }, {
703
+ key: "endDrawingItem",
704
+ value: function endDrawingItem(state, layerID, x, y) {
705
+ // let catalog = state.catalog;
706
+ state = this.updateDrawingItem(state, layerID, x, y).updatedState;
707
+ state = Layer.unselectAll(state, layerID).updatedState;
708
+ var popup = state.get('popup');
709
+ state = state.merge({
710
+ drawingSupport: Map({
711
+ type: state.drawingSupport.get('type')
712
+ }),
713
+ isOpen: !popup
714
+ });
715
+ state = Layer.unselectAll(state, layerID).updatedState;
716
+ this.updateMolding(state);
717
+ return {
718
+ updatedState: state
719
+ };
720
+ }
721
+ }, {
722
+ key: "beginDraggingItem",
723
+ value: function beginDraggingItem(state, layerID, itemID, x, y) {
724
+ var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
725
+ time1 = debugUtil();
726
+ if (isUndefined(item)) return;
727
+ state = state.merge({
728
+ mode: MODE_DRAGGING_ITEM,
729
+ draggingSupport: Map({
730
+ layerID: layerID,
731
+ itemID: itemID,
732
+ startPointX: x,
733
+ startPointY: y,
734
+ originalX: item.x,
735
+ originalY: item.y
736
+ })
737
+ });
738
+ return {
739
+ updatedState: state
740
+ };
741
+ }
742
+ }, {
743
+ key: "beginDraggingItem3D",
744
+ value: function beginDraggingItem3D(state, layerID, itemID, x, y) {
745
+ var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
746
+ state = state.setIn(['scene', 'isEndDragging'], false);
747
+ if (isUndefined(item)) return {
748
+ updatedState: state
749
+ };
750
+ state = state.merge({
751
+ mode: MODE_DRAGGING_ITEM_3D,
752
+ draggingSupport: Map({
753
+ layerID: layerID,
754
+ itemID: itemID,
755
+ startPointX: x,
756
+ startPointY: y,
757
+ originalX: item.x,
758
+ originalY: item.y
759
+ })
760
+ });
761
+ return {
762
+ updatedState: state
763
+ };
764
+ }
765
+ }, {
766
+ key: "updateDraggingItem",
767
+ value: function updateDraggingItem(state, x, y) {
768
+ var _state5 = state,
769
+ draggingSupport = _state5.draggingSupport,
770
+ scene = _state5.scene;
771
+ var layerID = draggingSupport.get('layerID');
772
+ var itemID = draggingSupport.get('itemID');
773
+ var startPointX = draggingSupport.get('startPointX');
774
+ var startPointY = draggingSupport.get('startPointY');
775
+ var originalX = draggingSupport.get('originalX');
776
+ var originalY = draggingSupport.get('originalY');
777
+ var diffX = startPointX - x;
778
+ var diffY = startPointY - y;
779
+ var item = scene.getIn(['layers', layerID, 'items', itemID]);
780
+ if (isUndefined(item)) return {
781
+ updatedState: state
782
+ };
783
+ var tX = originalX - diffX;
784
+ var tY = originalY - diffY;
785
+ tX = tX > scene.width ? scene.width : tX < 0 ? 0 : tX;
786
+ tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;
787
+ item = item.merge({
788
+ x: tX,
789
+ y: tY,
790
+ isInitialPos: false
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 _state6 = state,
803
+ draggingSupport = _state6.draggingSupport,
804
+ scene = _state6.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 _state7 = state,
825
+ draggingSupport = _state7.draggingSupport,
826
+ scene = _state7.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 _state8 = state,
908
+ rotatingSupport = _state8.rotatingSupport,
909
+ scene = _state8.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 _state9 = state,
993
+ replacingSupport = _state9.replacingSupport,
994
+ scene = _state9.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 _state0 = state,
1096
+ replacingSupport = _state0.replacingSupport,
1097
+ scene = _state0.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) {
1131
+ state = state.merge({
1132
+ doorStyle: doorStyle
1133
+ });
1134
+ var _state1 = state,
1135
+ scene = _state1.scene;
1136
+ var layerID = scene.get('selectedLayer');
1137
+ var layers = scene.layers.get(layerID);
1138
+ var items = layers.items;
1139
+ layers = layers.setIn(['doorStyle'], fromJS(doorStyle));
1140
+ state = state.merge({
1141
+ scene: state.scene.mergeIn(['layers', layerID], layers)
1142
+ });
1143
+ items.forEach(function (data) {
1144
+ {
1145
+ var itemID = data.id;
1146
+ var tmpDS = _objectSpread(_objectSpread({}, data.doorStyle), {}, {
1147
+ doorStyles: _objectSpread(_objectSpread({}, data.doorStyle.doorStyles), {}, {
1148
+ counttop: doorStyle.doorStyles.counttop
1149
+ })
1150
+ });
1151
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1152
+ layers = layers.mergeIn(['items', itemID], data);
1153
+ state = state.merge({
1154
+ scene: scene.mergeIn(['layers', layerID], layers)
1155
+ });
1156
+ }
1157
+ });
1158
+ return {
1159
+ updatedState: state
1160
+ };
1161
+ }
1162
+ }, {
1163
+ key: "setDoorStyle",
1164
+ value: function setDoorStyle(state, doorStyle, itemCDS, isAll) {
1165
+ var _this2 = this;
1166
+ if (isEmpty(doorStyle)) return {
1167
+ updatedState: state
1168
+ };
1169
+ var keys = doorStyle.doorStyles ? Object.keys(doorStyle.doorStyles) : [];
1170
+ keys = keys.filter(function (elem) {
1171
+ return !elem.endsWith('_gltf');
1172
+ });
1173
+ var tmp = {};
1174
+ for (var x in keys) {
1175
+ tmp[keys[x]] = doorStyle.doorStyles[keys[x]];
1176
+ }
1177
+ doorStyle.cds = itemCDS;
1178
+ state = state.setIn(['scene', 'layers', state.scene.selectedLayer, 'doorStyle'], doorStyle);
1179
+ state = state.merge({
1180
+ doorStyle: doorStyle
1181
+ });
1182
+ var layerID = state.scene.get('selectedLayer');
1183
+ var temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1184
+ temp_layer_molding = temp_layer_molding.filter(function (md) {
1185
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1186
+ return md.itemID === ds.itemID;
1187
+ });
1188
+ });
1189
+ state = state.setIn(['scene', 'layers', layerID, 'molding'], temp_layer_molding);
1190
+ var itemIDs = state.scene.layers.getIn([layerID, 'selected', 'items']).toJS();
1191
+ var setDoorStyleOfItem = function setDoorStyleOfItem(data) {
1192
+ var _cds$data;
1193
+ if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1194
+ var itemID = data.id;
1195
+ var curItem = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1196
+ var layer = state.getIn(['scene', 'layers', layerID]);
1197
+ var tmpMolding = _toConsumableArray(curItem.molding);
1198
+ var temp_item_molding = _toConsumableArray(curItem.molding);
1199
+ temp_item_molding = temp_item_molding.filter(function (md) {
1200
+ return itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.some(function (ds) {
1201
+ return ds.itemID === md.itemID;
1202
+ });
1203
+ });
1204
+ tmpMolding.forEach(function (md) {
1205
+ var itemGroup = MoldingUtils.getItemGroupFromMolding(layer, curItem, md);
1206
+ itemGroup.forEach(function (it) {
1207
+ state = state.setIn(['scene', 'layers', layerID, 'items', it.id, 'molding'], temp_item_molding);
1208
+ });
1209
+ });
1210
+ var cds = itemCDS === null || itemCDS === void 0 ? void 0 : itemCDS.find(function (elem) {
1211
+ return elem.itemID === data.itemID;
1212
+ });
1213
+ var euro_cds = (cds === null || cds === void 0 || (_cds$data = cds.data) === null || _cds$data === void 0 ? void 0 : _cds$data.filter(function (element) {
1214
+ return element && element.is_euro_cds;
1215
+ })) || [];
1216
+ var cds_data = cds ? [cds] : [];
1217
+ if (
1218
+ // doorStyle.door_style_name === 'Euro & Frameless' &&
1219
+ euro_cds.length > 0) {
1220
+ var newProperties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1221
+ if (newProperties.hasOwnProperty('depth')) {
1222
+ if (!newProperties.hasOwnProperty('oldDepth')) {
1223
+ newProperties['oldDepth'] = new Map({
1224
+ length: newProperties.depth.length,
1225
+ _length: newProperties.depth._length,
1226
+ _unit: newProperties.depth._unit
1227
+ });
1228
+ }
1229
+ newProperties['depth'] = new Map({
1230
+ length: convert(euro_cds[0].euro_length).from('in').to('cm'),
1231
+ _length: euro_cds[0].euro_length,
1232
+ _unit: 'in'
1233
+ });
1234
+ }
1235
+ if (newProperties.hasOwnProperty('height')) {
1236
+ if (!newProperties.hasOwnProperty('oldHeight')) {
1237
+ newProperties['oldHeight'] = new Map({
1238
+ length: newProperties.height.length,
1239
+ _length: newProperties.height._length,
1240
+ _unit: newProperties.height._unit
1241
+ });
1242
+ }
1243
+ newProperties['height'] = new Map({
1244
+ length: convert(euro_cds[0].euro_height).from('in').to('cm'),
1245
+ _length: euro_cds[0].euro_height,
1246
+ _unit: 'in'
1247
+ });
1248
+ }
1249
+ if (newProperties.hasOwnProperty('width')) {
1250
+ if (!newProperties.hasOwnProperty('oldWidth')) {
1251
+ newProperties['oldWidth'] = new Map({
1252
+ length: newProperties.width.length,
1253
+ _length: newProperties.width._length,
1254
+ _unit: newProperties.width._unit
1255
+ });
1256
+ }
1257
+ newProperties['width'] = new Map({
1258
+ length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
1259
+ _length: euro_cds[0].euro_width,
1260
+ _unit: 'in'
1261
+ });
1262
+ }
1263
+ state = _this2.setJsProperties(state, layerID, itemID, newProperties).updatedState;
1264
+ } else {
1265
+ var properties = state.scene.getIn(['layers', layerID, 'items', itemID, 'properties']).toJS();
1266
+ if (properties.hasOwnProperty('oldDepth')) {
1267
+ properties['depth'] = new Map({
1268
+ length: properties.oldDepth.length,
1269
+ _length: properties.oldDepth._length,
1270
+ _unit: properties.oldDepth._unit
1271
+ });
1272
+ }
1273
+ if (properties.hasOwnProperty('oldHeight')) {
1274
+ properties['height'] = new Map({
1275
+ length: properties.oldHeight.length,
1276
+ _length: properties.oldHeight._length,
1277
+ _unit: properties.oldHeight._unit
1278
+ });
1279
+ }
1280
+ if (properties.hasOwnProperty('oldWidth')) {
1281
+ properties['width'] = new Map({
1282
+ length: properties.oldWidth.length,
1283
+ _length: properties.oldWidth._length,
1284
+ _unit: properties.oldWidth._unit
1285
+ });
1286
+ }
1287
+ state = _this2.setJsProperties(state, layerID, itemID, properties).updatedState;
1288
+ }
1289
+ var tmpDS = {
1290
+ id: doorStyle.id,
1291
+ brightness: doorStyle.brightness,
1292
+ color: doorStyle.color,
1293
+ glossness: doorStyle.glossness,
1294
+ name: doorStyle.name,
1295
+ door_style_name: doorStyle.door_style_name,
1296
+ texture: doorStyle.texture,
1297
+ thumbnail: doorStyle.thumbnail,
1298
+ type: doorStyle.type,
1299
+ sku: doorStyle.sku,
1300
+ color_sku_alias: doorStyle.color_sku_alias,
1301
+ // alias name of color_sku for the current dealer
1302
+ install: getInstallationSuffix(INSTALLATION_SUFFIX_TYPE.NAME, doorStyle),
1303
+ doorStyles: _objectSpread(_objectSpread({}, tmp), {}, {
1304
+ cds: cds_data
1305
+ })
1306
+ };
1307
+ state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'doorStyle'], fromJS(tmpDS));
1308
+ };
1309
+ if (isAll) {
1310
+ var items = state.scene.layers.get(layerID).items;
1311
+ items.forEach(setDoorStyleOfItem);
1312
+ } else {
1313
+ if (itemIDs.length > 0) {
1314
+ var _loop = function _loop() {
1315
+ var itemID = itemIDs[i];
1316
+ var items = state.scene.layers.get(layerID).items;
1317
+ items.forEach(function (data) {
1318
+ if (itemID === data.id) {
1319
+ setDoorStyleOfItem(data);
1320
+ }
1321
+ });
1322
+ };
1323
+ for (var i = 0; i < itemIDs.length; i++) {
1324
+ _loop();
1325
+ }
1326
+ }
1327
+ }
1328
+ return {
1329
+ updatedState: state
1330
+ };
1331
+ }
1332
+ }, {
1333
+ key: "setCounterTop",
1334
+ value: function setCounterTop(state, counterTop) {
1335
+ var _state10 = state,
1336
+ scene = _state10.scene;
1337
+ var layerID = scene.get('selectedLayer');
1338
+ var layers = scene.layers.get(layerID);
1339
+ layers = layers.mergeIn(['counterTop'], counterTop);
1340
+ state = state.merge({
1341
+ scene: scene.mergeIn(['layers', layerID], layers)
1342
+ });
1343
+ var items = layers.items;
1344
+ items.forEach(function (data) {
1345
+ {
1346
+ var dataJSON = data.toJS();
1347
+ var itemID = dataJSON.id;
1348
+ var newCounter = dataJSON.counterTop;
1349
+ newCounter = _objectSpread(_objectSpread({}, newCounter), counterTop);
1350
+ data = data.mergeIn(['counterTop'], newCounter);
1351
+ layers = layers.mergeIn(['items', itemID], data);
1352
+ state = state.merge({
1353
+ scene: scene.mergeIn(['layers', layerID], layers)
1354
+ });
1355
+ }
1356
+ });
1357
+ return {
1358
+ updatedState: state
1359
+ };
1360
+ }
1361
+ }, {
1362
+ key: "setItemsDoorHandle",
1363
+ value: function setItemsDoorHandle(state, scene, layer, layerID, elements_item) {
1364
+ var _this3 = this;
1365
+ elements_item.forEach(function (data) {
1366
+ var itemID = data.id;
1367
+ var item = _this3.updateDoorHandle(data, layer);
1368
+ layer = layer.mergeIn(['items', itemID], item);
1369
+ state = state.merge({
1370
+ scene: scene.mergeIn(['layers', layerID], layer)
1371
+ });
1372
+ });
1373
+ return {
1374
+ updatedState: state
1375
+ };
1376
+ }
1377
+ }, {
1378
+ key: "setDoorHandle",
1379
+ value: function setDoorHandle(state, doorHandle) {
1380
+ var _state11 = state,
1381
+ scene = _state11.scene;
1382
+ var layerID = scene.get('selectedLayer');
1383
+ var layer = scene.layers.get(layerID);
1384
+ layer = layer.mergeIn(['doorHandle'], doorHandle);
1385
+ state = state.merge({
1386
+ scene: scene.mergeIn(['layers', layerID], layer)
1387
+ });
1388
+ var items = layer.items;
1389
+ var selectedItems = items.filter(function (element) {
1390
+ return element.selected === true;
1391
+ }); // find selected items (default 1 selected)
1392
+
1393
+ if (selectedItems.size === 0) {
1394
+ state = this.setItemsDoorHandle(state, scene, layer, layerID, items).updatedState;
1395
+ } else {
1396
+ state = this.setItemsDoorHandle(state, scene, layer, layerID, selectedItems).updatedState;
1397
+ }
1398
+ return {
1399
+ updatedState: state
1400
+ };
1401
+ }
1402
+ }, {
1403
+ key: "setHandleMaterial",
1404
+ value: function setHandleMaterial(state, material) {
1405
+ var _state12 = state,
1406
+ scene = _state12.scene;
1407
+ var layerID = scene.get('selectedLayer');
1408
+ var layers = scene.layers.get(layerID);
1409
+ var items = layers.items;
1410
+ items.forEach(function (data) {
1411
+ var dataJSON = data.toJS();
1412
+ var itemID = dataJSON.id;
1413
+ var doorStyle = dataJSON.doorStyle;
1414
+ var tmpDS = _objectSpread(_objectSpread({}, doorStyle), {}, {
1415
+ metalness: material.metalness,
1416
+ roughness: material.roughness
1417
+ });
1418
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1419
+ layers = layers.mergeIn(['items', itemID], data);
1420
+ state = state.merge({
1421
+ scene: scene.mergeIn(['layers', layerID], layers)
1422
+ });
1423
+ });
1424
+ return {
1425
+ updatedState: state
1426
+ };
1427
+ }
1428
+ }, {
1429
+ key: "setWallColor",
1430
+ value: function setWallColor(state, wallColor) {
1431
+ var _state13 = state,
1432
+ scene = _state13.scene;
1433
+ var layerID = scene.get('selectedLayer');
1434
+ var layer = scene.layers.get(layerID);
1435
+ layer = layer.merge({
1436
+ wallColor: wallColor
1437
+ });
1438
+ state = state.merge({
1439
+ scene: scene.mergeIn(['layers', layerID], layer)
1440
+ });
1441
+ var lines = layer.lines;
1442
+ lines.forEach(function (data) {
1443
+ var dataJSON = data.toJS();
1444
+ var lineID = dataJSON.id;
1445
+ data = data.mergeIn(['wallColor'], wallColor);
1446
+ layer = layer.mergeIn(['lines', lineID], data);
1447
+ state = state.merge({
1448
+ scene: scene.mergeIn(['layers', layerID], layer)
1449
+ });
1450
+ });
1451
+ return {
1452
+ updatedState: state
1453
+ };
1454
+ }
1455
+ }, {
1456
+ key: "setBacksplash",
1457
+ value: function setBacksplash(state, backsplash) {
1458
+ var _state14 = state,
1459
+ scene = _state14.scene;
1460
+ var layerID = scene.get('selectedLayer');
1461
+ var layer = scene.layers.get(layerID);
1462
+ var dataJSON = layer.toJS();
1463
+ var newBack = dataJSON.backsplash;
1464
+ var flag = true; // selected or not
1465
+ // if backsplash is already set
1466
+ if (layer.getIn(['backsplash']).uri === backsplash.uri) {
1467
+ // unselect
1468
+ newBack = _objectSpread(_objectSpread({}, newBack), {}, {
1469
+ uri: ''
1470
+ });
1471
+ flag = false;
1472
+ }
1473
+ // else then, set backsplash
1474
+ else newBack = _objectSpread(_objectSpread({}, newBack), backsplash);
1475
+ layer = layer.mergeIn(['backsplash'], newBack);
1476
+ layer = layer.set('backsplashApplied', flag);
1477
+ state = state.merge({
1478
+ scene: scene.mergeIn(['layers', layerID], layer)
1479
+ });
1480
+ return {
1481
+ updatedState: state
1482
+ };
1483
+ }
1484
+ }, {
1485
+ key: "setMolding",
1486
+ value: function setMolding(state, molding, isAll) {
1487
+ var _state15 = state,
1488
+ scene = _state15.scene;
1489
+ var layerID = scene.get('selectedLayer');
1490
+ var layer = scene.layers.get(layerID);
1491
+ if (isAll) {
1492
+ var tempLayerMolding = layer.molding;
1493
+ var flag = tempLayerMolding.some(function (mol) {
1494
+ return mol.name === molding.name;
1495
+ });
1496
+ if (flag) {
1497
+ tempLayerMolding = tempLayerMolding.filter(function (mol) {
1498
+ return mol.name !== molding.name;
1499
+ });
1500
+ } else {
1501
+ if (tempLayerMolding.some(function (mol) {
1502
+ return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1503
+ })) {
1504
+ tempLayerMolding = tempLayerMolding.filter(function (mol) {
1505
+ return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1506
+ });
1507
+ }
1508
+ tempLayerMolding = tempLayerMolding.concat(molding);
1509
+ }
1510
+ layer = layer.set('molding', tempLayerMolding);
1511
+ state = state.merge({
1512
+ scene: scene.mergeIn(['layers', layerID], layer)
1513
+ });
1514
+ layer.items.toArray().forEach(function (item) {
1515
+ if (MoldingUtils.isEnableItemForMolding(layer, item, molding)) {
1516
+ var tempItemMolding = item.molding;
1517
+ if (flag) {
1518
+ if (tempItemMolding.some(function (mol) {
1519
+ return mol.name === molding.name;
1520
+ })) {
1521
+ tempItemMolding = tempItemMolding.filter(function (mol) {
1522
+ return mol.name !== molding.name;
1523
+ });
1524
+ }
1525
+ } else {
1526
+ if (tempItemMolding.some(function (mol) {
1527
+ return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1528
+ })) {
1529
+ tempItemMolding = tempItemMolding.filter(function (mol) {
1530
+ return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1531
+ });
1532
+ }
1533
+ tempItemMolding = tempItemMolding.concat(molding);
1534
+ }
1535
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempItemMolding);
1536
+ }
1537
+ });
1538
+ } else {
1539
+ var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
1540
+ if (MoldingUtils.isEnableItemForMolding(layer, selectedItem, molding)) {
1541
+ var moldingGroup = MoldingUtils.getItemGroupFromMolding(layer, selectedItem, molding);
1542
+ var tempSelItemMolding = selectedItem.molding;
1543
+ var _flag = tempSelItemMolding.some(function (mol) {
1544
+ return mol.name === molding.name;
1545
+ });
1546
+ moldingGroup.forEach(function (item) {
1547
+ var tempItemMolding = item.molding;
1548
+ if (_flag) {
1549
+ if (tempItemMolding.some(function (mol) {
1550
+ return mol.name === molding.name;
1551
+ })) {
1552
+ tempItemMolding = tempItemMolding.filter(function (mol) {
1553
+ return mol.name !== molding.name;
1554
+ });
1555
+ }
1556
+ } else {
1557
+ if (tempItemMolding.some(function (mol) {
1558
+ return mol.molding_type === molding.molding_type && mol.location_type === molding.location_type;
1559
+ })) {
1560
+ tempItemMolding = tempItemMolding.filter(function (mol) {
1561
+ return mol.molding_type !== molding.molding_type || mol.location_type !== molding.location_type;
1562
+ });
1563
+ }
1564
+ tempItemMolding = tempItemMolding.concat(molding);
1565
+ }
1566
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempItemMolding);
1567
+ });
1568
+ }
1569
+ }
1570
+ state = state.merge({
1571
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1572
+ });
1573
+ return {
1574
+ updatedState: state
1575
+ };
1576
+ }
1577
+ }, {
1578
+ key: "updateMolding",
1579
+ value: function updateMolding(state) {
1580
+ var _state16 = state,
1581
+ scene = _state16.scene;
1582
+ var layerID = scene.get('selectedLayer');
1583
+ var layer = scene.layers.get(layerID);
1584
+ var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
1585
+ var snappedItemGroup = []; // The array that include snapped items with selected item.
1586
+ if (!!selectedItem && selectedItem.category === 'cabinet') {
1587
+ var itemGroups = [];
1588
+ layer.items.toArray().forEach(function (curItem) {
1589
+ if (selectedItem.id !== curItem.id && curItem.category === 'cabinet') {
1590
+ if (MoldingUtils.isItemSnappedItem(selectedItem, curItem)) {
1591
+ snappedItemGroup.push(curItem); // add the snapped item.
1592
+ // add the snapped item that has same molding location type, layoutpos and height to itemGroups.
1593
+ if (curItem.molding.length) {
1594
+ curItem.molding.forEach(function (md) {
1595
+ // This code check whether the curItem can be grouped with selected Item in molding.
1596
+ if (MoldingUtils.tryMergeMDItem(layer, selectedItem, curItem, [selectedItem], md)) {
1597
+ itemGroups.push({
1598
+ base_item: curItem,
1599
+ group: MoldingUtils.getItemGroupFromMolding(layer, curItem, md),
1600
+ molding: md
1601
+ });
1602
+ }
1603
+ });
1604
+ }
1605
+ }
1606
+ }
1607
+ });
1608
+ var updateSelectItemMolding = function updateSelectItemMolding() {
1609
+ var _loop2 = function _loop2() {
1610
+ // check whether snapped item is same as selected item in layoutpos(Wall, Tall, Base)
1611
+ if (MoldingUtils.isSameMoldingLayoutpos(selectedItem, snappedItemGroup[i])) {
1612
+ // check whether snapped item is same in location(same location type and height).
1613
+ var delMoldings = [];
1614
+ for (var k = 0; k < selectedItem.molding.length; k++) {
1615
+ if (MoldingUtils.isItemSameItemByLocation(selectedItem, snappedItemGroup[i], selectedItem.molding[k].location_type)) {
1616
+ delMoldings.push(selectedItem.molding[k].itemID);
1617
+ }
1618
+ }
1619
+ var resultMol = [];
1620
+ selectedItem.molding.forEach(function (mol) {
1621
+ if (!delMoldings.some(function (id) {
1622
+ return id === mol.itemID;
1623
+ })) {
1624
+ resultMol.push(mol);
1625
+ }
1626
+ });
1627
+ state = state.setIn(['scene', 'layers', layerID, 'items', selectedItem.id, 'molding'], resultMol);
1628
+ }
1629
+ };
1630
+ for (var i = 0; i < snappedItemGroup.length; i++) {
1631
+ _loop2();
1632
+ }
1633
+ };
1634
+ var emptyMoldingArray = function emptyMoldingArray() {
1635
+ var temp_items = [selectedItem];
1636
+ var groupMoldings = [];
1637
+ itemGroups.forEach(function (itGroup) {
1638
+ groupMoldings.push(itGroup.molding);
1639
+ itGroup.group.forEach(function (it) {
1640
+ if (!temp_items.some(function (i) {
1641
+ return i.id === it.id;
1642
+ })) {
1643
+ temp_items.push(it);
1644
+ }
1645
+ });
1646
+ });
1647
+ temp_items.forEach(function (item) {
1648
+ var finalMoldings = [];
1649
+ var tempMoldings = state.getIn(['scene', 'layers', layerID, 'items', item.id, 'molding']);
1650
+ tempMoldings.forEach(function (molding) {
1651
+ if (!groupMoldings.some(function (ml) {
1652
+ return ml.itemID === molding.itemID;
1653
+ })) {
1654
+ finalMoldings.push(molding);
1655
+ }
1656
+ });
1657
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], finalMoldings);
1658
+ });
1659
+ updateSelectItemMolding();
1660
+ };
1661
+ var setLocationMolding = function setLocationMolding(location) {
1662
+ var locationMolding = itemGroups.filter(function (it) {
1663
+ return it.molding.location_type === location;
1664
+ }).sort(function (a, b) {
1665
+ if (a.group.length === b.group.length) {
1666
+ 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);
1667
+ } else {
1668
+ return a.group.length - b.group.length;
1669
+ }
1670
+ });
1671
+ if (locationMolding.length) {
1672
+ var locationMoldingItems = MoldingUtils.getItemGroupFromMolding(layer, selectedItem, locationMolding[0].molding);
1673
+ locationMoldingItems.forEach(function (item) {
1674
+ var tempMoldings = state.getIn(['scene', 'layers', layerID, 'items', item.id, 'molding']);
1675
+ if (!tempMoldings.some(function (mol) {
1676
+ return mol.itemID === locationMolding[0].molding.itemID;
1677
+ })) tempMoldings.push(locationMolding[0].molding);
1678
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id, 'molding'], tempMoldings);
1679
+ });
1680
+ }
1681
+ };
1682
+ if (itemGroups.length && layer.items.some(function (it) {
1683
+ return MoldingUtils.isItemSnappedItem(selectedItem, it) && it.category === 'cabinet';
1684
+ })) {
1685
+ emptyMoldingArray();
1686
+ for (var i = 0; i < MOLDING_LOCATIONS.length; i++) {
1687
+ setLocationMolding(MOLDING_LOCATIONS[i]);
1688
+ }
1689
+ } else if (!itemGroups.length && selectedItem.molding.length) {
1690
+ // Delete the selected Item's molding property if selItem attached the group that has no molding.
1691
+ // If snapped items have no moldings and one item's property is same as selected Item, selected Item's molding should be deleted.
1692
+ updateSelectItemMolding();
1693
+ }
1694
+ }
1695
+ state = state.merge({
1696
+ sceneHistory: historyPush(state.sceneHistory, state.scene)
1697
+ });
1698
+ return {
1699
+ updatedState: state
1700
+ };
1701
+ }
1702
+ }, {
1703
+ key: "setBacksplashVisible",
1704
+ value: function setBacksplashVisible(state, itemID, backsplashVisible) {
1705
+ var _state17 = state,
1706
+ scene = _state17.scene;
1707
+ var layerID = scene.get('selectedLayer');
1708
+ var layer = scene.layers.get(layerID);
1709
+ layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
1710
+ // let cabinet_category = layer.getIn(["items"], itemID).toJS()[itemID].cabinet_category;
1711
+ // if (cabinet_category && (cabinet_category.search("Sink") !== -1 || cabinet_category.search("End/Angle") !== -1)) {
1712
+ // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], true);
1713
+ // } else {
1714
+ // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], false);
1715
+ // }
1716
+ state = state.merge({
1717
+ scene: scene.mergeIn(['layers', layerID], layer)
1718
+ });
1719
+ return {
1720
+ updatedState: state
1721
+ };
1722
+ }
1723
+ }, {
1724
+ key: "setApplianceMaterial",
1725
+ value: function setApplianceMaterial(state, material) {
1726
+ var _state18 = state,
1727
+ scene = _state18.scene;
1728
+ var layerID = scene.get('selectedLayer');
1729
+ var layers = scene.layers.get(layerID);
1730
+ var items = layers.items;
1731
+ items.forEach(function (data) {
1732
+ var dataJSON = data.toJS();
1733
+ var itemID = dataJSON.id;
1734
+ var newMaterial = {
1735
+ metalness: material.metalness,
1736
+ roughness: material.roughness
1737
+ };
1738
+ data = data.mergeIn(['applianceMaterial'], newMaterial);
1739
+ layers = layers.mergeIn(['items', itemID], data);
1740
+ state = state.merge({
1741
+ scene: scene.mergeIn(['layers', layerID], layers)
1742
+ });
1743
+ });
1744
+ return {
1745
+ updatedState: state
1746
+ };
1747
+ }
1748
+ }, {
1749
+ key: "setModelling",
1750
+ value: function setModelling(state, molding) {
1751
+ var _state19 = state,
1752
+ scene = _state19.scene;
1753
+ var layerID = scene.get('selectedLayer');
1754
+ var layers = scene.layers.get(layerID);
1755
+ var items = layers.items;
1756
+ items.forEach(function (data) {
1757
+ var dataJSON = data.toJS();
1758
+ var itemID = dataJSON.id;
1759
+ });
1760
+ state = state.merge({
1761
+ scene: scene.mergeIn(['layers', layerID], layers)
1762
+ });
1763
+ return {
1764
+ updatedState: state
1765
+ };
1766
+ }
1767
+ }, {
1768
+ key: "updateItemsAltitude",
1769
+ value: function updateItemsAltitude(state, layerID, itemID, value) {
1770
+ var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1771
+ var properties = item.get('properties');
1772
+ var altitude = properties.get('altitude');
1773
+ var length = altitude.get('length');
1774
+ var _length = altitude.get('_length');
1775
+ var _unit = altitude.get('_unit');
1776
+ length = length - value;
1777
+ switch (_unit) {
1778
+ case 'mm':
1779
+ _length = length * 10;
1780
+ break;
1781
+ case 'm':
1782
+ _length = length * 0.01;
1783
+ break;
1784
+ default:
1785
+ _length = length;
1786
+ }
1787
+ if (length <= 0) {
1788
+ length = 0;
1789
+ _length = 0;
1790
+ }
1791
+ state = state.mergeIn(['scene', 'layers', layerID, 'items', itemID, 'properties', 'altitude'], new Map({
1792
+ length: length,
1793
+ _length: _length,
1794
+ _unit: _unit
1795
+ }));
1796
+ return {
1797
+ updatedState: state
1798
+ };
1799
+ }
1800
+ }, {
1801
+ key: "createHole",
1802
+ value: function createHole(state, layerID, type, lineID, offset, properties) {
1803
+ var holeID = IDBroker.acquireID();
1804
+ var hole = state.catalog.factoryElement(type, {
1805
+ id: holeID,
1806
+ url: state.catalog.getIn(['elements', type, 'info', 'url']),
1807
+ type: type,
1808
+ offset: offset,
1809
+ line: lineID
1810
+ }, properties);
1811
+ state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);
1812
+ state = state.updateIn(['scene', 'layers', layerID, 'lines', lineID, 'holes'], function (holes) {
1813
+ return holes && holes.push(holeID);
1814
+ });
1815
+ // get vertex order/////
1816
+ var element = state.scene.layers.getIn([layerID, 'lines', lineID]);
1817
+ var layer = state.getIn(['scene', 'layers', layerID]);
1818
+ var vetName0 = element.vertices.get(0);
1819
+ var vetName1 = element.vertices.get(1);
1820
+ var verticesArray = [];
1821
+ layer.areas.forEach(function (data) {
1822
+ verticesArray.push(data.vertices.toJS());
1823
+ });
1824
+ for (var i = 0; i < verticesArray.length; i++) {
1825
+ var vertices = verticesArray[i];
1826
+ if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
1827
+ var index0 = vertices.indexOf(vetName0);
1828
+ var index1 = vertices.indexOf(vetName1);
1829
+ // if vertex order chanege//
1830
+ if (index1 + 1 == index0) {
1831
+ return {
1832
+ updatedState: state,
1833
+ hole: hole
1834
+ };
1835
+ }
1836
+ if (index0 == 0 && index1 == vertices.length - 1) {
1837
+ return {
1838
+ updatedState: state,
1839
+ hole: hole
1840
+ };
1841
+ }
1842
+ // ////////////////////////
1843
+ }
1844
+ }
1845
+ // ///////////////////////////
1846
+ properties = hole.properties.toJS();
1847
+ if (properties.hasOwnProperty('flip_orizzontal')) {
1848
+ properties['flip_orizzontal'] = true;
1849
+ }
1850
+ if (properties.hasOwnProperty('flip_horizontal')) {
1851
+ properties['flip_horizontal'] = true;
1852
+ }
1853
+ state = Hole.setJsProperties(state, layerID, holeID, properties).updatedState;
1854
+ return {
1855
+ updatedState: state,
1856
+ hole: hole
1857
+ };
1858
+ }
1859
+ }, {
1860
+ key: "toggleLoadingCabinet",
1861
+ value: function toggleLoadingCabinet(state) {
1862
+ var _state20 = state,
1863
+ scene = _state20.scene;
1864
+ console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
1865
+ // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
1866
+ // state = state.set('scene', scene);
1867
+ state = state.setIn(['scene', 'isLoadingCabinet'], !scene.isLoadingCabinet);
1868
+ return {
1869
+ updatedState: state
1870
+ };
1871
+ }
1872
+ }, {
1873
+ key: "endLoading",
1874
+ value: function endLoading(state) {
1875
+ var _state21 = state,
1876
+ scene = _state21.scene;
1877
+ state = state.setIn(['scene', 'loadFlag'], true);
1878
+ return {
1879
+ updatedState: state
1880
+ };
1881
+ }
1882
+ }]);
1883
+ }();
1884
+ export { Item as default };