kitchen-simulator 5.0.0-test.6 → 5.0.0-test.61

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 (567) hide show
  1. package/README.md +1 -1
  2. package/package.json +22 -48
  3. package/src/KitchenConfiguratorApp.jsx +4 -4
  4. package/src/_KitchenConfigurator.jsx +578 -0
  5. package/src/_renderer.jsx +42 -0
  6. package/src/actions/export.js +2 -5
  7. package/src/assets/Window.hdr +2100 -0
  8. package/src/assets/brown_photostudio_02_1k.hdr +0 -0
  9. package/src/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  10. package/src/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  11. package/src/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  12. package/src/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  13. package/src/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  14. package/src/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  15. package/src/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  16. package/src/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  17. package/src/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  18. package/src/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  19. package/src/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  20. package/src/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  21. package/src/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  22. package/src/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  23. package/src/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  24. package/src/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  25. package/src/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  26. package/src/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  27. package/src/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  28. package/src/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  29. package/src/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  30. package/src/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  31. package/src/assets/fonts/style.css +177 -0
  32. package/src/assets/gltf/door_closet.bin +0 -0
  33. package/src/assets/gltf/door_closet.fbx +0 -0
  34. package/src/assets/gltf/door_closet.gltf +1 -0
  35. package/src/assets/gltf/door_exterior.bin +0 -0
  36. package/src/assets/gltf/door_exterior.fbx +0 -0
  37. package/src/assets/gltf/door_exterior.gltf +1 -0
  38. package/src/assets/gltf/door_interior.bin +0 -0
  39. package/src/assets/gltf/door_interior.fbx +0 -0
  40. package/src/assets/gltf/door_interior.gltf +1 -0
  41. package/src/assets/gltf/door_sliding.bin +0 -0
  42. package/src/assets/gltf/door_sliding.fbx +0 -0
  43. package/src/assets/gltf/door_sliding.gltf +1 -0
  44. package/src/assets/gltf/doorway_framed.bin +0 -0
  45. package/src/assets/gltf/doorway_framed.fbx +0 -0
  46. package/src/assets/gltf/doorway_framed.gltf +1 -0
  47. package/src/assets/gltf/window_clear.bin +0 -0
  48. package/src/assets/gltf/window_clear.fbx +0 -0
  49. package/src/assets/gltf/window_clear.gltf +1 -0
  50. package/src/assets/gltf/window_cross.bin +0 -0
  51. package/src/assets/gltf/window_cross.fbx +0 -0
  52. package/src/assets/gltf/window_cross.gltf +1 -0
  53. package/src/assets/gltf/window_double_hung.bin +0 -0
  54. package/src/assets/gltf/window_double_hung.fbx +0 -0
  55. package/src/assets/gltf/window_double_hung.gltf +1 -0
  56. package/src/assets/gltf/window_vertical.bin +0 -0
  57. package/src/assets/gltf/window_vertical.fbx +0 -0
  58. package/src/assets/gltf/window_vertical.gltf +1 -0
  59. package/src/assets/img/1.jpg +0 -0
  60. package/src/assets/img/TKC_thumbnail.png +0 -0
  61. package/src/assets/img/Toggle.png +0 -0
  62. package/src/assets/img/loading/loading.gif +0 -0
  63. package/src/assets/img/loading/loading_1.svg +11 -0
  64. package/src/assets/img/loading_large.gif +0 -0
  65. package/src/assets/img/png/door/closet.png +0 -0
  66. package/src/assets/img/png/door/doorwaysframed.png +0 -0
  67. package/src/assets/img/png/door/doorwaysframeles.png +0 -0
  68. package/src/assets/img/png/door/doorwaysframeless.png +0 -0
  69. package/src/assets/img/png/door/exterior.png +0 -0
  70. package/src/assets/img/png/door/interior.png +0 -0
  71. package/src/assets/img/png/door/sliding.png +0 -0
  72. package/src/assets/img/png/helper/outcome.png +0 -0
  73. package/src/assets/img/png/helper/video_preview_3d.png +0 -0
  74. package/src/assets/img/png/helper/video_preview_start.png +0 -0
  75. package/src/assets/img/project_img.png +0 -0
  76. package/src/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  77. package/src/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  78. package/src/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
  79. package/src/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  80. package/src/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  81. package/src/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  82. package/src/assets/img/rta/rta_logo_box_maroon.png +0 -0
  83. package/src/assets/img/rta/rta_logo_box_white.png +0 -0
  84. package/src/assets/img/rta_menu.png +0 -0
  85. package/src/assets/img/step2.jpg +0 -0
  86. package/src/assets/img/step3.jpg +0 -0
  87. package/src/assets/img/step4.jpg +0 -0
  88. package/src/assets/img/step5.jpg +0 -0
  89. package/src/assets/img/step6.jpg +0 -0
  90. package/src/assets/img/step7.jpg +0 -0
  91. package/src/assets/img/step8.jpg +0 -0
  92. package/src/assets/img/svg/2d_delete_object.svg +33 -0
  93. package/src/assets/img/svg/2d_delete_object1.svg +33 -0
  94. package/src/assets/img/svg/2d_lock_object.svg +33 -0
  95. package/src/assets/img/svg/3d_item_move.svg +106 -0
  96. package/src/assets/img/svg/3d_item_rotation.svg +76 -0
  97. package/src/assets/img/svg/3d_item_warning_edit.svg +77 -0
  98. package/src/assets/img/svg/3d_item_warning_info.svg +81 -0
  99. package/src/assets/img/svg/accessories.svg +4 -0
  100. package/src/assets/img/svg/angle_icon.svg +39 -0
  101. package/src/assets/img/svg/blank_div.svg +14 -0
  102. package/src/assets/img/svg/bottombar/2d3d_button.svg +3 -0
  103. package/src/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
  104. package/src/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
  105. package/src/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
  106. package/src/assets/img/svg/bottombar/arrow-down.svg +3 -0
  107. package/src/assets/img/svg/bottombar/arrow-left.svg +3 -0
  108. package/src/assets/img/svg/bottombar/arrow-minus.svg +3 -0
  109. package/src/assets/img/svg/bottombar/arrow-plus.svg +11 -0
  110. package/src/assets/img/svg/bottombar/arrow-right.svg +3 -0
  111. package/src/assets/img/svg/bottombar/arrow-up.svg +3 -0
  112. package/src/assets/img/svg/bottombar/collapse.svg +3 -0
  113. package/src/assets/img/svg/bottombar/elevation-back.svg +6 -0
  114. package/src/assets/img/svg/bottombar/elevation-front.svg +6 -0
  115. package/src/assets/img/svg/bottombar/elevation-left.svg +6 -0
  116. package/src/assets/img/svg/bottombar/elevation-right.svg +7 -0
  117. package/src/assets/img/svg/bottombar/elevation.svg +6 -0
  118. package/src/assets/img/svg/bottombar/expand.svg +3 -0
  119. package/src/assets/img/svg/bottombar/help.svg +72 -0
  120. package/src/assets/img/svg/bottombar/incm_toggle.svg +39 -0
  121. package/src/assets/img/svg/bottombar/pan_1.svg +57 -0
  122. package/src/assets/img/svg/bottombar/pan_2.svg +27 -0
  123. package/src/assets/img/svg/bottombar/pan_3.svg +27 -0
  124. package/src/assets/img/svg/bottombar/pan_4.svg +27 -0
  125. package/src/assets/img/svg/bottombar/pan_5.svg +27 -0
  126. package/src/assets/img/svg/bottombar/settings.svg +23 -0
  127. package/src/assets/img/svg/bottombar/spin-down.svg +76 -0
  128. package/src/assets/img/svg/bottombar/spin-left.svg +75 -0
  129. package/src/assets/img/svg/bottombar/spin-right.svg +75 -0
  130. package/src/assets/img/svg/bottombar/spin-up.svg +76 -0
  131. package/src/assets/img/svg/bottombar/spin_1.svg +48 -0
  132. package/src/assets/img/svg/bottombar/spin_2.svg +31 -0
  133. package/src/assets/img/svg/bottombar/spin_3.svg +31 -0
  134. package/src/assets/img/svg/bottombar/spin_4.svg +31 -0
  135. package/src/assets/img/svg/bottombar/spin_5.svg +31 -0
  136. package/src/assets/img/svg/bottombar/zoomin.svg +29 -0
  137. package/src/assets/img/svg/bottombar/zoomout.svg +26 -0
  138. package/src/assets/img/svg/check.svg +10 -0
  139. package/src/assets/img/svg/close.svg +11 -0
  140. package/src/assets/img/svg/color/Black.svg +3 -0
  141. package/src/assets/img/svg/color/Blue.svg +3 -0
  142. package/src/assets/img/svg/color/Brown.svg +9 -0
  143. package/src/assets/img/svg/color/Cream.svg +3 -0
  144. package/src/assets/img/svg/color/Dark.svg +9 -0
  145. package/src/assets/img/svg/color/Gray.svg +3 -0
  146. package/src/assets/img/svg/color/Green.svg +3 -0
  147. package/src/assets/img/svg/color/Light.svg +9 -0
  148. package/src/assets/img/svg/color/Medium.svg +9 -0
  149. package/src/assets/img/svg/color/Unfinished.svg +9 -0
  150. package/src/assets/img/svg/color/White.svg +3 -0
  151. package/src/assets/img/svg/color/White.svg.bak +3 -0
  152. package/src/assets/img/svg/color/stone2.jpg +0 -0
  153. package/src/assets/img/svg/color/wood2.jpg +0 -0
  154. package/src/assets/img/svg/copy.svg +11 -0
  155. package/src/assets/img/svg/delete.svg +3 -0
  156. package/src/assets/img/svg/detail.svg +77 -0
  157. package/src/assets/img/svg/door/Closet.svg +11 -0
  158. package/src/assets/img/svg/door/Exterior.svg +5 -0
  159. package/src/assets/img/svg/door/Framed_dorway.svg +5 -0
  160. package/src/assets/img/svg/door/Frameless_dorway.svg +5 -0
  161. package/src/assets/img/svg/door/Interior.svg +7 -0
  162. package/src/assets/img/svg/door/Sliding.svg +5 -0
  163. package/src/assets/img/svg/doors_closet.svg +47 -0
  164. package/src/assets/img/svg/doors_exterior.svg +25 -0
  165. package/src/assets/img/svg/doors_interior.svg +29 -0
  166. package/src/assets/img/svg/doors_patio.svg +26 -0
  167. package/src/assets/img/svg/duplicate.svg +11 -0
  168. package/src/assets/img/svg/duplicate_object_left.svg +32 -0
  169. package/src/assets/img/svg/duplicate_object_right.svg +32 -0
  170. package/src/assets/img/svg/filtersActive.svg +19 -0
  171. package/src/assets/img/svg/firstsetting/L.svg +3 -0
  172. package/src/assets/img/svg/firstsetting/L2.svg +3 -0
  173. package/src/assets/img/svg/firstsetting/Open.svg +3 -0
  174. package/src/assets/img/svg/firstsetting/Square.svg +3 -0
  175. package/src/assets/img/svg/firstsetting/bar-active.svg +9 -0
  176. package/src/assets/img/svg/firstsetting/bar-normal.svg +3 -0
  177. package/src/assets/img/svg/firstsetting/bullet-current.svg +3 -0
  178. package/src/assets/img/svg/firstsetting/bullet-done.svg +3 -0
  179. package/src/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
  180. package/src/assets/img/svg/firstsetting/check-active.svg +3 -0
  181. package/src/assets/img/svg/firstsetting/check-normal.svg +3 -0
  182. package/src/assets/img/svg/firstsetting/pencil.svg +11 -0
  183. package/src/assets/img/svg/green_checkmark.svg +27 -0
  184. package/src/assets/img/svg/headerbar/assist.svg +3 -0
  185. package/src/assets/img/svg/headerbar/cart.svg +3 -0
  186. package/src/assets/img/svg/headerbar/check.svg +10 -0
  187. package/src/assets/img/svg/headerbar/consult_designer.svg +45 -0
  188. package/src/assets/img/svg/headerbar/edit_name.svg +26 -0
  189. package/src/assets/img/svg/headerbar/file-dollar.svg +13 -0
  190. package/src/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
  191. package/src/assets/img/svg/headerbar/plus.svg +11 -0
  192. package/src/assets/img/svg/headerbar/review_quote.svg +44 -0
  193. package/src/assets/img/svg/headerbar/ruler-measure.svg +11 -0
  194. package/src/assets/img/svg/headerbar/save.svg +3 -0
  195. package/src/assets/img/svg/headerbar/setting.svg +75 -0
  196. package/src/assets/img/svg/help/check.svg +10 -0
  197. package/src/assets/img/svg/help/search.svg +76 -0
  198. package/src/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
  199. package/src/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
  200. package/src/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
  201. package/src/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
  202. package/src/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
  203. package/src/assets/img/svg/intro/3-retrieve-project.svg +18 -0
  204. package/src/assets/img/svg/invert.svg +127 -0
  205. package/src/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
  206. package/src/assets/img/svg/lefttoolbar/appliance.svg +13 -0
  207. package/src/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
  208. package/src/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
  209. package/src/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
  210. package/src/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
  211. package/src/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
  212. package/src/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
  213. package/src/assets/img/svg/lefttoolbar/door-style.svg +20 -0
  214. package/src/assets/img/svg/lefttoolbar/door.svg +12 -0
  215. package/src/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
  216. package/src/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
  217. package/src/assets/img/svg/lefttoolbar/finishing.svg +13 -0
  218. package/src/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
  219. package/src/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
  220. package/src/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
  221. package/src/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
  222. package/src/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
  223. package/src/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
  224. package/src/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
  225. package/src/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
  226. package/src/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
  227. package/src/assets/img/svg/lefttoolbar/search.svg +76 -0
  228. package/src/assets/img/svg/lefttoolbar/view_more.svg +86 -0
  229. package/src/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
  230. package/src/assets/img/svg/lefttoolbar/window.svg +12 -0
  231. package/src/assets/img/svg/menubar/login.svg +84 -0
  232. package/src/assets/img/svg/menubar/my_projects.svg +85 -0
  233. package/src/assets/img/svg/menubar/new_project.svg +110 -0
  234. package/src/assets/img/svg/menubar/save_project.svg +84 -0
  235. package/src/assets/img/svg/options.svg +3 -0
  236. package/src/assets/img/svg/positioning.svg +3 -0
  237. package/src/assets/img/svg/rotate.png +0 -0
  238. package/src/assets/img/svg/rotate.svg +17 -0
  239. package/src/assets/img/svg/rotate_object_clockwise.svg +26 -0
  240. package/src/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
  241. package/src/assets/img/svg/toggleFilters.svg +19 -0
  242. package/src/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
  243. package/src/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
  244. package/src/assets/img/svg/toolbar/add_button.svg +36 -0
  245. package/src/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
  246. package/src/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
  247. package/src/assets/img/svg/toolbar/add_items_doors.svg +25 -0
  248. package/src/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
  249. package/src/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
  250. package/src/assets/img/svg/toolbar/add_items_windows.svg +28 -0
  251. package/src/assets/img/svg/toolbar/apply_button.svg +38 -0
  252. package/src/assets/img/svg/toolbar/arrow-plus.svg +11 -0
  253. package/src/assets/img/svg/toolbar/backsplash.svg +8 -0
  254. package/src/assets/img/svg/toolbar/cancel_button.svg +37 -0
  255. package/src/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
  256. package/src/assets/img/svg/toolbar/countertop.svg +7 -0
  257. package/src/assets/img/svg/toolbar/dcm.png +0 -0
  258. package/src/assets/img/svg/toolbar/dcm_off.svg +12 -0
  259. package/src/assets/img/svg/toolbar/dcm_on.svg +474 -0
  260. package/src/assets/img/svg/toolbar/delete_button.svg +37 -0
  261. package/src/assets/img/svg/toolbar/download.svg +77 -0
  262. package/src/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
  263. package/src/assets/img/svg/toolbar/edit_button.svg +75 -0
  264. package/src/assets/img/svg/toolbar/email_quote_button.svg +44 -0
  265. package/src/assets/img/svg/toolbar/fbm.png +0 -0
  266. package/src/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
  267. package/src/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
  268. package/src/assets/img/svg/toolbar/floorstyle.svg +9 -0
  269. package/src/assets/img/svg/toolbar/fmb.png +0 -0
  270. package/src/assets/img/svg/toolbar/fmb_off.svg +12 -0
  271. package/src/assets/img/svg/toolbar/fmb_on.svg +489 -0
  272. package/src/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
  273. package/src/assets/img/svg/toolbar/get_started_button.svg +41 -0
  274. package/src/assets/img/svg/toolbar/handles.svg +5 -0
  275. package/src/assets/img/svg/toolbar/lighting.svg +7 -0
  276. package/src/assets/img/svg/toolbar/lrm.png +0 -0
  277. package/src/assets/img/svg/toolbar/lrm_off.svg +12 -0
  278. package/src/assets/img/svg/toolbar/lrm_on.svg +470 -0
  279. package/src/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
  280. package/src/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
  281. package/src/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
  282. package/src/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
  283. package/src/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
  284. package/src/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
  285. package/src/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
  286. package/src/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
  287. package/src/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
  288. package/src/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
  289. package/src/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
  290. package/src/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
  291. package/src/assets/img/svg/toolbar/redo_button.svg +75 -0
  292. package/src/assets/img/svg/toolbar/redo_button1.svg +75 -0
  293. package/src/assets/img/svg/toolbar/review_quote_active.svg +14 -0
  294. package/src/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
  295. package/src/assets/img/svg/toolbar/save_project_button.svg +44 -0
  296. package/src/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
  297. package/src/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
  298. package/src/assets/img/svg/toolbar/shopping-cart.svg +13 -0
  299. package/src/assets/img/svg/toolbar/style_change_button.svg +47 -0
  300. package/src/assets/img/svg/toolbar/take_picture.svg +75 -0
  301. package/src/assets/img/svg/toolbar/undo_button.svg +76 -0
  302. package/src/assets/img/svg/toolbar/undo_button1.svg +76 -0
  303. package/src/assets/img/svg/toolbar/use_button.svg +37 -0
  304. package/src/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
  305. package/src/assets/img/svg/topbar/edit_active.svg +10 -0
  306. package/src/assets/img/svg/topbar/edit_inactive.svg +10 -0
  307. package/src/assets/img/svg/topbar/redo_active.svg +42 -0
  308. package/src/assets/img/svg/topbar/redo_inactive.svg +23 -0
  309. package/src/assets/img/svg/topbar/select_all_active.svg +50 -0
  310. package/src/assets/img/svg/topbar/select_all_inactive.svg +32 -0
  311. package/src/assets/img/svg/topbar/take_picture_active.svg +51 -0
  312. package/src/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
  313. package/src/assets/img/svg/topbar/undo_active.svg +42 -0
  314. package/src/assets/img/svg/topbar/undo_inactive.svg +23 -0
  315. package/src/assets/img/svg/warning_info_2d.svg +81 -0
  316. package/src/assets/img/svg/window/Clear.svg +3 -0
  317. package/src/assets/img/svg/window/Cross.svg +5 -0
  318. package/src/assets/img/svg/window/Double_hung.svg +4 -0
  319. package/src/assets/img/svg/window/Vertical.svg +4 -0
  320. package/src/assets/img/svg/windows_clear.svg +23 -0
  321. package/src/assets/img/svg/windows_cross.svg +28 -0
  322. package/src/assets/img/svg/windows_double_hung.svg +24 -0
  323. package/src/assets/img/svg/windows_vertical.svg +24 -0
  324. package/src/assets/img/svg/wizardstep/Custom.svg +3 -0
  325. package/src/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
  326. package/src/assets/img/svg/wizardstep/L.svg +3 -0
  327. package/src/assets/img/svg/wizardstep/L2.svg +3 -0
  328. package/src/assets/img/svg/wizardstep/Open.svg +3 -0
  329. package/src/assets/img/svg/wizardstep/Square.svg +3 -0
  330. package/src/assets/img/svg/wizardstep/bar-active.svg +9 -0
  331. package/src/assets/img/svg/wizardstep/bar-normal.svg +3 -0
  332. package/src/assets/img/svg/wizardstep/bullet-current.svg +3 -0
  333. package/src/assets/img/svg/wizardstep/bullet-done.svg +3 -0
  334. package/src/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
  335. package/src/assets/img/svg/wizardstep/check-active.svg +3 -0
  336. package/src/assets/img/svg/wizardstep/check-normal.svg +3 -0
  337. package/src/assets/img/svg/wizardstep/detail_view.svg +87 -0
  338. package/src/assets/img/svg/wizardstep/pencil.svg +11 -0
  339. package/src/assets/img/svg/wizardstep/tile_view.svg +95 -0
  340. package/src/assets/img/texture/glass.jpg +0 -0
  341. package/src/assets/img/texture/steel.jpg +0 -0
  342. package/src/assets/img/texture/white1px.jpg +0 -0
  343. package/src/assets/img/texture/wood.jpg +0 -0
  344. package/src/assets/model/DCM.bin +0 -0
  345. package/src/assets/model/DCM.fbx +0 -0
  346. package/src/assets/model/DCM.gltf +1 -0
  347. package/src/assets/model/FBM.bin +0 -0
  348. package/src/assets/model/FBM.fbx +0 -0
  349. package/src/assets/model/FBM.gltf +1 -0
  350. package/src/assets/model/LRM.bin +0 -0
  351. package/src/assets/model/LRM.fbx +0 -0
  352. package/src/assets/model/LRM.gltf +1 -0
  353. package/src/assets/rtastore_logo.png +0 -0
  354. package/src/catalog/areas/area/planner-element.jsx +1 -1
  355. package/src/catalog/factories/wall-factory-3d.js +10 -17
  356. package/src/catalog/holes/index.js +13 -0
  357. package/src/catalog/lines/wall/planner-element.jsx +1 -1
  358. package/src/catalog/mycatalog.js +26 -0
  359. package/src/catalog/properties/property-checkbox.jsx +0 -2
  360. package/src/catalog/properties/property-enum.jsx +0 -1
  361. package/src/components/content.jsx +0 -18
  362. package/src/components/export.js +2 -29
  363. package/src/components/style/export.js +24 -0
  364. package/src/components/style/form-select.jsx +0 -1
  365. package/src/components/style/form-text-input.jsx +0 -1
  366. package/src/components/viewer2d/item.jsx +1 -9
  367. package/src/components/viewer2d/line.jsx +29 -32
  368. package/src/components/viewer2d/ruler.jsx +0 -1
  369. package/src/components/viewer2d/viewer2d.jsx +1 -1
  370. package/src/components/viewer3d/ruler-utils/scene3D.jsx +85 -87
  371. package/src/components/viewer3d/scene-creator.js +23 -26
  372. package/src/components/viewer3d/viewer3d.js +18 -18
  373. package/src/constants.js +3 -0
  374. package/src/index.js +0 -2
  375. package/src/KitchenConfigurator.jsx +0 -1517
  376. package/src/actions/user-actions.js +0 -75
  377. package/src/components/atoms/Snackbar/index.jsx +0 -43
  378. package/src/components/atoms/radio-button/index.jsx +0 -20
  379. package/src/components/atoms/radio-button/styles.js +0 -56
  380. package/src/components/button/MainButton.jsx +0 -157
  381. package/src/components/button/ToggleMeasureButton.jsx +0 -65
  382. package/src/components/catalog-view/catalog-breadcrumb.jsx +0 -53
  383. package/src/components/catalog-view/catalog-item.jsx +0 -229
  384. package/src/components/catalog-view/catalog-list.jsx +0 -173
  385. package/src/components/catalog-view/catalog-page-item.jsx +0 -110
  386. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +0 -80
  387. package/src/components/configurator/custom-configurator.jsx +0 -77
  388. package/src/components/configurator/project-configurator.jsx +0 -120
  389. package/src/components/firstsetting/button/styles.js +0 -223
  390. package/src/components/firstsetting/export.js +0 -9
  391. package/src/components/firstsetting/firstsetting-content-button.jsx +0 -198
  392. package/src/components/firstsetting/firstsetting-toggle-button.jsx +0 -101
  393. package/src/components/firstsetting/firstsetting.jsx +0 -814
  394. package/src/components/footerbar/button/ControlButton.jsx +0 -43
  395. package/src/components/footerbar/button/DirectionButton.jsx +0 -54
  396. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +0 -36
  397. package/src/components/footerbar/button/ToggleButton.jsx +0 -58
  398. package/src/components/footerbar/button/ToggleConvertButton.jsx +0 -48
  399. package/src/components/footerbar/button/ToggleMeasureButton.jsx +0 -33
  400. package/src/components/footerbar/button/styles.js +0 -217
  401. package/src/components/footerbar/export.js +0 -9
  402. package/src/components/footerbar/footer-content-button.jsx +0 -198
  403. package/src/components/footerbar/footer-toggle-button.jsx +0 -101
  404. package/src/components/footerbar/footerbar.jsx +0 -1103
  405. package/src/components/footerbar/styles.js +0 -263
  406. package/src/components/header/button/MenuButton.jsx +0 -46
  407. package/src/components/header/button/SaveButton.jsx +0 -54
  408. package/src/components/header/button/styles.js +0 -181
  409. package/src/components/header/export.js +0 -5
  410. package/src/components/header/header.jsx +0 -631
  411. package/src/components/header/header.style.css +0 -47
  412. package/src/components/header/styles.js +0 -320
  413. package/src/components/login/Login.js +0 -77
  414. package/src/components/login/LoginForm/index.js +0 -108
  415. package/src/components/login/Register.js +0 -83
  416. package/src/components/login/RegisterForm/index.js +0 -171
  417. package/src/components/login/jwtService.js +0 -201
  418. package/src/components/login/style.css +0 -158
  419. package/src/components/login/style.scss +0 -260
  420. package/src/components/molecules/slider/index.jsx +0 -15
  421. package/src/components/molecules/slider/styles.js +0 -0
  422. package/src/components/molecules/slider/styles.scss +0 -3
  423. package/src/components/myprojects/export.js +0 -5
  424. package/src/components/myprojects/index.jsx +0 -445
  425. package/src/components/myprojects/styles.js +0 -241
  426. package/src/components/sidebar/custom-accordion.jsx +0 -48
  427. package/src/components/sidebar/export.js +0 -15
  428. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +0 -73
  429. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +0 -101
  430. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +0 -149
  431. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +0 -316
  432. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +0 -108
  433. package/src/components/sidebar/panel-element-editor/element-editor.jsx +0 -1070
  434. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  435. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +0 -104
  436. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +0 -155
  437. package/src/components/sidebar/panel-group-editor.jsx +0 -272
  438. package/src/components/sidebar/panel-groups.jsx +0 -310
  439. package/src/components/sidebar/panel-guides.jsx +0 -192
  440. package/src/components/sidebar/panel-layer-elements.jsx +0 -298
  441. package/src/components/sidebar/panel-layers.jsx +0 -381
  442. package/src/components/sidebar/panel.jsx +0 -71
  443. package/src/components/sidebar/sidebar.jsx +0 -106
  444. package/src/components/sidebar/toolbar-panel.jsx +0 -139
  445. package/src/components/sign/export.js +0 -7
  446. package/src/components/sign/main/index.jsx +0 -523
  447. package/src/components/sign/main/styles.js +0 -163
  448. package/src/components/style/cancel-button.jsx +0 -20
  449. package/src/components/style/content-container.jsx +0 -29
  450. package/src/components/style/content-title.jsx +0 -20
  451. package/src/components/style/delete-button.jsx +0 -23
  452. package/src/components/style/export.jsx +0 -48
  453. package/src/components/style/form-block.jsx +0 -13
  454. package/src/components/style/form-number-input_2.jsx +0 -191
  455. package/src/components/style/form-slider.jsx +0 -36
  456. package/src/components/style/form-submit-button.jsx +0 -23
  457. package/src/components/toolbar/button/ControlButton.jsx +0 -41
  458. package/src/components/toolbar/button/DirectionButton.jsx +0 -34
  459. package/src/components/toolbar/button/RightButton.jsx +0 -103
  460. package/src/components/toolbar/button/ToggleButton.jsx +0 -41
  461. package/src/components/toolbar/button/index.jsx +0 -55
  462. package/src/components/toolbar/button/styles.js +0 -127
  463. package/src/components/toolbar/components/DoorStyleMenu.jsx +0 -103
  464. package/src/components/toolbar/components/Pricing.jsx +0 -126
  465. package/src/components/toolbar/components/ReviewForQuote.jsx +0 -635
  466. package/src/components/toolbar/export.js +0 -21
  467. package/src/components/toolbar/main/Alert.js +0 -122
  468. package/src/components/toolbar/main/TakePictureModal.jsx +0 -104
  469. package/src/components/toolbar/main/confirm-popup.jsx +0 -99
  470. package/src/components/toolbar/main/index.jsx +0 -5687
  471. package/src/components/toolbar/main/lShaped.json +0 -311
  472. package/src/components/toolbar/main/longNarrow.json +0 -238
  473. package/src/components/toolbar/main/myComponents.js +0 -123
  474. package/src/components/toolbar/main/oRectangle.json +0 -220
  475. package/src/components/toolbar/main/rectangle.json +0 -238
  476. package/src/components/toolbar/main/style.css +0 -107
  477. package/src/components/toolbar/main/styles.js +0 -696
  478. package/src/components/toolbar/plugin-item.jsx +0 -123
  479. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +0 -73
  480. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +0 -102
  481. package/src/components/toolbar/popup/appliance/index.jsx +0 -83
  482. package/src/components/toolbar/popup/autosaveprompt/index.jsx +0 -150
  483. package/src/components/toolbar/popup/autosaveprompt/styles.css +0 -64
  484. package/src/components/toolbar/popup/autosaveprompt/styles.js +0 -40
  485. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +0 -73
  486. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +0 -119
  487. package/src/components/toolbar/popup/cabinet/index.jsx +0 -85
  488. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +0 -63
  489. package/src/components/toolbar/popup/doorStyle/index.jsx +0 -71
  490. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +0 -139
  491. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -2
  492. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +0 -157
  493. package/src/components/toolbar/popup/downloadsummary/index.jsx +0 -643
  494. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +0 -51
  495. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +0 -175
  496. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +0 -283
  497. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +0 -2257
  498. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -93
  499. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +0 -132
  500. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +0 -2198
  501. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +0 -152
  502. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +0 -149
  503. package/src/components/toolbar/popup/downloadsummary/styles.css +0 -177
  504. package/src/components/toolbar/popup/downloadsummary/styles.js +0 -453
  505. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +0 -34
  506. package/src/components/toolbar/popup/finishingtouch/index.jsx +0 -58
  507. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +0 -112
  508. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +0 -116
  509. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +0 -101
  510. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +0 -254
  511. package/src/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -311
  512. package/src/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -238
  513. package/src/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -220
  514. package/src/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -238
  515. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -86
  516. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +0 -109
  517. package/src/components/toolbar/popup/floorplan/index.jsx +0 -60
  518. package/src/components/toolbar/popup/index.jsx +0 -241
  519. package/src/components/toolbar/popup/newproject/index.jsx +0 -59
  520. package/src/components/toolbar/popup/newproject/styles.css +0 -64
  521. package/src/components/toolbar/popup/newproject/styles.js +0 -41
  522. package/src/components/toolbar/popup/product/appliance.jsx +0 -54
  523. package/src/components/toolbar/popup/product/cabinetproduct.jsx +0 -15
  524. package/src/components/toolbar/popup/product/doorstyle.jsx +0 -58
  525. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +0 -47
  526. package/src/components/toolbar/popup/product/floor.jsx +0 -36
  527. package/src/components/toolbar/popup/product/floorproduct.jsx +0 -42
  528. package/src/components/toolbar/popup/product/index.jsx +0 -36
  529. package/src/components/toolbar/popup/product/primary.jsx +0 -77
  530. package/src/components/toolbar/popup/product/productline.jsx +0 -93
  531. package/src/components/toolbar/popup/product/reviewItem.jsx +0 -427
  532. package/src/components/toolbar/popup/product/reviewMolding.jsx +0 -310
  533. package/src/components/toolbar/popup/product/style.css +0 -54
  534. package/src/components/toolbar/popup/product/styles.js +0 -260
  535. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +0 -146
  536. package/src/components/toolbar/popup/savedesign/index.jsx +0 -495
  537. package/src/components/toolbar/popup/savedesign/savedesign.style.css +0 -16
  538. package/src/components/toolbar/popup/savedesign/styles.js +0 -151
  539. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +0 -87
  540. package/src/components/toolbar/popup/styles.js +0 -909
  541. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +0 -192
  542. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +0 -96
  543. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +0 -54
  544. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +0 -25
  545. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +0 -116
  546. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -38
  547. package/src/components/toolbar/popup/submitforquote/index.jsx +0 -698
  548. package/src/components/toolbar/popup/submitforquote/styles.css +0 -105
  549. package/src/components/toolbar/popup/submitforquote/styles.js +0 -294
  550. package/src/components/toolbar/popup/submitprompt/index.jsx +0 -89
  551. package/src/components/toolbar/popup/submitprompt/styles.css +0 -64
  552. package/src/components/toolbar/popup/submitprompt/styles.js +0 -42
  553. package/src/components/toolbar/toolbar-button.jsx +0 -90
  554. package/src/components/toolbar/toolbar-load-button.jsx +0 -36
  555. package/src/components/toolbar/toolbar-save-button.jsx +0 -32
  556. package/src/components/tutorial-view/Modal.jsx +0 -584
  557. package/src/components/tutorial-view/style.css +0 -111
  558. package/src/components/tutorial-view/styles.js +0 -65
  559. package/src/components/wizardstep/button/styles.js +0 -677
  560. package/src/components/wizardstep/export.js +0 -5
  561. package/src/components/wizardstep/index.jsx +0 -1372
  562. package/src/components/wizardstep/styles.js +0 -688
  563. package/src/components/wizardstep/wizardstep-content-button.jsx +0 -198
  564. package/src/components/wizardstep/wizardstep-toggle-button.jsx +0 -101
  565. package/src/hooks/useCheckCart.js +0 -38
  566. package/src/hooks/useGetPricesBySku.js +0 -59
  567. package/src/hooks/useValidateToken.js +0 -181
