kitchen-simulator 2.0.0 → 2.0.1-test.1

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 (1165) hide show
  1. package/README.md +24 -1
  2. package/es/@history.js +2 -0
  3. package/es/AppContext.js +3 -0
  4. package/es/LiteKitchenConfigurator.js +480 -0
  5. package/es/LiteRenderer.js +503 -0
  6. package/es/actions/area-actions.js +14 -0
  7. package/es/actions/export.js +36 -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 +318 -0
  11. package/es/actions/lines-actions.js +81 -0
  12. package/es/actions/project-actions.js +286 -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/analytics/ga4.js +188 -0
  18. package/es/analytics/posthog.js +60 -0
  19. package/es/assets/Window.hdr +2100 -0
  20. package/es/assets/brown_photostudio_02_1k.hdr +0 -0
  21. package/es/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  22. package/es/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  23. package/es/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  24. package/es/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  25. package/es/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  26. package/es/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  27. package/es/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  28. package/es/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  29. package/es/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  30. package/es/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  31. package/es/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  32. package/es/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  33. package/es/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  34. package/es/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  35. package/es/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  36. package/es/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  37. package/es/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  38. package/es/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  39. package/es/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  40. package/es/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  41. package/es/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  42. package/es/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  43. package/es/assets/fonts/style.css +177 -0
  44. package/es/assets/gltf/door_closet.bin +0 -0
  45. package/es/assets/gltf/door_closet.fbx +0 -0
  46. package/es/assets/gltf/door_closet.gltf +1 -0
  47. package/es/assets/gltf/door_exterior.bin +0 -0
  48. package/es/assets/gltf/door_exterior.fbx +0 -0
  49. package/es/assets/gltf/door_exterior.gltf +1 -0
  50. package/es/assets/gltf/door_interior.bin +0 -0
  51. package/es/assets/gltf/door_interior.fbx +0 -0
  52. package/es/assets/gltf/door_interior.gltf +1 -0
  53. package/es/assets/gltf/door_sliding.bin +0 -0
  54. package/es/assets/gltf/door_sliding.fbx +0 -0
  55. package/es/assets/gltf/door_sliding.gltf +1 -0
  56. package/es/assets/gltf/doorway_framed.bin +0 -0
  57. package/es/assets/gltf/doorway_framed.fbx +0 -0
  58. package/es/assets/gltf/doorway_framed.gltf +1 -0
  59. package/es/assets/gltf/window_clear.bin +0 -0
  60. package/es/assets/gltf/window_clear.fbx +0 -0
  61. package/es/assets/gltf/window_clear.gltf +1 -0
  62. package/es/assets/gltf/window_cross.bin +0 -0
  63. package/es/assets/gltf/window_cross.fbx +0 -0
  64. package/es/assets/gltf/window_cross.gltf +1 -0
  65. package/es/assets/gltf/window_double_hung.bin +0 -0
  66. package/es/assets/gltf/window_double_hung.fbx +0 -0
  67. package/es/assets/gltf/window_double_hung.gltf +1 -0
  68. package/es/assets/gltf/window_vertical.bin +0 -0
  69. package/es/assets/gltf/window_vertical.fbx +0 -0
  70. package/es/assets/gltf/window_vertical.gltf +1 -0
  71. package/es/assets/img/1.jpg +0 -0
  72. package/es/assets/img/TKC_thumbnail.png +0 -0
  73. package/es/assets/img/Toggle.png +0 -0
  74. package/es/assets/img/loading/loading.gif +0 -0
  75. package/es/assets/img/loading/loading_1.svg +11 -0
  76. package/es/assets/img/loading_large.gif +0 -0
  77. package/es/assets/img/png/door/closet.png +0 -0
  78. package/es/assets/img/png/door/doorwaysframed.png +0 -0
  79. package/es/assets/img/png/door/doorwaysframeles.png +0 -0
  80. package/es/assets/img/png/door/doorwaysframeless.png +0 -0
  81. package/es/assets/img/png/door/exterior.png +0 -0
  82. package/es/assets/img/png/door/interior.png +0 -0
  83. package/es/assets/img/png/door/sliding.png +0 -0
  84. package/es/assets/img/png/helper/outcome.png +0 -0
  85. package/es/assets/img/png/helper/video_preview_3d.png +0 -0
  86. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  87. package/es/assets/img/project_img.png +0 -0
  88. package/es/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  89. package/es/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  90. package/es/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
  91. package/es/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  92. package/es/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  93. package/es/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  94. package/es/assets/img/rta/rta_logo_box_maroon.png +0 -0
  95. package/es/assets/img/rta/rta_logo_box_white.png +0 -0
  96. package/es/assets/img/rta_menu.png +0 -0
  97. package/es/assets/img/step2.jpg +0 -0
  98. package/es/assets/img/step3.jpg +0 -0
  99. package/es/assets/img/step4.jpg +0 -0
  100. package/es/assets/img/step5.jpg +0 -0
  101. package/es/assets/img/step6.jpg +0 -0
  102. package/es/assets/img/step7.jpg +0 -0
  103. package/es/assets/img/step8.jpg +0 -0
  104. package/es/assets/img/svg/2d_delete_object.svg +33 -0
  105. package/es/assets/img/svg/2d_delete_object1.svg +33 -0
  106. package/es/assets/img/svg/2d_lock_object.svg +33 -0
  107. package/es/assets/img/svg/3d_item_move.svg +106 -0
  108. package/es/assets/img/svg/3d_item_rotation.svg +76 -0
  109. package/es/assets/img/svg/3d_item_warning_edit.svg +77 -0
  110. package/es/assets/img/svg/3d_item_warning_info.svg +81 -0
  111. package/es/assets/img/svg/accessories.svg +4 -0
  112. package/es/assets/img/svg/angle_icon.svg +39 -0
  113. package/es/assets/img/svg/blank_div.svg +14 -0
  114. package/es/assets/img/svg/bottombar/2d3d_button.svg +3 -0
  115. package/es/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
  116. package/es/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
  117. package/es/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
  118. package/es/assets/img/svg/bottombar/arrow-down.svg +3 -0
  119. package/es/assets/img/svg/bottombar/arrow-left.svg +3 -0
  120. package/es/assets/img/svg/bottombar/arrow-minus.svg +3 -0
  121. package/es/assets/img/svg/bottombar/arrow-plus.svg +11 -0
  122. package/es/assets/img/svg/bottombar/arrow-right.svg +3 -0
  123. package/es/assets/img/svg/bottombar/arrow-up.svg +3 -0
  124. package/es/assets/img/svg/bottombar/collapse.svg +3 -0
  125. package/es/assets/img/svg/bottombar/elevation-back.svg +6 -0
  126. package/es/assets/img/svg/bottombar/elevation-front.svg +6 -0
  127. package/es/assets/img/svg/bottombar/elevation-left.svg +6 -0
  128. package/es/assets/img/svg/bottombar/elevation-right.svg +7 -0
  129. package/es/assets/img/svg/bottombar/elevation.svg +6 -0
  130. package/es/assets/img/svg/bottombar/expand.svg +3 -0
  131. package/es/assets/img/svg/bottombar/help.svg +72 -0
  132. package/es/assets/img/svg/bottombar/incm_toggle.svg +39 -0
  133. package/es/assets/img/svg/bottombar/pan_1.svg +57 -0
  134. package/es/assets/img/svg/bottombar/pan_2.svg +27 -0
  135. package/es/assets/img/svg/bottombar/pan_3.svg +27 -0
  136. package/es/assets/img/svg/bottombar/pan_4.svg +27 -0
  137. package/es/assets/img/svg/bottombar/pan_5.svg +27 -0
  138. package/es/assets/img/svg/bottombar/settings.svg +23 -0
  139. package/es/assets/img/svg/bottombar/spin-down.svg +76 -0
  140. package/es/assets/img/svg/bottombar/spin-left.svg +75 -0
  141. package/es/assets/img/svg/bottombar/spin-right.svg +75 -0
  142. package/es/assets/img/svg/bottombar/spin-up.svg +76 -0
  143. package/es/assets/img/svg/bottombar/spin_1.svg +48 -0
  144. package/es/assets/img/svg/bottombar/spin_2.svg +31 -0
  145. package/es/assets/img/svg/bottombar/spin_3.svg +31 -0
  146. package/es/assets/img/svg/bottombar/spin_4.svg +31 -0
  147. package/es/assets/img/svg/bottombar/spin_5.svg +31 -0
  148. package/es/assets/img/svg/bottombar/zoomin.svg +29 -0
  149. package/es/assets/img/svg/bottombar/zoomout.svg +26 -0
  150. package/es/assets/img/svg/check.svg +10 -0
  151. package/es/assets/img/svg/close.svg +11 -0
  152. package/es/assets/img/svg/color/Black.svg +3 -0
  153. package/es/assets/img/svg/color/Blue.svg +3 -0
  154. package/es/assets/img/svg/color/Brown.svg +9 -0
  155. package/es/assets/img/svg/color/Cream.svg +3 -0
  156. package/es/assets/img/svg/color/Dark.svg +9 -0
  157. package/es/assets/img/svg/color/Gray.svg +3 -0
  158. package/es/assets/img/svg/color/Green.svg +3 -0
  159. package/es/assets/img/svg/color/Light.svg +9 -0
  160. package/es/assets/img/svg/color/Medium.svg +9 -0
  161. package/es/assets/img/svg/color/Unfinished.svg +9 -0
  162. package/es/assets/img/svg/color/White.svg +3 -0
  163. package/es/assets/img/svg/color/White.svg.bak +3 -0
  164. package/es/assets/img/svg/color/stone2.jpg +0 -0
  165. package/es/assets/img/svg/color/wood2.jpg +0 -0
  166. package/es/assets/img/svg/copy.svg +11 -0
  167. package/es/assets/img/svg/delete.svg +3 -0
  168. package/es/assets/img/svg/detail.svg +77 -0
  169. package/es/assets/img/svg/disclaimer/background.svg +758 -0
  170. package/es/assets/img/svg/disclaimer/logo-dots.svg +11 -0
  171. package/es/assets/img/svg/door/Closet.svg +11 -0
  172. package/es/assets/img/svg/door/Exterior.svg +5 -0
  173. package/es/assets/img/svg/door/Framed_dorway.svg +5 -0
  174. package/es/assets/img/svg/door/Frameless_dorway.svg +5 -0
  175. package/es/assets/img/svg/door/Interior.svg +7 -0
  176. package/es/assets/img/svg/door/Sliding.svg +5 -0
  177. package/es/assets/img/svg/doors_closet.svg +47 -0
  178. package/es/assets/img/svg/doors_exterior.svg +25 -0
  179. package/es/assets/img/svg/doors_interior.svg +29 -0
  180. package/es/assets/img/svg/doors_patio.svg +26 -0
  181. package/es/assets/img/svg/duplicate.svg +11 -0
  182. package/es/assets/img/svg/duplicate_object_left.svg +32 -0
  183. package/es/assets/img/svg/duplicate_object_right.svg +32 -0
  184. package/es/assets/img/svg/filtersActive.svg +19 -0
  185. package/es/assets/img/svg/firstsetting/L.svg +3 -0
  186. package/es/assets/img/svg/firstsetting/L2.svg +3 -0
  187. package/es/assets/img/svg/firstsetting/Open.svg +3 -0
  188. package/es/assets/img/svg/firstsetting/Square.svg +3 -0
  189. package/es/assets/img/svg/firstsetting/bar-active.svg +9 -0
  190. package/es/assets/img/svg/firstsetting/bar-normal.svg +3 -0
  191. package/es/assets/img/svg/firstsetting/bullet-current.svg +3 -0
  192. package/es/assets/img/svg/firstsetting/bullet-done.svg +3 -0
  193. package/es/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
  194. package/es/assets/img/svg/firstsetting/check-active.svg +3 -0
  195. package/es/assets/img/svg/firstsetting/check-normal.svg +3 -0
  196. package/es/assets/img/svg/firstsetting/pencil.svg +11 -0
  197. package/es/assets/img/svg/green_checkmark.svg +27 -0
  198. package/es/assets/img/svg/headerbar/assist.svg +3 -0
  199. package/es/assets/img/svg/headerbar/cart.svg +3 -0
  200. package/es/assets/img/svg/headerbar/check.svg +10 -0
  201. package/es/assets/img/svg/headerbar/consult_designer.svg +45 -0
  202. package/es/assets/img/svg/headerbar/edit_name.svg +26 -0
  203. package/es/assets/img/svg/headerbar/file-dollar.svg +13 -0
  204. package/es/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
  205. package/es/assets/img/svg/headerbar/plus.svg +11 -0
  206. package/es/assets/img/svg/headerbar/review_quote.svg +44 -0
  207. package/es/assets/img/svg/headerbar/ruler-measure.svg +11 -0
  208. package/es/assets/img/svg/headerbar/save.svg +3 -0
  209. package/es/assets/img/svg/headerbar/setting.svg +75 -0
  210. package/es/assets/img/svg/help/check.svg +10 -0
  211. package/es/assets/img/svg/help/search.svg +76 -0
  212. package/es/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
  213. package/es/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
  214. package/es/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
  215. package/es/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
  216. package/es/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
  217. package/es/assets/img/svg/intro/3-retrieve-project.svg +18 -0
  218. package/es/assets/img/svg/invert.svg +127 -0
  219. package/es/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
  220. package/es/assets/img/svg/lefttoolbar/appliance.svg +13 -0
  221. package/es/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
  222. package/es/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
  223. package/es/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
  224. package/es/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
  225. package/es/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
  226. package/es/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
  227. package/es/assets/img/svg/lefttoolbar/door-style.svg +20 -0
  228. package/es/assets/img/svg/lefttoolbar/door.svg +12 -0
  229. package/es/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
  230. package/es/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
  231. package/es/assets/img/svg/lefttoolbar/finishing.svg +13 -0
  232. package/es/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
  233. package/es/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
  234. package/es/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
  235. package/es/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
  236. package/es/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
  237. package/es/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
  238. package/es/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
  239. package/es/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
  240. package/es/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
  241. package/es/assets/img/svg/lefttoolbar/search.svg +76 -0
  242. package/es/assets/img/svg/lefttoolbar/view_more.svg +86 -0
  243. package/es/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
  244. package/es/assets/img/svg/lefttoolbar/window.svg +12 -0
  245. package/es/assets/img/svg/logo.svg +11 -0
  246. package/es/assets/img/svg/logo_with_text.svg +25 -0
  247. package/es/assets/img/svg/menubar/login.svg +84 -0
  248. package/es/assets/img/svg/menubar/my_projects.svg +85 -0
  249. package/es/assets/img/svg/menubar/new_project.svg +110 -0
  250. package/es/assets/img/svg/menubar/save_project.svg +84 -0
  251. package/es/assets/img/svg/options.svg +3 -0
  252. package/es/assets/img/svg/positioning.svg +3 -0
  253. package/es/assets/img/svg/rotate.png +0 -0
  254. package/es/assets/img/svg/rotate.svg +17 -0
  255. package/es/assets/img/svg/rotate_object_clockwise.svg +26 -0
  256. package/es/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
  257. package/es/assets/img/svg/toggleFilters.svg +19 -0
  258. package/es/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
  259. package/es/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
  260. package/es/assets/img/svg/toolbar/add_button.svg +36 -0
  261. package/es/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
  262. package/es/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
  263. package/es/assets/img/svg/toolbar/add_items_doors.svg +25 -0
  264. package/es/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
  265. package/es/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
  266. package/es/assets/img/svg/toolbar/add_items_windows.svg +28 -0
  267. package/es/assets/img/svg/toolbar/apply_button.svg +38 -0
  268. package/es/assets/img/svg/toolbar/arrow-plus.svg +11 -0
  269. package/es/assets/img/svg/toolbar/backsplash.svg +8 -0
  270. package/es/assets/img/svg/toolbar/cancel_button.svg +37 -0
  271. package/es/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
  272. package/es/assets/img/svg/toolbar/countertop.svg +7 -0
  273. package/es/assets/img/svg/toolbar/dcm.png +0 -0
  274. package/es/assets/img/svg/toolbar/dcm_off.svg +12 -0
  275. package/es/assets/img/svg/toolbar/dcm_on.svg +474 -0
  276. package/es/assets/img/svg/toolbar/delete_button.svg +37 -0
  277. package/es/assets/img/svg/toolbar/download.svg +77 -0
  278. package/es/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
  279. package/es/assets/img/svg/toolbar/edit_button.svg +75 -0
  280. package/es/assets/img/svg/toolbar/email_quote_button.svg +44 -0
  281. package/es/assets/img/svg/toolbar/fbm.png +0 -0
  282. package/es/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
  283. package/es/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
  284. package/es/assets/img/svg/toolbar/floorstyle.svg +9 -0
  285. package/es/assets/img/svg/toolbar/fmb.png +0 -0
  286. package/es/assets/img/svg/toolbar/fmb_off.svg +12 -0
  287. package/es/assets/img/svg/toolbar/fmb_on.svg +489 -0
  288. package/es/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
  289. package/es/assets/img/svg/toolbar/get_started_button.svg +41 -0
  290. package/es/assets/img/svg/toolbar/handles.svg +5 -0
  291. package/es/assets/img/svg/toolbar/lighting.svg +7 -0
  292. package/es/assets/img/svg/toolbar/lrm.png +0 -0
  293. package/es/assets/img/svg/toolbar/lrm_off.svg +12 -0
  294. package/es/assets/img/svg/toolbar/lrm_on.svg +470 -0
  295. package/es/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
  296. package/es/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
  297. package/es/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
  298. package/es/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
  299. package/es/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
  300. package/es/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
  301. package/es/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
  302. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
  303. package/es/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
  304. package/es/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
  305. package/es/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
  306. package/es/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
  307. package/es/assets/img/svg/toolbar/redo_button.svg +75 -0
  308. package/es/assets/img/svg/toolbar/redo_button1.svg +75 -0
  309. package/es/assets/img/svg/toolbar/review_quote_active.svg +14 -0
  310. package/es/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
  311. package/es/assets/img/svg/toolbar/save_project_button.svg +44 -0
  312. package/es/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
  313. package/es/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
  314. package/es/assets/img/svg/toolbar/shopping-cart.svg +13 -0
  315. package/es/assets/img/svg/toolbar/style_change_button.svg +47 -0
  316. package/es/assets/img/svg/toolbar/take_picture.svg +75 -0
  317. package/es/assets/img/svg/toolbar/undo_button.svg +76 -0
  318. package/es/assets/img/svg/toolbar/undo_button1.svg +76 -0
  319. package/es/assets/img/svg/toolbar/use_button.svg +37 -0
  320. package/es/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
  321. package/es/assets/img/svg/topbar/edit_active.svg +10 -0
  322. package/es/assets/img/svg/topbar/edit_inactive.svg +10 -0
  323. package/es/assets/img/svg/topbar/redo_active.svg +42 -0
  324. package/es/assets/img/svg/topbar/redo_inactive.svg +23 -0
  325. package/es/assets/img/svg/topbar/select_all_active.svg +50 -0
  326. package/es/assets/img/svg/topbar/select_all_inactive.svg +32 -0
  327. package/es/assets/img/svg/topbar/take_picture_active.svg +51 -0
  328. package/es/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
  329. package/es/assets/img/svg/topbar/undo_active.svg +42 -0
  330. package/es/assets/img/svg/topbar/undo_inactive.svg +23 -0
  331. package/es/assets/img/svg/warning_info_2d.svg +81 -0
  332. package/es/assets/img/svg/window/Clear.svg +3 -0
  333. package/es/assets/img/svg/window/Cross.svg +5 -0
  334. package/es/assets/img/svg/window/Double_hung.svg +4 -0
  335. package/es/assets/img/svg/window/Vertical.svg +4 -0
  336. package/es/assets/img/svg/windows_clear.svg +23 -0
  337. package/es/assets/img/svg/windows_cross.svg +28 -0
  338. package/es/assets/img/svg/windows_double_hung.svg +24 -0
  339. package/es/assets/img/svg/windows_vertical.svg +24 -0
  340. package/es/assets/img/svg/wizardstep/Custom.svg +3 -0
  341. package/es/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
  342. package/es/assets/img/svg/wizardstep/L.svg +3 -0
  343. package/es/assets/img/svg/wizardstep/L2.svg +3 -0
  344. package/es/assets/img/svg/wizardstep/Open.svg +3 -0
  345. package/es/assets/img/svg/wizardstep/Square.svg +3 -0
  346. package/es/assets/img/svg/wizardstep/bar-active.svg +9 -0
  347. package/es/assets/img/svg/wizardstep/bar-normal.svg +3 -0
  348. package/es/assets/img/svg/wizardstep/bullet-current.svg +3 -0
  349. package/es/assets/img/svg/wizardstep/bullet-done.svg +3 -0
  350. package/es/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
  351. package/es/assets/img/svg/wizardstep/check-active.svg +3 -0
  352. package/es/assets/img/svg/wizardstep/check-normal.svg +3 -0
  353. package/es/assets/img/svg/wizardstep/detail_view.svg +87 -0
  354. package/es/assets/img/svg/wizardstep/pencil.svg +11 -0
  355. package/es/assets/img/svg/wizardstep/tile_view.svg +95 -0
  356. package/es/assets/img/texture/glass.jpg +0 -0
  357. package/es/assets/img/texture/steel.jpg +0 -0
  358. package/es/assets/img/texture/white1px.jpg +0 -0
  359. package/es/assets/img/texture/wood.jpg +0 -0
  360. package/es/assets/model/DCM.bin +0 -0
  361. package/es/assets/model/DCM.fbx +0 -0
  362. package/es/assets/model/DCM.gltf +1 -0
  363. package/es/assets/model/FBM.bin +0 -0
  364. package/es/assets/model/FBM.fbx +0 -0
  365. package/es/assets/model/FBM.gltf +1 -0
  366. package/es/assets/model/LRM.bin +0 -0
  367. package/es/assets/model/LRM.fbx +0 -0
  368. package/es/assets/model/LRM.gltf +1 -0
  369. package/es/assets/rtastore_logo.png +0 -0
  370. package/es/catalog/areas/area/planner-element.js +45 -0
  371. package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  372. package/es/catalog/areas/area/textures/grass.jpg +0 -0
  373. package/es/catalog/areas/area/textures/parquet.jpg +0 -0
  374. package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  375. package/es/catalog/areas/area/textures/tile1.jpg +0 -0
  376. package/es/catalog/back.png +0 -0
  377. package/es/catalog/catalog.js +265 -0
  378. package/es/catalog/doors.png +0 -0
  379. package/es/catalog/doorways.png +0 -0
  380. package/es/catalog/envMap/nx.hdr +0 -0
  381. package/es/catalog/envMap/ny.hdr +0 -0
  382. package/es/catalog/envMap/nz.hdr +0 -0
  383. package/es/catalog/envMap/px.hdr +0 -0
  384. package/es/catalog/envMap/py.hdr +0 -0
  385. package/es/catalog/envMap/pz.hdr +0 -0
  386. package/es/catalog/export.js +0 -0
  387. package/es/catalog/factories/area-factory-3d.js +181 -0
  388. package/es/catalog/factories/area-factory.js +78 -0
  389. package/es/catalog/factories/export.js +7 -0
  390. package/es/catalog/factories/wall-factory-3d.js +202 -0
  391. package/es/catalog/factories/wall-factory.js +267 -0
  392. package/es/catalog/holes/door-closet/planner-element.js +222 -0
  393. package/es/catalog/holes/door-double/door_double.png +0 -0
  394. package/es/catalog/holes/door-double/planner-element.js +315 -0
  395. package/es/catalog/holes/door-exterior/planner-element.js +215 -0
  396. package/es/catalog/holes/door-interior/planner-element.js +227 -0
  397. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  398. package/es/catalog/holes/door-panic/planner-element.js +503 -0
  399. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  400. package/es/catalog/holes/door-panic-double/planner-element.js +463 -0
  401. package/es/catalog/holes/door-sliding/planner-element.js +225 -0
  402. package/es/catalog/holes/doorway-framed/planner-element.js +145 -0
  403. package/es/catalog/holes/doorway-frameless/planner-element.js +104 -0
  404. package/es/catalog/holes/export.js +13 -0
  405. package/es/catalog/holes/gate/gate.jpg +0 -0
  406. package/es/catalog/holes/window-clear/planner-element.js +166 -0
  407. package/es/catalog/holes/window-clear/texture.png +0 -0
  408. package/es/catalog/holes/window-cross/planner-element.js +165 -0
  409. package/es/catalog/holes/window-cross/texture.png +0 -0
  410. package/es/catalog/holes/window-double-hung/planner-element.js +303 -0
  411. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  412. package/es/catalog/holes/window-vertical/planner-element.js +276 -0
  413. package/es/catalog/holes/window-vertical/texture.png +0 -0
  414. package/es/catalog/lines/wall/planner-element.js +79 -0
  415. package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  416. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  417. package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
  418. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  419. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  420. package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  421. package/es/catalog/lines/wall/textures/morden.jpg +0 -0
  422. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  423. package/es/catalog/lines/wall/textures/painted.jpg +0 -0
  424. package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  425. package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
  426. package/es/catalog/lines/wall/wall.png +0 -0
  427. package/es/catalog/molding/molding-dcm/planner-element.js +26 -0
  428. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  429. package/es/catalog/molding/molding-fbm/planner-element.js +26 -0
  430. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  431. package/es/catalog/molding/molding-lrm/planner-element.js +26 -0
  432. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  433. package/es/catalog/properties/export.js +21 -0
  434. package/es/catalog/properties/property-checkbox.js +68 -0
  435. package/es/catalog/properties/property-color.js +39 -0
  436. package/es/catalog/properties/property-enum.js +50 -0
  437. package/es/catalog/properties/property-hidden.js +19 -0
  438. package/es/catalog/properties/property-lenght-measure.js +100 -0
  439. package/es/catalog/properties/property-length-measure.js +84 -0
  440. package/es/catalog/properties/property-length-measure_hole.js +100 -0
  441. package/es/catalog/properties/property-number.js +48 -0
  442. package/es/catalog/properties/property-read-only.js +26 -0
  443. package/es/catalog/properties/property-string.js +48 -0
  444. package/es/catalog/properties/property-toggle.js +39 -0
  445. package/es/catalog/properties/shared-property-style.js +14 -0
  446. package/es/catalog/utils/FuseUtils.js +79 -0
  447. package/es/catalog/utils/exporter.js +149 -0
  448. package/es/catalog/utils/geom-utils.js +189 -0
  449. package/es/catalog/utils/item-loader.js +1594 -0
  450. package/es/catalog/utils/load-obj.js +91 -0
  451. package/es/catalog/utils/mtl-loader.js +357 -0
  452. package/es/catalog/utils/obj-loader.js +476 -0
  453. package/es/catalog/windows.png +0 -0
  454. package/es/class/FuseUtils.js +79 -0
  455. package/es/class/area.js +141 -0
  456. package/es/class/export.js +24 -0
  457. package/es/class/group.js +431 -0
  458. package/es/class/guide.js +58 -0
  459. package/es/class/hole.js +926 -0
  460. package/es/class/item.js +1845 -0
  461. package/es/class/layer.js +663 -0
  462. package/es/class/line.js +1221 -0
  463. package/es/class/project.js +795 -0
  464. package/es/class/vertex.js +198 -0
  465. package/es/components/content.js +131 -0
  466. package/es/components/export.js +7 -0
  467. package/es/components/style/button.js +106 -0
  468. package/es/components/style/cancel-button.js +21 -0
  469. package/es/components/style/content-container.js +30 -0
  470. package/es/components/style/content-title.js +25 -0
  471. package/es/components/style/delete-button.js +24 -0
  472. package/es/components/style/export.js +31 -0
  473. package/es/components/style/form-block.js +20 -0
  474. package/es/components/style/form-color-input.js +26 -0
  475. package/es/components/style/form-label.js +22 -0
  476. package/es/components/style/form-number-input.js +183 -0
  477. package/es/components/style/form-number-input_2.js +200 -0
  478. package/es/components/style/form-select.js +19 -0
  479. package/es/components/style/form-slider.js +60 -0
  480. package/es/components/style/form-submit-button.js +25 -0
  481. package/es/components/style/form-text-input.js +69 -0
  482. package/es/components/viewer2d/area.js +81 -0
  483. package/es/components/viewer2d/export.js +31 -0
  484. package/es/components/viewer2d/grids/grid-horizontal-streak.js +36 -0
  485. package/es/components/viewer2d/grids/grid-streak.js +36 -0
  486. package/es/components/viewer2d/grids/grid-vertical-streak.js +36 -0
  487. package/es/components/viewer2d/grids/grids.js +30 -0
  488. package/es/components/viewer2d/group.js +53 -0
  489. package/es/components/viewer2d/item.js +447 -0
  490. package/es/components/viewer2d/layer.js +164 -0
  491. package/es/components/viewer2d/line.js +964 -0
  492. package/es/components/viewer2d/ruler.js +79 -0
  493. package/es/components/viewer2d/rulerDist.js +132 -0
  494. package/es/components/viewer2d/rulerX.js +145 -0
  495. package/es/components/viewer2d/rulerY.js +147 -0
  496. package/es/components/viewer2d/scene.js +128 -0
  497. package/es/components/viewer2d/snap.js +74 -0
  498. package/es/components/viewer2d/state.js +73 -0
  499. package/es/components/viewer2d/utils.js +187 -0
  500. package/es/components/viewer2d/vertex.js +65 -0
  501. package/es/components/viewer2d/viewer2d.js +1433 -0
  502. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +2585 -0
  503. package/es/components/viewer3d/dcm.js +401 -0
  504. package/es/components/viewer3d/fbm.js +414 -0
  505. package/es/components/viewer3d/front3D.js +61 -0
  506. package/es/components/viewer3d/grid-creator.js +25 -0
  507. package/es/components/viewer3d/grids/grid-horizontal-streak.js +36 -0
  508. package/es/components/viewer3d/grids/grid-streak.js +27 -0
  509. package/es/components/viewer3d/grids/grid-vertical-streak.js +36 -0
  510. package/es/components/viewer3d/libs/first-person-controls.js +67 -0
  511. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1281 -0
  512. package/es/components/viewer3d/libs/mtl-loader.js +357 -0
  513. package/es/components/viewer3d/libs/obj-loader.js +462 -0
  514. package/es/components/viewer3d/libs/orbit-controls.js +697 -0
  515. package/es/components/viewer3d/libs/pointer-lock-controls.js +44 -0
  516. package/es/components/viewer3d/lrm.js +305 -0
  517. package/es/components/viewer3d/model.js +708 -0
  518. package/es/components/viewer3d/pointer-lock-navigation.js +115 -0
  519. package/es/components/viewer3d/ruler-utils/itemRect.js +61 -0
  520. package/es/components/viewer3d/ruler-utils/layer3D.js +495 -0
  521. package/es/components/viewer3d/ruler-utils/ruler3D.js +224 -0
  522. package/es/components/viewer3d/ruler-utils/scene3D.js +59 -0
  523. package/es/components/viewer3d/ruler-utils/state3D.js +18 -0
  524. package/es/components/viewer3d/scene-creator.js +3617 -0
  525. package/es/components/viewer3d/three-memory-cleaner.js +51 -0
  526. package/es/components/viewer3d/viewer3d-first-person.js +309 -0
  527. package/es/components/viewer3d/viewer3d.js +2654 -0
  528. package/es/constants.js +688 -0
  529. package/es/devLiteRenderer.js +316 -0
  530. package/es/index.js +56 -0
  531. package/es/models.js +506 -0
  532. package/es/plugins/SVGLoader.js +1412 -0
  533. package/es/plugins/console-debugger.js +34 -0
  534. package/es/plugins/export.js +7 -0
  535. package/es/plugins/keyboard.js +101 -0
  536. package/es/reducers/areas-reducer.js +12 -0
  537. package/es/reducers/export.js +25 -0
  538. package/es/reducers/groups-reducer.js +38 -0
  539. package/es/reducers/holes-reducer.js +62 -0
  540. package/es/reducers/items-reducer.js +147 -0
  541. package/es/reducers/lines-reducer.js +45 -0
  542. package/es/reducers/project-reducer.js +131 -0
  543. package/es/reducers/reducer.js +19 -0
  544. package/es/reducers/scene-reducer.js +28 -0
  545. package/es/reducers/user-reducer.js +41 -0
  546. package/es/reducers/vertices-reducer.js +19 -0
  547. package/es/reducers/viewer2d-reducer.js +75 -0
  548. package/es/reducers/viewer3d-reducer.js +56 -0
  549. package/es/shared-style.js +66 -0
  550. package/es/styles/export.js +5 -0
  551. package/es/styles/tabs.css +40 -0
  552. package/es/translator/en.js +104 -0
  553. package/es/translator/it.js +79 -0
  554. package/es/translator/ru.js +79 -0
  555. package/es/translator/translator.js +80 -0
  556. package/es/utils/browser.js +33 -0
  557. package/es/utils/convert-units-lite.js +29 -0
  558. package/es/utils/email-validator.js +4 -0
  559. package/es/utils/export.js +25 -0
  560. package/es/utils/geometry.js +2446 -0
  561. package/es/utils/get-edges-of-subgraphs.js +26 -0
  562. package/es/utils/graph-cycles.js +238 -0
  563. package/es/utils/graph-inner-cycles.js +46 -0
  564. package/es/utils/graph.js +145 -0
  565. package/es/utils/helper.js +334 -0
  566. package/es/utils/history.js +29 -0
  567. package/es/utils/id-broker.js +15 -0
  568. package/es/utils/isolate-event-handler.js +683 -0
  569. package/es/utils/logger.js +8 -0
  570. package/es/utils/math.js +50 -0
  571. package/es/utils/molding.js +865 -0
  572. package/es/utils/name-generator.js +14 -0
  573. package/es/utils/objects-utils.js +50 -0
  574. package/es/utils/phone-validator.js +4 -0
  575. package/es/utils/process-black-list.js +15 -0
  576. package/es/utils/react-if.js +18 -0
  577. package/es/utils/snap-scene.js +94 -0
  578. package/es/utils/snap.js +231 -0
  579. package/es/utils/summarizeCart.js +24 -0
  580. package/es/utils/threeCSG.es6.js +494 -0
  581. package/es/version.js +1 -0
  582. package/lib/@history.js +11 -0
  583. package/lib/AppContext.js +11 -0
  584. package/lib/LiteKitchenConfigurator.js +490 -0
  585. package/lib/LiteRenderer.js +513 -0
  586. package/lib/actions/area-actions.js +21 -0
  587. package/lib/actions/export.js +36 -0
  588. package/lib/actions/groups-actions.js +107 -0
  589. package/lib/actions/holes-actions.js +140 -0
  590. package/lib/actions/items-actions.js +370 -0
  591. package/lib/actions/lines-actions.js +96 -0
  592. package/lib/actions/project-actions.js +338 -0
  593. package/lib/actions/scene-actions.js +43 -0
  594. package/lib/actions/vertices-actions.js +35 -0
  595. package/lib/actions/viewer2d-actions.js +73 -0
  596. package/lib/actions/viewer3d-actions.js +32 -0
  597. package/lib/analytics/ga4.js +194 -0
  598. package/lib/analytics/posthog.js +68 -0
  599. package/lib/assets/Window.hdr +2100 -0
  600. package/lib/assets/brown_photostudio_02_1k.hdr +0 -0
  601. package/lib/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  602. package/lib/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  603. package/lib/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  604. package/lib/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  605. package/lib/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  606. package/lib/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  607. package/lib/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  608. package/lib/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  609. package/lib/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  610. package/lib/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  611. package/lib/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  612. package/lib/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  613. package/lib/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  614. package/lib/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  615. package/lib/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  616. package/lib/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  617. package/lib/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  618. package/lib/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  619. package/lib/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  620. package/lib/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  621. package/lib/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  622. package/lib/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  623. package/lib/assets/fonts/style.css +177 -0
  624. package/lib/assets/gltf/door_closet.bin +0 -0
  625. package/lib/assets/gltf/door_closet.fbx +0 -0
  626. package/lib/assets/gltf/door_closet.gltf +1 -0
  627. package/lib/assets/gltf/door_exterior.bin +0 -0
  628. package/lib/assets/gltf/door_exterior.fbx +0 -0
  629. package/lib/assets/gltf/door_exterior.gltf +1 -0
  630. package/lib/assets/gltf/door_interior.bin +0 -0
  631. package/lib/assets/gltf/door_interior.fbx +0 -0
  632. package/lib/assets/gltf/door_interior.gltf +1 -0
  633. package/lib/assets/gltf/door_sliding.bin +0 -0
  634. package/lib/assets/gltf/door_sliding.fbx +0 -0
  635. package/lib/assets/gltf/door_sliding.gltf +1 -0
  636. package/lib/assets/gltf/doorway_framed.bin +0 -0
  637. package/lib/assets/gltf/doorway_framed.fbx +0 -0
  638. package/lib/assets/gltf/doorway_framed.gltf +1 -0
  639. package/lib/assets/gltf/window_clear.bin +0 -0
  640. package/lib/assets/gltf/window_clear.fbx +0 -0
  641. package/lib/assets/gltf/window_clear.gltf +1 -0
  642. package/lib/assets/gltf/window_cross.bin +0 -0
  643. package/lib/assets/gltf/window_cross.fbx +0 -0
  644. package/lib/assets/gltf/window_cross.gltf +1 -0
  645. package/lib/assets/gltf/window_double_hung.bin +0 -0
  646. package/lib/assets/gltf/window_double_hung.fbx +0 -0
  647. package/lib/assets/gltf/window_double_hung.gltf +1 -0
  648. package/lib/assets/gltf/window_vertical.bin +0 -0
  649. package/lib/assets/gltf/window_vertical.fbx +0 -0
  650. package/lib/assets/gltf/window_vertical.gltf +1 -0
  651. package/lib/assets/img/1.jpg +0 -0
  652. package/lib/assets/img/TKC_thumbnail.png +0 -0
  653. package/lib/assets/img/Toggle.png +0 -0
  654. package/lib/assets/img/loading/loading.gif +0 -0
  655. package/lib/assets/img/loading/loading_1.svg +11 -0
  656. package/lib/assets/img/loading_large.gif +0 -0
  657. package/lib/assets/img/png/door/closet.png +0 -0
  658. package/lib/assets/img/png/door/doorwaysframed.png +0 -0
  659. package/lib/assets/img/png/door/doorwaysframeles.png +0 -0
  660. package/lib/assets/img/png/door/doorwaysframeless.png +0 -0
  661. package/lib/assets/img/png/door/exterior.png +0 -0
  662. package/lib/assets/img/png/door/interior.png +0 -0
  663. package/lib/assets/img/png/door/sliding.png +0 -0
  664. package/lib/assets/img/png/helper/outcome.png +0 -0
  665. package/lib/assets/img/png/helper/video_preview_3d.png +0 -0
  666. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  667. package/lib/assets/img/project_img.png +0 -0
  668. package/lib/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  669. package/lib/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  670. package/lib/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
  671. package/lib/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  672. package/lib/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  673. package/lib/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  674. package/lib/assets/img/rta/rta_logo_box_maroon.png +0 -0
  675. package/lib/assets/img/rta/rta_logo_box_white.png +0 -0
  676. package/lib/assets/img/rta_menu.png +0 -0
  677. package/lib/assets/img/step2.jpg +0 -0
  678. package/lib/assets/img/step3.jpg +0 -0
  679. package/lib/assets/img/step4.jpg +0 -0
  680. package/lib/assets/img/step5.jpg +0 -0
  681. package/lib/assets/img/step6.jpg +0 -0
  682. package/lib/assets/img/step7.jpg +0 -0
  683. package/lib/assets/img/step8.jpg +0 -0
  684. package/lib/assets/img/svg/2d_delete_object.svg +33 -0
  685. package/lib/assets/img/svg/2d_delete_object1.svg +33 -0
  686. package/lib/assets/img/svg/2d_lock_object.svg +33 -0
  687. package/lib/assets/img/svg/3d_item_move.svg +106 -0
  688. package/lib/assets/img/svg/3d_item_rotation.svg +76 -0
  689. package/lib/assets/img/svg/3d_item_warning_edit.svg +77 -0
  690. package/lib/assets/img/svg/3d_item_warning_info.svg +81 -0
  691. package/lib/assets/img/svg/accessories.svg +4 -0
  692. package/lib/assets/img/svg/angle_icon.svg +39 -0
  693. package/lib/assets/img/svg/blank_div.svg +14 -0
  694. package/lib/assets/img/svg/bottombar/2d3d_button.svg +3 -0
  695. package/lib/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
  696. package/lib/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
  697. package/lib/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
  698. package/lib/assets/img/svg/bottombar/arrow-down.svg +3 -0
  699. package/lib/assets/img/svg/bottombar/arrow-left.svg +3 -0
  700. package/lib/assets/img/svg/bottombar/arrow-minus.svg +3 -0
  701. package/lib/assets/img/svg/bottombar/arrow-plus.svg +11 -0
  702. package/lib/assets/img/svg/bottombar/arrow-right.svg +3 -0
  703. package/lib/assets/img/svg/bottombar/arrow-up.svg +3 -0
  704. package/lib/assets/img/svg/bottombar/collapse.svg +3 -0
  705. package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -0
  706. package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -0
  707. package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -0
  708. package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -0
  709. package/lib/assets/img/svg/bottombar/elevation.svg +6 -0
  710. package/lib/assets/img/svg/bottombar/expand.svg +3 -0
  711. package/lib/assets/img/svg/bottombar/help.svg +72 -0
  712. package/lib/assets/img/svg/bottombar/incm_toggle.svg +39 -0
  713. package/lib/assets/img/svg/bottombar/pan_1.svg +57 -0
  714. package/lib/assets/img/svg/bottombar/pan_2.svg +27 -0
  715. package/lib/assets/img/svg/bottombar/pan_3.svg +27 -0
  716. package/lib/assets/img/svg/bottombar/pan_4.svg +27 -0
  717. package/lib/assets/img/svg/bottombar/pan_5.svg +27 -0
  718. package/lib/assets/img/svg/bottombar/settings.svg +23 -0
  719. package/lib/assets/img/svg/bottombar/spin-down.svg +76 -0
  720. package/lib/assets/img/svg/bottombar/spin-left.svg +75 -0
  721. package/lib/assets/img/svg/bottombar/spin-right.svg +75 -0
  722. package/lib/assets/img/svg/bottombar/spin-up.svg +76 -0
  723. package/lib/assets/img/svg/bottombar/spin_1.svg +48 -0
  724. package/lib/assets/img/svg/bottombar/spin_2.svg +31 -0
  725. package/lib/assets/img/svg/bottombar/spin_3.svg +31 -0
  726. package/lib/assets/img/svg/bottombar/spin_4.svg +31 -0
  727. package/lib/assets/img/svg/bottombar/spin_5.svg +31 -0
  728. package/lib/assets/img/svg/bottombar/zoomin.svg +29 -0
  729. package/lib/assets/img/svg/bottombar/zoomout.svg +26 -0
  730. package/lib/assets/img/svg/check.svg +10 -0
  731. package/lib/assets/img/svg/close.svg +11 -0
  732. package/lib/assets/img/svg/color/Black.svg +3 -0
  733. package/lib/assets/img/svg/color/Blue.svg +3 -0
  734. package/lib/assets/img/svg/color/Brown.svg +9 -0
  735. package/lib/assets/img/svg/color/Cream.svg +3 -0
  736. package/lib/assets/img/svg/color/Dark.svg +9 -0
  737. package/lib/assets/img/svg/color/Gray.svg +3 -0
  738. package/lib/assets/img/svg/color/Green.svg +3 -0
  739. package/lib/assets/img/svg/color/Light.svg +9 -0
  740. package/lib/assets/img/svg/color/Medium.svg +9 -0
  741. package/lib/assets/img/svg/color/Unfinished.svg +9 -0
  742. package/lib/assets/img/svg/color/White.svg +3 -0
  743. package/lib/assets/img/svg/color/White.svg.bak +3 -0
  744. package/lib/assets/img/svg/color/stone2.jpg +0 -0
  745. package/lib/assets/img/svg/color/wood2.jpg +0 -0
  746. package/lib/assets/img/svg/copy.svg +11 -0
  747. package/lib/assets/img/svg/delete.svg +3 -0
  748. package/lib/assets/img/svg/detail.svg +77 -0
  749. package/lib/assets/img/svg/disclaimer/background.svg +758 -0
  750. package/lib/assets/img/svg/disclaimer/logo-dots.svg +11 -0
  751. package/lib/assets/img/svg/door/Closet.svg +11 -0
  752. package/lib/assets/img/svg/door/Exterior.svg +5 -0
  753. package/lib/assets/img/svg/door/Framed_dorway.svg +5 -0
  754. package/lib/assets/img/svg/door/Frameless_dorway.svg +5 -0
  755. package/lib/assets/img/svg/door/Interior.svg +7 -0
  756. package/lib/assets/img/svg/door/Sliding.svg +5 -0
  757. package/lib/assets/img/svg/doors_closet.svg +47 -0
  758. package/lib/assets/img/svg/doors_exterior.svg +25 -0
  759. package/lib/assets/img/svg/doors_interior.svg +29 -0
  760. package/lib/assets/img/svg/doors_patio.svg +26 -0
  761. package/lib/assets/img/svg/duplicate.svg +11 -0
  762. package/lib/assets/img/svg/duplicate_object_left.svg +32 -0
  763. package/lib/assets/img/svg/duplicate_object_right.svg +32 -0
  764. package/lib/assets/img/svg/filtersActive.svg +19 -0
  765. package/lib/assets/img/svg/firstsetting/L.svg +3 -0
  766. package/lib/assets/img/svg/firstsetting/L2.svg +3 -0
  767. package/lib/assets/img/svg/firstsetting/Open.svg +3 -0
  768. package/lib/assets/img/svg/firstsetting/Square.svg +3 -0
  769. package/lib/assets/img/svg/firstsetting/bar-active.svg +9 -0
  770. package/lib/assets/img/svg/firstsetting/bar-normal.svg +3 -0
  771. package/lib/assets/img/svg/firstsetting/bullet-current.svg +3 -0
  772. package/lib/assets/img/svg/firstsetting/bullet-done.svg +3 -0
  773. package/lib/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
  774. package/lib/assets/img/svg/firstsetting/check-active.svg +3 -0
  775. package/lib/assets/img/svg/firstsetting/check-normal.svg +3 -0
  776. package/lib/assets/img/svg/firstsetting/pencil.svg +11 -0
  777. package/lib/assets/img/svg/green_checkmark.svg +27 -0
  778. package/lib/assets/img/svg/headerbar/assist.svg +3 -0
  779. package/lib/assets/img/svg/headerbar/cart.svg +3 -0
  780. package/lib/assets/img/svg/headerbar/check.svg +10 -0
  781. package/lib/assets/img/svg/headerbar/consult_designer.svg +45 -0
  782. package/lib/assets/img/svg/headerbar/edit_name.svg +26 -0
  783. package/lib/assets/img/svg/headerbar/file-dollar.svg +13 -0
  784. package/lib/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
  785. package/lib/assets/img/svg/headerbar/plus.svg +11 -0
  786. package/lib/assets/img/svg/headerbar/review_quote.svg +44 -0
  787. package/lib/assets/img/svg/headerbar/ruler-measure.svg +11 -0
  788. package/lib/assets/img/svg/headerbar/save.svg +3 -0
  789. package/lib/assets/img/svg/headerbar/setting.svg +75 -0
  790. package/lib/assets/img/svg/help/check.svg +10 -0
  791. package/lib/assets/img/svg/help/search.svg +76 -0
  792. package/lib/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
  793. package/lib/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
  794. package/lib/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
  795. package/lib/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
  796. package/lib/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
  797. package/lib/assets/img/svg/intro/3-retrieve-project.svg +18 -0
  798. package/lib/assets/img/svg/invert.svg +127 -0
  799. package/lib/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
  800. package/lib/assets/img/svg/lefttoolbar/appliance.svg +13 -0
  801. package/lib/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
  802. package/lib/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
  803. package/lib/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
  804. package/lib/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
  805. package/lib/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
  806. package/lib/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
  807. package/lib/assets/img/svg/lefttoolbar/door-style.svg +20 -0
  808. package/lib/assets/img/svg/lefttoolbar/door.svg +12 -0
  809. package/lib/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
  810. package/lib/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
  811. package/lib/assets/img/svg/lefttoolbar/finishing.svg +13 -0
  812. package/lib/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
  813. package/lib/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
  814. package/lib/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
  815. package/lib/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
  816. package/lib/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
  817. package/lib/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
  818. package/lib/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
  819. package/lib/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
  820. package/lib/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
  821. package/lib/assets/img/svg/lefttoolbar/search.svg +76 -0
  822. package/lib/assets/img/svg/lefttoolbar/view_more.svg +86 -0
  823. package/lib/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
  824. package/lib/assets/img/svg/lefttoolbar/window.svg +12 -0
  825. package/lib/assets/img/svg/logo.svg +11 -0
  826. package/lib/assets/img/svg/logo_with_text.svg +25 -0
  827. package/lib/assets/img/svg/menubar/login.svg +84 -0
  828. package/lib/assets/img/svg/menubar/my_projects.svg +85 -0
  829. package/lib/assets/img/svg/menubar/new_project.svg +110 -0
  830. package/lib/assets/img/svg/menubar/save_project.svg +84 -0
  831. package/lib/assets/img/svg/options.svg +3 -0
  832. package/lib/assets/img/svg/positioning.svg +3 -0
  833. package/lib/assets/img/svg/rotate.png +0 -0
  834. package/lib/assets/img/svg/rotate.svg +17 -0
  835. package/lib/assets/img/svg/rotate_object_clockwise.svg +26 -0
  836. package/lib/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
  837. package/lib/assets/img/svg/toggleFilters.svg +19 -0
  838. package/lib/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
  839. package/lib/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
  840. package/lib/assets/img/svg/toolbar/add_button.svg +36 -0
  841. package/lib/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
  842. package/lib/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
  843. package/lib/assets/img/svg/toolbar/add_items_doors.svg +25 -0
  844. package/lib/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
  845. package/lib/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
  846. package/lib/assets/img/svg/toolbar/add_items_windows.svg +28 -0
  847. package/lib/assets/img/svg/toolbar/apply_button.svg +38 -0
  848. package/lib/assets/img/svg/toolbar/arrow-plus.svg +11 -0
  849. package/lib/assets/img/svg/toolbar/backsplash.svg +8 -0
  850. package/lib/assets/img/svg/toolbar/cancel_button.svg +37 -0
  851. package/lib/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
  852. package/lib/assets/img/svg/toolbar/countertop.svg +7 -0
  853. package/lib/assets/img/svg/toolbar/dcm.png +0 -0
  854. package/lib/assets/img/svg/toolbar/dcm_off.svg +12 -0
  855. package/lib/assets/img/svg/toolbar/dcm_on.svg +474 -0
  856. package/lib/assets/img/svg/toolbar/delete_button.svg +37 -0
  857. package/lib/assets/img/svg/toolbar/download.svg +77 -0
  858. package/lib/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
  859. package/lib/assets/img/svg/toolbar/edit_button.svg +75 -0
  860. package/lib/assets/img/svg/toolbar/email_quote_button.svg +44 -0
  861. package/lib/assets/img/svg/toolbar/fbm.png +0 -0
  862. package/lib/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
  863. package/lib/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
  864. package/lib/assets/img/svg/toolbar/floorstyle.svg +9 -0
  865. package/lib/assets/img/svg/toolbar/fmb.png +0 -0
  866. package/lib/assets/img/svg/toolbar/fmb_off.svg +12 -0
  867. package/lib/assets/img/svg/toolbar/fmb_on.svg +489 -0
  868. package/lib/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
  869. package/lib/assets/img/svg/toolbar/get_started_button.svg +41 -0
  870. package/lib/assets/img/svg/toolbar/handles.svg +5 -0
  871. package/lib/assets/img/svg/toolbar/lighting.svg +7 -0
  872. package/lib/assets/img/svg/toolbar/lrm.png +0 -0
  873. package/lib/assets/img/svg/toolbar/lrm_off.svg +12 -0
  874. package/lib/assets/img/svg/toolbar/lrm_on.svg +470 -0
  875. package/lib/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
  876. package/lib/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
  877. package/lib/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
  878. package/lib/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
  879. package/lib/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
  880. package/lib/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
  881. package/lib/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
  882. package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
  883. package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
  884. package/lib/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
  885. package/lib/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
  886. package/lib/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
  887. package/lib/assets/img/svg/toolbar/redo_button.svg +75 -0
  888. package/lib/assets/img/svg/toolbar/redo_button1.svg +75 -0
  889. package/lib/assets/img/svg/toolbar/review_quote_active.svg +14 -0
  890. package/lib/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
  891. package/lib/assets/img/svg/toolbar/save_project_button.svg +44 -0
  892. package/lib/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
  893. package/lib/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
  894. package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -0
  895. package/lib/assets/img/svg/toolbar/style_change_button.svg +47 -0
  896. package/lib/assets/img/svg/toolbar/take_picture.svg +75 -0
  897. package/lib/assets/img/svg/toolbar/undo_button.svg +76 -0
  898. package/lib/assets/img/svg/toolbar/undo_button1.svg +76 -0
  899. package/lib/assets/img/svg/toolbar/use_button.svg +37 -0
  900. package/lib/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
  901. package/lib/assets/img/svg/topbar/edit_active.svg +10 -0
  902. package/lib/assets/img/svg/topbar/edit_inactive.svg +10 -0
  903. package/lib/assets/img/svg/topbar/redo_active.svg +42 -0
  904. package/lib/assets/img/svg/topbar/redo_inactive.svg +23 -0
  905. package/lib/assets/img/svg/topbar/select_all_active.svg +50 -0
  906. package/lib/assets/img/svg/topbar/select_all_inactive.svg +32 -0
  907. package/lib/assets/img/svg/topbar/take_picture_active.svg +51 -0
  908. package/lib/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
  909. package/lib/assets/img/svg/topbar/undo_active.svg +42 -0
  910. package/lib/assets/img/svg/topbar/undo_inactive.svg +23 -0
  911. package/lib/assets/img/svg/warning_info_2d.svg +81 -0
  912. package/lib/assets/img/svg/window/Clear.svg +3 -0
  913. package/lib/assets/img/svg/window/Cross.svg +5 -0
  914. package/lib/assets/img/svg/window/Double_hung.svg +4 -0
  915. package/lib/assets/img/svg/window/Vertical.svg +4 -0
  916. package/lib/assets/img/svg/windows_clear.svg +23 -0
  917. package/lib/assets/img/svg/windows_cross.svg +28 -0
  918. package/lib/assets/img/svg/windows_double_hung.svg +24 -0
  919. package/lib/assets/img/svg/windows_vertical.svg +24 -0
  920. package/lib/assets/img/svg/wizardstep/Custom.svg +3 -0
  921. package/lib/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
  922. package/lib/assets/img/svg/wizardstep/L.svg +3 -0
  923. package/lib/assets/img/svg/wizardstep/L2.svg +3 -0
  924. package/lib/assets/img/svg/wizardstep/Open.svg +3 -0
  925. package/lib/assets/img/svg/wizardstep/Square.svg +3 -0
  926. package/lib/assets/img/svg/wizardstep/bar-active.svg +9 -0
  927. package/lib/assets/img/svg/wizardstep/bar-normal.svg +3 -0
  928. package/lib/assets/img/svg/wizardstep/bullet-current.svg +3 -0
  929. package/lib/assets/img/svg/wizardstep/bullet-done.svg +3 -0
  930. package/lib/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
  931. package/lib/assets/img/svg/wizardstep/check-active.svg +3 -0
  932. package/lib/assets/img/svg/wizardstep/check-normal.svg +3 -0
  933. package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -0
  934. package/lib/assets/img/svg/wizardstep/pencil.svg +11 -0
  935. package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -0
  936. package/lib/assets/img/texture/glass.jpg +0 -0
  937. package/lib/assets/img/texture/steel.jpg +0 -0
  938. package/lib/assets/img/texture/white1px.jpg +0 -0
  939. package/lib/assets/img/texture/wood.jpg +0 -0
  940. package/lib/assets/model/DCM.bin +0 -0
  941. package/lib/assets/model/DCM.fbx +0 -0
  942. package/lib/assets/model/DCM.gltf +1 -0
  943. package/lib/assets/model/FBM.bin +0 -0
  944. package/lib/assets/model/FBM.fbx +0 -0
  945. package/lib/assets/model/FBM.gltf +1 -0
  946. package/lib/assets/model/LRM.bin +0 -0
  947. package/lib/assets/model/LRM.fbx +0 -0
  948. package/lib/assets/model/LRM.gltf +1 -0
  949. package/lib/assets/rtastore_logo.png +0 -0
  950. package/lib/catalog/areas/area/planner-element.js +53 -0
  951. package/lib/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  952. package/lib/catalog/areas/area/textures/grass.jpg +0 -0
  953. package/lib/catalog/areas/area/textures/parquet.jpg +0 -0
  954. package/lib/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  955. package/lib/catalog/areas/area/textures/tile1.jpg +0 -0
  956. package/lib/catalog/back.png +0 -0
  957. package/lib/catalog/catalog.js +272 -0
  958. package/lib/catalog/doors.png +0 -0
  959. package/lib/catalog/doorways.png +0 -0
  960. package/lib/catalog/envMap/nx.hdr +0 -0
  961. package/lib/catalog/envMap/ny.hdr +0 -0
  962. package/lib/catalog/envMap/nz.hdr +0 -0
  963. package/lib/catalog/envMap/px.hdr +0 -0
  964. package/lib/catalog/envMap/py.hdr +0 -0
  965. package/lib/catalog/envMap/pz.hdr +0 -0
  966. package/lib/catalog/export.js +1 -0
  967. package/lib/catalog/factories/area-factory-3d.js +190 -0
  968. package/lib/catalog/factories/area-factory.js +88 -0
  969. package/lib/catalog/factories/export.js +25 -0
  970. package/lib/catalog/factories/wall-factory-3d.js +212 -0
  971. package/lib/catalog/factories/wall-factory.js +279 -0
  972. package/lib/catalog/holes/door-closet/planner-element.js +232 -0
  973. package/lib/catalog/holes/door-double/door_double.png +0 -0
  974. package/lib/catalog/holes/door-double/planner-element.js +325 -0
  975. package/lib/catalog/holes/door-exterior/planner-element.js +225 -0
  976. package/lib/catalog/holes/door-interior/planner-element.js +237 -0
  977. package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
  978. package/lib/catalog/holes/door-panic/planner-element.js +513 -0
  979. package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  980. package/lib/catalog/holes/door-panic-double/planner-element.js +473 -0
  981. package/lib/catalog/holes/door-sliding/planner-element.js +235 -0
  982. package/lib/catalog/holes/doorway-framed/planner-element.js +155 -0
  983. package/lib/catalog/holes/doorway-frameless/planner-element.js +114 -0
  984. package/lib/catalog/holes/export.js +97 -0
  985. package/lib/catalog/holes/gate/gate.jpg +0 -0
  986. package/lib/catalog/holes/window-clear/planner-element.js +176 -0
  987. package/lib/catalog/holes/window-clear/texture.png +0 -0
  988. package/lib/catalog/holes/window-cross/planner-element.js +175 -0
  989. package/lib/catalog/holes/window-cross/texture.png +0 -0
  990. package/lib/catalog/holes/window-double-hung/planner-element.js +313 -0
  991. package/lib/catalog/holes/window-double-hung/texture.png +0 -0
  992. package/lib/catalog/holes/window-vertical/planner-element.js +286 -0
  993. package/lib/catalog/holes/window-vertical/texture.png +0 -0
  994. package/lib/catalog/lines/wall/planner-element.js +87 -0
  995. package/lib/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  996. package/lib/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  997. package/lib/catalog/lines/wall/textures/bricks.jpg +0 -0
  998. package/lib/catalog/lines/wall/textures/bricks2.jpg +0 -0
  999. package/lib/catalog/lines/wall/textures/bricks3.jpg +0 -0
  1000. package/lib/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  1001. package/lib/catalog/lines/wall/textures/morden.jpg +0 -0
  1002. package/lib/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  1003. package/lib/catalog/lines/wall/textures/painted.jpg +0 -0
  1004. package/lib/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  1005. package/lib/catalog/lines/wall/textures/plaster.jpg +0 -0
  1006. package/lib/catalog/lines/wall/wall.png +0 -0
  1007. package/lib/catalog/molding/molding-dcm/planner-element.js +33 -0
  1008. package/lib/catalog/molding/molding-dcm/texture.png +0 -0
  1009. package/lib/catalog/molding/molding-fbm/planner-element.js +33 -0
  1010. package/lib/catalog/molding/molding-fbm/texture.png +0 -0
  1011. package/lib/catalog/molding/molding-lrm/planner-element.js +33 -0
  1012. package/lib/catalog/molding/molding-lrm/texture.png +0 -0
  1013. package/lib/catalog/properties/export.js +81 -0
  1014. package/lib/catalog/properties/property-checkbox.js +76 -0
  1015. package/lib/catalog/properties/property-color.js +47 -0
  1016. package/lib/catalog/properties/property-enum.js +58 -0
  1017. package/lib/catalog/properties/property-hidden.js +27 -0
  1018. package/lib/catalog/properties/property-lenght-measure.js +108 -0
  1019. package/lib/catalog/properties/property-length-measure.js +92 -0
  1020. package/lib/catalog/properties/property-length-measure_hole.js +108 -0
  1021. package/lib/catalog/properties/property-number.js +56 -0
  1022. package/lib/catalog/properties/property-read-only.js +34 -0
  1023. package/lib/catalog/properties/property-string.js +56 -0
  1024. package/lib/catalog/properties/property-toggle.js +47 -0
  1025. package/lib/catalog/properties/shared-property-style.js +21 -0
  1026. package/lib/catalog/utils/FuseUtils.js +87 -0
  1027. package/lib/catalog/utils/exporter.js +157 -0
  1028. package/lib/catalog/utils/geom-utils.js +205 -0
  1029. package/lib/catalog/utils/item-loader.js +1608 -0
  1030. package/lib/catalog/utils/load-obj.js +99 -0
  1031. package/lib/catalog/utils/mtl-loader.js +366 -0
  1032. package/lib/catalog/utils/obj-loader.js +486 -0
  1033. package/lib/catalog/windows.png +0 -0
  1034. package/lib/class/FuseUtils.js +87 -0
  1035. package/lib/class/area.js +148 -0
  1036. package/lib/class/export.js +96 -0
  1037. package/lib/class/group.js +438 -0
  1038. package/lib/class/guide.js +64 -0
  1039. package/lib/class/hole.js +932 -0
  1040. package/lib/class/item.js +1852 -0
  1041. package/lib/class/layer.js +670 -0
  1042. package/lib/class/line.js +1230 -0
  1043. package/lib/class/project.js +804 -0
  1044. package/lib/class/vertex.js +205 -0
  1045. package/lib/components/content.js +142 -0
  1046. package/lib/components/export.js +7 -0
  1047. package/lib/components/style/button.js +115 -0
  1048. package/lib/components/style/cancel-button.js +29 -0
  1049. package/lib/components/style/content-container.js +38 -0
  1050. package/lib/components/style/content-title.js +35 -0
  1051. package/lib/components/style/delete-button.js +34 -0
  1052. package/lib/components/style/export.js +121 -0
  1053. package/lib/components/style/form-block.js +28 -0
  1054. package/lib/components/style/form-color-input.js +34 -0
  1055. package/lib/components/style/form-label.js +30 -0
  1056. package/lib/components/style/form-number-input.js +192 -0
  1057. package/lib/components/style/form-number-input_2.js +209 -0
  1058. package/lib/components/style/form-select.js +29 -0
  1059. package/lib/components/style/form-slider.js +68 -0
  1060. package/lib/components/style/form-submit-button.js +35 -0
  1061. package/lib/components/style/form-text-input.js +78 -0
  1062. package/lib/components/viewer2d/area.js +89 -0
  1063. package/lib/components/viewer2d/export.js +121 -0
  1064. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
  1065. package/lib/components/viewer2d/grids/grid-streak.js +44 -0
  1066. package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
  1067. package/lib/components/viewer2d/grids/grids.js +40 -0
  1068. package/lib/components/viewer2d/group.js +63 -0
  1069. package/lib/components/viewer2d/item.js +457 -0
  1070. package/lib/components/viewer2d/layer.js +172 -0
  1071. package/lib/components/viewer2d/line.js +975 -0
  1072. package/lib/components/viewer2d/ruler.js +87 -0
  1073. package/lib/components/viewer2d/rulerDist.js +140 -0
  1074. package/lib/components/viewer2d/rulerX.js +154 -0
  1075. package/lib/components/viewer2d/rulerY.js +156 -0
  1076. package/lib/components/viewer2d/scene.js +137 -0
  1077. package/lib/components/viewer2d/snap.js +84 -0
  1078. package/lib/components/viewer2d/state.js +83 -0
  1079. package/lib/components/viewer2d/utils.js +200 -0
  1080. package/lib/components/viewer2d/vertex.js +75 -0
  1081. package/lib/components/viewer2d/viewer2d.js +1444 -0
  1082. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2591 -0
  1083. package/lib/components/viewer3d/dcm.js +408 -0
  1084. package/lib/components/viewer3d/fbm.js +421 -0
  1085. package/lib/components/viewer3d/front3D.js +71 -0
  1086. package/lib/components/viewer3d/grid-creator.js +35 -0
  1087. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +45 -0
  1088. package/lib/components/viewer3d/grids/grid-streak.js +36 -0
  1089. package/lib/components/viewer3d/grids/grid-vertical-streak.js +45 -0
  1090. package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
  1091. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
  1092. package/lib/components/viewer3d/libs/mtl-loader.js +366 -0
  1093. package/lib/components/viewer3d/libs/obj-loader.js +471 -0
  1094. package/lib/components/viewer3d/libs/orbit-controls.js +706 -0
  1095. package/lib/components/viewer3d/libs/pointer-lock-controls.js +53 -0
  1096. package/lib/components/viewer3d/lrm.js +312 -0
  1097. package/lib/components/viewer3d/model.js +714 -0
  1098. package/lib/components/viewer3d/pointer-lock-navigation.js +122 -0
  1099. package/lib/components/viewer3d/ruler-utils/itemRect.js +69 -0
  1100. package/lib/components/viewer3d/ruler-utils/layer3D.js +503 -0
  1101. package/lib/components/viewer3d/ruler-utils/ruler3D.js +232 -0
  1102. package/lib/components/viewer3d/ruler-utils/scene3D.js +67 -0
  1103. package/lib/components/viewer3d/ruler-utils/state3D.js +26 -0
  1104. package/lib/components/viewer3d/scene-creator.js +3652 -0
  1105. package/lib/components/viewer3d/three-memory-cleaner.js +60 -0
  1106. package/lib/components/viewer3d/viewer3d-first-person.js +316 -0
  1107. package/lib/components/viewer3d/viewer3d.js +2661 -0
  1108. package/lib/constants.js +697 -0
  1109. package/lib/devLiteRenderer.js +320 -0
  1110. package/lib/index.js +64 -0
  1111. package/lib/models.js +513 -0
  1112. package/lib/plugins/SVGLoader.js +1417 -0
  1113. package/lib/plugins/console-debugger.js +42 -0
  1114. package/lib/plugins/export.js +25 -0
  1115. package/lib/plugins/keyboard.js +108 -0
  1116. package/lib/reducers/areas-reducer.js +19 -0
  1117. package/lib/reducers/export.js +97 -0
  1118. package/lib/reducers/groups-reducer.js +45 -0
  1119. package/lib/reducers/holes-reducer.js +69 -0
  1120. package/lib/reducers/items-reducer.js +151 -0
  1121. package/lib/reducers/lines-reducer.js +52 -0
  1122. package/lib/reducers/project-reducer.js +138 -0
  1123. package/lib/reducers/reducer.js +26 -0
  1124. package/lib/reducers/scene-reducer.js +35 -0
  1125. package/lib/reducers/user-reducer.js +48 -0
  1126. package/lib/reducers/vertices-reducer.js +26 -0
  1127. package/lib/reducers/viewer2d-reducer.js +82 -0
  1128. package/lib/reducers/viewer3d-reducer.js +63 -0
  1129. package/lib/shared-style.js +72 -0
  1130. package/lib/styles/export.js +13 -0
  1131. package/lib/styles/tabs.css +40 -0
  1132. package/lib/translator/en.js +111 -0
  1133. package/lib/translator/it.js +86 -0
  1134. package/lib/translator/ru.js +86 -0
  1135. package/lib/translator/translator.js +87 -0
  1136. package/lib/utils/browser.js +40 -0
  1137. package/lib/utils/convert-units-lite.js +35 -0
  1138. package/lib/utils/email-validator.js +10 -0
  1139. package/lib/utils/export.js +56 -0
  1140. package/lib/utils/geometry.js +2545 -0
  1141. package/lib/utils/get-edges-of-subgraphs.js +33 -0
  1142. package/lib/utils/graph-cycles.js +239 -0
  1143. package/lib/utils/graph-inner-cycles.js +54 -0
  1144. package/lib/utils/graph.js +153 -0
  1145. package/lib/utils/helper.js +358 -0
  1146. package/lib/utils/history.js +36 -0
  1147. package/lib/utils/id-broker.js +22 -0
  1148. package/lib/utils/isolate-event-handler.js +691 -0
  1149. package/lib/utils/logger.js +14 -0
  1150. package/lib/utils/math.js +57 -0
  1151. package/lib/utils/molding.js +890 -0
  1152. package/lib/utils/name-generator.js +21 -0
  1153. package/lib/utils/objects-utils.js +62 -0
  1154. package/lib/utils/phone-validator.js +10 -0
  1155. package/lib/utils/process-black-list.js +22 -0
  1156. package/lib/utils/react-if.js +25 -0
  1157. package/lib/utils/snap-scene.js +101 -0
  1158. package/lib/utils/snap.js +245 -0
  1159. package/lib/utils/summarizeCart.js +30 -0
  1160. package/lib/utils/threeCSG.es6.js +504 -0
  1161. package/lib/version.js +7 -0
  1162. package/package.json +93 -86
  1163. package/dist/index.js +0 -3
  1164. package/dist/index.js.LICENSE.txt +0 -55
  1165. package/dist/index.js.map +0 -1
