kitchen-simulator 11.0.0-react.18 → 11.1.0

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 (707) hide show
  1. package/es/AppContext.js +1 -4
  2. package/es/LiteKitchenConfigurator.js +67 -23
  3. package/es/LiteRenderer.js +15 -64
  4. package/es/actions/export.js +25 -12
  5. package/es/actions/items-actions.js +18 -2
  6. package/es/analytics/ga4.js +188 -0
  7. package/es/analytics/posthog.js +60 -0
  8. package/es/assets/Window.hdr +2100 -0
  9. package/es/assets/img/default/maple.jpg +0 -0
  10. package/es/assets/img/default/steel.jpg +0 -0
  11. package/es/assets/img/loading/loading.gif +0 -0
  12. package/es/catalog/cabinet/cabinet-assembly-order.js +36 -0
  13. package/es/catalog/catalog.js +0 -2
  14. package/es/catalog/factories/area-factory-3d.js +1 -5
  15. package/es/catalog/factories/wall-factory.js +1 -1
  16. package/es/catalog/holes/door-double/door_double.png +0 -0
  17. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  18. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  19. package/es/catalog/holes/gate/gate.jpg +0 -0
  20. package/es/catalog/holes/window-clear/texture.png +0 -0
  21. package/es/catalog/holes/window-cross/texture.png +0 -0
  22. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  23. package/es/catalog/holes/window-vertical/texture.png +0 -0
  24. package/es/catalog/utils/exporter.js +4 -0
  25. package/es/catalog/utils/item-loader.js +12 -25
  26. package/es/class/area.js +0 -1
  27. package/es/class/export.js +1 -3
  28. package/es/class/item.js +211 -89
  29. package/es/class/line.js +1 -3
  30. package/es/class/project.js +15 -19
  31. package/es/components/content.js +20 -6
  32. package/es/components/export.js +3 -5
  33. package/es/components/style/export.js +2 -28
  34. package/es/components/style/form-number-input.js +34 -43
  35. package/es/components/viewer2d/group.js +12 -7
  36. package/es/components/viewer2d/item.js +159 -168
  37. package/es/components/viewer2d/line.js +18 -51
  38. package/es/components/viewer2d/rulerX.js +3 -0
  39. package/es/components/viewer2d/rulerY.js +3 -0
  40. package/es/components/viewer2d/scene.js +67 -47
  41. package/es/components/viewer2d/state.js +1 -1
  42. package/es/components/viewer2d/utils.js +0 -6
  43. package/es/components/viewer2d/viewer2d.js +566 -508
  44. package/es/components/viewer3d/front3D.js +1 -2
  45. package/es/components/viewer3d/pointer-lock-navigation.js +0 -90
  46. package/es/components/viewer3d/ruler-utils/layer3D.js +2 -2
  47. package/es/components/viewer3d/scene-creator.js +113 -120
  48. package/es/components/viewer3d/three-memory-cleaner.js +0 -14
  49. package/es/components/viewer3d/viewer3d-first-person.js +132 -134
  50. package/es/components/viewer3d/viewer3d.js +40 -28
  51. package/es/constants/catalog/skinPanel.js +9 -0
  52. package/es/constants.js +19 -8
  53. package/es/{WorkSpaceOriginal.js → devLiteRenderer.js} +241 -173
  54. package/es/events/external/handleExternalEvent.js +141 -0
  55. package/es/events/external/handleExternalEvent.util.js +1099 -0
  56. package/es/events/external/handlers.addItem.js +47 -0
  57. package/es/events/external/handlers.changeDoorStyle.js +140 -0
  58. package/es/events/external/handlers.elementOps.js +8 -0
  59. package/es/events/external/handlers.finishing.js +26 -0
  60. package/es/events/external/handlers.hole.js +4 -0
  61. package/es/events/external/handlers.loadProject.js +128 -0
  62. package/es/events/external/handlers.molding.js +24 -0
  63. package/es/events/external/handlers.projectLifecycle.js +11 -0
  64. package/es/events/external/handlers.projectSettings.js +32 -0
  65. package/es/events/external/handlers.replaceCabinet.js +41 -0
  66. package/es/events/external/handlers.roomShape.js +8 -0
  67. package/es/events/external/handlers.syncScene.js +21 -0
  68. package/es/events/external/handlers.updateSelectedElements.js +11 -0
  69. package/es/events/external/handlers.viewMode.js +11 -0
  70. package/es/events/external/handlers.viewerNavigation.js +108 -0
  71. package/es/events/external/handlers.wall.js +7 -0
  72. package/es/index.js +36 -76
  73. package/es/mappings/external-events/mapExternalEventPayload.js +28 -0
  74. package/es/mappings/external-events/mappers/addItemMapper.js +97 -0
  75. package/es/mappings/external-events/mappers/ccdfMapper.js +100 -0
  76. package/es/mappings/external-events/mappers/ccdfToCDSMapper.js +49 -0
  77. package/es/mappings/external-events/mappers/changeDoorStyleMapper.js +37 -0
  78. package/es/mappings/external-events/mappers/loadProjectMapper.js +62 -0
  79. package/es/mappings/holesToCatalog.js +139 -0
  80. package/es/models.js +16 -1
  81. package/es/plugins/keyboard.js +1 -1
  82. package/es/reducers/export.js +2 -4
  83. package/es/reducers/items-reducer.js +4 -2
  84. package/es/reducers/project-reducer.js +1 -1
  85. package/es/reducers/reducer.js +2 -3
  86. package/es/reducers/viewer2d-reducer.js +0 -2
  87. package/es/shared/domain/cabinet-warning.js +15 -0
  88. package/es/shared/objects/immutable.js +3 -0
  89. package/es/utils/geometry.js +418 -95
  90. package/es/utils/helper.js +41 -35
  91. package/es/utils/history.js +2 -2
  92. package/es/utils/molding.js +12 -241
  93. package/es/utils/name-generator.js +0 -3
  94. package/es/utils/skinPanelEngine.js +522 -0
  95. package/lib/@history.js +11 -0
  96. package/lib/AppContext.js +11 -0
  97. package/lib/LiteKitchenConfigurator.js +527 -0
  98. package/lib/LiteRenderer.js +323 -0
  99. package/lib/actions/area-actions.js +21 -0
  100. package/lib/actions/export.js +36 -0
  101. package/lib/actions/groups-actions.js +107 -0
  102. package/lib/actions/holes-actions.js +140 -0
  103. package/lib/actions/items-actions.js +383 -0
  104. package/lib/actions/lines-actions.js +98 -0
  105. package/lib/actions/project-actions.js +351 -0
  106. package/lib/actions/scene-actions.js +43 -0
  107. package/lib/actions/vertices-actions.js +35 -0
  108. package/lib/actions/viewer2d-actions.js +73 -0
  109. package/lib/actions/viewer3d-actions.js +32 -0
  110. package/lib/analytics/ga4.js +194 -0
  111. package/lib/analytics/posthog.js +68 -0
  112. package/lib/assets/Window.hdr +2100 -0
  113. package/lib/assets/brown_photostudio_02_1k.hdr +0 -0
  114. package/lib/assets/fonts/Rene Bieder Milliard Black Italic.woff +0 -0
  115. package/lib/assets/fonts/Rene Bieder Milliard Black.woff +0 -0
  116. package/lib/assets/fonts/Rene Bieder Milliard Bold Italic.woff +0 -0
  117. package/lib/assets/fonts/Rene Bieder Milliard Bold.woff +0 -0
  118. package/lib/assets/fonts/Rene Bieder Milliard Book Italic.woff +0 -0
  119. package/lib/assets/fonts/Rene Bieder Milliard Book.woff +0 -0
  120. package/lib/assets/fonts/Rene Bieder Milliard ExtraBold Italic.woff +0 -0
  121. package/lib/assets/fonts/Rene Bieder Milliard ExtraBold.woff +0 -0
  122. package/lib/assets/fonts/Rene Bieder Milliard ExtraLight Italic.woff +0 -0
  123. package/lib/assets/fonts/Rene Bieder Milliard ExtraLight.woff +0 -0
  124. package/lib/assets/fonts/Rene Bieder Milliard Hairline Italic.woff +0 -0
  125. package/lib/assets/fonts/Rene Bieder Milliard Hairline.woff +0 -0
  126. package/lib/assets/fonts/Rene Bieder Milliard Heavy Italic.woff +0 -0
  127. package/lib/assets/fonts/Rene Bieder Milliard Heavy.woff +0 -0
  128. package/lib/assets/fonts/Rene Bieder Milliard Light Italic.woff +0 -0
  129. package/lib/assets/fonts/Rene Bieder Milliard Light.woff +0 -0
  130. package/lib/assets/fonts/Rene Bieder Milliard Medium Italic.woff +0 -0
  131. package/lib/assets/fonts/Rene Bieder Milliard Medium.woff +0 -0
  132. package/lib/assets/fonts/Rene Bieder Milliard SemiBold Italic.woff +0 -0
  133. package/lib/assets/fonts/Rene Bieder Milliard SemiBold.woff +0 -0
  134. package/lib/assets/fonts/Rene Bieder Milliard Thin Italic.woff +0 -0
  135. package/lib/assets/fonts/Rene Bieder Milliard Thin.woff +0 -0
  136. package/lib/assets/fonts/style.css +177 -0
  137. package/lib/assets/gltf/door_closet.gltf +1 -0
  138. package/lib/assets/gltf/door_exterior.gltf +1 -0
  139. package/lib/assets/gltf/door_interior.gltf +1 -0
  140. package/lib/assets/gltf/door_sliding.gltf +1 -0
  141. package/lib/assets/gltf/doorway_framed.bin +0 -0
  142. package/lib/assets/gltf/doorway_framed.fbx +0 -0
  143. package/lib/assets/gltf/doorway_framed.gltf +1 -0
  144. package/lib/assets/gltf/window_clear.bin +0 -0
  145. package/lib/assets/gltf/window_clear.fbx +0 -0
  146. package/lib/assets/gltf/window_clear.gltf +1 -0
  147. package/lib/assets/gltf/window_cross.bin +0 -0
  148. package/lib/assets/gltf/window_cross.fbx +0 -0
  149. package/lib/assets/gltf/window_cross.gltf +1 -0
  150. package/lib/assets/gltf/window_double_hung.bin +0 -0
  151. package/lib/assets/gltf/window_double_hung.fbx +0 -0
  152. package/lib/assets/gltf/window_double_hung.gltf +1 -0
  153. package/lib/assets/gltf/window_vertical.bin +0 -0
  154. package/lib/assets/gltf/window_vertical.fbx +0 -0
  155. package/lib/assets/gltf/window_vertical.gltf +1 -0
  156. package/lib/assets/img/TKC_thumbnail.png +0 -0
  157. package/lib/assets/img/Toggle.png +0 -0
  158. package/lib/assets/img/default/maple.jpg +0 -0
  159. package/lib/assets/img/default/steel.jpg +0 -0
  160. package/lib/assets/img/loading/loading.gif +0 -0
  161. package/lib/assets/img/loading/loading_1.svg +11 -0
  162. package/lib/assets/img/loading_large.gif +0 -0
  163. package/lib/assets/img/png/door/closet.png +0 -0
  164. package/lib/assets/img/png/door/doorwaysframed.png +0 -0
  165. package/lib/assets/img/png/door/doorwaysframeles.png +0 -0
  166. package/lib/assets/img/png/door/doorwaysframeless.png +0 -0
  167. package/lib/assets/img/png/door/exterior.png +0 -0
  168. package/lib/assets/img/png/door/interior.png +0 -0
  169. package/lib/assets/img/png/door/sliding.png +0 -0
  170. package/lib/assets/img/png/helper/outcome.png +0 -0
  171. package/lib/assets/img/project_img.png +0 -0
  172. package/lib/assets/img/rta/rta_logo_box_blue.jpg +0 -0
  173. package/lib/assets/img/rta/rta_logo_box_blue_ico.jpg +0 -0
  174. package/lib/assets/img/rta/rta_logo_box_blue_ico.svg +55 -0
  175. package/lib/assets/img/rta/rta_logo_box_darkGray.jpg +0 -0
  176. package/lib/assets/img/rta/rta_logo_box_lightblue.png +0 -0
  177. package/lib/assets/img/rta/rta_logo_box_lightmaroon.png +0 -0
  178. package/lib/assets/img/rta/rta_logo_box_maroon.png +0 -0
  179. package/lib/assets/img/rta/rta_logo_box_white.png +0 -0
  180. package/lib/assets/img/rta_menu.png +0 -0
  181. package/lib/assets/img/step2.jpg +0 -0
  182. package/lib/assets/img/step3.jpg +0 -0
  183. package/lib/assets/img/step4.jpg +0 -0
  184. package/lib/assets/img/step5.jpg +0 -0
  185. package/lib/assets/img/step6.jpg +0 -0
  186. package/lib/assets/img/step7.jpg +0 -0
  187. package/lib/assets/img/step8.jpg +0 -0
  188. package/lib/assets/img/svg/2d_delete_object.svg +33 -0
  189. package/lib/assets/img/svg/2d_delete_object1.svg +33 -0
  190. package/lib/assets/img/svg/2d_lock_object.svg +33 -0
  191. package/lib/assets/img/svg/3d_item_move.svg +106 -0
  192. package/lib/assets/img/svg/3d_item_rotation.svg +76 -0
  193. package/lib/assets/img/svg/3d_item_warning_edit.svg +77 -0
  194. package/lib/assets/img/svg/3d_item_warning_info.svg +81 -0
  195. package/lib/assets/img/svg/accessories.svg +4 -0
  196. package/lib/assets/img/svg/angle_icon.svg +39 -0
  197. package/lib/assets/img/svg/blank_div.svg +14 -0
  198. package/lib/assets/img/svg/bottombar/2d3d_button.svg +3 -0
  199. package/lib/assets/img/svg/bottombar/2d3d_button_active.svg +3 -0
  200. package/lib/assets/img/svg/bottombar/2d3d_toggle.svg +4 -0
  201. package/lib/assets/img/svg/bottombar/2d3d_toggle_active.svg +4 -0
  202. package/lib/assets/img/svg/bottombar/arrow-down.svg +3 -0
  203. package/lib/assets/img/svg/bottombar/arrow-left.svg +3 -0
  204. package/lib/assets/img/svg/bottombar/arrow-minus.svg +3 -0
  205. package/lib/assets/img/svg/bottombar/arrow-plus.svg +11 -0
  206. package/lib/assets/img/svg/bottombar/arrow-right.svg +3 -0
  207. package/lib/assets/img/svg/bottombar/arrow-up.svg +3 -0
  208. package/lib/assets/img/svg/bottombar/collapse.svg +3 -0
  209. package/lib/assets/img/svg/bottombar/elevation-back.svg +6 -0
  210. package/lib/assets/img/svg/bottombar/elevation-front.svg +6 -0
  211. package/lib/assets/img/svg/bottombar/elevation-left.svg +6 -0
  212. package/lib/assets/img/svg/bottombar/elevation-right.svg +7 -0
  213. package/lib/assets/img/svg/bottombar/elevation.svg +13 -0
  214. package/lib/assets/img/svg/bottombar/expand.svg +3 -0
  215. package/lib/assets/img/svg/bottombar/help.svg +72 -0
  216. package/lib/assets/img/svg/bottombar/incm_toggle.svg +39 -0
  217. package/lib/assets/img/svg/bottombar/pan_1.svg +57 -0
  218. package/lib/assets/img/svg/bottombar/pan_2.svg +27 -0
  219. package/lib/assets/img/svg/bottombar/pan_3.svg +27 -0
  220. package/lib/assets/img/svg/bottombar/pan_4.svg +27 -0
  221. package/lib/assets/img/svg/bottombar/pan_5.svg +27 -0
  222. package/lib/assets/img/svg/bottombar/settings.svg +23 -0
  223. package/lib/assets/img/svg/bottombar/spin-down.svg +76 -0
  224. package/lib/assets/img/svg/bottombar/spin-left.svg +75 -0
  225. package/lib/assets/img/svg/bottombar/spin-right.svg +75 -0
  226. package/lib/assets/img/svg/bottombar/spin-up.svg +76 -0
  227. package/lib/assets/img/svg/bottombar/spin_1.svg +48 -0
  228. package/lib/assets/img/svg/bottombar/spin_2.svg +31 -0
  229. package/lib/assets/img/svg/bottombar/spin_3.svg +31 -0
  230. package/lib/assets/img/svg/bottombar/spin_4.svg +31 -0
  231. package/lib/assets/img/svg/bottombar/spin_5.svg +31 -0
  232. package/lib/assets/img/svg/bottombar/zoomin.svg +29 -0
  233. package/lib/assets/img/svg/bottombar/zoomout.svg +26 -0
  234. package/lib/assets/img/svg/check.svg +10 -0
  235. package/lib/assets/img/svg/close.svg +11 -0
  236. package/lib/assets/img/svg/color/Black.svg +3 -0
  237. package/lib/assets/img/svg/color/Blue.svg +3 -0
  238. package/lib/assets/img/svg/color/Cream.svg +3 -0
  239. package/lib/assets/img/svg/color/Gray.svg +3 -0
  240. package/lib/assets/img/svg/color/Green.svg +3 -0
  241. package/lib/assets/img/svg/color/White.svg +3 -0
  242. package/lib/assets/img/svg/color/White.svg.bak +3 -0
  243. package/lib/assets/img/svg/color/stone2.jpg +0 -0
  244. package/lib/assets/img/svg/color/wood2.jpg +0 -0
  245. package/lib/assets/img/svg/copy.svg +11 -0
  246. package/lib/assets/img/svg/delete.svg +3 -0
  247. package/lib/assets/img/svg/detail.svg +77 -0
  248. package/lib/assets/img/svg/disclaimer/background.svg +758 -0
  249. package/lib/assets/img/svg/disclaimer/logo-dots.svg +11 -0
  250. package/lib/assets/img/svg/door/Closet.svg +11 -0
  251. package/lib/assets/img/svg/door/Exterior.svg +5 -0
  252. package/lib/assets/img/svg/door/Framed_dorway.svg +5 -0
  253. package/lib/assets/img/svg/door/Frameless_dorway.svg +5 -0
  254. package/lib/assets/img/svg/door/Interior.svg +7 -0
  255. package/lib/assets/img/svg/door/Sliding.svg +5 -0
  256. package/lib/assets/img/svg/doors_closet.svg +47 -0
  257. package/lib/assets/img/svg/doors_exterior.svg +25 -0
  258. package/lib/assets/img/svg/doors_interior.svg +29 -0
  259. package/lib/assets/img/svg/doors_patio.svg +26 -0
  260. package/lib/assets/img/svg/duplicate.svg +11 -0
  261. package/lib/assets/img/svg/duplicate_object_left.svg +32 -0
  262. package/lib/assets/img/svg/duplicate_object_right.svg +32 -0
  263. package/lib/assets/img/svg/filtersActive.svg +19 -0
  264. package/lib/assets/img/svg/firstsetting/L.svg +3 -0
  265. package/lib/assets/img/svg/firstsetting/L2.svg +3 -0
  266. package/lib/assets/img/svg/firstsetting/Open.svg +3 -0
  267. package/lib/assets/img/svg/firstsetting/Square.svg +3 -0
  268. package/lib/assets/img/svg/firstsetting/bar-active.svg +9 -0
  269. package/lib/assets/img/svg/firstsetting/bar-normal.svg +3 -0
  270. package/lib/assets/img/svg/firstsetting/bullet-current.svg +3 -0
  271. package/lib/assets/img/svg/firstsetting/bullet-done.svg +3 -0
  272. package/lib/assets/img/svg/firstsetting/bullet-not-done.svg +3 -0
  273. package/lib/assets/img/svg/firstsetting/check-active.svg +3 -0
  274. package/lib/assets/img/svg/firstsetting/check-normal.svg +3 -0
  275. package/lib/assets/img/svg/firstsetting/pencil.svg +11 -0
  276. package/lib/assets/img/svg/green_checkmark.svg +27 -0
  277. package/lib/assets/img/svg/headerbar/assist.svg +3 -0
  278. package/lib/assets/img/svg/headerbar/cart.svg +3 -0
  279. package/lib/assets/img/svg/headerbar/check.svg +10 -0
  280. package/lib/assets/img/svg/headerbar/consult_designer.svg +45 -0
  281. package/lib/assets/img/svg/headerbar/edit_name.svg +26 -0
  282. package/lib/assets/img/svg/headerbar/file-dollar.svg +13 -0
  283. package/lib/assets/img/svg/headerbar/hamburger_menu.svg +32 -0
  284. package/lib/assets/img/svg/headerbar/plus.svg +11 -0
  285. package/lib/assets/img/svg/headerbar/review_quote.svg +44 -0
  286. package/lib/assets/img/svg/headerbar/ruler-measure.svg +11 -0
  287. package/lib/assets/img/svg/headerbar/save.svg +3 -0
  288. package/lib/assets/img/svg/headerbar/setting.svg +75 -0
  289. package/lib/assets/img/svg/help/check.svg +10 -0
  290. package/lib/assets/img/svg/help/search.svg +76 -0
  291. package/lib/assets/img/svg/intro/1-start-with-floorplan-whole.svg +27 -0
  292. package/lib/assets/img/svg/intro/1-start-with-floorplan.svg +26 -0
  293. package/lib/assets/img/svg/intro/2-start-from-scratch-whole.svg +28 -0
  294. package/lib/assets/img/svg/intro/2-start-from-scratch.svg +27 -0
  295. package/lib/assets/img/svg/intro/3-retrieve-project-whole.svg +19 -0
  296. package/lib/assets/img/svg/intro/3-retrieve-project.svg +18 -0
  297. package/lib/assets/img/svg/invert.svg +127 -0
  298. package/lib/assets/img/svg/lefttoolbar/appliance-active.svg +13 -0
  299. package/lib/assets/img/svg/lefttoolbar/appliance.svg +13 -0
  300. package/lib/assets/img/svg/lefttoolbar/cabinet-active.svg +10 -0
  301. package/lib/assets/img/svg/lefttoolbar/cabinet-category.svg +3 -0
  302. package/lib/assets/img/svg/lefttoolbar/cabinet-one.svg +3 -0
  303. package/lib/assets/img/svg/lefttoolbar/cabinet.svg +10 -0
  304. package/lib/assets/img/svg/lefttoolbar/disigner_assistance.svg +89 -0
  305. package/lib/assets/img/svg/lefttoolbar/door-style-active.svg +20 -0
  306. package/lib/assets/img/svg/lefttoolbar/door-style.svg +20 -0
  307. package/lib/assets/img/svg/lefttoolbar/door.svg +12 -0
  308. package/lib/assets/img/svg/lefttoolbar/error_icon.svg +81 -0
  309. package/lib/assets/img/svg/lefttoolbar/finishing-active.svg +13 -0
  310. package/lib/assets/img/svg/lefttoolbar/finishing.svg +13 -0
  311. package/lib/assets/img/svg/lefttoolbar/reviewforquote-active.svg +86 -0
  312. package/lib/assets/img/svg/lefttoolbar/reviewforquote.svg +12 -0
  313. package/lib/assets/img/svg/lefttoolbar/room-shape-L.svg +3 -0
  314. package/lib/assets/img/svg/lefttoolbar/room-shape-active.svg +18 -0
  315. package/lib/assets/img/svg/lefttoolbar/room-shape-custom.svg +12 -0
  316. package/lib/assets/img/svg/lefttoolbar/room-shape-irregular.svg +3 -0
  317. package/lib/assets/img/svg/lefttoolbar/room-shape-open.svg +3 -0
  318. package/lib/assets/img/svg/lefttoolbar/room-shape-square.svg +3 -0
  319. package/lib/assets/img/svg/lefttoolbar/room-shape.svg +18 -0
  320. package/lib/assets/img/svg/lefttoolbar/search.svg +76 -0
  321. package/lib/assets/img/svg/lefttoolbar/view_more.svg +86 -0
  322. package/lib/assets/img/svg/lefttoolbar/warning_icon.svg +81 -0
  323. package/lib/assets/img/svg/lefttoolbar/window.svg +12 -0
  324. package/lib/assets/img/svg/logo.svg +11 -0
  325. package/lib/assets/img/svg/logo_with_text.svg +25 -0
  326. package/lib/assets/img/svg/menubar/login.svg +84 -0
  327. package/lib/assets/img/svg/menubar/my_projects.svg +85 -0
  328. package/lib/assets/img/svg/menubar/new_project.svg +110 -0
  329. package/lib/assets/img/svg/menubar/save_project.svg +84 -0
  330. package/lib/assets/img/svg/options.svg +3 -0
  331. package/lib/assets/img/svg/positioning.svg +3 -0
  332. package/lib/assets/img/svg/rotate.png +0 -0
  333. package/lib/assets/img/svg/rotate.svg +17 -0
  334. package/lib/assets/img/svg/rotate_object_clockwise.svg +26 -0
  335. package/lib/assets/img/svg/rotate_object_counterclockwise.svg +26 -0
  336. package/lib/assets/img/svg/toggleFilters.svg +19 -0
  337. package/lib/assets/img/svg/toolbar/add_appliances_active.svg +64 -0
  338. package/lib/assets/img/svg/toolbar/add_appliances_inactive.svg +52 -0
  339. package/lib/assets/img/svg/toolbar/add_button.svg +36 -0
  340. package/lib/assets/img/svg/toolbar/add_cabinets_active.svg +59 -0
  341. package/lib/assets/img/svg/toolbar/add_cabinets_inactive.svg +49 -0
  342. package/lib/assets/img/svg/toolbar/add_items_doors.svg +25 -0
  343. package/lib/assets/img/svg/toolbar/add_items_doorways.svg +24 -0
  344. package/lib/assets/img/svg/toolbar/add_items_refrigerator.svg +32 -0
  345. package/lib/assets/img/svg/toolbar/add_items_windows.svg +28 -0
  346. package/lib/assets/img/svg/toolbar/apply_button.svg +38 -0
  347. package/lib/assets/img/svg/toolbar/arrow-plus.svg +11 -0
  348. package/lib/assets/img/svg/toolbar/backsplash.svg +8 -0
  349. package/lib/assets/img/svg/toolbar/cancel_button.svg +37 -0
  350. package/lib/assets/img/svg/toolbar/consult_a_designer_button.svg +47 -0
  351. package/lib/assets/img/svg/toolbar/countertop.svg +7 -0
  352. package/lib/assets/img/svg/toolbar/dcm.png +0 -0
  353. package/lib/assets/img/svg/toolbar/dcm_off.svg +12 -0
  354. package/lib/assets/img/svg/toolbar/dcm_on.svg +474 -0
  355. package/lib/assets/img/svg/toolbar/delete_button.svg +37 -0
  356. package/lib/assets/img/svg/toolbar/download.svg +77 -0
  357. package/lib/assets/img/svg/toolbar/draw_custom_floor.svg +31 -0
  358. package/lib/assets/img/svg/toolbar/edit_button.svg +75 -0
  359. package/lib/assets/img/svg/toolbar/email_quote_button.svg +44 -0
  360. package/lib/assets/img/svg/toolbar/fbm.png +0 -0
  361. package/lib/assets/img/svg/toolbar/finishing_touches_active.svg +54 -0
  362. package/lib/assets/img/svg/toolbar/finishing_touches_inactive.svg +42 -0
  363. package/lib/assets/img/svg/toolbar/floorstyle.svg +9 -0
  364. package/lib/assets/img/svg/toolbar/fmb.png +0 -0
  365. package/lib/assets/img/svg/toolbar/fmb_off.svg +12 -0
  366. package/lib/assets/img/svg/toolbar/fmb_on.svg +489 -0
  367. package/lib/assets/img/svg/toolbar/furnishings_icon.svg +6 -0
  368. package/lib/assets/img/svg/toolbar/get_started_button.svg +41 -0
  369. package/lib/assets/img/svg/toolbar/handles.svg +5 -0
  370. package/lib/assets/img/svg/toolbar/lighting.svg +7 -0
  371. package/lib/assets/img/svg/toolbar/lrm.png +0 -0
  372. package/lib/assets/img/svg/toolbar/lrm_off.svg +12 -0
  373. package/lib/assets/img/svg/toolbar/lrm_on.svg +470 -0
  374. package/lib/assets/img/svg/toolbar/make_floorplan_active.svg +66 -0
  375. package/lib/assets/img/svg/toolbar/make_floorplan_inactive.svg +52 -0
  376. package/lib/assets/img/svg/toolbar/predefined_room_l_shaped.svg +20 -0
  377. package/lib/assets/img/svg/toolbar/predefined_room_layout.svg +20 -0
  378. package/lib/assets/img/svg/toolbar/predefined_room_long_narrow.svg +20 -0
  379. package/lib/assets/img/svg/toolbar/predefined_room_open_l_shape.svg +20 -0
  380. package/lib/assets/img/svg/toolbar/predefined_room_open_pentagon.svg +20 -0
  381. package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle.svg +20 -0
  382. package/lib/assets/img/svg/toolbar/predefined_room_open_rectangle_2.svg +20 -0
  383. package/lib/assets/img/svg/toolbar/predefined_room_pentagon.svg +20 -0
  384. package/lib/assets/img/svg/toolbar/predefined_room_rectangle.svg +20 -0
  385. package/lib/assets/img/svg/toolbar/predefined_room_rectangle_with_alcove.svg +20 -0
  386. package/lib/assets/img/svg/toolbar/redo_button.svg +75 -0
  387. package/lib/assets/img/svg/toolbar/redo_button1.svg +75 -0
  388. package/lib/assets/img/svg/toolbar/review_quote_active.svg +14 -0
  389. package/lib/assets/img/svg/toolbar/review_quote_inactive.svg +44 -0
  390. package/lib/assets/img/svg/toolbar/save_project_button.svg +44 -0
  391. package/lib/assets/img/svg/toolbar/select_doorstyle_active.svg +67 -0
  392. package/lib/assets/img/svg/toolbar/select_doorstyle_inactive.svg +57 -0
  393. package/lib/assets/img/svg/toolbar/shopping-cart.svg +13 -0
  394. package/lib/assets/img/svg/toolbar/style_change_button.svg +47 -0
  395. package/lib/assets/img/svg/toolbar/take_picture.svg +75 -0
  396. package/lib/assets/img/svg/toolbar/undo_button.svg +76 -0
  397. package/lib/assets/img/svg/toolbar/undo_button1.svg +76 -0
  398. package/lib/assets/img/svg/toolbar/use_button.svg +37 -0
  399. package/lib/assets/img/svg/toolbar/wall_color_icon.svg +6 -0
  400. package/lib/assets/img/svg/topbar/edit_active.svg +10 -0
  401. package/lib/assets/img/svg/topbar/edit_inactive.svg +10 -0
  402. package/lib/assets/img/svg/topbar/redo_active.svg +42 -0
  403. package/lib/assets/img/svg/topbar/redo_inactive.svg +23 -0
  404. package/lib/assets/img/svg/topbar/select_all_active.svg +50 -0
  405. package/lib/assets/img/svg/topbar/select_all_inactive.svg +32 -0
  406. package/lib/assets/img/svg/topbar/take_picture_active.svg +51 -0
  407. package/lib/assets/img/svg/topbar/take_picture_inactive.svg +26 -0
  408. package/lib/assets/img/svg/topbar/undo_active.svg +42 -0
  409. package/lib/assets/img/svg/topbar/undo_inactive.svg +23 -0
  410. package/lib/assets/img/svg/warning_info_2d.svg +81 -0
  411. package/lib/assets/img/svg/window/Clear.svg +3 -0
  412. package/lib/assets/img/svg/window/Cross.svg +5 -0
  413. package/lib/assets/img/svg/window/Double_hung.svg +4 -0
  414. package/lib/assets/img/svg/window/Vertical.svg +4 -0
  415. package/lib/assets/img/svg/windows_clear.svg +23 -0
  416. package/lib/assets/img/svg/windows_cross.svg +28 -0
  417. package/lib/assets/img/svg/windows_double_hung.svg +24 -0
  418. package/lib/assets/img/svg/windows_vertical.svg +24 -0
  419. package/lib/assets/img/svg/wizardstep/Custom.svg +3 -0
  420. package/lib/assets/img/svg/wizardstep/Dashed_line.svg +3 -0
  421. package/lib/assets/img/svg/wizardstep/L.svg +3 -0
  422. package/lib/assets/img/svg/wizardstep/L2.svg +3 -0
  423. package/lib/assets/img/svg/wizardstep/Open.svg +3 -0
  424. package/lib/assets/img/svg/wizardstep/Square.svg +3 -0
  425. package/lib/assets/img/svg/wizardstep/bar-active.svg +9 -0
  426. package/lib/assets/img/svg/wizardstep/bar-normal.svg +3 -0
  427. package/lib/assets/img/svg/wizardstep/bullet-current.svg +3 -0
  428. package/lib/assets/img/svg/wizardstep/bullet-done.svg +3 -0
  429. package/lib/assets/img/svg/wizardstep/bullet-not-done.svg +3 -0
  430. package/lib/assets/img/svg/wizardstep/check-active.svg +3 -0
  431. package/lib/assets/img/svg/wizardstep/check-normal.svg +3 -0
  432. package/lib/assets/img/svg/wizardstep/detail_view.svg +87 -0
  433. package/lib/assets/img/svg/wizardstep/pencil.svg +11 -0
  434. package/lib/assets/img/svg/wizardstep/tile_view.svg +95 -0
  435. package/lib/assets/img/texture/glass.jpg +0 -0
  436. package/lib/assets/img/texture/steel.jpg +0 -0
  437. package/lib/assets/img/texture/white1px.jpg +0 -0
  438. package/lib/assets/img/texture/wood.jpg +0 -0
  439. package/lib/assets/model/DCM.bin +0 -0
  440. package/lib/assets/model/DCM.fbx +0 -0
  441. package/lib/assets/model/DCM.gltf +1 -0
  442. package/lib/assets/model/FBM.bin +0 -0
  443. package/lib/assets/model/FBM.fbx +0 -0
  444. package/lib/assets/model/FBM.gltf +1 -0
  445. package/lib/assets/model/LRM.bin +0 -0
  446. package/lib/assets/model/LRM.fbx +0 -0
  447. package/lib/assets/model/LRM.gltf +1 -0
  448. package/lib/assets/rtastore_logo.png +0 -0
  449. package/lib/catalog/areas/area/planner-element.js +53 -0
  450. package/lib/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  451. package/lib/catalog/areas/area/textures/grass.jpg +0 -0
  452. package/lib/catalog/areas/area/textures/parquet.jpg +0 -0
  453. package/lib/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  454. package/lib/catalog/areas/area/textures/tile1.jpg +0 -0
  455. package/lib/catalog/back.png +0 -0
  456. package/lib/catalog/cabinet/cabinet-assembly-order.js +42 -0
  457. package/lib/catalog/catalog.js +270 -0
  458. package/lib/catalog/doors.png +0 -0
  459. package/lib/catalog/doorways.png +0 -0
  460. package/lib/catalog/envMap/nx.hdr +0 -0
  461. package/lib/catalog/envMap/ny.hdr +0 -0
  462. package/lib/catalog/envMap/nz.hdr +0 -0
  463. package/lib/catalog/envMap/px.hdr +0 -0
  464. package/lib/catalog/envMap/py.hdr +0 -0
  465. package/lib/catalog/envMap/pz.hdr +0 -0
  466. package/lib/catalog/export.js +1 -0
  467. package/lib/catalog/factories/area-factory-3d.js +187 -0
  468. package/lib/catalog/factories/area-factory.js +88 -0
  469. package/lib/catalog/factories/export.js +25 -0
  470. package/lib/catalog/factories/wall-factory-3d.js +212 -0
  471. package/lib/catalog/factories/wall-factory.js +279 -0
  472. package/lib/catalog/holes/door-closet/planner-element.js +232 -0
  473. package/lib/catalog/holes/door-double/door_double.png +0 -0
  474. package/lib/catalog/holes/door-double/planner-element.js +325 -0
  475. package/lib/catalog/holes/door-exterior/planner-element.js +225 -0
  476. package/lib/catalog/holes/door-interior/planner-element.js +237 -0
  477. package/lib/catalog/holes/door-panic/panicDoor.png +0 -0
  478. package/lib/catalog/holes/door-panic/planner-element.js +513 -0
  479. package/lib/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  480. package/lib/catalog/holes/door-panic-double/planner-element.js +473 -0
  481. package/lib/catalog/holes/door-sliding/planner-element.js +235 -0
  482. package/lib/catalog/holes/doorway-framed/planner-element.js +155 -0
  483. package/lib/catalog/holes/doorway-frameless/planner-element.js +114 -0
  484. package/lib/catalog/holes/export.js +97 -0
  485. package/lib/catalog/holes/gate/gate.jpg +0 -0
  486. package/lib/catalog/holes/window-clear/planner-element.js +176 -0
  487. package/lib/catalog/holes/window-clear/texture.png +0 -0
  488. package/lib/catalog/holes/window-cross/planner-element.js +175 -0
  489. package/lib/catalog/holes/window-cross/texture.png +0 -0
  490. package/lib/catalog/holes/window-double-hung/planner-element.js +313 -0
  491. package/lib/catalog/holes/window-double-hung/texture.png +0 -0
  492. package/lib/catalog/holes/window-vertical/planner-element.js +286 -0
  493. package/lib/catalog/holes/window-vertical/texture.png +0 -0
  494. package/lib/catalog/lines/wall/planner-element.js +87 -0
  495. package/lib/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  496. package/lib/catalog/lines/wall/textures/bricks.jpg +0 -0
  497. package/lib/catalog/lines/wall/textures/bricks2.jpg +0 -0
  498. package/lib/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  499. package/lib/catalog/lines/wall/textures/morden.jpg +0 -0
  500. package/lib/catalog/lines/wall/textures/painted.jpg +0 -0
  501. package/lib/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  502. package/lib/catalog/lines/wall/textures/plaster.jpg +0 -0
  503. package/lib/catalog/lines/wall/wall.png +0 -0
  504. package/lib/catalog/molding/molding-dcm/planner-element.js +33 -0
  505. package/lib/catalog/molding/molding-dcm/texture.png +0 -0
  506. package/lib/catalog/molding/molding-fbm/planner-element.js +33 -0
  507. package/lib/catalog/molding/molding-fbm/texture.png +0 -0
  508. package/lib/catalog/molding/molding-lrm/planner-element.js +33 -0
  509. package/lib/catalog/molding/molding-lrm/texture.png +0 -0
  510. package/lib/catalog/utils/exporter.js +173 -0
  511. package/lib/catalog/utils/geom-utils.js +205 -0
  512. package/lib/catalog/utils/item-loader.js +1603 -0
  513. package/lib/catalog/utils/load-obj.js +99 -0
  514. package/lib/catalog/utils/mtl-loader.js +366 -0
  515. package/lib/catalog/utils/obj-loader.js +486 -0
  516. package/lib/catalog/windows.png +0 -0
  517. package/lib/class/area.js +147 -0
  518. package/lib/class/export.js +88 -0
  519. package/lib/class/group.js +438 -0
  520. package/lib/class/guide.js +64 -0
  521. package/lib/class/hole.js +930 -0
  522. package/lib/class/item.js +2013 -0
  523. package/lib/class/layer.js +670 -0
  524. package/lib/class/line.js +1236 -0
  525. package/lib/class/project.js +949 -0
  526. package/lib/class/vertex.js +205 -0
  527. package/lib/components/content.js +160 -0
  528. package/lib/components/export.js +7 -0
  529. package/lib/components/style/export.js +17 -0
  530. package/lib/components/style/form-number-input.js +192 -0
  531. package/lib/components/style/form-submit-button.js +35 -0
  532. package/lib/components/viewer2d/area.js +89 -0
  533. package/lib/components/viewer2d/export.js +121 -0
  534. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
  535. package/lib/components/viewer2d/grids/grid-streak.js +44 -0
  536. package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
  537. package/lib/components/viewer2d/grids/grids.js +40 -0
  538. package/lib/components/viewer2d/group.js +63 -0
  539. package/lib/components/viewer2d/item.js +244 -0
  540. package/lib/components/viewer2d/layer.js +172 -0
  541. package/lib/components/viewer2d/line.js +975 -0
  542. package/lib/components/viewer2d/ruler.js +92 -0
  543. package/lib/components/viewer2d/rulerDist.js +110 -0
  544. package/lib/components/viewer2d/rulerX.js +154 -0
  545. package/lib/components/viewer2d/rulerY.js +156 -0
  546. package/lib/components/viewer2d/scene.js +137 -0
  547. package/lib/components/viewer2d/snap.js +84 -0
  548. package/lib/components/viewer2d/state.js +83 -0
  549. package/lib/components/viewer2d/utils.js +200 -0
  550. package/lib/components/viewer2d/vertex.js +76 -0
  551. package/lib/components/viewer2d/viewer2d.js +1472 -0
  552. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2591 -0
  553. package/lib/components/viewer3d/dcm.js +408 -0
  554. package/lib/components/viewer3d/fbm.js +421 -0
  555. package/lib/components/viewer3d/front3D.js +71 -0
  556. package/lib/components/viewer3d/grid-creator.js +35 -0
  557. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +45 -0
  558. package/lib/components/viewer3d/grids/grid-streak.js +36 -0
  559. package/lib/components/viewer3d/grids/grid-vertical-streak.js +45 -0
  560. package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
  561. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
  562. package/lib/components/viewer3d/libs/mtl-loader.js +366 -0
  563. package/lib/components/viewer3d/libs/obj-loader.js +471 -0
  564. package/lib/components/viewer3d/libs/orbit-controls.js +706 -0
  565. package/lib/components/viewer3d/libs/pointer-lock-controls.js +53 -0
  566. package/lib/components/viewer3d/lrm.js +312 -0
  567. package/lib/components/viewer3d/model.js +714 -0
  568. package/lib/components/viewer3d/pointer-lock-navigation.js +32 -0
  569. package/lib/components/viewer3d/ruler-utils/itemRect.js +69 -0
  570. package/lib/components/viewer3d/ruler-utils/layer3D.js +503 -0
  571. package/lib/components/viewer3d/ruler-utils/ruler3D.js +232 -0
  572. package/lib/components/viewer3d/ruler-utils/scene3D.js +67 -0
  573. package/lib/components/viewer3d/ruler-utils/state3D.js +26 -0
  574. package/lib/components/viewer3d/scene-creator.js +3850 -0
  575. package/lib/components/viewer3d/three-memory-cleaner.js +46 -0
  576. package/lib/components/viewer3d/viewer3d-first-person.js +316 -0
  577. package/lib/components/viewer3d/viewer3d.js +2673 -0
  578. package/lib/constants/catalog/skinPanel.js +15 -0
  579. package/lib/constants.js +791 -0
  580. package/lib/devLiteRenderer.js +917 -0
  581. package/lib/events/external/handleExternalEvent.js +148 -0
  582. package/lib/events/external/handleExternalEvent.util.js +1110 -0
  583. package/lib/events/external/handlers.addItem.js +54 -0
  584. package/lib/events/external/handlers.changeDoorStyle.js +147 -0
  585. package/lib/events/external/handlers.elementOps.js +15 -0
  586. package/lib/events/external/handlers.finishing.js +32 -0
  587. package/lib/events/external/handlers.hole.js +10 -0
  588. package/lib/events/external/handlers.loadProject.js +135 -0
  589. package/lib/events/external/handlers.molding.js +31 -0
  590. package/lib/events/external/handlers.projectLifecycle.js +19 -0
  591. package/lib/events/external/handlers.projectSettings.js +38 -0
  592. package/lib/events/external/handlers.replaceCabinet.js +48 -0
  593. package/lib/events/external/handlers.roomShape.js +14 -0
  594. package/lib/events/external/handlers.syncScene.js +27 -0
  595. package/lib/events/external/handlers.updateSelectedElements.js +17 -0
  596. package/lib/events/external/handlers.viewMode.js +19 -0
  597. package/lib/events/external/handlers.viewerNavigation.js +117 -0
  598. package/lib/events/external/handlers.wall.js +13 -0
  599. package/lib/index.js +637 -0
  600. package/lib/mappings/external-events/mapExternalEventPayload.js +33 -0
  601. package/lib/mappings/external-events/mappers/addItemMapper.js +103 -0
  602. package/lib/mappings/external-events/mappers/ccdfMapper.js +107 -0
  603. package/lib/mappings/external-events/mappers/ccdfToCDSMapper.js +55 -0
  604. package/lib/mappings/external-events/mappers/changeDoorStyleMapper.js +44 -0
  605. package/lib/mappings/external-events/mappers/loadProjectMapper.js +70 -0
  606. package/lib/mappings/holesToCatalog.js +148 -0
  607. package/lib/models.js +534 -0
  608. package/lib/plugins/SVGLoader.js +1419 -0
  609. package/lib/plugins/console-debugger.js +42 -0
  610. package/lib/plugins/export.js +25 -0
  611. package/lib/plugins/keyboard.js +117 -0
  612. package/lib/reducers/areas-reducer.js +19 -0
  613. package/lib/reducers/export.js +89 -0
  614. package/lib/reducers/groups-reducer.js +45 -0
  615. package/lib/reducers/holes-reducer.js +69 -0
  616. package/lib/reducers/items-reducer.js +152 -0
  617. package/lib/reducers/lines-reducer.js +52 -0
  618. package/lib/reducers/project-reducer.js +143 -0
  619. package/lib/reducers/reducer.js +25 -0
  620. package/lib/reducers/scene-reducer.js +35 -0
  621. package/lib/reducers/vertices-reducer.js +26 -0
  622. package/lib/reducers/viewer2d-reducer.js +84 -0
  623. package/lib/reducers/viewer3d-reducer.js +65 -0
  624. package/lib/shared/domain/cabinet-warning.js +20 -0
  625. package/lib/shared/objects/immutable.js +9 -0
  626. package/lib/shared-style.js +72 -0
  627. package/lib/translator/en.js +111 -0
  628. package/lib/translator/it.js +86 -0
  629. package/lib/translator/ru.js +86 -0
  630. package/lib/translator/translator.js +87 -0
  631. package/lib/utils/browser.js +40 -0
  632. package/lib/utils/convert-units-lite.js +44 -0
  633. package/lib/utils/email-validator.js +10 -0
  634. package/lib/utils/export.js +56 -0
  635. package/lib/utils/geometry.js +3230 -0
  636. package/lib/utils/get-edges-of-subgraphs.js +33 -0
  637. package/lib/utils/graph-cycles.js +239 -0
  638. package/lib/utils/graph-inner-cycles.js +54 -0
  639. package/lib/utils/graph.js +153 -0
  640. package/lib/utils/helper.js +480 -0
  641. package/lib/utils/history.js +48 -0
  642. package/lib/utils/id-broker.js +22 -0
  643. package/lib/utils/logger.js +14 -0
  644. package/lib/utils/math.js +57 -0
  645. package/lib/utils/molding.js +1146 -0
  646. package/lib/utils/name-generator.js +21 -0
  647. package/lib/utils/objects-utils.js +62 -0
  648. package/lib/utils/phone-validator.js +10 -0
  649. package/lib/utils/process-black-list.js +22 -0
  650. package/lib/utils/react-if.js +25 -0
  651. package/lib/utils/ruler.js +63 -0
  652. package/lib/utils/skinPanelEngine.js +530 -0
  653. package/lib/utils/snap-scene.js +101 -0
  654. package/lib/utils/snap.js +245 -0
  655. package/lib/utils/summarizeCart.js +30 -0
  656. package/lib/utils/threeCSG.es6.js +504 -0
  657. package/lib/version.js +7 -0
  658. package/package.json +29 -24
  659. package/es/WorkSpace.js +0 -30
  660. package/es/WorkSpaceHostMimic.js +0 -132
  661. package/es/assets/gltf/door_closet.bin +0 -0
  662. package/es/assets/gltf/door_closet.fbx +0 -0
  663. package/es/assets/gltf/door_exterior.bin +0 -0
  664. package/es/assets/gltf/door_exterior.fbx +0 -0
  665. package/es/assets/gltf/door_interior.bin +0 -0
  666. package/es/assets/gltf/door_interior.fbx +0 -0
  667. package/es/assets/gltf/door_sliding.bin +0 -0
  668. package/es/assets/gltf/door_sliding.fbx +0 -0
  669. package/es/assets/img/png/helper/video_preview_3d.png +0 -0
  670. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  671. package/es/assets/img/svg/color/Brown.svg +0 -9
  672. package/es/assets/img/svg/color/Dark.svg +0 -9
  673. package/es/assets/img/svg/color/Light.svg +0 -9
  674. package/es/assets/img/svg/color/Medium.svg +0 -9
  675. package/es/assets/img/svg/color/Unfinished.svg +0 -9
  676. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  677. package/es/catalog/properties/export.js +0 -21
  678. package/es/catalog/properties/property-checkbox.js +0 -68
  679. package/es/catalog/properties/property-color.js +0 -39
  680. package/es/catalog/properties/property-enum.js +0 -50
  681. package/es/catalog/properties/property-hidden.js +0 -19
  682. package/es/catalog/properties/property-lenght-measure.js +0 -96
  683. package/es/catalog/properties/property-length-measure.js +0 -80
  684. package/es/catalog/properties/property-length-measure_hole.js +0 -96
  685. package/es/catalog/properties/property-number.js +0 -48
  686. package/es/catalog/properties/property-read-only.js +0 -26
  687. package/es/catalog/properties/property-string.js +0 -48
  688. package/es/catalog/properties/property-toggle.js +0 -39
  689. package/es/catalog/properties/shared-property-style.js +0 -14
  690. package/es/catalog/utils/FuseUtils.js +0 -79
  691. package/es/class/FuseUtils.js +0 -79
  692. package/es/components/style/button.js +0 -106
  693. package/es/components/style/cancel-button.js +0 -21
  694. package/es/components/style/content-container.js +0 -30
  695. package/es/components/style/content-title.js +0 -25
  696. package/es/components/style/delete-button.js +0 -24
  697. package/es/components/style/form-block.js +0 -20
  698. package/es/components/style/form-color-input.js +0 -26
  699. package/es/components/style/form-label.js +0 -22
  700. package/es/components/style/form-number-input_2.js +0 -238
  701. package/es/components/style/form-select.js +0 -19
  702. package/es/components/style/form-slider.js +0 -60
  703. package/es/components/style/form-text-input.js +0 -69
  704. package/es/index.html.ejs +0 -264
  705. package/es/reducers/user-reducer.js +0 -41
  706. package/es/utils/isolate-event-handler.js +0 -1622
  707. /package/{es/catalog/lines/wall/textures/bricks-normal2.jpg → lib/catalog/lines/wall/textures/painted-normal.jpg} +0 -0