@@ -1,1070 +0,0 @@
1
- import React, { Component } from 'react';
2
- import PropTypes from 'prop-types';
3
- import { Map, fromJS } from 'immutable';
4
- import AttributesEditor from './attributes-editor/attributes-editor';
5
- import { GeometryUtils, MathUtils } from '../../../utils/export';
6
- import {
7
- UNIT_INCH,
8
- MODE_DRAWING_LINE,
9
- BASE_CABINET_LAYOUTPOS,
10
- WALL_CABINET_LAYOUTPOS,
11
- TALL_CABINET_LAYOUTPOS,
12
- TOE_KICK_MOLDING
13
- } from '../../../constants';
14
- import convert from 'convert-units';
15
- import * as PS from '../../toolbar/popup/styles';
16
- import { TEXT_COLOR_NEUTRAL_2, DEFAULT_FONT_FAMILY } from '../../../constants';
17
- import { returnReplaceableDeepSearchType } from '../../viewer2d/utils';
18
- import * as S from '../../toolbar/main/styles';
19
- import { showYelloBox } from '../../viewer3d/scene-creator';
20
- import { isEmpty } from '../../../utils/helper';
21
- import CustomAccordion from '../custom-accordion';
22
- import { hasMoldingLayout } from '../../../utils/molding';
23
-
24
- const PRECISION = 2;
25
- const Left = 0;
26
- const Right = 180;
27
- const Back = 90;
28
- const Front = -90;
29
-
30
- export default class ElementEditor extends Component {
31
- constructor(props, context) {
32
- super(props, context);
33
-
34
- this.state = {
35
- isMolding: true,
36
- attributesFormData: this.initAttrData(
37
- this.props.element,
38
- this.props.layer,
39
- this.props.state
40
- ),
41
- propertiesFormData: this.initPropData(
42
- this.props.element,
43
- this.props.layer,
44
- this.props.state
45
- ),
46
- isResizeActive: false
47
- };
48
-
49
- this.updateAttribute = this.updateAttribute.bind(this);
50
- }
51
-
52
- shouldComponentUpdate(nextProps, nextState) {
53
- let scene = this.props.state.get('scene');
54
- let selectedLayer = scene.getIn(['layers', scene.get('selectedLayer')]);
55
- scene = nextProps.state.get('scene');
56
- let layer = scene.getIn(['layers', scene.get('selectedLayer')]);
57
- if (
58
- this.state.attributesFormData.hashCode() !==
59
- nextState.attributesFormData.hashCode() ||
60
- this.state.propertiesFormData.hashCode() !==
61
- nextState.propertiesFormData.hashCode() ||
62
- this.state.isMolding !== nextState.isMolding ||
63
- this.props.state.clipboardProperties.hashCode() !==
64
- nextProps.state.clipboardProperties.hashCode() ||
65
- selectedLayer.hashCode() !== layer.hashCode()
66
- )
67
- return true;
68
-
69
- return false;
70
- }
71
-
72
- componentWillReceiveProps({ element, layer, state }) {
73
- let scene = this.props.state.get('scene');
74
- let selectedLayer = scene.getIn(['layers', scene.get('selectedLayer')]);
75
- if (selectedLayer.hashCode() !== layer.hashCode()) {
76
- this.setState({
77
- attributesFormData: this.initAttrData(element, layer, state),
78
- propertiesFormData: this.initPropData(element, layer, state)
79
- });
80
- }
81
- }
82
-
83
- initAttrData(element, layer, state) {
84
- element =
85
- typeof element.misc === 'object'
86
- ? element.set('misc', new Map(element.misc))
87
- : element;
88
- switch (element.prototype) {
89
- case 'items': {
90
- let allLines = GeometryUtils.getAllLines(layer);
91
- let allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
92
- let x = element.x;
93
- let y = element.y;
94
- let rotRad = (element.rotation / 180) * Math.PI;
95
- let w = element.properties.get('width').get('_length');
96
- let wUnit = element.properties.get('width').get('_unit') || 'cm';
97
- w = convert(w / 2)
98
- .from(wUnit)
99
- .to('cm');
100
- let h = element.properties.get('depth').get('_length');
101
- let hUnit = element.properties.get('depth').get('_unit') || 'cm';
102
- h = convert(h / 2)
103
- .from(hUnit)
104
- .to('cm');
105
- let mx = x - w * Math.cos(rotRad);
106
- let my = y - w * Math.sin(rotRad);
107
- let x0 = mx + h * Math.sin(rotRad);
108
- let y0 = my - h * Math.cos(rotRad);
109
- let x3 = mx * 2 - x0;
110
- let y3 = my * 2 - y0;
111
- let x1 = x * 2 - x3;
112
- let y1 = y * 2 - y3;
113
- let x2 = x * 2 - x0;
114
- let y2 = y * 2 - y0;
115
- this.setState({ isMolding: true });
116
- if (
117
- element.layoutpos === BASE_CABINET_LAYOUTPOS &&
118
- GeometryUtils.isSnappedLine(
119
- {
120
- rect: [
121
- { x: x0, y: y0 },
122
- { x: x1, y: y1 },
123
- { x: x2, y: y2 },
124
- { x: x3, y: y3 }
125
- ]
126
- },
127
- allLineRects
128
- )
129
- ) {
130
- this.setState({ isMolding: false });
131
- }
132
- if (
133
- (element.layoutpos === WALL_CABINET_LAYOUTPOS ||
134
- element.layoutpos === TALL_CABINET_LAYOUTPOS) &&
135
- !GeometryUtils.isSnappedLine(
136
- {
137
- rect: [
138
- { x: x0, y: y0 },
139
- { x: x1, y: y1 },
140
- { x: x2, y: y2 },
141
- { x: x3, y: y3 }
142
- ]
143
- },
144
- allLineRects
145
- )
146
- ) {
147
- this.setState({ isMolding: false });
148
- }
149
- return new Map(element);
150
- }
151
- case 'lines': {
152
- let v_a = layer.vertices.get(element.vertices.get(0));
153
- let v_b = layer.vertices.get(element.vertices.get(1));
154
- let distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
155
- let _unit = element.misc.get('_unitLength') || UNIT_INCH;
156
- let _length = convert(distance)
157
- .from(this.context.catalog.unit)
158
- .to(_unit);
159
-
160
- if (state.mode == MODE_DRAWING_LINE) {
161
- return new Map({
162
- vertexOne: v_a,
163
- vertexTwo: v_b,
164
- lineLength: new Map({ length: distance, _length, _unit }),
165
- focus: element.focus
166
- });
167
- } else {
168
- let allLines = layer.lines.toArray();
169
- let relatedLine = allLines.filter(line => {
170
- return (
171
- line.vertices.toArray().includes(v_b.id) && line.id != element.id
172
- );
173
- })[0];
174
- let relatedVertexID =
175
- relatedLine &&
176
- (relatedLine.vertices.toArray()[0] == v_b.id
177
- ? relatedLine.vertices.toArray()[1]
178
- : relatedLine.vertices.toArray()[0]);
179
- let v_d =
180
- relatedVertexID && layer.getIn(['vertices', relatedVertexID]);
181
- let lineToExtend =
182
- relatedVertexID &&
183
- allLines.filter(line => {
184
- return (
185
- line.vertices.toArray().includes(relatedVertexID) &&
186
- line.id != relatedLine.id
187
- );
188
- })[0];
189
- let v_c =
190
- lineToExtend &&
191
- layer.getIn([
192
- 'vertices',
193
- lineToExtend.vertices.toArray()[0] == v_d.id
194
- ? lineToExtend.vertices.toArray()[1]
195
- : lineToExtend.vertices.toArray()[0]
196
- ]);
197
- return new Map({
198
- vertexOne: v_a,
199
- vertexTwo: v_b,
200
- vertexThree: v_c,
201
- vertexFour: v_d,
202
- lineToExtend: lineToExtend,
203
- lineLength: new Map({ length: distance, _length, _unit }),
204
- focus: element.focus
205
- });
206
- }
207
- }
208
- case 'holes': {
209
- let line = layer.lines.get(element.line);
210
- let { x: x0, y: y0 } = layer.vertices.get(line.vertices.get(0));
211
- let { x: x1, y: y1 } = layer.vertices.get(line.vertices.get(1));
212
- let lineLength = GeometryUtils.pointsDistance(x0, y0, x1, y1);
213
- let startAt =
214
- lineLength * element.offset -
215
- element.properties.get('width').get('length') / 2;
216
- let endAt =
217
- lineLength -
218
- lineLength * element.offset -
219
- element.properties.get('width').get('length') / 2;
220
- let _unitA = element.misc.get('_unitA') || UNIT_INCH;
221
- let _lengthA = convert(x0 > x1 ? endAt : startAt)
222
- .from(this.context.catalog.unit)
223
- .to(_unitA);
224
- let _unitB = element.misc.get('_unitB') || UNIT_INCH;
225
- let _lengthB = convert(x0 > x1 ? startAt : endAt)
226
- .from(this.context.catalog.unit)
227
- .to(_unitB);
228
-
229
- return new Map({
230
- offset: element.offset,
231
- offsetA: new Map({
232
- length: MathUtils.toFixedFloat(
233
- x0 > x1 ? endAt : startAt,
234
- PRECISION
235
- ),
236
- _length: MathUtils.toFixedFloat(_lengthA, PRECISION),
237
- _unit: _unitA
238
- }),
239
- offsetB: new Map({
240
- length: MathUtils.toFixedFloat(
241
- x0 > x1 ? startAt : endAt,
242
- PRECISION
243
- ),
244
- _length: MathUtils.toFixedFloat(_lengthB, PRECISION),
245
- _unit: _unitB
246
- })
247
- });
248
- }
249
- case 'areas': {
250
- return new Map({});
251
- }
252
- default:
253
- return null;
254
- }
255
- }
256
-
257
- initPropData(element, layer, state) {
258
- let { catalog } = this.context;
259
- let mapped = {};
260
- if (
261
- !catalog.elements.hasOwnProperty(element.type) &&
262
- !(
263
- !catalog.elements[element.type] &&
264
- !!catalog.elements[returnReplaceableDeepSearchType(element.type)]
265
- )
266
- ) {
267
- console.log(
268
- `Last Selected ${element.type} Element does not exist in catalog.`
269
- );
270
- return new Map(mapped);
271
- }
272
-
273
- let catalogElement = catalog.getElement(element.type);
274
- let isFiller = catalogElement.long_name
275
- ? catalogElement.long_name.toUpperCase().includes('FILLER')
276
- : false;
277
- if (isFiller) {
278
- let height = {
279
- defaultValue: element.properties.get('height').toJS(),
280
- label: 'Height',
281
- type: 'length-measure'
282
- };
283
- let depth = {
284
- defaultValue: element.properties.get('depth').toJS(),
285
- label: 'Depth',
286
- type: 'length-measure'
287
- };
288
- catalogElement.properties = {
289
- altitude: catalogElement.properties.altitude,
290
- width: catalogElement.properties.width,
291
- height: height,
292
- depth: depth,
293
- flip_doorhandle: catalogElement.properties.flip_doorhandle,
294
- resize_and_scaling: catalogElement.properties.resize_and_scaling
295
- };
296
- }
297
-
298
- for (let name in catalogElement.properties) {
299
- mapped[name] = new Map({
300
- currentValue: element.properties.has(name)
301
- ? element.properties.get(name)
302
- : fromJS(catalogElement.properties[name].defaultValue),
303
- configs: catalogElement.properties[name]
304
- });
305
- }
306
-
307
- return new Map(mapped);
308
- }
309
-
310
- updateAttribute(attributeName, value) {
311
- let { attributesFormData } = this.state;
312
- switch (this.props.element.prototype) {
313
- case 'items': {
314
- if (attributeName == 'pos') {
315
- let xVal = value.x;
316
- let yVal = value.y;
317
- attributesFormData = attributesFormData.set('x', xVal);
318
- attributesFormData = attributesFormData.set('y', yVal);
319
- } else {
320
- attributesFormData = attributesFormData.set(attributeName, value);
321
- }
322
- break;
323
- }
324
- case 'lines': {
325
- switch (attributeName) {
326
- case 'lineLength': {
327
- let v_0 = attributesFormData.get('vertexOne');
328
- let v_1 = attributesFormData.get('vertexTwo');
329
- let v_2 = attributesFormData.get('vertexThree');
330
- let v_3 = attributesFormData.get('vertexFour');
331
- let v_b_new = GeometryUtils.extendLine(
332
- v_0.x,
333
- v_0.y,
334
- v_1.x,
335
- v_1.y,
336
- value.get('length'),
337
- PRECISION
338
- );
339
- // Blocked function that as wall changed, opposite wall should changed together.
340
- // if (v_3 !== undefined){
341
- // let delta = {
342
- // x : v_b_new.x - v_1.x,
343
- // y : v_b_new.y - v_1.y
344
- // };
345
- // let v_d_new = {
346
- // x : v_3.x + delta.x,
347
- // y : v_3.y + delta.y
348
- // }
349
- // console.log('delta',delta);
350
- // attributesFormData = attributesFormData.withMutations(attr => {
351
- // attr.set('vertexTwo', v_1.merge(v_b_new));
352
- // attr.set('vertexFour', v_3.merge(v_d_new));
353
- // attr.set('lineLength', value);
354
- // });
355
- // }
356
- // else{
357
- // attributesFormData = attributesFormData.withMutations(attr => {
358
- // attr.set('vertexTwo', v_1.merge(v_b_new));
359
- // attr.set('lineLength', value);
360
- // });
361
- // }
362
- attributesFormData = attributesFormData.withMutations(attr => {
363
- attr.set('vertexTwo', v_1.merge(v_b_new));
364
- attr.set('lineLength', value);
365
- });
366
- break;
367
- }
368
- case 'vertexOne':
369
- case 'vertexTwo': {
370
- attributesFormData = attributesFormData.withMutations(attr => {
371
- attr.set(attributeName, attr.get(attributeName).merge(value));
372
-
373
- let newDistance = GeometryUtils.verticesDistance(
374
- attr.get('vertexOne'),
375
- attr.get('vertexTwo')
376
- );
377
- attr.mergeIn(
378
- ['lineLength'],
379
- attr.get('lineLength').merge({
380
- length: newDistance,
381
- _length: convert(newDistance)
382
- .from(this.context.catalog.unit)
383
- .to(attr.get('lineLength').get('_unit'))
384
- })
385
- );
386
- });
387
- break;
388
- }
389
- default: {
390
- attributesFormData = attributesFormData.set(attributeName, value);
391
- break;
392
- }
393
- }
394
- break;
395
- }
396
- case 'holes': {
397
- switch (attributeName) {
398
- case 'offsetA': {
399
- let line = this.props.layer.lines.get(this.props.element.line);
400
-
401
- let { x: x0, y: y0 } = this.props.layer.vertices.get(
402
- line.vertices.get(0)
403
- );
404
- let { x: x1, y: y1 } = this.props.layer.vertices.get(
405
- line.vertices.get(1)
406
- );
407
-
408
- let alpha = GeometryUtils.angleBetweenTwoPoints(x0, y0, x1, y1);
409
- let lineLength = GeometryUtils.pointsDistance(x0, y0, x1, y1);
410
- let widthLength = this.props.element.properties
411
- .get('width')
412
- .get('length');
413
- let halfWidthLength = widthLength / 2;
414
-
415
- let lengthValue = value.get('length');
416
- lengthValue = Math.max(lengthValue, 0);
417
- lengthValue = Math.min(lengthValue, lineLength - widthLength);
418
-
419
- let xp = (lengthValue + halfWidthLength) * Math.cos(alpha) + x0;
420
- let yp = (lengthValue + halfWidthLength) * Math.sin(alpha) + y0;
421
-
422
- let offset = GeometryUtils.pointPositionOnLineSegment(
423
- x0,
424
- y0,
425
- x1,
426
- y1,
427
- xp,
428
- yp
429
- );
430
- /*
431
- if (x0 > x1) offset = 1 - offset;
432
- */
433
- let endAt = MathUtils.toFixedFloat(
434
- lineLength - lineLength * offset - halfWidthLength,
435
- PRECISION
436
- );
437
- let offsetUnit = attributesFormData.getIn(['offsetB', '_unit']);
438
-
439
- let offsetB = new Map({
440
- length: endAt,
441
- _length: convert(endAt)
442
- .from(this.context.catalog.unit)
443
- .to(offsetUnit),
444
- _unit: offsetUnit
445
- });
446
-
447
- attributesFormData = attributesFormData
448
- .set('offsetB', offsetB)
449
- .set('offset', offset);
450
-
451
- let offsetAttribute = new Map({
452
- length: MathUtils.toFixedFloat(lengthValue, PRECISION),
453
- _unit: value.get('_unit'),
454
- _length: MathUtils.toFixedFloat(
455
- convert(lengthValue)
456
- .from(this.context.catalog.unit)
457
- .to(value.get('_unit')),
458
- PRECISION
459
- )
460
- });
461
-
462
- attributesFormData = attributesFormData.set(
463
- attributeName,
464
- offsetAttribute
465
- );
466
-
467
- break;
468
- }
469
- case 'offsetB': {
470
- let line = this.props.layer.lines.get(this.props.element.line);
471
- let { x: x0, y: y0 } = this.props.layer.vertices.get(
472
- line.vertices.get(0)
473
- );
474
- let { x: x1, y: y1 } = this.props.layer.vertices.get(
475
- line.vertices.get(1)
476
- );
477
-
478
- let alpha = GeometryUtils.angleBetweenTwoPoints(x0, y0, x1, y1);
479
- let lineLength = GeometryUtils.pointsDistance(x0, y0, x1, y1);
480
- let widthLength = this.props.element.properties
481
- .get('width')
482
- .get('length');
483
- let halfWidthLength = widthLength / 2;
484
-
485
- let lengthValue = value.get('length');
486
- lengthValue = Math.max(lengthValue, 0);
487
- lengthValue = Math.min(lengthValue, lineLength - widthLength);
488
-
489
- let xp = x1 - (lengthValue + halfWidthLength) * Math.cos(alpha);
490
- let yp = y1 - (lengthValue + halfWidthLength) * Math.sin(alpha);
491
-
492
- let offset = GeometryUtils.pointPositionOnLineSegment(
493
- x0,
494
- y0,
495
- x1,
496
- y1,
497
- xp,
498
- yp
499
- );
500
- /*
501
- if (x0 > x1) offset = 1 - offset;
502
- */
503
- let startAt = MathUtils.toFixedFloat(
504
- lineLength * offset - halfWidthLength,
505
- PRECISION
506
- );
507
- let offsetUnit = attributesFormData.getIn(['offsetA', '_unit']);
508
-
509
- let offsetA = new Map({
510
- length: startAt,
511
- _length: convert(startAt)
512
- .from(this.context.catalog.unit)
513
- .to(offsetUnit),
514
- _unit: offsetUnit
515
- });
516
-
517
- attributesFormData = attributesFormData
518
- .set('offsetA', offsetA)
519
- .set('offset', offset);
520
-
521
- let offsetAttribute = new Map({
522
- length: MathUtils.toFixedFloat(lengthValue, PRECISION),
523
- _unit: value.get('_unit'),
524
- _length: MathUtils.toFixedFloat(
525
- convert(lengthValue)
526
- .from(this.context.catalog.unit)
527
- .to(value.get('_unit')),
528
- PRECISION
529
- )
530
- });
531
-
532
- attributesFormData = attributesFormData.set(
533
- attributeName,
534
- offsetAttribute
535
- );
536
-
537
- break;
538
- }
539
- default: {
540
- attributesFormData = attributesFormData.set(attributeName, value);
541
- break;
542
- }
543
- }
544
- break;
545
- }
546
- default:
547
- break;
548
- }
549
-
550
- this.setState({ attributesFormData });
551
- this.save({ attributesFormData });
552
- }
553
-
554
- updateProperty(propertyName, value) {
555
- if (
556
- propertyName === 'flip_doorhandle' &&
557
- this.props.element.properties.get('open_doors')
558
- ) {
559
- alert('Doors are already open.');
560
- return;
561
- }
562
- let {
563
- state: { propertiesFormData }
564
- } = this;
565
- propertiesFormData = propertiesFormData.setIn(
566
- [propertyName, 'currentValue'],
567
- value
568
- );
569
- if (this.props.state.mode.includes('3D')) {
570
- setTimeout(() => {
571
- this.setState({ propertiesFormData });
572
- this.save({ propertiesFormData });
573
- }, 0);
574
- } else {
575
- this.setState({ propertiesFormData });
576
- this.save({ propertiesFormData });
577
- }
578
- }
579
-
580
- reset() {
581
- this.setState({
582
- propertiesFormData: this.initPropData(
583
- this.props.element,
584
- this.props.layer,
585
- this.props.state
586
- )
587
- });
588
- }
589
-
590
- save({ propertiesFormData, attributesFormData }) {
591
- if (propertiesFormData) {
592
- let properties = propertiesFormData.map(data => {
593
- return data.get('currentValue');
594
- });
595
-
596
- this.context.projectActions.setProperties(properties);
597
- }
598
-
599
- if (attributesFormData) {
600
- switch (this.props.element.prototype) {
601
- case 'items': {
602
- this.context.projectActions.setItemsAttributes(attributesFormData);
603
- break;
604
- }
605
- case 'lines': {
606
- this.context.projectActions.setLinesAttributes(attributesFormData);
607
- break;
608
- }
609
- case 'holes': {
610
- this.context.projectActions.setHolesAttributes(attributesFormData);
611
- break;
612
- }
613
- }
614
- }
615
- }
616
-
617
- copyProperties(properties) {
618
- this.context.projectActions.copyProperties(properties);
619
- }
620
-
621
- pasteProperties() {
622
- this.context.projectActions.pasteProperties();
623
- }
624
-
625
- returnResizeFilterList() {
626
- if (this.state.isResizeActive)
627
- return ['altitude', 'flip_doorhandle', 'resize_and_scaling'];
628
- return [
629
- 'width',
630
- 'height',
631
- 'depth',
632
- 'altitude',
633
- 'flip_doorhandle',
634
- 'open_doors',
635
- 'resize_and_scaling'
636
- ];
637
- }
638
-
639
- returnMoldings() {
640
- const element = this.props.element;
641
-
642
- let doorStyle = element.doorStyle;
643
- if (!doorStyle.doorStyles) {
644
- doorStyle = doorStyle.toJS();
645
- }
646
-
647
- // if an element is not suitable for its' doorStyle
648
- if (showYelloBox(element)) return [];
649
-
650
- let moldings = [];
651
- let cabinets = this.props.categoryData.data.cabinets;
652
- cabinets.forEach(cabinet => {
653
- cabinet.items.forEach(index => {
654
- if (
655
- index.name.toLowerCase().includes('molding') &&
656
- index.name !== TOE_KICK_MOLDING // hide toe kick in OP temporarily
657
- ) {
658
- index.items.forEach(item => {
659
- moldings.push(item);
660
- });
661
- }
662
- });
663
- });
664
- moldings = moldings.filter(a => {
665
- if (doorStyle.doorStyles.cds.some(ds => ds.itemID === a.itemID)) {
666
- if (hasMoldingLayout(a, element.layoutpos)) {
667
- let flag = element.molding.some(m => m.name === a.name);
668
- a.selected = flag;
669
- return true;
670
- }
671
- }
672
- return false;
673
- });
674
- return moldings;
675
- }
676
-
677
- setGroupMolding(molding) {
678
- this.context.itemsActions.setMolding(molding, false);
679
- }
680
-
681
- render() {
682
- let {
683
- state: { propertiesFormData, attributesFormData, isMolding },
684
- context: { projectActions, catalog, translator },
685
- props: { state: appState, element }
686
- } = this;
687
-
688
- const catalogType = catalog.getElement(element.type).type;
689
- const isCabinet =
690
- catalogType === 'cabinet' &&
691
- !catalog.getElement(element.type).long_name.includes('Filler') &&
692
- !catalog.getElement(element.type).long_name.includes('Panel');
693
- const isFiller =
694
- catalogType === 'cabinet' &&
695
- catalog.getElement(element.type).long_name.includes('Filler');
696
- const isAppliance = catalogType === 'appliance';
697
- const isWindow = catalog
698
- .getElement(element.type)
699
- .info.tag.includes('window');
700
- const isDoor = catalog.getElement(element.type).info.tag.includes('door');
701
- const isWall = catalog.getElement(element.type).info.tag.includes('wall');
702
- const shouldHideResizeAndModel = isCabinet || isWindow || isDoor || isWall;
703
- return (
704
- <div>
705
- {propertiesFormData.entrySeq().map(([propertyName, data]) => {
706
- if (
707
- (catalog.categoryHasElement('Windows', element.type) ||
708
- catalog.categoryHasElement('Doors', element.type)) &&
709
- ['width', 'height'].includes(propertyName)
710
- ) {
711
- let currentValue = data.get('currentValue'),
712
- configs = data.get('configs');
713
- let { Editor } = catalog.getPropertyType(configs.type);
714
- return (
715
- <div style={{ position: 'relative' }}>
716
- <Editor
717
- key={propertyName}
718
- propertyName={propertyName}
719
- value={currentValue}
720
- configs={configs}
721
- onUpdate={value => {
722
- this.updateProperty(propertyName, value);
723
- }}
724
- state={appState}
725
- sourceElement={element}
726
- internalState={this.state}
727
- />
728
- {configs.type === 'length-measure' && (
729
- <span
730
- style={{
731
- position: 'absolute',
732
- fontFamily: DEFAULT_FONT_FAMILY,
733
- fontSize: 12,
734
- right: 10,
735
- bottom: 12,
736
- color: TEXT_COLOR_NEUTRAL_2,
737
- fontWeight: 600,
738
- lineHeight: '17px'
739
- }}
740
- >
741
- {this.props.state.getIn([
742
- 'scene',
743
- 'layers',
744
- this.props.state.scene.selectedLayer,
745
- 'unit'
746
- ])}
747
- </span>
748
- )}
749
- </div>
750
- );
751
- }
752
- })}
753
-
754
- <CustomAccordion
755
- defaultExpanded
756
- icon={<img src="/assets/img/svg/positioning.svg" alt="" />}
757
- title={<PS.PositionValue>Positioning</PS.PositionValue>}
758
- children={(() => {
759
- return (
760
- <>
761
- <AttributesEditor
762
- element={element}
763
- onUpdate={this.updateAttribute}
764
- propertiesFormData={propertiesFormData}
765
- catalog={catalog}
766
- attributeFormData={attributesFormData}
767
- onConfigUpdate={(propertyName, value) =>
768
- this.updateProperty(propertyName, value)
769
- }
770
- state={appState}
771
- internalState={this.state}
772
- filteredProperties={['width', 'height', 'depth']}
773
- />
774
- {!shouldHideResizeAndModel && (
775
- <React.Fragment>
776
- <PS.PositionValue>Resize Model</PS.PositionValue>
777
- {propertiesFormData
778
- .entrySeq()
779
- .map(([propertyName, data]) => {
780
- let currentValue = data.get('currentValue'),
781
- configs = data.get('configs');
782
- let { Editor } = catalog.getPropertyType(configs.type);
783
- if (
784
- !this.state.isResizeActive &&
785
- configs.id === 'resize_and_scaling'
786
- ) {
787
- this.setState({ isResizeActive: currentValue });
788
- }
789
- return (
790
- configs.type !== 'length-measure' &&
791
- propertyName === 'resize_and_scaling' && (
792
- <div style={{ position: 'relative' }}>
793
- <Editor
794
- key={propertyName}
795
- propertyName={propertyName}
796
- value={currentValue}
797
- configs={configs}
798
- onUpdate={value => {
799
- this.updateProperty(propertyName, value);
800
- this.setState({
801
- ...this.state,
802
- isResizeActive: value
803
- });
804
- }}
805
- state={appState}
806
- sourceElement={element}
807
- internalState={this.state}
808
- />
809
- </div>
810
- )
811
- );
812
- })}
813
- </React.Fragment>
814
- )}
815
- {!(isWindow || isDoor || isWall) && (
816
- <AttributesEditor
817
- element={element}
818
- onUpdate={this.updateAttribute}
819
- propertiesFormData={propertiesFormData}
820
- catalog={catalog}
821
- attributeFormData={attributesFormData}
822
- onConfigUpdate={(propertyName, value) => {
823
- let distLeft = 0,
824
- distRight = 0,
825
- distBack = 0,
826
- distFront = 0;
827
-
828
- const distArray = element?.distArray;
829
- if (Array.isArray(distArray)) {
830
- for (let i = 0; i < 4; i++) {
831
- const entry = distArray[i];
832
- if (!entry || entry.length < 2) continue;
833
-
834
- const [dist, side] = entry;
835
- const inches = convert(dist).from('cm').to('in');
836
-
837
- switch (side) {
838
- case Left:
839
- distLeft = inches;
840
- break;
841
- case Right:
842
- distRight = inches;
843
- break;
844
- case Back:
845
- distBack = inches;
846
- break;
847
- case Front:
848
- distFront = inches;
849
- break;
850
- }
851
- }
852
- }
853
-
854
- const scene = this.props.state.get('scene');
855
- const selectedLayer = scene.getIn([
856
- 'layers',
857
- scene.get('selectedLayer')
858
- ]);
859
- const selectedLayerJS = selectedLayer?.toJS?.() || {};
860
-
861
- const newValue = value?._root?.entries?.[0]?.[1];
862
-
863
- if (
864
- propertyName === 'height' &&
865
- newValue > selectedLayerJS.ceilHeight
866
- ) {
867
- // TODO: Show user-friendly warning — "Item height exceeds ceiling height"
868
- // return;
869
- }
870
-
871
- if (
872
- propertyName === 'width' &&
873
- newValue > distLeft + distRight
874
- ) {
875
- // TODO: Show user-friendly warning — "Item width exceeds available left/right space"
876
- // return;
877
- }
878
-
879
- if (
880
- propertyName === 'depth' &&
881
- newValue > distBack + distFront
882
- ) {
883
- // TODO: Show user-friendly warning — "Item depth exceeds available back/front space"
884
- // return;
885
- }
886
-
887
- this.updateProperty(propertyName, value);
888
- }}
889
- state={appState}
890
- internalState={this.state}
891
- filteredProperties={this.returnResizeFilterList()}
892
- shouldOnlyShowEditorOptions={true}
893
- />
894
- )}
895
- </>
896
- );
897
- })()}
898
- />
899
- {/* <div style={attrPorpSeparatorStyle}>
900
- <div style={headActionStyle}>
901
- <div title={translator.t('Remove')} style={iconHeadStyle} onClick={e => projectActions.remove()}><MdDelete /></div>
902
- <div title={translator.t('Copy')} style={iconHeadStyle} onClick={e => this.copyProperties(element.properties)}><MdContentCopy /></div>
903
- {
904
- appState.get('clipboardProperties') && appState.get('clipboardProperties').size ?
905
- <div title={translator.t('Paste')} style={iconHeadStyle} onClick={e => this.pasteProperties()}><MdContentPaste /></div> : null
906
- }
907
- </div>
908
- </div> */}
909
- {(isCabinet || isDoor) && this.props.state.mode.includes('3D') && (
910
- <React.Fragment>
911
- <CustomAccordion
912
- icon={<img src="/assets/img/svg/options.svg" alt="" />}
913
- title={<PS.PositionValue>Options</PS.PositionValue>}
914
- children={(() => {
915
- return propertiesFormData
916
- .entrySeq()
917
- .map(([propertyName, data]) => {
918
- if (
919
- propertyName === 'flip_doorhandle' &&
920
- !isEmpty(this.props.planData)
921
- ) {
922
- let scene = this.props.state.get('scene');
923
- let selectedLayer = scene.getIn([
924
- 'layers',
925
- scene.get('selectedLayer')
926
- ]);
927
- let item3D =
928
- this.props.planData.sceneGraph.layers[selectedLayer.id]
929
- .items[element.id];
930
- let flag = false;
931
- !isEmpty(item3D) &&
932
- item3D.children[0].children.forEach(child => {
933
- // get the door mesh's name
934
- let match = child.name.match(
935
- /\d_(door[^LR1-9]*)(_[LR])?(_[1-9])?$/
936
- );
937
- // check whether mesh's name contains the '_L' or '_R'
938
- if (
939
- !isEmpty(match) &&
940
- (match[2] === '_L' || match[2] === '_R')
941
- )
942
- flag = true;
943
- });
944
- if (flag === true) return null;
945
- }
946
- if (catalog.categoryHasElement('Windows', element.type)) {
947
- if (
948
- ['thickness', 'width', 'height'].includes(propertyName)
949
- ) {
950
- return null;
951
- }
952
- }
953
- if (catalog.categoryHasElement('Doors', element.type)) {
954
- if (
955
- ['altitude', 'thickness', 'width', 'height'].includes(
956
- propertyName
957
- )
958
- ) {
959
- return null;
960
- }
961
- }
962
- if (propertyName === 'resize_and_scaling') return null;
963
-
964
- let catalogElement = catalog.getElement(element.type);
965
- // if ((catalogElement.info.has_single_door === undefined || catalogElement.info.has_single_door == false) && propertyName == 'flip_doorhandle') {
966
- // return null;
967
- // }
968
-
969
- let currentValue = data.get('currentValue'),
970
- configs = data.get('configs');
971
- let { Editor } = catalog.getPropertyType(configs.type);
972
- return (
973
- configs.type !== 'length-measure' && (
974
- <div style={{ position: 'relative' }}>
975
- <Editor
976
- key={propertyName}
977
- propertyName={propertyName}
978
- value={currentValue}
979
- configs={configs}
980
- onUpdate={value =>
981
- this.updateProperty(propertyName, value)
982
- }
983
- state={appState}
984
- sourceElement={element}
985
- internalState={this.state}
986
- />
987
- {configs.type === 'length-measure' && (
988
- <span
989
- style={{
990
- position: 'absolute',
991
- fontFamily: DEFAULT_FONT_FAMILY,
992
- fontSize: 12,
993
- right: 10,
994
- bottom: 12,
995
- color: TEXT_COLOR_NEUTRAL_2,
996
- fontWeight: 600,
997
- lineHeight: '17px'
998
- }}
999
- >
1000
- in
1001
- </span>
1002
- )}
1003
- </div>
1004
- )
1005
- );
1006
- });
1007
- })()}
1008
- />
1009
- </React.Fragment>
1010
- )}
1011
- {isCabinet && isMolding && !!this.returnMoldings().length > 0 && (
1012
- <div>
1013
- <CustomAccordion
1014
- icon={<img src="/assets/img/svg/accessories.svg" alt="" />}
1015
- title={<PS.PositionValue>Molding</PS.PositionValue>}
1016
- children={(() => {
1017
- return this.returnMoldings().map(molding => {
1018
- return (
1019
- <S.SubCategoryItem
1020
- id={molding.id}
1021
- style={{ minWidth: 250 }}
1022
- onClick={() => {
1023
- this.setGroupMolding(molding);
1024
- }}
1025
- key={molding.id}
1026
- >
1027
- <img
1028
- id={`molding&${molding.id}`}
1029
- style={{ height: 70, width: 70, padding: 5 }}
1030
- src={molding.thumbnail}
1031
- />
1032
- <S.ContentCheckImage
1033
- id="check"
1034
- src="/assets/img/svg/wizardstep/check-normal.svg"
1035
- />
1036
- {molding.selected && (
1037
- <S.ContentCheckImage src="/assets/img/svg/wizardstep/check-active.svg" />
1038
- )}
1039
- <S.SubCategoryItemLabel
1040
- style={{ fontWeight: molding.selected && 700 }}
1041
- >
1042
- {molding.name}
1043
- </S.SubCategoryItemLabel>
1044
- </S.SubCategoryItem>
1045
- );
1046
- });
1047
- })()}
1048
- />
1049
- </div>
1050
- )}
1051
- </div>
1052
- );
1053
- }
1054
- }
1055
-
1056
- ElementEditor.propTypes = {
1057
- state: PropTypes.object.isRequired,
1058
- planData: PropTypes.object.isRequired,
1059
- element: PropTypes.object.isRequired,
1060
- layer: PropTypes.object.isRequired,
1061
- categoryData: PropTypes.object.isRequired,
1062
- getLinearOfMolding: PropTypes.func.isRequired
1063
- };
1064
-
1065
- ElementEditor.contextTypes = {
1066
- itemsActions: PropTypes.object.isRequired,
1067
- projectActions: PropTypes.object.isRequired,
1068
- catalog: PropTypes.object.isRequired,
1069
- translator: PropTypes.object.isRequired
1070
- };