@@ -0,0 +1,1221 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
2
+ import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
3
+ import _createClass from "@babel/runtime/helpers/esm/createClass";
4
+ import { fromJS, List, Map } from 'immutable';
5
+ import { Group, Hole, Layer, Vertex } from "./export";
6
+ import { GeometryUtils, history, IDBroker, NameGenerator, SnapSceneUtils, SnapUtils } from "../utils/export";
7
+ import * as Three from 'three';
8
+ import { END_DRAGGING_LINE, END_DRAGGING_VERTEX, END_DRAWING_LINE, EPSILON, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_DRAGGING_LINE, MODE_DRAWING_LINE, MODE_IDLE, MODE_WAITING_DRAWING_LINE, UNIT_ANGLE } from "../constants";
9
+ import { isEmpty } from "../utils/helper";
10
+ var timeGlobal = 0;
11
+ var TimeRecorder = /*#__PURE__*/function () {
12
+ function TimeRecorder(name) {
13
+ _classCallCheck(this, TimeRecorder);
14
+ this.name = name;
15
+ if (name === 'beginDrawingLine') {
16
+ console.log('time__ Start Drawing');
17
+ }
18
+ }
19
+ return _createClass(TimeRecorder, [{
20
+ key: "start",
21
+ value: function start() {
22
+ this.first = Date.now();
23
+ }
24
+ }, {
25
+ key: "end",
26
+ value: function end() {
27
+ this.second = Date.now();
28
+ var elapsed = this.second - this.first;
29
+ console.log('time__ ', this.name, ' : ', elapsed, 'ms');
30
+ if (['beginDrawingLine', 'updateDrawingLine', 'endDrawingLine'].includes(this.name)) timeGlobal += elapsed;
31
+ if (this.name === 'endDrawingLine') {
32
+ console.log('time__ Drawing Ended. Passed Time : ', timeGlobal, 'ms');
33
+ timeGlobal = 0;
34
+ }
35
+ }
36
+ }]);
37
+ }();
38
+ var Line = /*#__PURE__*/function () {
39
+ function Line() {
40
+ _classCallCheck(this, Line);
41
+ }
42
+ return _createClass(Line, null, [{
43
+ key: "create",
44
+ value: function create(state, layerID, type, x0, y0, x1, y1, properties) {
45
+ var lineCreatedDateTime = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : new Date().getTime();
46
+ // if end drawing by created area
47
+ // if (state.mode == MODE_IDLE) {
48
+ // return { updatedState: state };
49
+ // }
50
+ // ///////////////
51
+ var lineID = IDBroker.acquireID();
52
+ var _Vertex$add = Vertex.add(state, layerID, x0, y0, 'lines', lineID),
53
+ stateV0 = _Vertex$add.updatedState,
54
+ v0 = _Vertex$add.vertex;
55
+ var _Vertex$add2 = Vertex.add(stateV0, layerID, x1, y1, 'lines', lineID),
56
+ stateV1 = _Vertex$add2.updatedState,
57
+ v1 = _Vertex$add2.vertex;
58
+ state = stateV1;
59
+ var line = state.catalog.factoryElement(type, {
60
+ id: lineID,
61
+ name: NameGenerator.generateName('lines', state.catalog.getIn(['elements', type, 'info', 'title'])),
62
+ vertices: new List([v0.id, v1.id]),
63
+ type: type
64
+ }, properties);
65
+ line = line.set('createdDateTime', lineCreatedDateTime !== undefined ? lineCreatedDateTime : new Date().getTime());
66
+ state = state.setIn(['scene', 'layers', layerID, 'lines', lineID], line);
67
+ // set default texture//
68
+ var defaultTexture = {
69
+ textureA: 'plaster',
70
+ textureB: 'plaster'
71
+ };
72
+ state = this.setJsProperties(state, layerID, lineID, defaultTexture).updatedState;
73
+ // /////////////////////
74
+ return {
75
+ updatedState: state,
76
+ line: line
77
+ };
78
+ }
79
+ }, {
80
+ key: "select",
81
+ value: function select(state, layerID, lineID) {
82
+ var _line$toJS, _line$vertices, _line$vertices$get, _line$vertices2, _line$vertices2$get;
83
+ // Try selecting the layer first
84
+ var layerResult = Layer.select(state, layerID);
85
+ if (!layerResult || !layerResult.updatedState) {
86
+ return {
87
+ updatedState: state
88
+ }; // no update if layer not found
89
+ }
90
+ state = layerResult.updatedState;
91
+
92
+ // Try getting the line
93
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
94
+ if (!line || isEmpty((_line$toJS = line.toJS) === null || _line$toJS === void 0 ? void 0 : _line$toJS.call(line))) {
95
+ return {
96
+ updatedState: state
97
+ }; // no update if line not found
98
+ }
99
+
100
+ // Select the line element
101
+ var lineSelectResult = Layer.selectElement(state, layerID, 'lines', lineID);
102
+ if (lineSelectResult !== null && lineSelectResult !== void 0 && lineSelectResult.updatedState) {
103
+ state = lineSelectResult.updatedState;
104
+ }
105
+
106
+ // Select the first vertex (if available)
107
+ var firstVertex = (_line$vertices = line.vertices) === null || _line$vertices === void 0 || (_line$vertices$get = _line$vertices.get) === null || _line$vertices$get === void 0 ? void 0 : _line$vertices$get.call(_line$vertices, 0);
108
+ if (firstVertex !== undefined) {
109
+ var v1Result = Layer.selectElement(state, layerID, 'vertices', firstVertex);
110
+ if (v1Result !== null && v1Result !== void 0 && v1Result.updatedState) {
111
+ state = v1Result.updatedState;
112
+ }
113
+ }
114
+
115
+ // Select the second vertex (if available)
116
+ var secondVertex = (_line$vertices2 = line.vertices) === null || _line$vertices2 === void 0 || (_line$vertices2$get = _line$vertices2.get) === null || _line$vertices2$get === void 0 ? void 0 : _line$vertices2$get.call(_line$vertices2, 1);
117
+ if (secondVertex !== undefined) {
118
+ var v2Result = Layer.selectElement(state, layerID, 'vertices', secondVertex);
119
+ if (v2Result !== null && v2Result !== void 0 && v2Result.updatedState) {
120
+ state = v2Result.updatedState;
121
+ }
122
+ }
123
+ return {
124
+ updatedState: state
125
+ };
126
+ }
127
+ }, {
128
+ key: "remove",
129
+ value: function remove(state, layerID, lineID) {
130
+ var _line$toJS2;
131
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
132
+ if (line && !isEmpty((_line$toJS2 = line.toJS) === null || _line$toJS2 === void 0 ? void 0 : _line$toJS2.call(line))) {
133
+ state = this.unselect(state, layerID, lineID).updatedState;
134
+ line.holes.forEach(function (holeID) {
135
+ return state = Hole.remove(state, layerID, holeID).updatedState;
136
+ });
137
+ state = Layer.removeElement(state, layerID, 'lines', lineID).updatedState;
138
+ line.vertices.forEach(function (vertexID) {
139
+ return state = Vertex.remove(state, layerID, vertexID, 'lines', lineID).updatedState;
140
+ });
141
+ state.getIn(['scene', 'groups']).forEach(function (group) {
142
+ return state = Group.removeElement(state, group.id, layerID, 'lines', lineID).updatedState;
143
+ });
144
+ }
145
+ return {
146
+ updatedState: state
147
+ };
148
+ }
149
+ }, {
150
+ key: "setRelatedLine",
151
+ value: function setRelatedLine(state, layerID, lineID, intersection) {
152
+ var curIntersection = state.getIn(['scene', 'layers', layerID, 'lines', lineID, 'relatedVertices']);
153
+ if (curIntersection == undefined) return {
154
+ updatedState: state
155
+ };
156
+ var isEqualIntersection = function isEqualIntersection(a, b) {
157
+ return a.index == b.index && a.point.x == b.point.x && a.point.y == b.point.y;
158
+ };
159
+ var equal = curIntersection.size == intersection.length && curIntersection.every(function (curint, index) {
160
+ return isEqualIntersection(curint, intersection[index]);
161
+ });
162
+ if (!equal) state = state.mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'relatedVertices'], intersection);
163
+ return {
164
+ updatedState: state
165
+ };
166
+ }
167
+ }, {
168
+ key: "unselect",
169
+ value: function unselect(state, layerID, lineID) {
170
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
171
+ if (line) {
172
+ state = Layer.unselect(state, layerID, 'vertices', line.vertices.get(0)).updatedState;
173
+ state = Layer.unselect(state, layerID, 'vertices', line.vertices.get(1)).updatedState;
174
+ state = Layer.unselect(state, layerID, 'lines', lineID).updatedState;
175
+ }
176
+ return {
177
+ updatedState: state
178
+ };
179
+ }
180
+ }, {
181
+ key: "split",
182
+ value: function split(state, layerID, lineID, x, y) {
183
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
184
+ var v0 = state.getIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(0)]);
185
+ var v1 = state.getIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(1)]);
186
+ var x0 = v0.x,
187
+ y0 = v0.y;
188
+ var x1 = v1.x,
189
+ y1 = v1.y;
190
+ var _Line$create = Line.create(state, layerID, line.type, x0, y0, x, y, line.get('properties'), line.createdDateTime !== undefined ? line.createdDateTime - 2 : new Date().getTime()),
191
+ stateL1 = _Line$create.updatedState,
192
+ line0 = _Line$create.line;
193
+ var _Line$create2 = Line.create(stateL1, layerID, line.type, x1, y1, x, y, line.get('properties'), line.createdDateTime !== undefined ? line.createdDateTime - 1 : new Date().getTime()),
194
+ stateL2 = _Line$create2.updatedState,
195
+ line1 = _Line$create2.line;
196
+ state = stateL2;
197
+ var splitPointOffset = GeometryUtils.pointPositionOnLineSegment(x0, y0, x1, y1, x, y);
198
+ var minVertex = GeometryUtils.minVertex(v0, v1);
199
+ line.holes.forEach(function (holeID) {
200
+ var hole = state.getIn(['scene', 'layers', layerID, 'holes', holeID]);
201
+ var holeOffset = hole.offset;
202
+ if (minVertex.x === x1 && minVertex.y === y1) {
203
+ splitPointOffset = 1 - splitPointOffset;
204
+ holeOffset = 1 - hole.offset;
205
+ }
206
+ if (holeOffset < splitPointOffset) {
207
+ var offset = holeOffset / splitPointOffset;
208
+ /*
209
+ if (minVertex.x === x1 && minVertex.y === y1) {
210
+ offset = 1 - offset;
211
+ }
212
+ */
213
+ state = Hole.create(state, layerID, hole.type, line0.id, offset, hole.properties).updatedState;
214
+ } else {
215
+ var _offset = (holeOffset - splitPointOffset) / (1 - splitPointOffset);
216
+ /*
217
+ if (minVertex.x === x1 && minVertex.y === y1) {
218
+ offset = 1 - offset;
219
+ }
220
+ */
221
+ state = Hole.create(state, layerID, hole.type, line1.id, _offset, hole.properties).updatedState;
222
+ }
223
+ });
224
+
225
+ //add splitted lines to the original line's group
226
+ var lineGroups = state.getIn(['scene', 'groups']).filter(function (group) {
227
+ var lines = group.getIn(['elements', layerID, 'lines']);
228
+ return lines && lines.contains(lineID);
229
+ });
230
+ lineGroups.forEach(function (group) {
231
+ state = Group.addElement(state, group.id, layerID, 'lines', line0.id).updatedState;
232
+ state = Group.addElement(state, group.id, layerID, 'lines', line1.id).updatedState;
233
+ });
234
+ state = Line.remove(state, layerID, lineID).updatedState;
235
+ return {
236
+ updatedState: state,
237
+ lines: new List([line0, line1])
238
+ };
239
+ }
240
+ }, {
241
+ key: "addFromPoints",
242
+ value: function addFromPoints(state, layerID, type, points, properties, holes) {
243
+ var _this = this;
244
+ var lineCreatedDateTime = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : new Date().getTime();
245
+ points = new List(points).sort(function (_ref, _ref2) {
246
+ var x1 = _ref.x,
247
+ y1 = _ref.y;
248
+ var x2 = _ref2.x,
249
+ y2 = _ref2.y;
250
+ return x1 === x2 ? y1 - y2 : x1 - x2;
251
+ });
252
+ var pointsPair = points.zip(points.skip(1)).filterNot(function (_ref3) {
253
+ var _ref4 = _slicedToArray(_ref3, 2),
254
+ _ref4$ = _ref4[0],
255
+ x1 = _ref4$.x,
256
+ y1 = _ref4$.y,
257
+ _ref4$2 = _ref4[1],
258
+ x2 = _ref4$2.x,
259
+ y2 = _ref4$2.y;
260
+ return x1 === x2 && y1 === y2;
261
+ });
262
+ var lines = [];
263
+ pointsPair.forEach(function (_ref5) {
264
+ var _ref6 = _slicedToArray(_ref5, 2),
265
+ _ref6$ = _ref6[0],
266
+ x1 = _ref6$.x,
267
+ y1 = _ref6$.y,
268
+ _ref6$2 = _ref6[1],
269
+ x2 = _ref6$2.x,
270
+ y2 = _ref6$2.y;
271
+ var _this$create = _this.create(state, layerID, type, x1, y1, x2, y2, properties, lineCreatedDateTime),
272
+ stateL = _this$create.updatedState,
273
+ line = _this$create.line;
274
+ state = stateL;
275
+ var lineLength = GeometryUtils.pointsDistance(x1, y1, x2, y2);
276
+ var alpha = GeometryUtils.absAngleBetweenTwoPoints(x1, y1, x2, y2);
277
+ var cosAlpha = GeometryUtils.cosWithThreshold(Math.abs(alpha), 0.0000001);
278
+ var sinAlpha = GeometryUtils.sinWithThreshold(Math.abs(alpha), 0.0000001);
279
+ if (holes) {
280
+ holes.forEach(function (holeWithOffsetPoint) {
281
+ var offset = holeWithOffsetPoint.hole.toJS().offset;
282
+ // if (invert) offset = 1 - offset;
283
+ var _holeWithOffsetPoint$ = holeWithOffsetPoint.offsetPosition,
284
+ xp = _holeWithOffsetPoint$.x,
285
+ yp = _holeWithOffsetPoint$.y;
286
+ if (GeometryUtils.isPointOnLineSegment(x1, y1, x2, y2, xp, yp)) {
287
+ var newOffset = GeometryUtils.pointPositionOnLineSegment(x1, y1, x2, y2, xp, yp);
288
+ if (newOffset >= 0 && newOffset <= 1) {
289
+ //add the position of hole
290
+ var temp = Hole.create(state, layerID, holeWithOffsetPoint.hole.type, line.id, newOffset, holeWithOffsetPoint.hole.properties, xp, yp);
291
+ state = temp.updatedState;
292
+ var holeX = 0,
293
+ holeY = 0,
294
+ holeID = temp.hole.id;
295
+ if (GeometryUtils.almostEqual(y1, y2)) {
296
+ if (x1 > x2) {
297
+ holeX = x1 - lineLength * newOffset;
298
+ holeY = y1;
299
+ } else {
300
+ holeX = x1 + lineLength * newOffset;
301
+ holeY = y1;
302
+ }
303
+ } else if (GeometryUtils.almostEqual(x1, x2)) {
304
+ if (y1 > y2) {
305
+ holeX = x1;
306
+ holeY = y1 - lineLength * newOffset;
307
+ } else {
308
+ holeX = x1;
309
+ holeY = y1 + lineLength * newOffset;
310
+ }
311
+ } else if (x1 > x2) {
312
+ if (y1 > y2) {
313
+ holeX = x1 - lineLength * newOffset * cosAlpha;
314
+ holeY = y1 - lineLength * newOffset * sinAlpha;
315
+ } else if (y1 < y2) {
316
+ holeX = x1 - lineLength * newOffset * cosAlpha;
317
+ holeY = y1 + lineLength * newOffset * sinAlpha;
318
+ }
319
+ } else if (x1 < x2) {
320
+ if (y1 > y2) {
321
+ holeX = x1 + lineLength * newOffset * cosAlpha;
322
+ holeY = y1 - lineLength * newOffset * sinAlpha;
323
+ } else if (y1 < y2) {
324
+ holeX = x1 + lineLength * newOffset * cosAlpha;
325
+ holeY = y1 + lineLength * newOffset * sinAlpha;
326
+ }
327
+ }
328
+ state = state.setIn(['scene', 'layers', layerID, 'holes', holeID, 'x'], holeX);
329
+ state = state.setIn(['scene', 'layers', layerID, 'holes', holeID, 'y'], holeY);
330
+ }
331
+ }
332
+ });
333
+ }
334
+ lines.push(line);
335
+ });
336
+ return {
337
+ updatedState: state,
338
+ lines: new List(lines),
339
+ newline: lines[0]
340
+ };
341
+ }
342
+ }, {
343
+ key: "createAvoidingIntersections",
344
+ value: function createAvoidingIntersections(state, layerID, type, x0, y0, x1, y1, oldProperties, oldHoles) {
345
+ var _this2 = this;
346
+ var lineCreatedDateTime = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : new Date().getTime();
347
+ var points = [{
348
+ x: x0,
349
+ y: y0
350
+ }, {
351
+ x: x1,
352
+ y: y1
353
+ }];
354
+ state = state.getIn(['scene', 'layers', layerID, 'lines']).reduce(function (reducedState, line) {
355
+ var _line$vertices$map$to = line.vertices.map(function (vertexID) {
356
+ return reducedState.getIn(['scene', 'layers', layerID, 'vertices']).get(vertexID);
357
+ }).toArray(),
358
+ _line$vertices$map$to2 = _slicedToArray(_line$vertices$map$to, 2),
359
+ v0 = _line$vertices$map$to2[0],
360
+ v1 = _line$vertices$map$to2[1];
361
+ var hasCommonEndpoint = GeometryUtils.samePoints(v0, points[0]) || GeometryUtils.samePoints(v0, points[1]) || GeometryUtils.samePoints(v1, points[0]) || GeometryUtils.samePoints(v1, points[1]);
362
+ var intersection = GeometryUtils.twoLineSegmentsIntersection(points[0], points[1], v0, v1);
363
+ if (intersection.type === 'colinear') {
364
+ if (!oldHoles) {
365
+ oldHoles = [];
366
+ }
367
+ var orderedVertices = GeometryUtils.orderVertices(points);
368
+ reducedState.getIn(['scene', 'layers', layerID, 'lines', line.id, 'holes']).forEach(function (holeID) {
369
+ var hole = reducedState.getIn(['scene', 'layers', layerID, 'holes', holeID]);
370
+ var oldLineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);
371
+ var offset = GeometryUtils.samePoints(orderedVertices[1], line.vertices.get(1)) ? 1 - hole.offset : hole.offset;
372
+ var offsetPosition = GeometryUtils.extendLine(v0.x, v0.y, v1.x, v1.y, oldLineLength * offset);
373
+ oldHoles.push({
374
+ hole: hole,
375
+ offsetPosition: offsetPosition
376
+ });
377
+ });
378
+ reducedState = _this2.remove(reducedState, layerID, line.id).updatedState;
379
+ points.push(v0, v1);
380
+ }
381
+ if (intersection.type === 'intersecting' && !hasCommonEndpoint) {
382
+ reducedState = _this2.split(reducedState, layerID, line.id, intersection.point.x, intersection.point.y).updatedState;
383
+ points.push(intersection.point);
384
+ }
385
+ return reducedState;
386
+ }, state);
387
+ var _Line$addFromPoints = Line.addFromPoints(state, layerID, type, points, oldProperties, oldHoles, lineCreatedDateTime),
388
+ updatedState = _Line$addFromPoints.updatedState,
389
+ lines = _Line$addFromPoints.lines,
390
+ newline = _Line$addFromPoints.newline;
391
+ return {
392
+ updatedState: updatedState,
393
+ lines: lines,
394
+ newline: newline
395
+ };
396
+ }
397
+ }, {
398
+ key: "replaceVertex",
399
+ value: function replaceVertex(state, layerID, lineID, vertexIndex, x, y) {
400
+ var vertexID = state.getIn(['scene', 'layers', layerID, 'lines', lineID, 'vertices', vertexIndex]);
401
+ state = Vertex.remove(state, layerID, vertexID, 'lines', lineID).updatedState;
402
+ var _Vertex$add3 = Vertex.add(state, layerID, x, y, 'lines', lineID),
403
+ stateV = _Vertex$add3.updatedState,
404
+ vertex = _Vertex$add3.vertex;
405
+ state = stateV;
406
+ state = state.setIn(['scene', 'layers', layerID, 'lines', lineID, 'vertices', vertexIndex], vertex.id);
407
+ state = state.setIn(['scene', 'layers', layerID, 'lines', lineID], state.getIn(['scene', 'layers', layerID, 'lines', lineID]));
408
+ return {
409
+ updatedState: state,
410
+ line: state.getIn(['scene', 'layers', layerID, 'lines', lineID]),
411
+ vertex: vertex
412
+ };
413
+ }
414
+ }, {
415
+ key: "selectToolDrawingLine",
416
+ value: function selectToolDrawingLine(state, sceneComponentType) {
417
+ state = state.merge({
418
+ mode: MODE_WAITING_DRAWING_LINE,
419
+ drawingSupport: new Map({
420
+ type: sceneComponentType
421
+ })
422
+ });
423
+ return {
424
+ updatedState: state
425
+ };
426
+ }
427
+ }, {
428
+ key: "beginDrawingLine",
429
+ value: function beginDrawingLine(state, layerID, x, y) {
430
+ // if end drawing by created area
431
+ if (state.mode == MODE_IDLE) {
432
+ return {
433
+ updatedState: state
434
+ };
435
+ }
436
+ // ///////////////
437
+ var snapElements = SnapSceneUtils.sceneSnapElements(state.scene, new List(), state.snapMask);
438
+ var snap = null;
439
+ if (state.snapMask && !state.snapMask.isEmpty()) {
440
+ snap = SnapUtils.nearestSnap(snapElements, x, y, state.snapMask);
441
+ if (snap) {
442
+ var _snap$point = snap.point;
443
+ x = _snap$point.x;
444
+ y = _snap$point.y;
445
+ }
446
+ snapElements = snapElements.withMutations(function (snapElements) {
447
+ var a, b, c;
448
+ var _GeometryUtils$horizo = GeometryUtils.horizontalLine(y);
449
+ a = _GeometryUtils$horizo.a;
450
+ b = _GeometryUtils$horizo.b;
451
+ c = _GeometryUtils$horizo.c;
452
+ SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);
453
+ var _GeometryUtils$vertic = GeometryUtils.verticalLine(x);
454
+ a = _GeometryUtils$vertic.a;
455
+ b = _GeometryUtils$vertic.b;
456
+ c = _GeometryUtils$vertic.c;
457
+ SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);
458
+ var _GeometryUtils$upcros = GeometryUtils.upcrossLine(x, y);
459
+ a = _GeometryUtils$upcros.a;
460
+ b = _GeometryUtils$upcros.b;
461
+ c = _GeometryUtils$upcros.c;
462
+ SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);
463
+ var _GeometryUtils$downcr = GeometryUtils.downcrossLine(x, y);
464
+ a = _GeometryUtils$downcr.a;
465
+ b = _GeometryUtils$downcr.b;
466
+ c = _GeometryUtils$downcr.c;
467
+ SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);
468
+ });
469
+ }
470
+ var drawingSupport = state.get('drawingSupport').set('layerID', layerID);
471
+ state = Layer.unselectAll(state, layerID).updatedState;
472
+ var _Line$create3 = Line.create(state, layerID, drawingSupport.get('type'), x, y, x, y),
473
+ stateL = _Line$create3.updatedState,
474
+ line = _Line$create3.line;
475
+ state = Line.select(stateL, layerID, line.id).updatedState;
476
+ state = state.merge({
477
+ mode: MODE_DRAWING_LINE,
478
+ snapElements: snapElements,
479
+ activeSnapElement: snap ? snap.snap : null,
480
+ drawingSupport: drawingSupport
481
+ });
482
+ return {
483
+ updatedState: state
484
+ };
485
+ }
486
+ }, {
487
+ key: "updateDrawingLine",
488
+ value: function updateDrawingLine(state, x, y, relatedLines) {
489
+ var snap = null;
490
+ if (state.snapMask && !state.snapMask.isEmpty()) {
491
+ snap = SnapUtils.nearestSnap(state.snapElements, x, y, state.snapMask);
492
+ if (snap) {
493
+ var _snap$point2 = snap.point;
494
+ x = _snap$point2.x;
495
+ y = _snap$point2.y;
496
+ }
497
+ }
498
+ var layerID = state.getIn(['drawingSupport', 'layerID']);
499
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
500
+
501
+ // let relatedLines = [];
502
+ var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
503
+ var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
504
+ var moveFlag = [];
505
+ var tx = vertices[drawingLine.vertices[1]].x;
506
+ var ty = vertices[drawingLine.vertices[1]].y;
507
+ if (!isEmpty(relatedLines)) {
508
+ vertices[drawingLine.vertices[1]].x = x;
509
+ vertices[drawingLine.vertices[1]].y = y;
510
+ }
511
+ var absAngle, lineAngle;
512
+ var angles = [];
513
+
514
+ // get the angle of two lines and check the angle
515
+ if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
516
+ if (!isEmpty(relatedLines)) {
517
+ relatedLines.forEach(function (line) {
518
+ // get the points of two lines(drawing line and related line)
519
+ if (!isEmpty(line)) {
520
+ // the angle between two lines(line, drawingLine)
521
+ lineAngle = GeometryUtils.angleBetweenTwoLines(line, drawingLine, vertices);
522
+ // check whether the angle is less than or bigger than specific value.
523
+ absAngle = Math.abs(lineAngle);
524
+ angles.push(lineAngle);
525
+ if (absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL || absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
526
+ moveFlag.push(false);
527
+ } else moveFlag.push(true);
528
+ }
529
+ });
530
+ } else {
531
+ var px = vertices[drawingLine.vertices[0]].x;
532
+ var py = vertices[drawingLine.vertices[0]].y;
533
+ lineAngle = GeometryUtils.angleBetweenTwoPointsAndOrigin(px, py, x, y);
534
+ absAngle = Math.abs(lineAngle);
535
+ }
536
+ }
537
+
538
+ // if the angle is bigger or less than specific value, the wall mustn't be drawn at new position
539
+ if (!moveFlag.some(function (flag) {
540
+ return flag === false;
541
+ })) {
542
+ tx = x;
543
+ ty = y;
544
+ } else {
545
+ // the origin point of rotation(snapping)
546
+ var ox = vertices[drawingLine.vertices[0]].x;
547
+ var oy = vertices[drawingLine.vertices[0]].y;
548
+ angles.forEach(function (angle, index) {
549
+ if (!moveFlag[index]) {
550
+ var absVal = Math.abs(angle);
551
+ var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
552
+ if (absVal > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
553
+ absVal = 360 - absVal;
554
+ rest = -(MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
555
+ }
556
+ // determine the direction of rotation.
557
+ rest = angle > 0 ? -rest : rest;
558
+ // rotate the current point to last point around the first point of drawing line.
559
+ var res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);
560
+ tx = res.x;
561
+ ty = res.y;
562
+ }
563
+ });
564
+ }
565
+ // angle snapping as a value of UNIT_ANGLE
566
+ if (!moveFlag.some(function (flag) {
567
+ return flag === false;
568
+ }) && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0) {
569
+ var result = GeometryUtils.snapAngleByUnit(lineAngle, vertices, drawingLine, tx, ty, drawingLine.vertices[1]);
570
+ tx = result.x;
571
+ ty = result.y;
572
+ }
573
+ var _Line$replaceVertex = Line.replaceVertex(state, layerID, lineID, 1, tx, ty),
574
+ stateLV = _Line$replaceVertex.updatedState,
575
+ vertex = _Line$replaceVertex.vertex;
576
+ state = stateLV;
577
+ state = this.select(state, layerID, lineID).updatedState;
578
+ state = state.merge({
579
+ activeSnapElement: snap ? snap.snap : null
580
+ });
581
+ state = state.setIn(['scene', 'setLineAttributes'], false);
582
+ return {
583
+ updatedState: state
584
+ };
585
+ }
586
+ }, {
587
+ key: "stopDrawingLine",
588
+ value: function stopDrawingLine(state) {
589
+ console.log('line aCtion');
590
+ }
591
+
592
+ // Recalculate the hole position
593
+ }, {
594
+ key: "getHolePosition",
595
+ value: function getHolePosition(layer, lineID, nv0, nv1) {
596
+ var _layer$lines$get;
597
+ var holeOffset = [];
598
+ (_layer$lines$get = layer.lines.get(lineID)) === null || _layer$lines$get === void 0 || _layer$lines$get.holes.forEach(function (holeID) {
599
+ var lineLength = GeometryUtils.pointsDistance(nv0.x, nv0.y, nv1.x, nv1.y);
600
+ var minV = GeometryUtils.minVertex(nv0, nv1);
601
+ var maxV = GeometryUtils.maxVertex(nv0, nv1);
602
+ var alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);
603
+ var hole = layer.holes.get(holeID);
604
+ var pointOnLine = lineLength * hole.offset;
605
+ // Calculate the hole position
606
+ var offsetPosition = {
607
+ x: pointOnLine * Math.cos(alpha) + minV.x,
608
+ y: pointOnLine * Math.sin(alpha) + minV.y
609
+ };
610
+ holeOffset.push({
611
+ hole: hole,
612
+ offsetPosition: offsetPosition
613
+ });
614
+ });
615
+ return holeOffset;
616
+ }
617
+
618
+ /**
619
+ *
620
+ * @param {state} state
621
+ * @param {selectedLineInfo} selectedLineInfo
622
+ * @param {layerID} layerID
623
+ * @returns selectedLineInfo {
624
+ * mergelines: [line1, line2,...], // lines that will be merged
625
+ * points: [stpoint, edpoint] // start and end point of new line that merged.
626
+ * }
627
+ */
628
+ }, {
629
+ key: "mergeAllLines",
630
+ value: function mergeAllLines(state, selectedLineInfo, layerID) {
631
+ var _this3 = this;
632
+ var layer = state.getIn(['scene', 'layers', layerID]);
633
+ var allVertices = state.getIn(['scene', 'layers', layerID, 'vertices']);
634
+ selectedLineInfo.points.forEach(function (tvertex, index) {
635
+ var _tvertex$toJS, _vertex$lines;
636
+ var vertex = tvertex === null || tvertex === void 0 || (_tvertex$toJS = tvertex.toJS) === null || _tvertex$toJS === void 0 ? void 0 : _tvertex$toJS.call(tvertex);
637
+ if (vertex && !isEmpty(vertex) && ((_vertex$lines = vertex.lines) === null || _vertex$lines === void 0 ? void 0 : _vertex$lines.length) === 2) {
638
+ var relatedLineID = vertex.lines.filter(function (lineID) {
639
+ return !selectedLineInfo.mergelines.some(function (mgline) {
640
+ return mgline.id === lineID;
641
+ });
642
+ });
643
+ if (!isEmpty(relatedLineID)) {
644
+ var relatedLine = layer.lines.get(relatedLineID[0]);
645
+ if (!isEmpty(relatedLine)) {
646
+ var intersectionPoint = vertex;
647
+ var startPoint, endPoint;
648
+ var tstPoint = allVertices.get(relatedLine.vertices.get(0)).toJS();
649
+ var tedPoint = allVertices.get(relatedLine.vertices.get(1)).toJS();
650
+ if (!isEmpty(tstPoint) && !isEmpty(tedPoint)) {
651
+ if (relatedLine.vertices.get(0) === intersectionPoint.id) {
652
+ endPoint = allVertices.get(relatedLine.vertices.get(1));
653
+ startPoint = selectedLineInfo.points[1 - index];
654
+ } else {
655
+ startPoint = allVertices.get(relatedLine.vertices.get(0));
656
+ endPoint = selectedLineInfo.points[1 - index];
657
+ }
658
+ var tline1 = {
659
+ vertices: [startPoint.id, intersectionPoint.id]
660
+ };
661
+ var tline2 = {
662
+ vertices: [intersectionPoint.id, endPoint.id]
663
+ };
664
+ var angle = Math.abs(GeometryUtils.angleBetweenTwoLines(tline1, tline2, allVertices.toJS()));
665
+ if (Math.abs(angle - 180) <= EPSILON) {
666
+ selectedLineInfo.mergelines.push(relatedLine);
667
+ selectedLineInfo.points[0] = startPoint;
668
+ selectedLineInfo.points[1] = endPoint;
669
+ return _this3.mergeAllLines(state, selectedLineInfo, layerID);
670
+ }
671
+ }
672
+ }
673
+ }
674
+ }
675
+ });
676
+ return selectedLineInfo;
677
+ }
678
+ }, {
679
+ key: "mergeLines",
680
+ value: function mergeLines(state) {
681
+ var layerID = state.getIn(['scene', 'selectedLayer']);
682
+ var allVertices = state.getIn(['scene', 'layers', layerID, 'vertices']);
683
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
684
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
685
+ if (isEmpty(line)) {
686
+ return null;
687
+ }
688
+ var tmpStPoint = allVertices.get(line.vertices.get(0));
689
+ var tmpEdPoint = allVertices.get(line.vertices.get(1));
690
+ var selectedLineInfo = {
691
+ mergelines: [line],
692
+ points: [tmpStPoint, tmpEdPoint]
693
+ };
694
+ var mergeInfo = this.mergeAllLines(state, selectedLineInfo, layerID);
695
+ return mergeInfo;
696
+ }
697
+
698
+ /**
699
+ *
700
+ * @param {mode} mode
701
+ * @param {state} state
702
+ * @returns updatedState
703
+ */
704
+ }, {
705
+ key: "createLines",
706
+ value: function createLines(state, actionType, mergeInfo) {
707
+ var _this4 = this,
708
+ _ret2;
709
+ if (isEmpty(mergeInfo)) {
710
+ return {
711
+ updatedState: state
712
+ };
713
+ }
714
+ var layerID = state.getIn(['scene', 'selectedLayer']);
715
+ var layer = state.getIn(['scene', 'layers', layerID]);
716
+ var lineGroups = [];
717
+ var holesWithOffsetPosition = [];
718
+ var lineID = layer.getIn(['selected', 'lines']).first(); // lines : [id]
719
+ var line = layer.getIn(['lines', lineID]);
720
+ if (isEmpty(line)) {
721
+ return {
722
+ updatedState: state
723
+ };
724
+ }
725
+ mergeInfo.mergelines.forEach(function (line) {
726
+ var _nv0$toJS, _nv1$toJS;
727
+ if ([END_DRAGGING_LINE, END_DRAGGING_VERTEX].includes(actionType)) {
728
+ var tmpGroups = state //get groups membership if present
729
+ .getIn(['scene', 'groups']).filter(function (group) {
730
+ var lines = group.getIn(['elements', layerID, 'lines']);
731
+ return lines && lines.contains(line.id);
732
+ });
733
+ tmpGroups.forEach(function (group) {
734
+ return lineGroups.push(group);
735
+ });
736
+ }
737
+ var nv0 = layer.getIn(['vertices', line.vertices.get(0)]);
738
+ var nv1 = layer.getIn(['vertices', line.vertices.get(1)]);
739
+ if (!isEmpty(nv0 === null || nv0 === void 0 || (_nv0$toJS = nv0.toJS) === null || _nv0$toJS === void 0 ? void 0 : _nv0$toJS.call(nv0)) && !isEmpty(nv1 === null || nv1 === void 0 || (_nv1$toJS = nv1.toJS) === null || _nv1$toJS === void 0 ? void 0 : _nv1$toJS.call(nv1))) {
740
+ var tmpholeposition = _this4.getHolePosition(layer, line.id, nv0, nv1);
741
+ tmpholeposition.forEach(function (holeInfo) {
742
+ return holesWithOffsetPosition.push(holeInfo);
743
+ });
744
+ }
745
+ state = Line.remove(state, layerID, line.id).updatedState;
746
+ });
747
+ var ret;
748
+ if (!GeometryUtils.samePoints(mergeInfo.points[0], mergeInfo.points[1])) {
749
+ ret = Line.createAvoidingIntersections(state, layerID, line.type, mergeInfo.points[0].x, mergeInfo.points[0].y, mergeInfo.points[1].x, mergeInfo.points[1].y, line.properties, holesWithOffsetPosition, line.createdDateTime);
750
+ state = ret.updatedState;
751
+ }
752
+ if ([END_DRAGGING_LINE, END_DRAGGING_VERTEX].includes(actionType)) {
753
+ var _ret;
754
+ //re-add to old line's groups if present
755
+ (_ret = ret) === null || _ret === void 0 || _ret.lines.forEach(function (addedLine) {
756
+ lineGroups.forEach(function (oldLineGroup) {
757
+ state = Group.addElement(state, oldLineGroup.id, layerID, 'lines', addedLine.id).updatedState;
758
+ });
759
+ });
760
+ }
761
+ state = Layer.removeZeroLengthLines(state, layerID).updatedState;
762
+ if (!isEmpty((_ret2 = ret) === null || _ret2 === void 0 ? void 0 : _ret2.newline)) {
763
+ var _ret3;
764
+ state = this.select(state, layerID, (_ret3 = ret) === null || _ret3 === void 0 ? void 0 : _ret3.newline.get('id')).updatedState;
765
+ }
766
+ return {
767
+ updatedState: state
768
+ };
769
+ }
770
+ }, {
771
+ key: "updateArea",
772
+ value: function updateArea(state) {
773
+ var layerID = state.getIn(['scene', 'selectedLayer']);
774
+ var layer = state.getIn(['scene', 'layers', layerID]);
775
+ var lineID = layer.getIn(['selected', 'lines']).first(); // lines : [id]
776
+ var line = layer.getIn(['lines', lineID]);
777
+ var drawingInfo = {};
778
+ if (!isEmpty(line)) {
779
+ drawingInfo.drawingLine = line;
780
+ }
781
+ state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
782
+ return {
783
+ updatedState: state
784
+ };
785
+ }
786
+ }, {
787
+ key: "applyWallChanges",
788
+ value: function applyWallChanges(state, actionType) {
789
+ var mergeInfo = this.mergeLines(state); // merge lines
790
+ state = this.createLines(state, actionType, mergeInfo).updatedState; // creating lines
791
+ state = this.updateArea(state).updatedState; // detecting areas
792
+ return {
793
+ updatedState: state
794
+ };
795
+ }
796
+ }, {
797
+ key: "prepareApplyWallChanges",
798
+ value: function prepareApplyWallChanges(v0, v1, state) {
799
+ var oldMode = state.getIn(['mode']);
800
+ var layerID = state.getIn(['scene', 'selectedLayer']);
801
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
802
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
803
+ if (isEmpty(line)) {
804
+ return {
805
+ updatedState: state
806
+ };
807
+ }
808
+ var tv0 = state.getIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(0)]).toJS();
809
+ var tv1 = state.getIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(1)]).toJS();
810
+ if (!isEmpty(v0) && !isEmpty(tv0)) {
811
+ state = state.setIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(0), 'x'], v0.x);
812
+ state = state.setIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(0), 'y'], v0.y);
813
+ }
814
+ if (!isEmpty(v1) && !isEmpty(tv1)) {
815
+ state = state.setIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(1), 'x'], v1.x);
816
+ state = state.setIn(['scene', 'layers', layerID, 'vertices', line.vertices.get(1), 'y'], v1.y);
817
+ }
818
+ state = this.select(state, layerID, lineID).updatedState;
819
+ state = state.setIn(['mode'], oldMode);
820
+ return {
821
+ updatedState: state
822
+ };
823
+ }
824
+ }, {
825
+ key: "endDrawingLine",
826
+ value: function endDrawingLine(state, x, y) {
827
+ if (state.snapMask && !state.snapMask.isEmpty()) {
828
+ var snap = SnapUtils.nearestSnap(state.snapElements, x, y, state.snapMask);
829
+ if (snap) {
830
+ var _snap$point3 = snap.point;
831
+ x = _snap$point3.x;
832
+ y = _snap$point3.y;
833
+ }
834
+ }
835
+ var layerID = state.getIn(['drawingSupport', 'layerID']);
836
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
837
+ var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
838
+ if (isEmpty(drawingLine)) {
839
+ return {
840
+ updatedState: state
841
+ };
842
+ }
843
+ if (drawingLine.vertices[0] === drawingLine.vertices[1]) {
844
+ state = Line.remove(state, layerID, lineID).updatedState;
845
+ state = state.merge({
846
+ mode: MODE_IDLE,
847
+ snapElements: new List(),
848
+ activeSnapElement: null
849
+ });
850
+ return {
851
+ updatedState: state
852
+ };
853
+ }
854
+ state = this.prepareApplyWallChanges({}, {
855
+ x: x,
856
+ y: y
857
+ }, state).updatedState;
858
+ state = this.applyWallChanges(state, END_DRAWING_LINE).updatedState;
859
+ state = state.merge({
860
+ mode: MODE_WAITING_DRAWING_LINE,
861
+ snapElements: new List(),
862
+ activeSnapElement: null
863
+ });
864
+ return {
865
+ updatedState: state
866
+ };
867
+ }
868
+ }, {
869
+ key: "beginDraggingLine",
870
+ value: function beginDraggingLine(state, layerID, lineID, x, y) {
871
+ var snapElements = SnapSceneUtils.sceneSnapElements(state.scene, new List(), state.snapMask);
872
+ var layer = state.scene.layers.get(layerID);
873
+ var line = layer.lines.get(lineID);
874
+ var vertex0 = layer.vertices.get(line.vertices.get(0));
875
+ var vertex1 = layer.vertices.get(line.vertices.get(1));
876
+ state = state.merge({
877
+ mode: MODE_DRAGGING_LINE,
878
+ snapElements: snapElements,
879
+ draggingSupport: Map({
880
+ layerID: layerID,
881
+ lineID: lineID,
882
+ startPointX: x,
883
+ startPointY: y,
884
+ startVertex0X: vertex0.x,
885
+ startVertex0Y: vertex0.y,
886
+ startVertex1X: vertex1.x,
887
+ startVertex1Y: vertex1.y
888
+ })
889
+ });
890
+ return {
891
+ updatedState: state
892
+ };
893
+ }
894
+ }, {
895
+ key: "getNewDraggedPoints",
896
+ value: function getNewDraggedPoints(newPoints, allVertices, draggingLine, relatedLines) {
897
+ if (!newPoints || !allVertices || !draggingLine || !Array.isArray(relatedLines)) {
898
+ return newPoints; // Invalid input, just return
899
+ }
900
+ var draggingVertices = Array.isArray(draggingLine.vertices) ? draggingLine.vertices : [];
901
+ var mvFlag = [];
902
+ relatedLines.forEach(function (relLine) {
903
+ if (!relLine || !Array.isArray(relLine.vertices)) return;
904
+ relLine.vertices.forEach(function (vertexId, i) {
905
+ var _newPoints$newVertex, _newPoints$newVertex2, _newPoints$newVertex3, _newPoints$newVertex4, _vData$x, _vData$y, _newPoints$newVertex5, _newPoints$newVertex6, _newPoints$newVertex7, _newPoints$newVertex8;
906
+ if (draggingVertices.includes(vertexId)) return; // skip shared vertices
907
+ var vData = allVertices[vertexId];
908
+ if (!vData) return; // guard: vertex missing
909
+
910
+ var center = i === 0 ? new Three.Vector2((_newPoints$newVertex = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex0X) !== null && _newPoints$newVertex !== void 0 ? _newPoints$newVertex : 0, (_newPoints$newVertex2 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex0Y) !== null && _newPoints$newVertex2 !== void 0 ? _newPoints$newVertex2 : 0) : new Three.Vector2((_newPoints$newVertex3 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex1X) !== null && _newPoints$newVertex3 !== void 0 ? _newPoints$newVertex3 : 0, (_newPoints$newVertex4 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex1Y) !== null && _newPoints$newVertex4 !== void 0 ? _newPoints$newVertex4 : 0);
911
+ var pos1 = new Three.Vector2((_vData$x = vData.x) !== null && _vData$x !== void 0 ? _vData$x : 0, (_vData$y = vData.y) !== null && _vData$y !== void 0 ? _vData$y : 0);
912
+ var pos2 = i === 0 ? new Three.Vector2((_newPoints$newVertex5 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex1X) !== null && _newPoints$newVertex5 !== void 0 ? _newPoints$newVertex5 : 0, (_newPoints$newVertex6 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex1Y) !== null && _newPoints$newVertex6 !== void 0 ? _newPoints$newVertex6 : 0) : new Three.Vector2((_newPoints$newVertex7 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex0X) !== null && _newPoints$newVertex7 !== void 0 ? _newPoints$newVertex7 : 0, (_newPoints$newVertex8 = newPoints === null || newPoints === void 0 ? void 0 : newPoints.newVertex0Y) !== null && _newPoints$newVertex8 !== void 0 ? _newPoints$newVertex8 : 0);
913
+ var cen = center.clone();
914
+ var vec1 = pos1.clone().sub(cen).normalize();
915
+ var vec2 = pos2.clone().sub(cen).normalize();
916
+ var angle = Math.floor(vec1.angle() * 180 / Math.PI - vec2.angle() * 180 / Math.PI + 0.5);
917
+ if (Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL || Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
918
+ mvFlag.push(false);
919
+ } else {
920
+ mvFlag.push(true);
921
+ }
922
+ });
923
+ });
924
+
925
+ // If any flag is false, revert newPoints to original dragging line positions
926
+ if (mvFlag.includes(false) && draggingVertices.length >= 2) {
927
+ var v0 = allVertices[draggingVertices[0]];
928
+ var v1 = allVertices[draggingVertices[1]];
929
+ if (v0 && v1) {
930
+ newPoints.newVertex0X = v0.x;
931
+ newPoints.newVertex0Y = v0.y;
932
+ newPoints.newVertex1X = v1.x;
933
+ newPoints.newVertex1Y = v1.y;
934
+ }
935
+ }
936
+ return newPoints;
937
+ }
938
+ }, {
939
+ key: "updateDraggingLine",
940
+ value: function updateDraggingLine(state, x, y, relatedLines) {
941
+ var draggingSupport = state.draggingSupport;
942
+ var snapElements = state.snapElements;
943
+ var layerID = draggingSupport.get('layerID');
944
+ var lineID = draggingSupport.get('lineID');
945
+ var diffX = x - draggingSupport.get('startPointX');
946
+ var diffY = y - draggingSupport.get('startPointY');
947
+ var newVertex0X = draggingSupport.get('startVertex0X') + diffX;
948
+ var newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;
949
+ var newVertex1X = draggingSupport.get('startVertex1X') + diffX;
950
+ var newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;
951
+ var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
952
+ var allVertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
953
+ var activeSnapElement = null;
954
+ var curSnap0 = null,
955
+ curSnap1 = null;
956
+ if (state.snapMask && !state.snapMask.isEmpty()) {
957
+ curSnap0 = SnapUtils.nearestSnap(snapElements, newVertex0X, newVertex0Y, state.snapMask);
958
+ curSnap1 = SnapUtils.nearestSnap(snapElements, newVertex1X, newVertex1Y, state.snapMask);
959
+ }
960
+ var deltaX = 0,
961
+ deltaY = 0;
962
+ if (curSnap0 && curSnap1) {
963
+ if (curSnap0.point.distance < curSnap1.point.distance) {
964
+ deltaX = curSnap0.point.x - newVertex0X;
965
+ deltaY = curSnap0.point.y - newVertex0Y;
966
+ activeSnapElement = curSnap0.snap;
967
+ } else {
968
+ deltaX = curSnap1.point.x - newVertex1X;
969
+ deltaY = curSnap1.point.y - newVertex1Y;
970
+ activeSnapElement = curSnap1.snap;
971
+ }
972
+ } else {
973
+ if (curSnap0) {
974
+ deltaX = curSnap0.point.x - newVertex0X;
975
+ deltaY = curSnap0.point.y - newVertex0Y;
976
+ activeSnapElement = curSnap0.snap;
977
+ }
978
+ if (curSnap1) {
979
+ deltaX = curSnap1.point.x - newVertex1X;
980
+ deltaY = curSnap1.point.y - newVertex1Y;
981
+ activeSnapElement = curSnap1.snap;
982
+ }
983
+ }
984
+ newVertex0X += deltaX;
985
+ newVertex0Y += deltaY;
986
+ newVertex1X += deltaX;
987
+ newVertex1Y += deltaY;
988
+ var newPoints = {
989
+ newVertex0X: newVertex0X,
990
+ newVertex0Y: newVertex0Y,
991
+ newVertex1X: newVertex1X,
992
+ newVertex1Y: newVertex1Y
993
+ };
994
+ var newResult = this.getNewDraggedPoints(newPoints, allVertices, drawingLine, relatedLines);
995
+ newVertex0X = newResult.newVertex0X;
996
+ newVertex0Y = newResult.newVertex0Y;
997
+ newVertex1X = newResult.newVertex1X;
998
+ newVertex1Y = newResult.newVertex1Y;
999
+ state = state.merge({
1000
+ activeSnapElement: activeSnapElement,
1001
+ scene: state.scene.updateIn(['layers', layerID], function (layer) {
1002
+ return layer.withMutations(function (layer) {
1003
+ var lineVertices = layer.getIn(['lines', lineID, 'vertices']);
1004
+ layer.updateIn(['vertices', lineVertices.get(0)], function (vertex) {
1005
+ return vertex.merge({
1006
+ x: newVertex0X,
1007
+ y: newVertex0Y
1008
+ });
1009
+ });
1010
+ layer.updateIn(['vertices', lineVertices.get(1)], function (vertex) {
1011
+ return vertex.merge({
1012
+ x: newVertex1X,
1013
+ y: newVertex1Y
1014
+ });
1015
+ });
1016
+ return layer;
1017
+ });
1018
+ })
1019
+ });
1020
+ return {
1021
+ updatedState: state
1022
+ };
1023
+ }
1024
+ }, {
1025
+ key: "endDraggingLine",
1026
+ value: function endDraggingLine(state, x, y, relatedLines) {
1027
+ var _state = state,
1028
+ draggingSupport = _state.draggingSupport;
1029
+ var layerID = draggingSupport.get('layerID');
1030
+ var layer = state.scene.layers.get(layerID);
1031
+ var lineID = draggingSupport.get('lineID');
1032
+ var line = layer.lines.get(lineID);
1033
+ var drawedLine = line.toJS();
1034
+ var allVertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
1035
+ if (isEmpty(drawedLine)) {
1036
+ return {
1037
+ updatedState: state
1038
+ };
1039
+ }
1040
+ var diffX = x - draggingSupport.get('startPointX');
1041
+ var diffY = y - draggingSupport.get('startPointY');
1042
+ var newVertex0X = draggingSupport.get('startVertex0X') + diffX;
1043
+ var newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;
1044
+ var newVertex1X = draggingSupport.get('startVertex1X') + diffX;
1045
+ var newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;
1046
+ if (state.snapMask && !state.snapMask.isEmpty()) {
1047
+ var curSnap0 = SnapUtils.nearestSnap(state.snapElements, newVertex0X, newVertex0Y, state.snapMask);
1048
+ var curSnap1 = SnapUtils.nearestSnap(state.snapElements, newVertex1X, newVertex1Y, state.snapMask);
1049
+ var deltaX = 0,
1050
+ deltaY = 0;
1051
+ if (curSnap0 && curSnap1) {
1052
+ if (curSnap0.point.distance < curSnap1.point.distance) {
1053
+ deltaX = curSnap0.point.x - newVertex0X;
1054
+ deltaY = curSnap0.point.y - newVertex0Y;
1055
+ } else {
1056
+ deltaX = curSnap1.point.x - newVertex1X;
1057
+ deltaY = curSnap1.point.y - newVertex1Y;
1058
+ }
1059
+ } else {
1060
+ if (curSnap0) {
1061
+ deltaX = curSnap0.point.x - newVertex0X;
1062
+ deltaY = curSnap0.point.y - newVertex0Y;
1063
+ }
1064
+ if (curSnap1) {
1065
+ deltaX = curSnap1.point.x - newVertex1X;
1066
+ deltaY = curSnap1.point.y - newVertex1Y;
1067
+ }
1068
+ }
1069
+ newVertex0X += deltaX;
1070
+ newVertex0Y += deltaY;
1071
+ newVertex1X += deltaX;
1072
+ newVertex1Y += deltaY;
1073
+ }
1074
+ var newPoints = {
1075
+ newVertex0X: newVertex0X,
1076
+ newVertex0Y: newVertex0Y,
1077
+ newVertex1X: newVertex1X,
1078
+ newVertex1Y: newVertex1Y
1079
+ };
1080
+ var newResult = this.getNewDraggedPoints(newPoints, allVertices, drawedLine, relatedLines);
1081
+ newVertex0X = newResult.newVertex0X;
1082
+ newVertex0Y = newResult.newVertex0Y;
1083
+ newVertex1X = newResult.newVertex1X;
1084
+ newVertex1Y = newResult.newVertex1Y;
1085
+ state = Layer.mergeEqualsVertices(state, layerID, line.vertices.get(0)).updatedState;
1086
+ state = Layer.mergeEqualsVertices(state, layerID, line.vertices.get(1)).updatedState;
1087
+ if (GeometryUtils.samePoints({
1088
+ newVertex0X: newVertex0X,
1089
+ newVertex0Y: newVertex0Y
1090
+ }, {
1091
+ newVertex1X: newVertex1X,
1092
+ newVertex1Y: newVertex1Y
1093
+ })) {
1094
+ state = Line.remove(state, layerID, lineID).updatedState;
1095
+ } else {
1096
+ state = this.prepareApplyWallChanges({
1097
+ x: newVertex0X,
1098
+ y: newVertex0Y
1099
+ }, {
1100
+ x: newVertex1X,
1101
+ y: newVertex1Y
1102
+ }, state).updatedState;
1103
+ state = this.applyWallChanges(state, END_DRAGGING_LINE).updatedState;
1104
+ }
1105
+ state = state.merge({
1106
+ mode: MODE_IDLE,
1107
+ draggingSupport: null,
1108
+ activeSnapElement: null,
1109
+ snapElements: new List()
1110
+ });
1111
+ return {
1112
+ updatedState: state
1113
+ };
1114
+ }
1115
+ }, {
1116
+ key: "setProperties",
1117
+ value: function setProperties(state, layerID, lineID, properties) {
1118
+ state = state.mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'properties'], properties);
1119
+ return {
1120
+ updatedState: state
1121
+ };
1122
+ }
1123
+ }, {
1124
+ key: "setJsProperties",
1125
+ value: function setJsProperties(state, layerID, lineID, properties) {
1126
+ return this.setProperties(state, layerID, lineID, fromJS(properties));
1127
+ }
1128
+ }, {
1129
+ key: "updateProperties",
1130
+ value: function updateProperties(state, layerID, lineID, properties) {
1131
+ properties.forEach(function (v, k) {
1132
+ if (state.hasIn(['scene', 'layers', layerID, 'lines', lineID, 'properties', k])) state = state.mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'properties', k], v);
1133
+ });
1134
+ return {
1135
+ updatedState: state
1136
+ };
1137
+ }
1138
+ }, {
1139
+ key: "updateJsProperties",
1140
+ value: function updateJsProperties(state, layerID, lineID, properties) {
1141
+ return this.updateProperties(state, layerID, lineID, fromJS(properties));
1142
+ }
1143
+ }, {
1144
+ key: "setAttributes",
1145
+ value: function setAttributes(state, layerID, lineID, lineAttributes) {
1146
+ var lAttr = lineAttributes.toJS();
1147
+ var vertexOne = lAttr.vertexOne,
1148
+ vertexTwo = lAttr.vertexTwo,
1149
+ vertexThree = lAttr.vertexThree,
1150
+ vertexFour = lAttr.vertexFour,
1151
+ lineLength = lAttr.lineLength,
1152
+ lineToExtend = lAttr.lineToExtend;
1153
+ delete lAttr['vertexOne'];
1154
+ delete lAttr['vertexTwo'];
1155
+ delete lAttr['vertexThree'];
1156
+ delete lAttr['vertexFour'];
1157
+ delete lAttr['lineToExtend'];
1158
+ delete lAttr['lineLength'];
1159
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
1160
+ state = state.mergeIn(['scene', 'layers', layerID, 'lines', lineID], fromJS(lAttr)).mergeIn(['scene', 'layers', layerID, 'vertices', vertexOne.id], {
1161
+ x: vertexOne.x,
1162
+ y: vertexOne.y
1163
+ }).mergeIn(['scene', 'layers', layerID, 'vertices', vertexTwo.id], {
1164
+ x: vertexTwo.x,
1165
+ y: vertexTwo.y
1166
+ }).mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'misc'], new Map({
1167
+ _unitLength: lineLength._unit
1168
+ })).mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'focus'], true);
1169
+ if (lineToExtend) {
1170
+ state = state.mergeIn(['scene', 'layers', layerID, 'lines', lineToExtend.id], fromJS(lAttr)).mergeIn(['scene', 'layers', layerID, 'lines', lineToExtend.id, 'misc'], new Map({
1171
+ _unitLength: lineLength._unit
1172
+ }));
1173
+ }
1174
+ if (vertexThree) {
1175
+ state = state.mergeIn(['scene', 'layers', layerID, 'vertices', vertexThree.id], {
1176
+ x: vertexThree.x,
1177
+ y: vertexThree.y
1178
+ });
1179
+ }
1180
+ if (vertexFour) {
1181
+ state = state.mergeIn(['scene', 'layers', layerID, 'vertices', vertexFour.id], {
1182
+ x: vertexFour.x,
1183
+ y: vertexFour.y
1184
+ });
1185
+ }
1186
+ state = Layer.mergeEqualsVertices(state, layerID, vertexOne.id).updatedState;
1187
+ if (vertexOne.x != vertexTwo.x && vertexOne.y != vertexTwo.y) {
1188
+ state = Layer.mergeEqualsVertices(state, layerID, vertexTwo.id).updatedState;
1189
+ }
1190
+ state = this.select(state, layerID, lineID).updatedState;
1191
+ state = this.applyWallChanges(state, END_DRAWING_LINE).updatedState;
1192
+ state = state.merge({
1193
+ sceneHistory: history.historyPush(state.sceneHistory, state.scene)
1194
+ });
1195
+ if (state.mode.endsWith('_LINE')) {
1196
+ state = state.setIn(['scene', 'setLineAttributes'], true);
1197
+ state = this.beginDrawingLine(state, layerID, vertexTwo.x, vertexTwo.y).updatedState;
1198
+ }
1199
+ return {
1200
+ updatedState: state
1201
+ };
1202
+ }
1203
+ }, {
1204
+ key: "setVerticesCoords",
1205
+ value: function setVerticesCoords(state, layerID, lineID, x1, y1, x2, y2) {
1206
+ var line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);
1207
+ state = Vertex.setAttributes(state, layerID, line.vertices.get(0), new Map({
1208
+ x: x1,
1209
+ y: y1
1210
+ })).updatedState;
1211
+ state = Vertex.setAttributes(state, layerID, line.vertices.get(1), new Map({
1212
+ x: x2,
1213
+ y: y2
1214
+ })).updatedState;
1215
+ return {
1216
+ updatedState: state
1217
+ };
1218
+ }
1219
+ }]);
1220
+ }();
1221
+ export { Line as default };