@@ -2,7 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
3
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
4
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
5
- import React, { useContext, useEffect, useRef, useState } from 'react';
5
+ import React, { useEffect, useRef, useState } from 'react';
6
6
  import PropTypes from 'prop-types';
7
7
  import { ReactSVGPanZoom, TOOL_AUTO, TOOL_NONE, TOOL_PAN, TOOL_ZOOM_IN, TOOL_ZOOM_OUT } from 'react-svg-pan-zoom';
8
8
  import * as constants from "../../constants";
@@ -15,11 +15,9 @@ import FormNumberInput from "../style/form-number-input";
15
15
  import { convert } from "../../utils/convert-units-lite";
16
16
  import { Map } from 'immutable';
17
17
  import { formatNumber } from "../../utils/math";
18
- import { isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper";
19
- import { isWarningItem } from "./utils";
20
- import AppContext from "../../AppContext";
21
-
22
- // variables (kept as in your original file)
18
+ import { isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper"; // variables
19
+ import { isWarningCabinet } from "../../shared/domain/cabinet-warning";
20
+ // variables
23
21
  var pinFlag = false;
24
22
  var sFlag = false; //for all object move
25
23
  var sPoint = {}; //for all object move
@@ -32,7 +30,6 @@ var allLines;
32
30
  var allLineRects;
33
31
  var allLineSnap;
34
32
  var allRect;
35
- var holeRect;
36
33
  var allArea;
37
34
 
38
35
  // /////////
@@ -108,11 +105,10 @@ function mode2DetectAutopan(mode) {
108
105
  }
109
106
  }
110
107
  function extractElementData(node) {
111
- while (!((_node = node) !== null && _node !== void 0 && (_node = _node.attributes) !== null && _node !== void 0 && (_node$getNamedItem = _node.getNamedItem) !== null && _node$getNamedItem !== void 0 && _node$getNamedItem.call(_node, 'data-element-root')) && ((_node2 = node) === null || _node2 === void 0 ? void 0 : _node2.tagName) !== 'svg') {
112
- var _node, _node$getNamedItem, _node2;
108
+ while (!node.attributes.getNamedItem('data-element-root') && node.tagName !== 'svg') {
113
109
  node = node.parentNode;
114
110
  }
115
- if (!node || node.tagName === 'svg') return null;
111
+ if (node.tagName === 'svg') return null;
116
112
  return {
117
113
  length: node.attributes.getNamedItem('data-length') ? parseFloat(node.attributes.getNamedItem('data-length').value) : 0,
118
114
  part: node.attributes.getNamedItem('data-part') ? node.attributes.getNamedItem('data-part').value : undefined,
@@ -123,23 +119,21 @@ function extractElementData(node) {
123
119
  direct: node.attributes.getNamedItem('data-direct') ? node.attributes.getNamedItem('data-direct').value : 0
124
120
  };
125
121
  }
126
- export default function Viewer2D(_ref) {
122
+ export default function Viewer2D(_ref, _ref2) {
127
123
  var state = _ref.state,
128
124
  width = _ref.width,
129
125
  height = _ref.height,
130
126
  setToolbar = _ref.setToolbar,
131
127
  replaceCabinet = _ref.replaceCabinet,
132
128
  onInternalEvent = _ref.onInternalEvent;
133
- // React 18: useContext instead of legacy contextTypes
134
- var ctx = useContext(AppContext);
135
- var viewer2DActions = ctx.viewer2DActions,
136
- linesActions = ctx.linesActions,
137
- holesActions = ctx.holesActions,
138
- verticesActions = ctx.verticesActions,
139
- itemsActions = ctx.itemsActions,
140
- areaActions = ctx.areaActions,
141
- projectActions = ctx.projectActions,
142
- catalog = ctx.catalog;
129
+ var viewer2DActions = _ref2.viewer2DActions,
130
+ linesActions = _ref2.linesActions,
131
+ holesActions = _ref2.holesActions,
132
+ verticesActions = _ref2.verticesActions,
133
+ itemsActions = _ref2.itemsActions,
134
+ areaActions = _ref2.areaActions,
135
+ projectActions = _ref2.projectActions,
136
+ catalog = _ref2.catalog;
143
137
  var _useState = useState(null),
144
138
  _useState2 = _slicedToArray(_useState, 2),
145
139
  rulerEdit = _useState2[0],
@@ -149,56 +143,20 @@ export default function Viewer2D(_ref) {
149
143
  rulerEditID = _useState4[0],
150
144
  setRulerEditID = _useState4[1];
151
145
  var Viewer = useRef(null);
152
- var _useState5 = useState(false),
153
- _useState6 = _slicedToArray(_useState5, 2),
154
- viewerReady = _useState6[0],
155
- setViewerReady = _useState6[1];
156
- var setViewerRef = function setViewerRef(node) {
157
- Viewer.current = node;
158
- if (node && !viewerReady) setViewerReady(true);
159
- };
160
146
  var viewer2D = state.viewer2D,
161
147
  mode = state.mode,
162
148
  scene = state.scene;
163
- var _useState7 = useState([]),
164
- _useState8 = _slicedToArray(_useState7, 2),
165
- relatedLines = _useState8[0],
166
- setRelatedLines = _useState8[1];
167
- var _useState9 = useState(false),
168
- _useState0 = _slicedToArray(_useState9, 2),
169
- drawStart = _useState0[0],
170
- setdrawStart = _useState0[1];
171
-
172
- /**
173
- * ✅ CRITICAL FIX (keeps same behavior):
174
- * react-svg-pan-zoom does NOT always provide viewerEvent.x/y on mousedown/mouseup.
175
- * If you treat viewerEvent as {x,y}, you inject NaN into Redux state -> SVG crash.
176
- */
177
- var getXY = function getXY(viewerEvent) {
178
- var _viewerEvent$original;
179
- // mousemove usually has viewer coords
180
- if (Number.isFinite(viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.x) && Number.isFinite(viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.y)) {
181
- return {
182
- x: viewerEvent.x,
183
- y: viewerEvent.y
184
- };
185
- }
186
-
187
- // fallback for mousedown/mouseup
188
- var ev = (viewerEvent === null || viewerEvent === void 0 || (_viewerEvent$original = viewerEvent.originalEvent) === null || _viewerEvent$original === void 0 ? void 0 : _viewerEvent$original.nativeEvent) || (viewerEvent === null || viewerEvent === void 0 ? void 0 : viewerEvent.originalEvent);
189
- if (!ev || !Viewer.current) return null;
190
149
 
191
- // most versions expose getSVGPoint
192
- if (typeof Viewer.current.getSVGPoint === 'function') {
193
- var pt = Viewer.current.getSVGPoint(ev.clientX, ev.clientY);
194
- if (Number.isFinite(pt === null || pt === void 0 ? void 0 : pt.x) && Number.isFinite(pt === null || pt === void 0 ? void 0 : pt.y)) return pt;
195
- }
196
- return null;
197
- };
198
- var viewer2DState = state.viewer2D;
150
+ // let relatedLines = [];
151
+ var _useState5 = useState([]),
152
+ _useState6 = _slicedToArray(_useState5, 2),
153
+ relatedLines = _useState6[0],
154
+ setRelatedLines = _useState6[1];
155
+ var _useState7 = useState(false),
156
+ _useState8 = _slicedToArray(_useState7, 2),
157
+ drawStart = _useState8[0],
158
+ setdrawStart = _useState8[1];
199
159
  useEffect(function () {
200
- if (!viewerReady || !Viewer.current) return;
201
-
202
160
  // move viewer point to center
203
161
  var selectedLayer = state.scene.layers.get(state.scene.selectedLayer);
204
162
  var vertices = selectedLayer.vertices;
@@ -217,20 +175,23 @@ export default function Viewer2D(_ref) {
217
175
  });
218
176
  var moveX = topX + (bottomX - topX) / 2;
219
177
  var moveY = 2000 - (bottomY + (topY - bottomY) / 2);
220
- var zoom = viewer2DState && !viewer2DState.isEmpty() ? viewer2DState.get('a') : 1;
221
- Viewer.current.setPointOnViewerCenter(moveX, moveY, zoom);
222
- }, [viewerReady, state.scene.selectedLayer]);
178
+ Viewer.current.setPointOnViewerCenter(moveX, moveY, viewer2D.get('a'));
179
+ }, []);
223
180
  var layerID = scene.selectedLayer;
224
181
  var wall_thickness = LINE_THICKNESS / 2;
225
182
  var layer = scene.getIn(['layers', layerID]);
226
- var mapCursorPosition = function mapCursorPosition(_ref2) {
227
- var x = _ref2.x,
228
- y = _ref2.y;
183
+ var mapCursorPosition = function mapCursorPosition(_ref3) {
184
+ var x = _ref3.x,
185
+ y = _ref3.y;
229
186
  return {
230
187
  x: x,
231
188
  y: -y + scene.height
232
189
  };
233
190
  };
191
+ // let pinBackColor = pinFlag ? "#4488ff" : "black";
192
+ // let topRightImg = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? "/assets/img/svg/topbar/edit_inactive.svg" : "/assets/img/svg/topbar/edit_active.svg";
193
+ // let topBtnAction = state.mode == MODE_IDLE || state.mode == MODE_2D_PAN ? () => linesActions.selectToolDrawingLine("wall") : () => projectActions.setMode(MODE_IDLE);
194
+
234
195
  var prepareSnap = function prepareSnap() {
235
196
  var layerID = scene.selectedLayer;
236
197
  var layer = scene.layers.get(layerID);
@@ -290,7 +251,24 @@ export default function Viewer2D(_ref) {
290
251
  v_a = _GeometryUtils$orderV2[0],
291
252
  v_b = _GeometryUtils$orderV2[1];
292
253
  var v_b_new = GeometryUtils.extendLine(v_a.x, v_a.y, v_b.x, v_b.y, value.get('length'), 2);
254
+
255
+ // Blocked function that as wall changed, opposite wall should changed together.
256
+ // let layer = scene.getIn(['layers', elementData.layer]);
257
+ // let allLines = layer.lines.toArray()
258
+ // let relatedLine = allLines.filter(line => { return line.vertices.toArray().includes(v_b.id) && line.id != selectedLine.id })[0];
259
+ // let relatedVertexID = relatedLine && (relatedLine.vertices.toArray()[0] == v_b.id ? relatedLine.vertices.toArray()[1] : relatedLine.vertices.toArray()[0]);
260
+ // let v_d = relatedVertexID && layer.getIn(['vertices', relatedVertexID]);
261
+ // let delta = {
262
+ // x : v_b_new.x - v_b.x,
263
+ // y : v_b_new.y - v_b.y
264
+ // };
265
+ // let newPosition = {
266
+ // x : v_d.x + delta.x,
267
+ // y : v_d.y + delta.y
268
+ // }
269
+
293
270
  var attributesData = {
271
+ // (v_0 === v_a ? 'vertexTwo' : 'vertexOne') : v_b.merge(v_b_new)),
294
272
  lineLength: value
295
273
  };
296
274
  if (v_0 === v_a) {
@@ -310,6 +288,11 @@ export default function Viewer2D(_ref) {
310
288
  layerID: elementData.layer,
311
289
  lineID: elementData.id
312
290
  });
291
+
292
+ // Blocked function that as wall changed, opposite wall should changed together.
293
+ // verticesActions.beginDraggingVertex(elementData.layer, relatedVertexID, newPosition.x, newPosition.y, state.snapMask);
294
+ // verticesActions.updateDraggingVertex(newPosition.x, newPosition.y, state.snapMask);
295
+ // verticesActions.endDraggingVertex(newPosition.x, newPosition.y, state.snapMask);
313
296
  };
314
297
  var updateTwoHoleRulerAttribute = function updateTwoHoleRulerAttribute(elementData, value) {
315
298
  var elementIds = elementData.id.split(',');
@@ -375,9 +358,11 @@ export default function Viewer2D(_ref) {
375
358
  _loop2(j);
376
359
  }
377
360
  };
361
+ // if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {
378
362
  for (var i = 0; i < drawingLine.vertices.length; i++) {
379
363
  _loop();
380
364
  }
365
+ // }
381
366
  };
382
367
  var getEndPoint = function getEndPoint(vertices, x, y, mode) {
383
368
  var selLineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
@@ -444,6 +429,7 @@ export default function Viewer2D(_ref) {
444
429
  vtx = x;
445
430
  vty = y;
446
431
  } else {
432
+ // the origin point of rotation(snapping)
447
433
  var _originVerId = draggingLine.vertices.findIndex(function (vertice) {
448
434
  return vertice !== dragVertexId;
449
435
  });
@@ -451,7 +437,7 @@ export default function Viewer2D(_ref) {
451
437
  if (stepUnit) {
452
438
  var _ox = vertices[_originVerId].x;
453
439
  var _oy = vertices[_originVerId].y;
454
- angles.forEach(function (angle) {
440
+ angles.forEach(function (angle, index) {
455
441
  if (Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL || Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
456
442
  var absVal = Math.abs(angle);
457
443
  var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
@@ -459,7 +445,9 @@ export default function Viewer2D(_ref) {
459
445
  absVal = 360 - absVal;
460
446
  rest = -(MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
461
447
  }
448
+ // determine the direction of rotation.
462
449
  rest = angle > 0 ? -rest : rest;
450
+ // rotate the current point to last point around the first point of drawing line.
463
451
  var res = GeometryUtils.rotatePointAroundPoint(x, y, _ox, _oy, rest);
464
452
  vtx = res.x;
465
453
  vty = res.y;
@@ -467,18 +455,98 @@ export default function Viewer2D(_ref) {
467
455
  });
468
456
  }
469
457
  }
458
+
459
+ // angle snapping as a value of UNIT_ANGLE
470
460
  if (!endDrag.some(function (flag) {
471
461
  return flag === false;
472
462
  }) && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0 && stepUnit) {
473
- var result = GeometryUtils.snapAngleByUnit(lineAngle, vertices, draggingLine, vtx, vty, dragVertexId);
474
- vtx = result.x;
475
- vty = result.y;
463
+ var _result = GeometryUtils.snapAngleByUnit(lineAngle, vertices, draggingLine, vtx, vty, dragVertexId);
464
+ vtx = _result.x;
465
+ vty = _result.y;
476
466
  }
477
- return {
467
+ var result = {
478
468
  isEndDrag: endDrag,
479
469
  x: vtx,
480
470
  y: vty
481
471
  };
472
+ return result;
473
+ };
474
+ var getProperties = function getProperties(item, property) {
475
+ var _item$properties;
476
+ if (!(item !== null && item !== void 0 && (_item$properties = item.properties) !== null && _item$properties !== void 0 && _item$properties.getIn)) return 0;
477
+ var length = item.properties.getIn([property, '_length']);
478
+ var unit = item.properties.getIn([property, '_unit']);
479
+ return length && unit ? convert(length).from(unit).to('cm') : 0;
480
+ };
481
+ var point = function point(x, y) {
482
+ return {
483
+ x: x,
484
+ y: y
485
+ };
486
+ };
487
+ var getDistant = function getDistant(x, y, rotRad, curItemInfo, allRect) {
488
+ var center_h = 3 * height / 8;
489
+ var center_x1 = x - center_h * Math.sin(rotRad);
490
+ var center_y1 = y + center_h * Math.cos(rotRad);
491
+ var pointArray = [];
492
+ curItemInfo.rectCenterPoint.forEach(function (centerpoint) {
493
+ if (!Array.isArray(centerpoint) || centerpoint.length < 2) return;
494
+ var _centerpoint = _slicedToArray(centerpoint, 2),
495
+ pt = _centerpoint[0],
496
+ angle = _centerpoint[1];
497
+ if (!pt) return;
498
+
499
+ // line through centerpoint and reference center
500
+ var rectLine = angle === 180 || angle === 0 ? GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, center_x1, center_y1) : GeometryUtils.linePassingThroughTwoPoints(pt.x, pt.y, x, y);
501
+ if (!rectLine) return;
502
+ var minDist;
503
+ allRect.forEach(function (linerect) {
504
+ if (!(linerect !== null && linerect !== void 0 && linerect.rect) || linerect.rect.length < 4) return;
505
+ var p0 = GeometryUtils.clone_point(linerect.rect[2]);
506
+ var p1 = GeometryUtils.clone_point(linerect.rect[3]);
507
+ if (!p0 || !p1 || p0.x === p1.x && p0.y === p1.y) return;
508
+ var lineFn = GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
509
+ if (!lineFn) return;
510
+ var ip = GeometryUtils.twoLinesIntersection(lineFn.a, lineFn.b, lineFn.c, rectLine.a, rectLine.b, rectLine.c);
511
+ if (!ip) return;
512
+
513
+ // intersection must lie within line segment
514
+ var segLen = GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y);
515
+ if (segLen <= GeometryUtils.pointsDistance(p0.x, p0.y, ip.x, ip.y) || segLen <= GeometryUtils.pointsDistance(p1.x, p1.y, ip.x, ip.y)) return;
516
+
517
+ // ensure intersection is farther than pt→center
518
+ var distToCenter = GeometryUtils.pointsDistance(ip.x, ip.y, x, y);
519
+ var baseDist = GeometryUtils.pointsDistance(pt.x, pt.y, ip.x, ip.y);
520
+ if (distToCenter <= baseDist) return;
521
+ var candidate = baseDist;
522
+ minDist = minDist !== undefined ? Math.min(minDist, candidate) : candidate;
523
+ });
524
+ pointArray.push([minDist !== null && minDist !== void 0 ? minDist : 0, angle]);
525
+ });
526
+ return pointArray;
527
+ };
528
+ var getCalcRectFromItem = function getCalcRectFromItem(item) {
529
+ if (!(item !== null && item !== void 0 && item.pos) || !(item !== null && item !== void 0 && item.size)) return {
530
+ rectCenterPoint: []
531
+ };
532
+ var _item$pos = item.pos,
533
+ x = _item$pos.x,
534
+ y = _item$pos.y;
535
+ var w = item.size.width / 2;
536
+ var h = item.size.height / 2;
537
+ var rotRad = item.rotRad;
538
+ var mh = 3 * h / 4;
539
+ var mx = x - w * Math.cos(rotRad) - mh * Math.sin(rotRad);
540
+ var my = y - w * Math.sin(rotRad) + mh * Math.cos(rotRad);
541
+ var m2x = x + w * Math.cos(rotRad) - mh * Math.sin(rotRad);
542
+ var m2y = y + w * Math.sin(rotRad) + mh * Math.cos(rotRad);
543
+ var m3x = x - h * Math.sin(rotRad);
544
+ var m3y = y + h * Math.cos(rotRad);
545
+ var m1x = x + h * Math.sin(rotRad);
546
+ var m1y = y - h * Math.cos(rotRad);
547
+ return {
548
+ rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
549
+ };
482
550
  };
483
551
  var getConnectedLines = function getConnectedLines() {
484
552
  var _state$getIn;
@@ -486,22 +554,20 @@ export default function Viewer2D(_ref) {
486
554
  var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
487
555
  var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
488
556
  var drawingLine = (_state$getIn = state.getIn(['scene', 'layers', layerID, 'lines', lineID])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.toJS();
557
+ // get the lines that have same points with drawing line.
489
558
  if (!isEmpty(drawingLine)) {
490
559
  var tlines = [];
491
560
  getRelatedLines(tlines, drawingLine, vertices, lines);
492
561
  setRelatedLines(tlines);
493
562
  }
494
563
  };
495
-
496
- // =========================
497
- // ✅ Mouse handlers (only x/y extraction changed; logic preserved)
498
- // =========================
499
-
500
564
  var onMouseMove = function onMouseMove(viewerEvent) {
501
- var _viewerEvent$original2, _viewerEvent$original3;
502
- var raw = getXY(viewerEvent);
503
- if (!raw) return;
504
- var _mapCursorPosition = mapCursorPosition(raw),
565
+ //workaround that allow imageful component to work
566
+
567
+ // let evt = new Event('mousemove-planner-event');
568
+ // evt.viewerEvent = viewerEvent;
569
+ // document.dispatchEvent(evt);
570
+ var _mapCursorPosition = mapCursorPosition(viewerEvent),
505
571
  x = _mapCursorPosition.x,
506
572
  y = _mapCursorPosition.y;
507
573
  projectActions.updateMouseCoord({
@@ -517,127 +583,54 @@ export default function Viewer2D(_ref) {
517
583
  } else {
518
584
  switch (mode) {
519
585
  case constants.MODE_DRAWING_LINE:
520
- {
521
- var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
522
- var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
523
- var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
524
- var tlines = [];
525
- if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {
526
- var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
527
- setdrawStart(false);
528
- getRelatedLines(tlines, drawingLine, vertices, lines);
529
- setRelatedLines(tlines);
530
- linesActions.updateDrawingLine(x, y, tlines, state.snapMask);
531
- } else {
532
- linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);
533
- }
534
- break;
586
+ // check whether the drawing line is started.
587
+ var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
588
+ var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
589
+ var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
590
+ var tlines = [];
591
+ if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {
592
+ var _vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
593
+ setdrawStart(false);
594
+ // get the lines that have same points with drawing line.
595
+ getRelatedLines(tlines, drawingLine, _vertices, lines);
596
+ setRelatedLines(tlines);
597
+ linesActions.updateDrawingLine(x, y, tlines, state.snapMask);
598
+ } else {
599
+ linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);
535
600
  }
601
+
602
+ // Blocked 90 degree snap.
603
+ // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];
604
+ // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);
605
+ // let dx = Math.abs(x - prevVertex.x);
606
+ // let dy = Math.abs(y - prevVertex.y);
607
+ // if (dx > dy) y = prevVertex.y
608
+ // else x = prevVertex.x;
609
+ break;
536
610
  case constants.MODE_DRAWING_HOLE:
537
611
  holesActions.updateDrawingHole(layerID, x, y);
538
612
  break;
539
613
  case constants.MODE_DRAWING_ITEM:
540
- {
541
- var _layer = scene.layers.get(layerID);
542
- var flag = false;
543
- _layer.items.some(function (item) {
544
- if (item.selected) {
545
- item.counterTop.uri = _layer.counterTop.uri;
546
- current_sel_obj_id = item.id;
547
- flag = true;
548
- }
549
- });
550
- if (current_sel_obj_id === null || !flag) {
551
- itemsActions.updateDrawingItem(layerID, x, y);
552
- endPoint.x = x;
553
- endPoint.y = y;
554
- } else {
555
- prepareSnap();
556
- var _GeometryUtils$calcSn = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
557
- nx = _GeometryUtils$calcSn.nx,
558
- ny = _GeometryUtils$calcSn.ny,
559
- rot = _GeometryUtils$calcSn.rot,
560
- rotRad = _GeometryUtils$calcSn.rotRad;
561
- var val = {
562
- pos: {
563
- x: x,
564
- y: y
565
- },
566
- rotRad: rotRad,
567
- size: allItemRect.cur && allItemRect.cur.size,
568
- layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
569
- is_corner: allItemRect.cur && allItemRect.cur.is_corner
570
- };
571
- var _GeometryUtils$getAll = GeometryUtils.getAllHoleRect(scene, val),
572
- isSect = _GeometryUtils$getAll.isSect,
573
- snap = _GeometryUtils$getAll.snap;
574
- if (!isEmpty(snap) && isSect) {
575
- if (snap.length == 1) val.pos = {
576
- x: snap[0].x,
577
- y: snap[0].y
578
- };else {
579
- if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
580
- x: snap[0].x,
581
- y: snap[0].y
582
- };else val.pos = {
583
- x: snap[1].x,
584
- y: snap[1].y
585
- };
586
- }
587
- var interSect = GeometryUtils.validInterSect(allItemRect.others, val);
588
- if (interSect) {
589
- nx = val.pos.x;
590
- ny = val.pos.y;
591
- }
592
- }
593
- val.pos = {
594
- x: nx,
595
- y: ny
596
- };
597
- var isrectSect = GeometryUtils.validInterSect(allItemRect.others, val);
598
- if (isrectSect && isSect) {
599
- itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
600
- itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
601
- endPoint.x = nx;
602
- endPoint.y = ny;
603
- }
604
- if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('cabinet')) {
605
- itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
606
- itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
607
- endPoint.x = nx;
608
- endPoint.y = ny;
609
- }
610
- if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
611
- itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
612
- itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
613
- endPoint.x = nx;
614
- endPoint.y = ny;
615
- }
614
+ var _layer = scene.layers.get(layerID);
615
+ var flag = false;
616
+ _layer.items.some(function (item) {
617
+ if (item.selected) {
618
+ item.counterTop.uri = _layer.counterTop.uri;
619
+ current_sel_obj_id = item.id;
620
+ flag = true;
616
621
  }
617
- break;
618
- }
619
- case constants.MODE_DRAGGING_HOLE:
620
- holesActions.updateDraggingHole(x, y);
621
- break;
622
- case constants.MODE_DRAGGING_LINE:
623
- linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
624
- break;
625
- case constants.MODE_DRAGGING_VERTEX:
626
- {
627
- var _vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
628
- getConnectedLines();
629
- var result = getEndPoint(_vertices, x, y, 'DRAGGING_VERTEX');
630
- verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
631
- break;
632
- }
633
- case constants.MODE_DRAGGING_ITEM:
634
- {
622
+ });
623
+ if (current_sel_obj_id === null || !flag) {
624
+ itemsActions.updateDrawingItem(layerID, x, y);
625
+ endPoint.x = x;
626
+ endPoint.y = y;
627
+ } else {
635
628
  prepareSnap();
636
- var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
637
- nx = _GeometryUtils$calcSn2.nx,
638
- ny = _GeometryUtils$calcSn2.ny,
639
- rot = _GeometryUtils$calcSn2.rot,
640
- rotRad = _GeometryUtils$calcSn2.rotRad;
629
+ var _GeometryUtils$calcSn = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
630
+ nx = _GeometryUtils$calcSn.nx,
631
+ ny = _GeometryUtils$calcSn.ny,
632
+ rot = _GeometryUtils$calcSn.rot,
633
+ rotRad = _GeometryUtils$calcSn.rotRad;
641
634
  var _val = {
642
635
  pos: {
643
636
  x: x,
@@ -648,14 +641,14 @@ export default function Viewer2D(_ref) {
648
641
  layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
649
642
  is_corner: allItemRect.cur && allItemRect.cur.is_corner
650
643
  };
651
- var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, _val),
652
- _isSect = _GeometryUtils$getAll2.isSect,
653
- _snap = _GeometryUtils$getAll2.snap;
644
+ var _GeometryUtils$getAll = GeometryUtils.getAllHoleRect(scene, _val),
645
+ _isSect = _GeometryUtils$getAll.isSect,
646
+ _snap = _GeometryUtils$getAll.snap;
654
647
  if (!isEmpty(_snap) && _isSect) {
655
648
  if (_snap.length == 1) _val.pos = {
656
649
  x: _snap[0].x,
657
650
  y: _snap[0].y
658
- };else if (_snap.length == 2) {
651
+ };else {
659
652
  if ((_snap[0].x - x) * (_snap[0].x - x) + (_snap[0].y - y) * (_snap[0].y - y) < (_snap[1].x - x) * (_snap[1].x - x) + (_snap[1].y - y) * (_snap[1].y - y)) _val.pos = {
660
653
  x: _snap[0].x,
661
654
  y: _snap[0].y
@@ -664,8 +657,8 @@ export default function Viewer2D(_ref) {
664
657
  y: _snap[1].y
665
658
  };
666
659
  }
667
- var _interSect = GeometryUtils.validInterSect(allItemRect.others, _val);
668
- if (_interSect) {
660
+ var interSect = GeometryUtils.validInterSect(allItemRect.others, _val);
661
+ if (interSect) {
669
662
  nx = _val.pos.x;
670
663
  ny = _val.pos.y;
671
664
  }
@@ -678,33 +671,106 @@ export default function Viewer2D(_ref) {
678
671
  if (_isrectSect && _isSect) {
679
672
  itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
680
673
  itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
674
+ endPoint.x = nx;
675
+ endPoint.y = ny;
681
676
  }
682
- if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cabinet')) {
677
+ if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('cabinet')) {
683
678
  itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
684
679
  itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
680
+ endPoint.x = nx;
681
+ endPoint.y = ny;
685
682
  }
686
683
  if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
687
684
  itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
688
685
  itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
686
+ endPoint.x = nx;
687
+ endPoint.y = ny;
688
+ }
689
+ }
690
+ break;
691
+ case constants.MODE_DRAGGING_HOLE:
692
+ holesActions.updateDraggingHole(x, y);
693
+ break;
694
+ case constants.MODE_DRAGGING_LINE:
695
+ linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
696
+ break;
697
+ case constants.MODE_DRAGGING_VERTEX:
698
+ var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
699
+ getConnectedLines();
700
+ var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
701
+ verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
702
+ break;
703
+ case constants.MODE_DRAGGING_ITEM:
704
+ prepareSnap();
705
+ var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
706
+ nx = _GeometryUtils$calcSn2.nx,
707
+ ny = _GeometryUtils$calcSn2.ny,
708
+ rot = _GeometryUtils$calcSn2.rot,
709
+ rotRad = _GeometryUtils$calcSn2.rotRad;
710
+ var val = {
711
+ pos: {
712
+ x: x,
713
+ y: y
714
+ },
715
+ rotRad: rotRad,
716
+ size: allItemRect.cur && allItemRect.cur.size,
717
+ layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
718
+ is_corner: allItemRect.cur && allItemRect.cur.is_corner
719
+ };
720
+ var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, val),
721
+ isSect = _GeometryUtils$getAll2.isSect,
722
+ snap = _GeometryUtils$getAll2.snap;
723
+ if (!isEmpty(snap) && isSect) {
724
+ if (snap.length == 1) val.pos = {
725
+ x: snap[0].x,
726
+ y: snap[0].y
727
+ };else if (snap.length == 2) {
728
+ if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
729
+ x: snap[0].x,
730
+ y: snap[0].y
731
+ };else val.pos = {
732
+ x: snap[1].x,
733
+ y: snap[1].y
734
+ };
735
+ }
736
+ var _interSect = GeometryUtils.validInterSect(allItemRect.others, val);
737
+ if (_interSect) {
738
+ nx = val.pos.x;
739
+ ny = val.pos.y;
689
740
  }
690
- break;
691
741
  }
742
+ val.pos = {
743
+ x: nx,
744
+ y: ny
745
+ };
746
+ var isrectSect = GeometryUtils.validInterSect(allItemRect.others, val);
747
+ if (isrectSect && isSect) {
748
+ itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
749
+ itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
750
+ }
751
+ if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cabinet')) {
752
+ itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
753
+ itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
754
+ }
755
+ if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
756
+ itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
757
+ itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
758
+ }
759
+ break;
692
760
  case constants.MODE_ROTATING_ITEM:
693
761
  itemsActions.updateRotatingItem(x, y);
694
762
  break;
695
- default:
696
- break;
697
763
  }
698
764
  }
699
- viewerEvent === null || viewerEvent === void 0 || (_viewerEvent$original2 = viewerEvent.originalEvent) === null || _viewerEvent$original2 === void 0 || (_viewerEvent$original3 = _viewerEvent$original2.stopPropagation) === null || _viewerEvent$original3 === void 0 || _viewerEvent$original3.call(_viewerEvent$original2);
765
+ viewerEvent.originalEvent.stopPropagation();
700
766
  };
701
767
  var onMouseDown = function onMouseDown(viewerEvent) {
702
768
  var event = viewerEvent.originalEvent;
703
-
704
- // fixed: do not treat viewerEvent as {x,y}
705
- var raw = getXY(viewerEvent);
706
- if (!raw) return;
707
- var _mapCursorPosition2 = mapCursorPosition(raw),
769
+ //workaround that allow imageful component to work
770
+ // let evt = new Event('mousedown-planner-event');
771
+ // evt.viewerEvent = viewerEvent;
772
+ // document.dispatchEvent(evt);
773
+ var _mapCursorPosition2 = mapCursorPosition(viewerEvent),
708
774
  x = _mapCursorPosition2.x,
709
775
  y = _mapCursorPosition2.y;
710
776
  var layer = state.scene.getIn(['layers', state.scene.selectedLayer]);
@@ -738,10 +804,12 @@ export default function Viewer2D(_ref) {
738
804
  setToolbar('');
739
805
  current_sel_obj_id = elementData.id;
740
806
  if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
807
+ // closes the setting dialog
741
808
  if (document.getElementById('setting_dialog')) {
742
809
  document.getElementById('setting_dialog').style.display = 'none';
743
810
  }
744
811
  itemsActions.selectItem(elementData.layer, elementData.id);
812
+ // projectActions.setMode(constants.MODE_DRAGGING_ITEM);
745
813
  itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
746
814
  replaceCabinet(false);
747
815
  }
@@ -761,15 +829,9 @@ export default function Viewer2D(_ref) {
761
829
  event.stopPropagation();
762
830
  };
763
831
  var onMouseUp = function onMouseUp(viewerEvent) {
832
+ //set move all flag false
764
833
  sFlag = false;
765
834
  var event = viewerEvent.originalEvent;
766
-
767
- // ✅ fixed: do not treat viewerEvent as {x,y}
768
- var raw = getXY(viewerEvent);
769
- if (!raw) return;
770
- var _mapCursorPosition3 = mapCursorPosition(raw),
771
- x = _mapCursorPosition3.x,
772
- y = _mapCursorPosition3.y;
773
835
  var parent = document.querySelector('#kitchen-simulator-container');
774
836
  var targetRect = event.target.getBoundingClientRect();
775
837
  var left = targetRect.left;
@@ -790,6 +852,13 @@ export default function Viewer2D(_ref) {
790
852
  }
791
853
  }
792
854
  setRulerEdit(null);
855
+ // let evt = new Event('mouseup-planner-event');
856
+ // evt.viewerEvent = viewerEvent;
857
+ // document.dispatchEvent(evt);
858
+
859
+ var _mapCursorPosition3 = mapCursorPosition(viewerEvent),
860
+ x = _mapCursorPosition3.x,
861
+ y = _mapCursorPosition3.y;
793
862
  var draggingDistance = Math.sqrt((x - mouseDownPoint.x) * (x - mouseDownPoint.x) + (y - mouseDownPoint.y) * (y - mouseDownPoint.y));
794
863
  var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
795
864
  var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
@@ -826,6 +895,8 @@ export default function Viewer2D(_ref) {
826
895
  elementPrototype = 'items';
827
896
  internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
828
897
  break;
898
+
899
+ // item selection be came from dragging mode
829
900
  case constants.MODE_DRAGGING_ITEM:
830
901
  elementPrototype = 'items';
831
902
  internalType = INTERNAL_EVENT_SELECT_ELEMENT;
@@ -840,12 +911,8 @@ export default function Viewer2D(_ref) {
840
911
  internalType = INTERNAL_EVENT_SELECT_ELEMENT;
841
912
  }
842
913
  break;
843
- default:
844
- break;
845
914
  }
846
915
  break;
847
- default:
848
- break;
849
916
  }
850
917
  switch (mode) {
851
918
  case constants.MODE_IDLE:
@@ -864,6 +931,7 @@ export default function Viewer2D(_ref) {
864
931
  projectActions.remove();
865
932
  break;
866
933
  } else if (elementData.part === 'elevation') {
934
+ // handle action when click elevation about selected line
867
935
  var _mode = MODE_ELEVATION_VIEW;
868
936
  projectActions.setMode(_mode);
869
937
  internalType = constants.INTERNAL_EVENT_TOGGLE_TO_ELEVATION;
@@ -885,12 +953,13 @@ export default function Viewer2D(_ref) {
885
953
  case 'items':
886
954
  if (elementData.part === 'duplicate') {
887
955
  var currentObject = state.getIn(['scene', 'layers', layerID, 'items', elementData.id]);
888
- if (!isWarningItem(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent);
956
+ if (!isWarningCabinet(currentObject)) itemsActions.duplicateSelected(currentObject, onInternalEvent); // send draw internal event when duplicating
889
957
  break;
890
958
  } else if (elementData.part === 'remove') {
891
959
  projectActions.remove();
892
960
  break;
893
961
  } else if (elementData.part === 'warning_edit') {
962
+ // closes the setting dialog
894
963
  if (document.getElementById('setting_dialog')) {
895
964
  document.getElementById('setting_dialog').style.display = 'none';
896
965
  }
@@ -903,249 +972,233 @@ export default function Viewer2D(_ref) {
903
972
  break;
904
973
  }
905
974
  case 'rulerDist':
906
- {
907
- var _length1 = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
908
- var distanceText1 = "".concat(formatNumber(_length1, DECIMAL_PLACES_2));
909
- var numberInput1 = /*#__PURE__*/React.createElement("div", {
910
- id: "ruler_numberInput",
911
- style: {
912
- position: 'absolute',
913
- left: left,
914
- top: top,
915
- zIndex: 1000
916
- }
917
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
918
- style: {
919
- textAlign: 'center',
920
- paddingRight: 10,
921
- fontSize: '16px',
922
- lineHeight: '22px',
923
- fontWeight: 600
924
- },
925
- value: distanceText1,
926
- onChange: function onChange(event) {
927
- var value = new Map({
928
- length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
929
- _length: event.target.value,
930
- _unit: scene.rulerUnit
931
- });
932
- updateRulerDistAttribute(elementData, value);
933
- },
934
- precision: 2
935
- }));
936
- setRulerEdit(numberInput1);
937
- projectActions.unselectAll();
938
- break;
939
- }
975
+ var _length1 = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
976
+ var distanceText1 = "".concat(formatNumber(_length1, DECIMAL_PLACES_2));
977
+ var numberInput1 = /*#__PURE__*/React.createElement("div", {
978
+ id: "ruler_numberInput",
979
+ style: {
980
+ position: 'absolute',
981
+ left: left,
982
+ top: top,
983
+ zIndex: 1000
984
+ }
985
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
986
+ style: {
987
+ textAlign: 'center',
988
+ paddingRight: 10,
989
+ fontSize: '16px',
990
+ lineHeight: '22px',
991
+ fontWeight: 600
992
+ },
993
+ value: distanceText1,
994
+ onChange: function onChange(event) {
995
+ var value = new Map({
996
+ length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
997
+ _length: event.target.value,
998
+ _unit: scene.rulerUnit
999
+ });
1000
+ updateRulerDistAttribute(elementData, value);
1001
+ },
1002
+ precision: 2
1003
+ }));
1004
+ setRulerEdit(numberInput1);
1005
+ projectActions.unselectAll();
1006
+ break;
940
1007
  case 'ruler':
941
- {
942
- var _length = convert(elementData.length).from(scene.unit).to(selectedLayer.unit);
943
- var numberInput = /*#__PURE__*/React.createElement("div", {
944
- id: "ruler_numberInput",
945
- style: {
946
- position: 'absolute',
947
- left: left,
948
- top: top,
949
- zIndex: 1000
950
- }
951
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
952
- style: {
953
- textAlign: 'center',
954
- paddingRight: 10,
955
- fontSize: '16px',
956
- lineHeight: '22px',
957
- fontWeight: 600
958
- },
959
- value: formatNumber(_length, DECIMAL_PLACES_2),
960
- onChange: function onChange(event) {
961
- var value = new Map({
962
- length: convert(event.target.value).from(selectedLayer.unit).to(scene.unit),
963
- _length: event.target.value,
964
- _unit: selectedLayer.unit
965
- });
966
- updateRulerAttribute(elementData, value);
967
- },
968
- precision: 2
969
- }));
970
- setRulerEdit(numberInput);
971
- projectActions.unselectAll();
972
- break;
973
- }
1008
+ var _length = convert(elementData.length).from(scene.unit).to(selectedLayer.unit);
1009
+ var numberInput = /*#__PURE__*/React.createElement("div", {
1010
+ id: "ruler_numberInput",
1011
+ style: {
1012
+ position: 'absolute',
1013
+ left: left,
1014
+ top: top,
1015
+ zIndex: 1000
1016
+ }
1017
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1018
+ style: {
1019
+ textAlign: 'center',
1020
+ paddingRight: 10,
1021
+ fontSize: '16px',
1022
+ lineHeight: '22px',
1023
+ fontWeight: 600
1024
+ },
1025
+ value: formatNumber(_length, DECIMAL_PLACES_2),
1026
+ onChange: function onChange(event) {
1027
+ var value = new Map({
1028
+ length: convert(event.target.value).from(selectedLayer.unit).to(scene.unit),
1029
+ _length: event.target.value,
1030
+ _unit: selectedLayer.unit
1031
+ });
1032
+ updateRulerAttribute(elementData, value);
1033
+ },
1034
+ precision: 2
1035
+ }));
1036
+ setRulerEdit(numberInput);
1037
+ projectActions.unselectAll();
1038
+ break;
974
1039
  case 'twoHoleRuler':
975
- {
976
- var _lengthTwoHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
977
- var distanceTextTwoHoleRuler = "".concat(formatNumber(_lengthTwoHoleRuler, DECIMAL_PLACES_2));
978
- var numberInputTwoHoleRuler = /*#__PURE__*/React.createElement("div", {
979
- id: "ruler_numberInput",
980
- style: {
981
- position: 'absolute',
982
- left: left,
983
- top: top,
984
- zIndex: 1000
985
- }
986
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
987
- style: {
988
- textAlign: 'center',
989
- padding: 'auto',
990
- fontSize: '16px',
991
- lineHeight: '22px',
992
- fontWeight: 600
993
- },
994
- value: distanceTextTwoHoleRuler,
995
- onChange: function onChange(event) {
996
- var value = new Map({
997
- length: convert(event.target.value / 2).from(scene.rulerUnit).to(scene.unit),
998
- _length: event.target.value / 2,
999
- _unit: scene.rulerUnit
1000
- });
1001
- updateTwoHoleRulerAttribute(elementData, value);
1002
- },
1003
- precision: 2
1004
- }));
1005
- setRulerEdit(numberInputTwoHoleRuler);
1006
- projectActions.unselectAll();
1007
- break;
1008
- }
1040
+ var _lengthTwoHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1041
+ var distanceTextTwoHoleRuler = "".concat(formatNumber(_lengthTwoHoleRuler, DECIMAL_PLACES_2));
1042
+ var numberInputTwoHoleRuler = /*#__PURE__*/React.createElement("div", {
1043
+ id: "ruler_numberInput",
1044
+ style: {
1045
+ position: 'absolute',
1046
+ left: left,
1047
+ top: top,
1048
+ zIndex: 1000
1049
+ }
1050
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1051
+ style: {
1052
+ textAlign: 'center',
1053
+ padding: 'auto',
1054
+ fontSize: '16px',
1055
+ lineHeight: '22px',
1056
+ fontWeight: 600
1057
+ },
1058
+ value: distanceTextTwoHoleRuler,
1059
+ onChange: function onChange(event) {
1060
+ var value = new Map({
1061
+ length: convert(event.target.value / 2).from(scene.rulerUnit).to(scene.unit),
1062
+ _length: event.target.value / 2,
1063
+ _unit: scene.rulerUnit
1064
+ });
1065
+ updateTwoHoleRulerAttribute(elementData, value);
1066
+ },
1067
+ precision: 2
1068
+ }));
1069
+ setRulerEdit(numberInputTwoHoleRuler);
1070
+ projectActions.unselectAll();
1071
+ break;
1009
1072
  case 'leftHoleRuler':
1010
- {
1011
- var _lengthLeftHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1012
- var distanceTextLeftHoleRuler = "".concat(_lengthLeftHoleRuler.toFixed(2));
1013
- var numberInputLeftHoleRuler = /*#__PURE__*/React.createElement("div", {
1014
- id: "ruler_numberInput",
1015
- style: {
1016
- position: 'absolute',
1017
- left: left,
1018
- top: top,
1019
- zIndex: 1000
1020
- }
1021
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
1022
- style: {
1023
- textAlign: 'center',
1024
- paddingRight: 10,
1025
- fontSize: '16px',
1026
- lineHeight: '22px',
1027
- fontWeight: 600
1028
- },
1029
- value: distanceTextLeftHoleRuler,
1030
- onChange: function onChange(event) {
1031
- var value = new Map({
1032
- length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1033
- _length: event.target.value,
1034
- _unit: scene.rulerUnit
1035
- });
1036
- updateLeftHoleRulerAttribute(elementData, value);
1037
- },
1038
- precision: 2
1039
- }));
1040
- setRulerEdit(numberInputLeftHoleRuler);
1041
- projectActions.unselectAll();
1042
- break;
1043
- }
1073
+ var _lengthLeftHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1074
+ var distanceTextLeftHoleRuler = "".concat(_lengthLeftHoleRuler.toFixed(2));
1075
+ var numberInputLeftHoleRuler = /*#__PURE__*/React.createElement("div", {
1076
+ id: "ruler_numberInput",
1077
+ style: {
1078
+ position: 'absolute',
1079
+ left: left,
1080
+ top: top,
1081
+ zIndex: 1000
1082
+ }
1083
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1084
+ style: {
1085
+ textAlign: 'center',
1086
+ paddingRight: 10,
1087
+ fontSize: '16px',
1088
+ lineHeight: '22px',
1089
+ fontWeight: 600
1090
+ },
1091
+ value: distanceTextLeftHoleRuler,
1092
+ onChange: function onChange(event) {
1093
+ var value = new Map({
1094
+ length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1095
+ _length: event.target.value,
1096
+ _unit: scene.rulerUnit
1097
+ });
1098
+ updateLeftHoleRulerAttribute(elementData, value);
1099
+ },
1100
+ precision: 2
1101
+ }));
1102
+ setRulerEdit(numberInputLeftHoleRuler);
1103
+ projectActions.unselectAll();
1104
+ break;
1044
1105
  case 'rulerHole':
1045
- {
1046
- var _lengthRulerHole = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1047
- var distanceTextRulerHole = "".concat(formatNumber(_lengthRulerHole, DECIMAL_PLACES_2));
1048
- var numberInputRulerHole = /*#__PURE__*/React.createElement("div", {
1049
- id: "ruler_numberInput",
1050
- style: {
1051
- position: 'absolute',
1052
- left: left,
1053
- top: top,
1054
- zIndex: 1000
1055
- }
1056
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
1057
- style: {
1058
- textAlign: 'center',
1059
- paddingRight: 10,
1060
- fontSize: '16px',
1061
- lineHeight: '22px',
1062
- fontWeight: 600
1063
- },
1064
- value: distanceTextRulerHole,
1065
- onChange: function onChange(event) {
1066
- var value = new Map({
1067
- length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1068
- _length: event.target.value,
1069
- _unit: scene.rulerUnit
1070
- });
1071
- updateHoleRulerAttribute(elementData, value);
1072
- },
1073
- precision: 2
1074
- }));
1075
- setRulerEdit(numberInputRulerHole);
1076
- projectActions.unselectAll();
1077
- break;
1078
- }
1106
+ var _lengthRulerHole = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1107
+ var distanceTextRulerHole = "".concat(formatNumber(_lengthRulerHole, DECIMAL_PLACES_2));
1108
+ var numberInputRulerHole = /*#__PURE__*/React.createElement("div", {
1109
+ id: "ruler_numberInput",
1110
+ style: {
1111
+ position: 'absolute',
1112
+ left: left,
1113
+ top: top,
1114
+ zIndex: 1000
1115
+ }
1116
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1117
+ style: {
1118
+ textAlign: 'center',
1119
+ paddingRight: 10,
1120
+ fontSize: '16px',
1121
+ lineHeight: '22px',
1122
+ fontWeight: 600
1123
+ },
1124
+ value: distanceTextRulerHole,
1125
+ onChange: function onChange(event) {
1126
+ var value = new Map({
1127
+ length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1128
+ _length: event.target.value,
1129
+ _unit: scene.rulerUnit
1130
+ });
1131
+ updateHoleRulerAttribute(elementData, value);
1132
+ },
1133
+ precision: 2
1134
+ }));
1135
+ setRulerEdit(numberInputRulerHole);
1136
+ projectActions.unselectAll();
1137
+ break;
1079
1138
  case 'rightHoleRuler':
1080
- {
1081
- var _lengthRightHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1082
- var distanceTextRightHoleRuler = "".concat(_lengthRightHoleRuler.toFixed(2));
1083
- var numberInputRightHoleRuler = /*#__PURE__*/React.createElement("div", {
1084
- id: "ruler_numberInput",
1085
- style: {
1086
- position: 'absolute',
1087
- left: left,
1088
- top: top,
1089
- zIndex: 1000
1090
- }
1091
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
1092
- style: {
1093
- textAlign: 'center',
1094
- paddingRight: 10,
1095
- fontSize: '16px',
1096
- lineHeight: '22px',
1097
- fontWeight: 600
1098
- },
1099
- value: distanceTextRightHoleRuler,
1100
- onChange: function onChange(event) {
1101
- var value = new Map({
1102
- length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1103
- _length: event.target.value,
1104
- _unit: scene.rulerUnit
1105
- });
1106
- updateRightHoleRulerAttribute(elementData, value);
1107
- },
1108
- precision: 2
1109
- }));
1110
- setRulerEdit(numberInputRightHoleRuler);
1111
- projectActions.unselectAll();
1112
- break;
1113
- }
1139
+ var _lengthRightHoleRuler = convert(elementData.length).from(scene.unit).to(scene.rulerUnit);
1140
+ var distanceTextRightHoleRuler = "".concat(_lengthRightHoleRuler.toFixed(2));
1141
+ var numberInputRightHoleRuler = /*#__PURE__*/React.createElement("div", {
1142
+ id: "ruler_numberInput",
1143
+ style: {
1144
+ position: 'absolute',
1145
+ left: left,
1146
+ top: top,
1147
+ zIndex: 1000
1148
+ }
1149
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1150
+ style: {
1151
+ textAlign: 'center',
1152
+ paddingRight: 10,
1153
+ fontSize: '16px',
1154
+ lineHeight: '22px',
1155
+ fontWeight: 600
1156
+ },
1157
+ value: distanceTextRightHoleRuler,
1158
+ onChange: function onChange(event) {
1159
+ var value = new Map({
1160
+ length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1161
+ _length: event.target.value,
1162
+ _unit: scene.rulerUnit
1163
+ });
1164
+ updateRightHoleRulerAttribute(elementData, value);
1165
+ },
1166
+ precision: 2
1167
+ }));
1168
+ setRulerEdit(numberInputRightHoleRuler);
1169
+ projectActions.unselectAll();
1170
+ break;
1114
1171
  case 'angleChange':
1115
- {
1116
- var _length2 = elementData.length;
1117
- var numberInput2 = /*#__PURE__*/React.createElement("div", {
1118
- id: "ruler_numberInput",
1119
- style: {
1120
- position: 'absolute',
1121
- left: left,
1122
- top: top,
1123
- zIndex: 1000
1124
- }
1125
- }, /*#__PURE__*/React.createElement(FormNumberInput, {
1126
- style: {
1127
- width: 50,
1128
- height: 50
1129
- },
1130
- value: _length2,
1131
- onChange: function onChange(event) {
1132
- var value = new Map({
1133
- length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1134
- _length: event.target.value,
1135
- _unit: scene.rulerUnit
1136
- });
1137
- updateangleChangeAttribute(elementData, value);
1138
- },
1139
- precision: 2
1140
- }));
1141
- setRulerEdit(numberInput2);
1142
- projectActions.unselectAll();
1143
- break;
1144
- }
1145
- case 'none':
1172
+ var _length2 = elementData.length;
1173
+ var numberInput2 = /*#__PURE__*/React.createElement("div", {
1174
+ id: "ruler_numberInput",
1175
+ style: {
1176
+ position: 'absolute',
1177
+ left: left,
1178
+ top: top,
1179
+ zIndex: 1000
1180
+ }
1181
+ }, /*#__PURE__*/React.createElement(FormNumberInput, {
1182
+ style: {
1183
+ width: 50,
1184
+ height: 50
1185
+ },
1186
+ value: _length2,
1187
+ onChange: function onChange(event) {
1188
+ var value = new Map({
1189
+ length: convert(event.target.value).from(scene.rulerUnit).to(scene.unit),
1190
+ _length: event.target.value,
1191
+ _unit: scene.rulerUnit
1192
+ });
1193
+ updateangleChangeAttribute(elementData, value);
1194
+ },
1195
+ precision: 2
1196
+ }));
1197
+ setRulerEdit(numberInput2);
1146
1198
  projectActions.unselectAll();
1147
1199
  break;
1148
- default:
1200
+ case 'none':
1201
+ projectActions.unselectAll();
1149
1202
  break;
1150
1203
  }
1151
1204
  break;
@@ -1154,14 +1207,19 @@ export default function Viewer2D(_ref) {
1154
1207
  linesActions.beginDrawingLine(layerID, x, y, state.snapMask, onInternalEvent);
1155
1208
  break;
1156
1209
  case constants.MODE_DRAWING_LINE:
1157
- {
1158
- setdrawStart(true);
1159
- getConnectedLines();
1160
- var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
1161
- linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
1162
- linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask, onInternalEvent);
1163
- break;
1164
- }
1210
+ // Blocked 90 degree snap.
1211
+ // let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];
1212
+ // let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);
1213
+ // let dx = Math.abs(x - prevVertex.x);
1214
+ // let dy = Math.abs(y - prevVertex.y);
1215
+ // if (dx > dy) y = prevVertex.y
1216
+ // else x = prevVertex.x;
1217
+ setdrawStart(true);
1218
+ getConnectedLines();
1219
+ var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
1220
+ linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
1221
+ linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask, onInternalEvent);
1222
+ break;
1165
1223
  case constants.MODE_DRAWING_HOLE:
1166
1224
  holesActions.endDrawingHole(layerID, x, y);
1167
1225
  break;
@@ -1169,18 +1227,16 @@ export default function Viewer2D(_ref) {
1169
1227
  {
1170
1228
  var itemData = state.getIn(['scene', 'layers', layerID, elementData === null || elementData === void 0 ? void 0 : elementData.prototype, elementData === null || elementData === void 0 ? void 0 : elementData.id]);
1171
1229
  itemsActions.endDrawingItem(layerID, itemData.isInitialPos ? itemData.x : endPoint.x, itemData.isInitialPos ? itemData.y : endPoint.y);
1172
- break;
1173
1230
  }
1231
+ break;
1174
1232
  case constants.MODE_DRAGGING_LINE:
1175
1233
  linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);
1176
1234
  break;
1177
1235
  case constants.MODE_DRAGGING_VERTEX:
1178
- {
1179
- getConnectedLines();
1180
- var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
1181
- verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
1182
- break;
1183
- }
1236
+ getConnectedLines();
1237
+ var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
1238
+ verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
1239
+ break;
1184
1240
  case constants.MODE_DRAGGING_ITEM:
1185
1241
  itemsActions.updateMolding();
1186
1242
  projectActions.setMode(MODE_IDLE);
@@ -1191,8 +1247,6 @@ export default function Viewer2D(_ref) {
1191
1247
  case constants.MODE_ROTATING_ITEM:
1192
1248
  itemsActions.endRotatingItem(x, y);
1193
1249
  break;
1194
- default:
1195
- break;
1196
1250
  }
1197
1251
  if (internalType) {
1198
1252
  var _currentObject2;
@@ -1202,7 +1256,9 @@ export default function Viewer2D(_ref) {
1202
1256
  _currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
1203
1257
  }
1204
1258
  if (_currentObject) {
1205
- var payload = updatePayloadOfInternalEvent(_currentObject, layer, catalog);
1259
+ var payload = updatePayloadOfInternalEvent(_currentObject, layer);
1260
+
1261
+ // send selection event befor replace event
1206
1262
  if (internalType === constants.INTERNAL_EVENT_REPLACE_CABINET) {
1207
1263
  onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
1208
1264
  type: INTERNAL_EVENT_SELECT_ELEMENT,
@@ -1219,7 +1275,7 @@ export default function Viewer2D(_ref) {
1219
1275
  };
1220
1276
  var onChangeValue = function onChangeValue(value) {
1221
1277
  if (sFlag) return;
1222
- var _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE, 10);
1278
+ var _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE);
1223
1279
  if (_zoomValue > constants.MAX_ZOOM_IN_SCALE) return;
1224
1280
  if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
1225
1281
  if (rulerEdit !== null && value.startX && value.startY || value.lastAction === 'zoom') {
@@ -1236,6 +1292,13 @@ export default function Viewer2D(_ref) {
1236
1292
  }
1237
1293
  }
1238
1294
  if (value.e <= 10 && value.e + value.a * value.SVGWidth + 10 >= value.viewerWidth && value.f <= 80 && value.f + value.d * value.SVGHeight + 10 >= value.viewerHeight) {
1295
+ /*let val = Object.assign({}, value);
1296
+ if (refresh === 2) {
1297
+ val.a += 0.4; val.d += 0.4;
1298
+ val.e -= (val.SVGWidth * val.a - val.SVGWidth * (val.a - 0.4)) / 2;
1299
+ val.f -= (val.SVGHeight * val.d - val.SVGHeight * (val.d - 0.4)) / 2;
1300
+ console.log('----', val)
1301
+ }*/
1239
1302
  projectActions.updateZoomScale(value.a);
1240
1303
  return viewer2DActions.updateCameraView(value);
1241
1304
  }
@@ -1254,10 +1317,14 @@ export default function Viewer2D(_ref) {
1254
1317
  case TOOL_ZOOM_OUT:
1255
1318
  viewer2DActions.selectToolZoomOut();
1256
1319
  break;
1257
- default:
1258
- break;
1259
1320
  }
1260
1321
  };
1322
+ var onZoom = function onZoom(value) {
1323
+ // var nextValue = viewer2D.toJS();
1324
+ // nextValue = zoom(nextValue, 0, 0, value.a / nextValue.a)
1325
+ // projectActions.updateZoomScale(nextValue.a);
1326
+ // return viewer2DActions.updateCameraView(nextValue)
1327
+ };
1261
1328
  var _state$get$toJS = state.get('viewer2D').toJS(),
1262
1329
  e = _state$get$toJS.e,
1263
1330
  f = _state$get$toJS.f,
@@ -1273,18 +1340,6 @@ export default function Viewer2D(_ref) {
1273
1340
  var sceneZoom = state.zoom || 1;
1274
1341
  var rulerXElements = Math.ceil(sceneWidth / rulerUnitPixelSize) + 1;
1275
1342
  var rulerYElements = Math.ceil(sceneHeight / rulerUnitPixelSize) + 1;
1276
- var defaultViewerValue = {
1277
- a: 1,
1278
- b: 0,
1279
- c: 0,
1280
- d: 1,
1281
- e: 0,
1282
- f: 0,
1283
- viewerWidth: width - rulerSize,
1284
- viewerHeight: height - rulerSize,
1285
- SVGWidth: scene.width,
1286
- SVGHeight: scene.height
1287
- };
1288
1343
  return /*#__PURE__*/React.createElement("div", null, rulerEdit, /*#__PURE__*/React.createElement("div", {
1289
1344
  style: {
1290
1345
  margin: 0,
@@ -1347,7 +1402,7 @@ export default function Viewer2D(_ref) {
1347
1402
  },
1348
1403
  width: width - rulerSize,
1349
1404
  height: height - rulerSize,
1350
- value: viewer2D && !viewer2D.isEmpty() ? viewer2D.toJS() : defaultViewerValue,
1405
+ value: viewer2D.isEmpty() ? null : viewer2D.toJS(),
1351
1406
  onChangeValue: onChangeValue,
1352
1407
  tool: mode2Tool(mode),
1353
1408
  onChangeTool: onChangeTool,
@@ -1355,15 +1410,11 @@ export default function Viewer2D(_ref) {
1355
1410
  onMouseDown: onMouseDown,
1356
1411
  onMouseMove: onMouseMove,
1357
1412
  onMouseUp: onMouseUp,
1358
- miniatureProps: {
1359
- position: 'none'
1360
- },
1361
- toolbarProps: {
1362
- position: 'none'
1363
- },
1413
+ miniaturePosition: "none",
1414
+ toolbarPosition: "none",
1364
1415
  detectPinchGesture: false,
1365
1416
  disableDoubleClickZoomWithToolAuto: true,
1366
- ref: setViewerRef
1417
+ ref: Viewer
1367
1418
  }, /*#__PURE__*/React.createElement("svg", {
1368
1419
  width: scene.width,
1369
1420
  height: scene.height
@@ -1397,8 +1448,15 @@ export default function Viewer2D(_ref) {
1397
1448
  Viewer2D.propTypes = {
1398
1449
  state: PropTypes.object.isRequired,
1399
1450
  width: PropTypes.number.isRequired,
1400
- height: PropTypes.number.isRequired,
1401
- setToolbar: PropTypes.func,
1402
- replaceCabinet: PropTypes.func,
1403
- onInternalEvent: PropTypes.func
1451
+ height: PropTypes.number.isRequired
1452
+ };
1453
+ Viewer2D.contextTypes = {
1454
+ viewer2DActions: PropTypes.object.isRequired,
1455
+ linesActions: PropTypes.object.isRequired,
1456
+ holesActions: PropTypes.object.isRequired,
1457
+ verticesActions: PropTypes.object.isRequired,
1458
+ itemsActions: PropTypes.object.isRequired,
1459
+ areaActions: PropTypes.object.isRequired,
1460
+ projectActions: PropTypes.object.isRequired,
1461
+ catalog: PropTypes.object.isRequired
1404
1462
  };