kitchen-simulator 5.0.0-test.2 → 5.0.0-test.4

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 (697) hide show
  1. package/es/KitchenConfigurator.js +1 -1
  2. package/es/KitchenConfigurator.js.map +1 -1
  3. package/es/index.js +2 -2
  4. package/es/index.js.map +1 -1
  5. package/package.json +8 -16
  6. package/src/KitchenConfigurator.jsx +1 -1
  7. package/src/index.js +3 -3
  8. package/lib/@history.js +0 -11
  9. package/lib/@history.js.map +0 -1
  10. package/lib/AppContext.js +0 -11
  11. package/lib/AppContext.js.map +0 -1
  12. package/lib/KitchenConfigurator.js +0 -1353
  13. package/lib/KitchenConfigurator.js.map +0 -1
  14. package/lib/KitchenConfiguratorApp.js +0 -539
  15. package/lib/KitchenConfiguratorApp.js.map +0 -1
  16. package/lib/actions/area-actions.js +0 -22
  17. package/lib/actions/area-actions.js.map +0 -1
  18. package/lib/actions/export.js +0 -44
  19. package/lib/actions/export.js.map +0 -1
  20. package/lib/actions/groups-actions.js +0 -108
  21. package/lib/actions/groups-actions.js.map +0 -1
  22. package/lib/actions/holes-actions.js +0 -141
  23. package/lib/actions/holes-actions.js.map +0 -1
  24. package/lib/actions/items-actions.js +0 -365
  25. package/lib/actions/items-actions.js.map +0 -1
  26. package/lib/actions/lines-actions.js +0 -98
  27. package/lib/actions/lines-actions.js.map +0 -1
  28. package/lib/actions/project-actions.js +0 -333
  29. package/lib/actions/project-actions.js.map +0 -1
  30. package/lib/actions/scene-actions.js +0 -44
  31. package/lib/actions/scene-actions.js.map +0 -1
  32. package/lib/actions/user-actions.js +0 -69
  33. package/lib/actions/user-actions.js.map +0 -1
  34. package/lib/actions/vertices-actions.js +0 -36
  35. package/lib/actions/vertices-actions.js.map +0 -1
  36. package/lib/actions/viewer2d-actions.js +0 -74
  37. package/lib/actions/viewer2d-actions.js.map +0 -1
  38. package/lib/actions/viewer3d-actions.js +0 -33
  39. package/lib/actions/viewer3d-actions.js.map +0 -1
  40. package/lib/catalog/areas/area/planner-element.js +0 -47
  41. package/lib/catalog/areas/area/planner-element.js.map +0 -1
  42. package/lib/catalog/catalog.js +0 -283
  43. package/lib/catalog/catalog.js.map +0 -1
  44. package/lib/catalog/factories/area-factory-3d.js +0 -192
  45. package/lib/catalog/factories/area-factory-3d.js.map +0 -1
  46. package/lib/catalog/factories/area-factory.js +0 -90
  47. package/lib/catalog/factories/area-factory.js.map +0 -1
  48. package/lib/catalog/factories/export.js +0 -26
  49. package/lib/catalog/factories/export.js.map +0 -1
  50. package/lib/catalog/factories/wall-factory-3d.js +0 -213
  51. package/lib/catalog/factories/wall-factory-3d.js.map +0 -1
  52. package/lib/catalog/factories/wall-factory.js +0 -279
  53. package/lib/catalog/factories/wall-factory.js.map +0 -1
  54. package/lib/catalog/holes/door-closet/planner-element.js +0 -232
  55. package/lib/catalog/holes/door-closet/planner-element.js.map +0 -1
  56. package/lib/catalog/holes/door-double/planner-element.js +0 -325
  57. package/lib/catalog/holes/door-double/planner-element.js.map +0 -1
  58. package/lib/catalog/holes/door-exterior/planner-element.js +0 -225
  59. package/lib/catalog/holes/door-exterior/planner-element.js.map +0 -1
  60. package/lib/catalog/holes/door-interior/planner-element.js +0 -237
  61. package/lib/catalog/holes/door-interior/planner-element.js.map +0 -1
  62. package/lib/catalog/holes/door-panic/planner-element.js +0 -513
  63. package/lib/catalog/holes/door-panic/planner-element.js.map +0 -1
  64. package/lib/catalog/holes/door-panic-double/planner-element.js +0 -473
  65. package/lib/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  66. package/lib/catalog/holes/door-sliding/planner-element.js +0 -235
  67. package/lib/catalog/holes/door-sliding/planner-element.js.map +0 -1
  68. package/lib/catalog/holes/doorway-framed/planner-element.js +0 -155
  69. package/lib/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  70. package/lib/catalog/holes/doorway-frameless/planner-element.js +0 -114
  71. package/lib/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  72. package/lib/catalog/holes/window-clear/planner-element.js +0 -176
  73. package/lib/catalog/holes/window-clear/planner-element.js.map +0 -1
  74. package/lib/catalog/holes/window-cross/planner-element.js +0 -175
  75. package/lib/catalog/holes/window-cross/planner-element.js.map +0 -1
  76. package/lib/catalog/holes/window-double-hung/planner-element.js +0 -313
  77. package/lib/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  78. package/lib/catalog/holes/window-vertical/planner-element.js +0 -286
  79. package/lib/catalog/holes/window-vertical/planner-element.js.map +0 -1
  80. package/lib/catalog/lines/wall/planner-element.js +0 -77
  81. package/lib/catalog/lines/wall/planner-element.js.map +0 -1
  82. package/lib/catalog/molding/molding-dcm/planner-element.js +0 -39
  83. package/lib/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  84. package/lib/catalog/molding/molding-fbm/planner-element.js +0 -39
  85. package/lib/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  86. package/lib/catalog/molding/molding-lrm/planner-element.js +0 -39
  87. package/lib/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  88. package/lib/catalog/properties/export.js +0 -82
  89. package/lib/catalog/properties/export.js.map +0 -1
  90. package/lib/catalog/properties/property-checkbox.js +0 -79
  91. package/lib/catalog/properties/property-checkbox.js.map +0 -1
  92. package/lib/catalog/properties/property-color.js +0 -47
  93. package/lib/catalog/properties/property-color.js.map +0 -1
  94. package/lib/catalog/properties/property-enum.js +0 -63
  95. package/lib/catalog/properties/property-enum.js.map +0 -1
  96. package/lib/catalog/properties/property-hidden.js +0 -27
  97. package/lib/catalog/properties/property-hidden.js.map +0 -1
  98. package/lib/catalog/properties/property-lenght-measure.js +0 -109
  99. package/lib/catalog/properties/property-lenght-measure.js.map +0 -1
  100. package/lib/catalog/properties/property-length-measure.js +0 -93
  101. package/lib/catalog/properties/property-length-measure.js.map +0 -1
  102. package/lib/catalog/properties/property-length-measure_hole.js +0 -109
  103. package/lib/catalog/properties/property-length-measure_hole.js.map +0 -1
  104. package/lib/catalog/properties/property-number.js +0 -56
  105. package/lib/catalog/properties/property-number.js.map +0 -1
  106. package/lib/catalog/properties/property-read-only.js +0 -34
  107. package/lib/catalog/properties/property-read-only.js.map +0 -1
  108. package/lib/catalog/properties/property-string.js +0 -56
  109. package/lib/catalog/properties/property-string.js.map +0 -1
  110. package/lib/catalog/properties/property-toggle.js +0 -47
  111. package/lib/catalog/properties/property-toggle.js.map +0 -1
  112. package/lib/catalog/properties/shared-property-style.js +0 -21
  113. package/lib/catalog/properties/shared-property-style.js.map +0 -1
  114. package/lib/catalog/utils/FuseUtils.js +0 -89
  115. package/lib/catalog/utils/FuseUtils.js.map +0 -1
  116. package/lib/catalog/utils/exporter.js +0 -156
  117. package/lib/catalog/utils/exporter.js.map +0 -1
  118. package/lib/catalog/utils/geom-utils.js +0 -206
  119. package/lib/catalog/utils/geom-utils.js.map +0 -1
  120. package/lib/catalog/utils/item-loader.js +0 -1534
  121. package/lib/catalog/utils/item-loader.js.map +0 -1
  122. package/lib/catalog/utils/load-obj.js +0 -100
  123. package/lib/catalog/utils/load-obj.js.map +0 -1
  124. package/lib/catalog/utils/mtl-loader.js +0 -360
  125. package/lib/catalog/utils/mtl-loader.js.map +0 -1
  126. package/lib/catalog/utils/obj-loader.js +0 -479
  127. package/lib/catalog/utils/obj-loader.js.map +0 -1
  128. package/lib/class/FuseUtils.js +0 -89
  129. package/lib/class/FuseUtils.js.map +0 -1
  130. package/lib/class/area.js +0 -151
  131. package/lib/class/area.js.map +0 -1
  132. package/lib/class/export.js +0 -97
  133. package/lib/class/export.js.map +0 -1
  134. package/lib/class/group.js +0 -446
  135. package/lib/class/group.js.map +0 -1
  136. package/lib/class/guide.js +0 -68
  137. package/lib/class/guide.js.map +0 -1
  138. package/lib/class/hole.js +0 -935
  139. package/lib/class/hole.js.map +0 -1
  140. package/lib/class/item.js +0 -1894
  141. package/lib/class/item.js.map +0 -1
  142. package/lib/class/layer.js +0 -673
  143. package/lib/class/layer.js.map +0 -1
  144. package/lib/class/line.js +0 -1296
  145. package/lib/class/line.js.map +0 -1
  146. package/lib/class/project.js +0 -829
  147. package/lib/class/project.js.map +0 -1
  148. package/lib/class/vertex.js +0 -272
  149. package/lib/class/vertex.js.map +0 -1
  150. package/lib/components/atoms/Snackbar/index.js +0 -57
  151. package/lib/components/atoms/Snackbar/index.js.map +0 -1
  152. package/lib/components/atoms/radio-button/index.js +0 -33
  153. package/lib/components/atoms/radio-button/index.js.map +0 -1
  154. package/lib/components/atoms/radio-button/styles.js +0 -12
  155. package/lib/components/atoms/radio-button/styles.js.map +0 -1
  156. package/lib/components/button/MainButton.js +0 -98
  157. package/lib/components/button/MainButton.js.map +0 -1
  158. package/lib/components/button/ToggleMeasureButton.js +0 -63
  159. package/lib/components/button/ToggleMeasureButton.js.map +0 -1
  160. package/lib/components/catalog-view/catalog-breadcrumb.js +0 -61
  161. package/lib/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  162. package/lib/components/catalog-view/catalog-item.js +0 -233
  163. package/lib/components/catalog-view/catalog-item.js.map +0 -1
  164. package/lib/components/catalog-view/catalog-list.js +0 -189
  165. package/lib/components/catalog-view/catalog-list.js.map +0 -1
  166. package/lib/components/catalog-view/catalog-page-item.js +0 -137
  167. package/lib/components/catalog-view/catalog-page-item.js.map +0 -1
  168. package/lib/components/catalog-view/catalog-turn-back-page-item.js +0 -113
  169. package/lib/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  170. package/lib/components/configurator/custom-configurator.js +0 -101
  171. package/lib/components/configurator/custom-configurator.js.map +0 -1
  172. package/lib/components/configurator/project-configurator.js +0 -138
  173. package/lib/components/configurator/project-configurator.js.map +0 -1
  174. package/lib/components/content.js +0 -132
  175. package/lib/components/content.js.map +0 -1
  176. package/lib/components/export.js +0 -90
  177. package/lib/components/export.js.map +0 -1
  178. package/lib/components/firstsetting/button/styles.js +0 -34
  179. package/lib/components/firstsetting/button/styles.js.map +0 -1
  180. package/lib/components/firstsetting/export.js +0 -16
  181. package/lib/components/firstsetting/export.js.map +0 -1
  182. package/lib/components/firstsetting/firstsetting-content-button.js +0 -224
  183. package/lib/components/firstsetting/firstsetting-content-button.js.map +0 -1
  184. package/lib/components/firstsetting/firstsetting-toggle-button.js +0 -133
  185. package/lib/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  186. package/lib/components/firstsetting/firstsetting.js +0 -633
  187. package/lib/components/firstsetting/firstsetting.js.map +0 -1
  188. package/lib/components/footerbar/button/ControlButton.js +0 -79
  189. package/lib/components/footerbar/button/ControlButton.js.map +0 -1
  190. package/lib/components/footerbar/button/DirectionButton.js +0 -76
  191. package/lib/components/footerbar/button/DirectionButton.js.map +0 -1
  192. package/lib/components/footerbar/button/DirectionPanSpinButton.js +0 -57
  193. package/lib/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  194. package/lib/components/footerbar/button/ToggleButton.js +0 -83
  195. package/lib/components/footerbar/button/ToggleButton.js.map +0 -1
  196. package/lib/components/footerbar/button/ToggleConvertButton.js +0 -80
  197. package/lib/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  198. package/lib/components/footerbar/button/ToggleMeasureButton.js +0 -59
  199. package/lib/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  200. package/lib/components/footerbar/button/styles.js +0 -29
  201. package/lib/components/footerbar/button/styles.js.map +0 -1
  202. package/lib/components/footerbar/export.js +0 -16
  203. package/lib/components/footerbar/export.js.map +0 -1
  204. package/lib/components/footerbar/footer-content-button.js +0 -224
  205. package/lib/components/footerbar/footer-content-button.js.map +0 -1
  206. package/lib/components/footerbar/footer-toggle-button.js +0 -133
  207. package/lib/components/footerbar/footer-toggle-button.js.map +0 -1
  208. package/lib/components/footerbar/footerbar.js +0 -808
  209. package/lib/components/footerbar/footerbar.js.map +0 -1
  210. package/lib/components/footerbar/styles.js +0 -41
  211. package/lib/components/footerbar/styles.js.map +0 -1
  212. package/lib/components/header/button/MenuButton.js +0 -77
  213. package/lib/components/header/button/MenuButton.js.map +0 -1
  214. package/lib/components/header/button/SaveButton.js +0 -57
  215. package/lib/components/header/button/SaveButton.js.map +0 -1
  216. package/lib/components/header/button/styles.js +0 -68
  217. package/lib/components/header/button/styles.js.map +0 -1
  218. package/lib/components/header/export.js +0 -12
  219. package/lib/components/header/export.js.map +0 -1
  220. package/lib/components/header/header.js +0 -556
  221. package/lib/components/header/header.js.map +0 -1
  222. package/lib/components/header/styles.js +0 -47
  223. package/lib/components/header/styles.js.map +0 -1
  224. package/lib/components/login/Login.js +0 -94
  225. package/lib/components/login/Login.js.map +0 -1
  226. package/lib/components/login/LoginForm/index.js +0 -140
  227. package/lib/components/login/LoginForm/index.js.map +0 -1
  228. package/lib/components/login/Register.js +0 -104
  229. package/lib/components/login/Register.js.map +0 -1
  230. package/lib/components/login/RegisterForm/index.js +0 -237
  231. package/lib/components/login/RegisterForm/index.js.map +0 -1
  232. package/lib/components/login/jwtService.js +0 -239
  233. package/lib/components/login/jwtService.js.map +0 -1
  234. package/lib/components/molecules/slider/index.js +0 -22
  235. package/lib/components/molecules/slider/index.js.map +0 -1
  236. package/lib/components/molecules/slider/styles.js +0 -2
  237. package/lib/components/molecules/slider/styles.js.map +0 -1
  238. package/lib/components/myprojects/export.js +0 -12
  239. package/lib/components/myprojects/export.js.map +0 -1
  240. package/lib/components/myprojects/index.js +0 -453
  241. package/lib/components/myprojects/index.js.map +0 -1
  242. package/lib/components/myprojects/styles.js +0 -31
  243. package/lib/components/myprojects/styles.js.map +0 -1
  244. package/lib/components/sidebar/custom-accordion.js +0 -45
  245. package/lib/components/sidebar/custom-accordion.js.map +0 -1
  246. package/lib/components/sidebar/export.js +0 -50
  247. package/lib/components/sidebar/export.js.map +0 -1
  248. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -74
  249. package/lib/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  250. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -124
  251. package/lib/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  252. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -135
  253. package/lib/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  254. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -260
  255. package/lib/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  256. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -84
  257. package/lib/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  258. package/lib/components/sidebar/panel-element-editor/element-editor.js +0 -884
  259. package/lib/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  260. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  261. package/lib/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  262. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js +0 -56
  263. package/lib/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  264. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -125
  265. package/lib/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  266. package/lib/components/sidebar/panel-group-editor.js +0 -218
  267. package/lib/components/sidebar/panel-group-editor.js.map +0 -1
  268. package/lib/components/sidebar/panel-groups.js +0 -274
  269. package/lib/components/sidebar/panel-groups.js.map +0 -1
  270. package/lib/components/sidebar/panel-guides.js +0 -192
  271. package/lib/components/sidebar/panel-guides.js.map +0 -1
  272. package/lib/components/sidebar/panel-layer-elements.js +0 -258
  273. package/lib/components/sidebar/panel-layer-elements.js.map +0 -1
  274. package/lib/components/sidebar/panel-layers.js +0 -347
  275. package/lib/components/sidebar/panel-layers.js.map +0 -1
  276. package/lib/components/sidebar/panel.js +0 -110
  277. package/lib/components/sidebar/panel.js.map +0 -1
  278. package/lib/components/sidebar/sidebar.js +0 -117
  279. package/lib/components/sidebar/sidebar.js.map +0 -1
  280. package/lib/components/sidebar/toolbar-panel.js +0 -171
  281. package/lib/components/sidebar/toolbar-panel.js.map +0 -1
  282. package/lib/components/sign/export.js +0 -18
  283. package/lib/components/sign/export.js.map +0 -1
  284. package/lib/components/sign/main/index.js +0 -567
  285. package/lib/components/sign/main/index.js.map +0 -1
  286. package/lib/components/sign/main/styles.js +0 -27
  287. package/lib/components/sign/main/styles.js.map +0 -1
  288. package/lib/components/style/button.js +0 -121
  289. package/lib/components/style/button.js.map +0 -1
  290. package/lib/components/style/cancel-button.js +0 -30
  291. package/lib/components/style/cancel-button.js.map +0 -1
  292. package/lib/components/style/content-container.js +0 -41
  293. package/lib/components/style/content-container.js.map +0 -1
  294. package/lib/components/style/content-title.js +0 -38
  295. package/lib/components/style/content-title.js.map +0 -1
  296. package/lib/components/style/delete-button.js +0 -35
  297. package/lib/components/style/delete-button.js.map +0 -1
  298. package/lib/components/style/export.js +0 -122
  299. package/lib/components/style/export.js.map +0 -1
  300. package/lib/components/style/form-block.js +0 -32
  301. package/lib/components/style/form-block.js.map +0 -1
  302. package/lib/components/style/form-color-input.js +0 -35
  303. package/lib/components/style/form-color-input.js.map +0 -1
  304. package/lib/components/style/form-label.js +0 -34
  305. package/lib/components/style/form-label.js.map +0 -1
  306. package/lib/components/style/form-number-input.js +0 -197
  307. package/lib/components/style/form-number-input.js.map +0 -1
  308. package/lib/components/style/form-number-input_2.js +0 -214
  309. package/lib/components/style/form-number-input_2.js.map +0 -1
  310. package/lib/components/style/form-select.js +0 -30
  311. package/lib/components/style/form-select.js.map +0 -1
  312. package/lib/components/style/form-slider.js +0 -53
  313. package/lib/components/style/form-slider.js.map +0 -1
  314. package/lib/components/style/form-submit-button.js +0 -36
  315. package/lib/components/style/form-submit-button.js.map +0 -1
  316. package/lib/components/style/form-text-input.js +0 -84
  317. package/lib/components/style/form-text-input.js.map +0 -1
  318. package/lib/components/toolbar/button/ControlButton.js +0 -76
  319. package/lib/components/toolbar/button/ControlButton.js.map +0 -1
  320. package/lib/components/toolbar/button/DirectionButton.js +0 -57
  321. package/lib/components/toolbar/button/DirectionButton.js.map +0 -1
  322. package/lib/components/toolbar/button/RightButton.js +0 -140
  323. package/lib/components/toolbar/button/RightButton.js.map +0 -1
  324. package/lib/components/toolbar/button/ToggleButton.js +0 -66
  325. package/lib/components/toolbar/button/ToggleButton.js.map +0 -1
  326. package/lib/components/toolbar/button/index.js +0 -94
  327. package/lib/components/toolbar/button/index.js.map +0 -1
  328. package/lib/components/toolbar/button/styles.js +0 -21
  329. package/lib/components/toolbar/button/styles.js.map +0 -1
  330. package/lib/components/toolbar/components/DoorStyleMenu.js +0 -112
  331. package/lib/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  332. package/lib/components/toolbar/components/Pricing.js +0 -110
  333. package/lib/components/toolbar/components/Pricing.js.map +0 -1
  334. package/lib/components/toolbar/components/ReviewForQuote.js +0 -485
  335. package/lib/components/toolbar/components/ReviewForQuote.js.map +0 -1
  336. package/lib/components/toolbar/export.js +0 -50
  337. package/lib/components/toolbar/export.js.map +0 -1
  338. package/lib/components/toolbar/main/Alert.js +0 -132
  339. package/lib/components/toolbar/main/Alert.js.map +0 -1
  340. package/lib/components/toolbar/main/TakePictureModal.js +0 -109
  341. package/lib/components/toolbar/main/TakePictureModal.js.map +0 -1
  342. package/lib/components/toolbar/main/confirm-popup.js +0 -95
  343. package/lib/components/toolbar/main/confirm-popup.js.map +0 -1
  344. package/lib/components/toolbar/main/index.js +0 -4619
  345. package/lib/components/toolbar/main/index.js.map +0 -1
  346. package/lib/components/toolbar/main/myComponents.js +0 -125
  347. package/lib/components/toolbar/main/myComponents.js.map +0 -1
  348. package/lib/components/toolbar/main/styles.js +0 -73
  349. package/lib/components/toolbar/main/styles.js.map +0 -1
  350. package/lib/components/toolbar/plugin-item.js +0 -156
  351. package/lib/components/toolbar/plugin-item.js.map +0 -1
  352. package/lib/components/toolbar/popup/appliance/appliance-category/index.js +0 -86
  353. package/lib/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  354. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js +0 -85
  355. package/lib/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  356. package/lib/components/toolbar/popup/appliance/index.js +0 -89
  357. package/lib/components/toolbar/popup/appliance/index.js.map +0 -1
  358. package/lib/components/toolbar/popup/autosaveprompt/index.js +0 -99
  359. package/lib/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  360. package/lib/components/toolbar/popup/autosaveprompt/styles.js +0 -16
  361. package/lib/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  362. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -86
  363. package/lib/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  364. package/lib/components/toolbar/popup/cabinet/choose-product/index.js +0 -107
  365. package/lib/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  366. package/lib/components/toolbar/popup/cabinet/index.js +0 -91
  367. package/lib/components/toolbar/popup/cabinet/index.js.map +0 -1
  368. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js +0 -59
  369. package/lib/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  370. package/lib/components/toolbar/popup/doorStyle/index.js +0 -68
  371. package/lib/components/toolbar/popup/doorStyle/index.js.map +0 -1
  372. package/lib/components/toolbar/popup/doorStyle/style-category/index.js +0 -152
  373. package/lib/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  374. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -9
  375. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  376. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -128
  377. package/lib/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  378. package/lib/components/toolbar/popup/downloadsummary/index.js +0 -572
  379. package/lib/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  380. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -60
  381. package/lib/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  382. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -200
  383. package/lib/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  384. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -254
  385. package/lib/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  386. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1762
  387. package/lib/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  388. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -96
  389. package/lib/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  390. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -125
  391. package/lib/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  392. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1713
  393. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  394. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -184
  395. package/lib/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  396. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js +0 -115
  397. package/lib/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  398. package/lib/components/toolbar/popup/downloadsummary/styles.js +0 -47
  399. package/lib/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  400. package/lib/components/toolbar/popup/finishingtouch/category/index.js +0 -44
  401. package/lib/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  402. package/lib/components/toolbar/popup/finishingtouch/index.js +0 -54
  403. package/lib/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  404. package/lib/components/toolbar/popup/finishingtouch/material-edit.js +0 -163
  405. package/lib/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  406. package/lib/components/toolbar/popup/finishingtouch/product/index.js +0 -65
  407. package/lib/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  408. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -124
  409. package/lib/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  410. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js +0 -255
  411. package/lib/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  412. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -20
  413. package/lib/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  414. package/lib/components/toolbar/popup/floorplan/floor-category/index.js +0 -99
  415. package/lib/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  416. package/lib/components/toolbar/popup/floorplan/index.js +0 -56
  417. package/lib/components/toolbar/popup/floorplan/index.js.map +0 -1
  418. package/lib/components/toolbar/popup/index.js +0 -195
  419. package/lib/components/toolbar/popup/index.js.map +0 -1
  420. package/lib/components/toolbar/popup/newproject/index.js +0 -75
  421. package/lib/components/toolbar/popup/newproject/index.js.map +0 -1
  422. package/lib/components/toolbar/popup/newproject/styles.js +0 -16
  423. package/lib/components/toolbar/popup/newproject/styles.js.map +0 -1
  424. package/lib/components/toolbar/popup/product/appliance.js +0 -73
  425. package/lib/components/toolbar/popup/product/appliance.js.map +0 -1
  426. package/lib/components/toolbar/popup/product/cabinetproduct.js +0 -33
  427. package/lib/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  428. package/lib/components/toolbar/popup/product/doorstyle.js +0 -59
  429. package/lib/components/toolbar/popup/product/doorstyle.js.map +0 -1
  430. package/lib/components/toolbar/popup/product/doorstyleproduct.js +0 -59
  431. package/lib/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  432. package/lib/components/toolbar/popup/product/floor.js +0 -59
  433. package/lib/components/toolbar/popup/product/floor.js.map +0 -1
  434. package/lib/components/toolbar/popup/product/floorproduct.js +0 -68
  435. package/lib/components/toolbar/popup/product/floorproduct.js.map +0 -1
  436. package/lib/components/toolbar/popup/product/index.js +0 -59
  437. package/lib/components/toolbar/popup/product/index.js.map +0 -1
  438. package/lib/components/toolbar/popup/product/primary.js +0 -71
  439. package/lib/components/toolbar/popup/product/primary.js.map +0 -1
  440. package/lib/components/toolbar/popup/product/productline.js +0 -128
  441. package/lib/components/toolbar/popup/product/productline.js.map +0 -1
  442. package/lib/components/toolbar/popup/product/reviewItem.js +0 -346
  443. package/lib/components/toolbar/popup/product/reviewItem.js.map +0 -1
  444. package/lib/components/toolbar/popup/product/reviewMolding.js +0 -291
  445. package/lib/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  446. package/lib/components/toolbar/popup/product/styles.js +0 -79
  447. package/lib/components/toolbar/popup/product/styles.js.map +0 -1
  448. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js +0 -169
  449. package/lib/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  450. package/lib/components/toolbar/popup/savedesign/index.js +0 -516
  451. package/lib/components/toolbar/popup/savedesign/index.js.map +0 -1
  452. package/lib/components/toolbar/popup/savedesign/styles.js +0 -26
  453. package/lib/components/toolbar/popup/savedesign/styles.js.map +0 -1
  454. package/lib/components/toolbar/popup/setDoorStyleOption/index.js +0 -64
  455. package/lib/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  456. package/lib/components/toolbar/popup/styles.js +0 -104
  457. package/lib/components/toolbar/popup/styles.js.map +0 -1
  458. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -166
  459. package/lib/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  460. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -93
  461. package/lib/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  462. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -45
  463. package/lib/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  464. package/lib/components/toolbar/popup/submitforquote/StepDots.js +0 -40
  465. package/lib/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  466. package/lib/components/toolbar/popup/submitforquote/cart-choice.js +0 -141
  467. package/lib/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  468. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -50
  469. package/lib/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  470. package/lib/components/toolbar/popup/submitforquote/index.js +0 -698
  471. package/lib/components/toolbar/popup/submitforquote/index.js.map +0 -1
  472. package/lib/components/toolbar/popup/submitforquote/styles.js +0 -38
  473. package/lib/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  474. package/lib/components/toolbar/popup/submitprompt/index.js +0 -79
  475. package/lib/components/toolbar/popup/submitprompt/index.js.map +0 -1
  476. package/lib/components/toolbar/popup/submitprompt/styles.js +0 -16
  477. package/lib/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  478. package/lib/components/toolbar/toolbar-button.js +0 -111
  479. package/lib/components/toolbar/toolbar-button.js.map +0 -1
  480. package/lib/components/toolbar/toolbar-load-button.js +0 -36
  481. package/lib/components/toolbar/toolbar-load-button.js.map +0 -1
  482. package/lib/components/toolbar/toolbar-save-button.js +0 -34
  483. package/lib/components/toolbar/toolbar-save-button.js.map +0 -1
  484. package/lib/components/tutorial-view/Modal.js +0 -503
  485. package/lib/components/tutorial-view/Modal.js.map +0 -1
  486. package/lib/components/tutorial-view/styles.js +0 -13
  487. package/lib/components/tutorial-view/styles.js.map +0 -1
  488. package/lib/components/viewer2d/area.js +0 -90
  489. package/lib/components/viewer2d/area.js.map +0 -1
  490. package/lib/components/viewer2d/export.js +0 -122
  491. package/lib/components/viewer2d/export.js.map +0 -1
  492. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +0 -45
  493. package/lib/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  494. package/lib/components/viewer2d/grids/grid-streak.js +0 -45
  495. package/lib/components/viewer2d/grids/grid-streak.js.map +0 -1
  496. package/lib/components/viewer2d/grids/grid-vertical-streak.js +0 -45
  497. package/lib/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  498. package/lib/components/viewer2d/grids/grids.js +0 -45
  499. package/lib/components/viewer2d/grids/grids.js.map +0 -1
  500. package/lib/components/viewer2d/group.js +0 -63
  501. package/lib/components/viewer2d/group.js.map +0 -1
  502. package/lib/components/viewer2d/item.js +0 -522
  503. package/lib/components/viewer2d/item.js.map +0 -1
  504. package/lib/components/viewer2d/layer.js +0 -172
  505. package/lib/components/viewer2d/layer.js.map +0 -1
  506. package/lib/components/viewer2d/line.js +0 -899
  507. package/lib/components/viewer2d/line.js.map +0 -1
  508. package/lib/components/viewer2d/ruler.js +0 -108
  509. package/lib/components/viewer2d/ruler.js.map +0 -1
  510. package/lib/components/viewer2d/rulerDist.js +0 -154
  511. package/lib/components/viewer2d/rulerDist.js.map +0 -1
  512. package/lib/components/viewer2d/rulerX.js +0 -159
  513. package/lib/components/viewer2d/rulerX.js.map +0 -1
  514. package/lib/components/viewer2d/rulerY.js +0 -161
  515. package/lib/components/viewer2d/rulerY.js.map +0 -1
  516. package/lib/components/viewer2d/scene.js +0 -148
  517. package/lib/components/viewer2d/scene.js.map +0 -1
  518. package/lib/components/viewer2d/snap.js +0 -84
  519. package/lib/components/viewer2d/snap.js.map +0 -1
  520. package/lib/components/viewer2d/state.js +0 -88
  521. package/lib/components/viewer2d/state.js.map +0 -1
  522. package/lib/components/viewer2d/utils.js +0 -174
  523. package/lib/components/viewer2d/utils.js.map +0 -1
  524. package/lib/components/viewer2d/vertex.js +0 -76
  525. package/lib/components/viewer2d/vertex.js.map +0 -1
  526. package/lib/components/viewer2d/viewer2d.js +0 -1409
  527. package/lib/components/viewer2d/viewer2d.js.map +0 -1
  528. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2598
  529. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  530. package/lib/components/viewer3d/dcm.js +0 -408
  531. package/lib/components/viewer3d/dcm.js.map +0 -1
  532. package/lib/components/viewer3d/fbm.js +0 -421
  533. package/lib/components/viewer3d/fbm.js.map +0 -1
  534. package/lib/components/viewer3d/front3D.js +0 -76
  535. package/lib/components/viewer3d/front3D.js.map +0 -1
  536. package/lib/components/viewer3d/grid-creator.js +0 -35
  537. package/lib/components/viewer3d/grid-creator.js.map +0 -1
  538. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +0 -45
  539. package/lib/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  540. package/lib/components/viewer3d/grids/grid-streak.js +0 -36
  541. package/lib/components/viewer3d/grids/grid-streak.js.map +0 -1
  542. package/lib/components/viewer3d/grids/grid-vertical-streak.js +0 -45
  543. package/lib/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  544. package/lib/components/viewer3d/libs/first-person-controls.js +0 -75
  545. package/lib/components/viewer3d/libs/first-person-controls.js.map +0 -1
  546. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1288
  547. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  548. package/lib/components/viewer3d/libs/mtl-loader.js +0 -360
  549. package/lib/components/viewer3d/libs/mtl-loader.js.map +0 -1
  550. package/lib/components/viewer3d/libs/obj-loader.js +0 -465
  551. package/lib/components/viewer3d/libs/obj-loader.js.map +0 -1
  552. package/lib/components/viewer3d/libs/orbit-controls.js +0 -701
  553. package/lib/components/viewer3d/libs/orbit-controls.js.map +0 -1
  554. package/lib/components/viewer3d/libs/pointer-lock-controls.js +0 -48
  555. package/lib/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  556. package/lib/components/viewer3d/lrm.js +0 -312
  557. package/lib/components/viewer3d/lrm.js.map +0 -1
  558. package/lib/components/viewer3d/model.js +0 -715
  559. package/lib/components/viewer3d/model.js.map +0 -1
  560. package/lib/components/viewer3d/pointer-lock-navigation.js +0 -123
  561. package/lib/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  562. package/lib/components/viewer3d/ruler-utils/itemRect.js +0 -69
  563. package/lib/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  564. package/lib/components/viewer3d/ruler-utils/layer3D.js +0 -503
  565. package/lib/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  566. package/lib/components/viewer3d/ruler-utils/ruler3D.js +0 -235
  567. package/lib/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  568. package/lib/components/viewer3d/ruler-utils/scene3D.js +0 -70
  569. package/lib/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  570. package/lib/components/viewer3d/ruler-utils/state3D.js +0 -26
  571. package/lib/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  572. package/lib/components/viewer3d/scene-creator.js +0 -3641
  573. package/lib/components/viewer3d/scene-creator.js.map +0 -1
  574. package/lib/components/viewer3d/three-memory-cleaner.js +0 -61
  575. package/lib/components/viewer3d/three-memory-cleaner.js.map +0 -1
  576. package/lib/components/viewer3d/viewer3d-first-person.js +0 -321
  577. package/lib/components/viewer3d/viewer3d-first-person.js.map +0 -1
  578. package/lib/components/viewer3d/viewer3d.js +0 -2508
  579. package/lib/components/viewer3d/viewer3d.js.map +0 -1
  580. package/lib/components/wizardstep/button/styles.js +0 -67
  581. package/lib/components/wizardstep/button/styles.js.map +0 -1
  582. package/lib/components/wizardstep/export.js +0 -12
  583. package/lib/components/wizardstep/export.js.map +0 -1
  584. package/lib/components/wizardstep/index.js +0 -978
  585. package/lib/components/wizardstep/index.js.map +0 -1
  586. package/lib/components/wizardstep/styles.js +0 -68
  587. package/lib/components/wizardstep/styles.js.map +0 -1
  588. package/lib/components/wizardstep/wizardstep-content-button.js +0 -224
  589. package/lib/components/wizardstep/wizardstep-content-button.js.map +0 -1
  590. package/lib/components/wizardstep/wizardstep-toggle-button.js +0 -133
  591. package/lib/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  592. package/lib/constants.js +0 -646
  593. package/lib/constants.js.map +0 -1
  594. package/lib/hooks/useCheckCart.js +0 -60
  595. package/lib/hooks/useCheckCart.js.map +0 -1
  596. package/lib/hooks/useGetPricesBySku.js +0 -81
  597. package/lib/hooks/useGetPricesBySku.js.map +0 -1
  598. package/lib/hooks/useValidateToken.js +0 -207
  599. package/lib/hooks/useValidateToken.js.map +0 -1
  600. package/lib/index.js +0 -102
  601. package/lib/index.js.map +0 -1
  602. package/lib/models.js +0 -518
  603. package/lib/models.js.map +0 -1
  604. package/lib/plugins/SVGLoader.js +0 -1418
  605. package/lib/plugins/SVGLoader.js.map +0 -1
  606. package/lib/plugins/autosave.js +0 -40
  607. package/lib/plugins/autosave.js.map +0 -1
  608. package/lib/plugins/console-debugger.js +0 -45
  609. package/lib/plugins/console-debugger.js.map +0 -1
  610. package/lib/plugins/export.js +0 -34
  611. package/lib/plugins/export.js.map +0 -1
  612. package/lib/plugins/keyboard.js +0 -108
  613. package/lib/plugins/keyboard.js.map +0 -1
  614. package/lib/reducers/areas-reducer.js +0 -19
  615. package/lib/reducers/areas-reducer.js.map +0 -1
  616. package/lib/reducers/export.js +0 -98
  617. package/lib/reducers/export.js.map +0 -1
  618. package/lib/reducers/groups-reducer.js +0 -45
  619. package/lib/reducers/groups-reducer.js.map +0 -1
  620. package/lib/reducers/holes-reducer.js +0 -69
  621. package/lib/reducers/holes-reducer.js.map +0 -1
  622. package/lib/reducers/items-reducer.js +0 -147
  623. package/lib/reducers/items-reducer.js.map +0 -1
  624. package/lib/reducers/lines-reducer.js +0 -52
  625. package/lib/reducers/lines-reducer.js.map +0 -1
  626. package/lib/reducers/project-reducer.js +0 -136
  627. package/lib/reducers/project-reducer.js.map +0 -1
  628. package/lib/reducers/reducer.js +0 -27
  629. package/lib/reducers/reducer.js.map +0 -1
  630. package/lib/reducers/scene-reducer.js +0 -35
  631. package/lib/reducers/scene-reducer.js.map +0 -1
  632. package/lib/reducers/user-reducer.js +0 -48
  633. package/lib/reducers/user-reducer.js.map +0 -1
  634. package/lib/reducers/vertices-reducer.js +0 -26
  635. package/lib/reducers/vertices-reducer.js.map +0 -1
  636. package/lib/reducers/viewer2d-reducer.js +0 -83
  637. package/lib/reducers/viewer2d-reducer.js.map +0 -1
  638. package/lib/reducers/viewer3d-reducer.js +0 -64
  639. package/lib/reducers/viewer3d-reducer.js.map +0 -1
  640. package/lib/shared-style.js +0 -73
  641. package/lib/shared-style.js.map +0 -1
  642. package/lib/styles/export.js +0 -14
  643. package/lib/styles/export.js.map +0 -1
  644. package/lib/translator/en.js +0 -111
  645. package/lib/translator/en.js.map +0 -1
  646. package/lib/translator/it.js +0 -86
  647. package/lib/translator/it.js.map +0 -1
  648. package/lib/translator/ru.js +0 -86
  649. package/lib/translator/ru.js.map +0 -1
  650. package/lib/translator/translator.js +0 -91
  651. package/lib/translator/translator.js.map +0 -1
  652. package/lib/utils/browser.js +0 -41
  653. package/lib/utils/browser.js.map +0 -1
  654. package/lib/utils/email-validator.js +0 -11
  655. package/lib/utils/email-validator.js.map +0 -1
  656. package/lib/utils/export.js +0 -57
  657. package/lib/utils/export.js.map +0 -1
  658. package/lib/utils/geometry.js +0 -2329
  659. package/lib/utils/geometry.js.map +0 -1
  660. package/lib/utils/get-edges-of-subgraphs.js +0 -29
  661. package/lib/utils/get-edges-of-subgraphs.js.map +0 -1
  662. package/lib/utils/graph-cycles.js +0 -241
  663. package/lib/utils/graph-cycles.js.map +0 -1
  664. package/lib/utils/graph-inner-cycles.js +0 -55
  665. package/lib/utils/graph-inner-cycles.js.map +0 -1
  666. package/lib/utils/graph.js +0 -152
  667. package/lib/utils/graph.js.map +0 -1
  668. package/lib/utils/helper.js +0 -360
  669. package/lib/utils/helper.js.map +0 -1
  670. package/lib/utils/history.js +0 -37
  671. package/lib/utils/history.js.map +0 -1
  672. package/lib/utils/id-broker.js +0 -26
  673. package/lib/utils/id-broker.js.map +0 -1
  674. package/lib/utils/logger.js +0 -15
  675. package/lib/utils/logger.js.map +0 -1
  676. package/lib/utils/math.js +0 -58
  677. package/lib/utils/math.js.map +0 -1
  678. package/lib/utils/molding.js +0 -864
  679. package/lib/utils/molding.js.map +0 -1
  680. package/lib/utils/name-generator.js +0 -24
  681. package/lib/utils/name-generator.js.map +0 -1
  682. package/lib/utils/objects-utils.js +0 -61
  683. package/lib/utils/objects-utils.js.map +0 -1
  684. package/lib/utils/phone-validator.js +0 -11
  685. package/lib/utils/phone-validator.js.map +0 -1
  686. package/lib/utils/process-black-list.js +0 -25
  687. package/lib/utils/process-black-list.js.map +0 -1
  688. package/lib/utils/react-if.js +0 -25
  689. package/lib/utils/react-if.js.map +0 -1
  690. package/lib/utils/snap-scene.js +0 -106
  691. package/lib/utils/snap-scene.js.map +0 -1
  692. package/lib/utils/snap.js +0 -250
  693. package/lib/utils/snap.js.map +0 -1
  694. package/lib/utils/threeCSG.es6.js +0 -504
  695. package/lib/utils/threeCSG.es6.js.map +0 -1
  696. package/lib/version.js +0 -8
  697. package/lib/version.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"line.js","names":["_immutable","require","_export","_export2","Three","_interopRequireWildcard","_constants","_geometry","_helper","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","_typeof","has","get","set","_t","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","length","l","Symbol","iterator","u","next","done","push","value","isArray","prototype","_classCallCheck","_defineProperties","enumerable","configurable","writable","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","timeGlobal","TimeRecorder","console","log","start","first","Date","now","end","second","elapsed","includes","Line","exports","create","state","layerID","type","x0","y0","x1","y1","properties","lineCreatedDateTime","arguments","undefined","getTime","lineID","IDBroker","acquireID","_Vertex$add","Vertex","add","stateV0","updatedState","v0","vertex","_Vertex$add2","stateV1","v1","line","catalog","factoryElement","id","NameGenerator","generateName","getIn","vertices","List","setIn","defaultTexture","textureA","textureB","setJsProperties","select","_line$vertices","_line$vertices$get","_line$vertices2","_line$vertices2$get","layerResult","Layer","lineSelectResult","selectElement","firstVertex","v1Result","secondVertex","v2Result","remove","unselect","holes","forEach","holeID","Hole","removeElement","vertexID","group","Group","setRelatedLine","intersection","curIntersection","isEqualIntersection","b","index","point","x","y","equal","size","every","curint","mergeIn","split","_Line$create","createdDateTime","stateL1","line0","_Line$create2","stateL2","line1","splitPointOffset","GeometryUtils","pointPositionOnLineSegment","minVertex","hole","holeOffset","offset","lineGroups","filter","lines","contains","addElement","addFromPoints","points","_this","pointsPair","zip","skip","filterNot","_ref","_ref2","_ref2$","_ref2$2","x2","y2","usedObjects","objectsArray","element","so","JSON","stringify","so1","newLine","_ref3","_ref4","_ref4$","_ref4$2","_this$create","stateL","lineLength","pointsDistance","alpha","absAngleBetweenTwoPoints","cosAlpha","cosWithThreshold","Math","abs","sinAlpha","sinWithThreshold","holeWithOffsetPoint","toJS","_holeWithOffsetPoint$","offsetPosition","xp","yp","isPointOnLineSegment","newOffset","temp","holeX","holeY","almostEqual","newline","createAvoidingIntersections","oldProperties","oldHoles","_this2","reduce","reducedState","_line$vertices$map$to","map","toArray","_line$vertices$map$to2","hasCommonEndpoint","samePoints","twoLineSegmentsIntersection","orderedVertices","orderVertices","oldLineLength","extendLine","_Line$addFromPoints","replaceVertex","vertexIndex","_Vertex$add3","stateV","selectToolDrawingLine","sceneComponentType","merge","mode","MODE_WAITING_DRAWING_LINE","drawingSupport","Map","beginDrawingLine","MODE_IDLE","snapElements","SnapSceneUtils","sceneSnapElements","scene","snapMask","snap","isEmpty","SnapUtils","nearestSnap","_snap$point","withMutations","c","_GeometryUtils$horizo","horizontalLine","addLineSnap","_GeometryUtils$vertic","verticalLine","_GeometryUtils$upcros","upcrossLine","_GeometryUtils$downcr","downcrossLine","unselectAll","_Line$create3","MODE_DRAWING_LINE","activeSnapElement","updateDrawingLine","relatedLines","_snap$point2","drawingLine","moveFlag","tx","ty","absAngle","lineAngle","angleBetweenTwoLines","MIN_ANGLE_DISALLOW_DRAW_WALL","rest","ox","oy","res","rotatePointAroundPoint","UNIT_ANGLE","result","snapAngleByUnit","_Line$replaceVertex","stateLV","drawLineByAttributes","lineAttributes","lAttr","vertexOne","vertexTwo","layer","getRelatedLines","holesWithOffsetPosition","j","_loop","k","minV","maxV","maxVertex","atan2","pointOnLine","cos","sin","v2","v3","checkVertex","ret","areaCount","areas","detectAndUpdateAreas","sceneHistory","history","historyPush","endsWith","stopDrawingLine","hasColinearTwoLines","curVertId","lineGroup","some","v","mergeTwoColinearLines","line2","lineProperties","nv0","nv1","nv2","drawingInfor","endDrawingLine","_this3","_snap$point3","vertexGroup","colinearLines","vertexId","beginDraggingLine","layers","vertex0","vertex1","MODE_DRAGGING_LINE","draggingSupport","startPointX","startPointY","startVertex0X","startVertex0Y","startVertex1X","startVertex1Y","getNewDraggedPoints","newPoints","allVertices","draggingLine","draggingVertices","mvFlag","relLine","_newPoints$newVertex","_newPoints$newVertex2","_newPoints$newVertex3","_newPoints$newVertex4","_vData$x","_vData$y","_newPoints$newVertex5","_newPoints$newVertex6","_newPoints$newVertex7","_newPoints$newVertex8","vData","center","Vector2","newVertex0X","newVertex0Y","newVertex1X","newVertex1Y","pos1","pos2","cen","clone","vec1","sub","normalize","vec2","angle","floor","PI","updateDraggingLine","diffX","diffY","curSnap0","curSnap1","deltaX","deltaY","distance","newResult","updateIn","lineVertices","endDraggingLine","_this4","_state","drawedLine","verticesDistance","mergeEqualsVertices","addedLine","oldLineGroup","draggingLineID","setProperties","fromJS","updateProperties","hasIn","updateJsProperties","setAttributes","vertexThree","vertexFour","lineToExtend","_unitLength","_unit","setVerticesCoords"],"sources":["../../src/class/line.js"],"sourcesContent":["import { Map, List, fromJS } from 'immutable';\r\nimport { Group, Layer, Hole, Vertex } from './export';\r\nimport {\r\n IDBroker,\r\n NameGenerator,\r\n GeometryUtils,\r\n history,\r\n SnapUtils,\r\n SnapSceneUtils\r\n} from '../utils/export';\r\nimport * as Three from 'three';\r\nimport {\r\n MODE_IDLE,\r\n MODE_WAITING_DRAWING_LINE,\r\n MODE_DRAWING_LINE,\r\n MODE_DRAGGING_LINE,\r\n MIN_ANGLE_DISALLOW_DRAW_WALL,\r\n UNIT_ANGLE\r\n} from '../constants';\r\nimport { getRelatedLines } from '../../src/utils/geometry';\r\nimport { isEmpty } from '../../src/utils/helper';\r\n\r\nlet timeGlobal = 0;\r\n\r\nclass TimeRecorder {\r\n constructor(name) {\r\n this.name = name;\r\n\r\n if (name === \"beginDrawingLine\") {\r\n console.log(\"time__ Start Drawing\");\r\n }\r\n }\r\n\r\n start() {\r\n this.first = Date.now();\r\n }\r\n\r\n end() {\r\n this.second = Date.now();\r\n const elapsed = this.second - this.first;\r\n console.log(\"time__ \", this.name, \" : \", elapsed, \"ms\");\r\n \r\n if ([\"beginDrawingLine\", \"updateDrawingLine\", \"endDrawingLine\"].includes(this.name))\r\n timeGlobal += elapsed;\r\n\r\n if (this.name === \"endDrawingLine\") {\r\n console.log(\"time__ Drawing Ended. Passed Time : \", timeGlobal, \"ms\");\r\n timeGlobal = 0;\r\n }\r\n }\r\n}\r\n\r\nclass Line {\r\n static create(\r\n state,\r\n layerID,\r\n type,\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n properties,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n // if end drawing by created area\r\n // if (state.mode == MODE_IDLE) {\r\n // return { updatedState: state };\r\n // }\r\n // ///////////////\r\n let lineID = IDBroker.acquireID();\r\n let { updatedState: stateV0, vertex: v0 } = Vertex.add(\r\n state,\r\n layerID,\r\n x0,\r\n y0,\r\n 'lines',\r\n lineID\r\n );\r\n let { updatedState: stateV1, vertex: v1 } = Vertex.add(\r\n stateV0,\r\n layerID,\r\n x1,\r\n y1,\r\n 'lines',\r\n lineID\r\n );\r\n state = stateV1;\r\n\r\n let line = state.catalog.factoryElement(\r\n type,\r\n {\r\n id: lineID,\r\n name: NameGenerator.generateName(\r\n 'lines',\r\n state.catalog.getIn(['elements', type, 'info', 'title'])\r\n ),\r\n vertices: new List([v0.id, v1.id]),\r\n type\r\n },\r\n properties\r\n );\r\n line = line.set(\r\n 'createdDateTime',\r\n lineCreatedDateTime !== undefined\r\n ? lineCreatedDateTime\r\n : new Date().getTime()\r\n );\r\n state = state.setIn(['scene', 'layers', layerID, 'lines', lineID], line);\r\n // set default texture//\r\n let defaultTexture = {\r\n textureA: 'plaster',\r\n textureB: 'plaster'\r\n };\r\n state = this.setJsProperties(\r\n state,\r\n layerID,\r\n lineID,\r\n defaultTexture\r\n ).updatedState;\r\n // /////////////////////\r\n return { updatedState: state, line };\r\n }\r\n\r\n static select(state, layerID, lineID) {\r\n // Try selecting the layer first\r\n const layerResult = Layer.select(state, layerID);\r\n if (!layerResult || !layerResult.updatedState) {\r\n return { updatedState: state }; // no update if layer not found\r\n }\r\n state = layerResult.updatedState;\r\n\r\n // Try getting the line\r\n const line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n if (!line) {\r\n return { updatedState: state }; // no update if line not found\r\n }\r\n\r\n // Select the line element\r\n const lineSelectResult = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'lines',\r\n lineID\r\n );\r\n if (lineSelectResult?.updatedState) {\r\n state = lineSelectResult.updatedState;\r\n }\r\n\r\n // Select the first vertex (if available)\r\n const firstVertex = line.vertices?.get?.(0);\r\n if (firstVertex !== undefined) {\r\n const v1Result = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'vertices',\r\n firstVertex\r\n );\r\n if (v1Result?.updatedState) {\r\n state = v1Result.updatedState;\r\n }\r\n }\r\n\r\n // Select the second vertex (if available)\r\n const secondVertex = line.vertices?.get?.(1);\r\n if (secondVertex !== undefined) {\r\n const v2Result = Layer.selectElement(\r\n state,\r\n layerID,\r\n 'vertices',\r\n secondVertex\r\n );\r\n if (v2Result?.updatedState) {\r\n state = v2Result.updatedState;\r\n }\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static remove(state, layerID, lineID) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n if (line) {\r\n state = this.unselect(state, layerID, lineID).updatedState;\r\n line.holes.forEach(\r\n holeID => (state = Hole.remove(state, layerID, holeID).updatedState)\r\n );\r\n state = Layer.removeElement(state, layerID, 'lines', lineID).updatedState;\r\n\r\n line.vertices.forEach(\r\n vertexID =>\r\n (state = Vertex.remove(\r\n state,\r\n layerID,\r\n vertexID,\r\n 'lines',\r\n lineID\r\n ).updatedState)\r\n );\r\n\r\n state\r\n .getIn(['scene', 'groups'])\r\n .forEach(\r\n group =>\r\n (state = Group.removeElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n lineID\r\n ).updatedState)\r\n );\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setRelatedLine(state, layerID, lineID, intersection) {\r\n let curIntersection = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'relatedVertices'\r\n ]);\r\n if (curIntersection == undefined) return { updatedState: state };\r\n\r\n let isEqualIntersection = (a, b) => {\r\n return (\r\n a.index == b.index && a.point.x == b.point.x && a.point.y == b.point.y\r\n );\r\n };\r\n let equal =\r\n curIntersection.size == intersection.length &&\r\n curIntersection.every((curint, index) => {\r\n return isEqualIntersection(curint, intersection[index]);\r\n });\r\n if (!equal)\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'relatedVertices'],\r\n intersection\r\n );\r\n return { updatedState: state };\r\n }\r\n\r\n static unselect(state, layerID, lineID) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n if (line) {\r\n state = Layer.unselect(\r\n state,\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(0)\r\n ).updatedState;\r\n state = Layer.unselect(\r\n state,\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(1)\r\n ).updatedState;\r\n state = Layer.unselect(state, layerID, 'lines', lineID).updatedState;\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static split(state, layerID, lineID, x, y) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n let v0 = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(0)\r\n ]);\r\n let v1 = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n line.vertices.get(1)\r\n ]);\r\n let { x: x0, y: y0 } = v0;\r\n let { x: x1, y: y1 } = v1;\r\n\r\n let { updatedState: stateL1, line: line0 } = Line.create(\r\n state,\r\n layerID,\r\n line.type,\r\n x0,\r\n y0,\r\n x,\r\n y,\r\n line.get('properties'),\r\n line.createdDateTime !== undefined\r\n ? line.createdDateTime - 2\r\n : new Date().getTime()\r\n );\r\n let { updatedState: stateL2, line: line1 } = Line.create(\r\n stateL1,\r\n layerID,\r\n line.type,\r\n x1,\r\n y1,\r\n x,\r\n y,\r\n line.get('properties'),\r\n line.createdDateTime !== undefined\r\n ? line.createdDateTime - 1\r\n : new Date().getTime()\r\n );\r\n state = stateL2;\r\n\r\n let splitPointOffset = GeometryUtils.pointPositionOnLineSegment(\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n x,\r\n y\r\n );\r\n let minVertex = GeometryUtils.minVertex(v0, v1);\r\n\r\n line.holes.forEach(holeID => {\r\n let hole = state.getIn(['scene', 'layers', layerID, 'holes', holeID]);\r\n\r\n let holeOffset = hole.offset;\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n splitPointOffset = 1 - splitPointOffset;\r\n holeOffset = 1 - hole.offset;\r\n }\r\n\r\n if (holeOffset < splitPointOffset) {\r\n let offset = holeOffset / splitPointOffset;\r\n /*\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n offset = 1 - offset;\r\n }\r\n */\r\n state = Hole.create(\r\n state,\r\n layerID,\r\n hole.type,\r\n line0.id,\r\n offset,\r\n hole.properties\r\n ).updatedState;\r\n } else {\r\n let offset = (holeOffset - splitPointOffset) / (1 - splitPointOffset);\r\n /*\r\n if (minVertex.x === x1 && minVertex.y === y1) {\r\n offset = 1 - offset;\r\n }\r\n */\r\n state = Hole.create(\r\n state,\r\n layerID,\r\n hole.type,\r\n line1.id,\r\n offset,\r\n hole.properties\r\n ).updatedState;\r\n }\r\n });\r\n\r\n //add splitted lines to the original line's group\r\n let lineGroups = state.getIn(['scene', 'groups']).filter(group => {\r\n const lines = group.getIn(['elements', layerID, 'lines']);\r\n return lines && lines.contains(lineID);\r\n });\r\n\r\n lineGroups.forEach(group => {\r\n state = Group.addElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n line0.id\r\n ).updatedState;\r\n state = Group.addElement(\r\n state,\r\n group.id,\r\n layerID,\r\n 'lines',\r\n line1.id\r\n ).updatedState;\r\n });\r\n\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n\r\n return { updatedState: state, lines: new List([line0, line1]) };\r\n }\r\n\r\n static addFromPoints(\r\n state,\r\n layerID,\r\n type,\r\n points,\r\n properties,\r\n holes,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n points = new List(points);\r\n //.sort(({ x: x1, y: y1 }, { x: x2, y: y2 }) => x1 === x2 ? y1 - y2 : x1 - x2);\r\n\r\n let pointsPair = points\r\n .zip(points.skip(1))\r\n .filterNot(\r\n ([{ x: x1, y: y1 }, { x: x2, y: y2 }]) => x1 === x2 && y1 === y2\r\n );\r\n\r\n let usedObjects = {};\r\n let objectsArray = pointsPair;\r\n pointsPair = objectsArray.filter(element => {\r\n let so = JSON.stringify(element[0]);\r\n let so1 = JSON.stringify(element[1]);\r\n if (!usedObjects[so] && !usedObjects[so1]) {\r\n usedObjects[so] = true;\r\n usedObjects[so1] = true;\r\n return element;\r\n }\r\n });\r\n\r\n let lines = [];\r\n let newLine;\r\n\r\n pointsPair.forEach(([{ x: x1, y: y1 }, { x: x2, y: y2 }]) => {\r\n let { updatedState: stateL, line } = this.create(\r\n state,\r\n layerID,\r\n type,\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n properties,\r\n lineCreatedDateTime\r\n );\r\n state = stateL;\r\n let lineLength = GeometryUtils.pointsDistance(x1, y1, x2, y2);\r\n let alpha = GeometryUtils.absAngleBetweenTwoPoints(x1, y1, x2, y2);\r\n let cosAlpha = GeometryUtils.cosWithThreshold(Math.abs(alpha), 0.0000001);\r\n let sinAlpha = GeometryUtils.sinWithThreshold(Math.abs(alpha), 0.0000001);\r\n\r\n if (holes) {\r\n holes.forEach(holeWithOffsetPoint => {\r\n let offset = holeWithOffsetPoint.hole.toJS().offset;\r\n // if (invert) offset = 1 - offset;\r\n let { x: xp, y: yp } = holeWithOffsetPoint.offsetPosition;\r\n\r\n if (GeometryUtils.isPointOnLineSegment(x1, y1, x2, y2, xp, yp)) {\r\n let newOffset = GeometryUtils.pointPositionOnLineSegment(\r\n x1,\r\n y1,\r\n x2,\r\n y2,\r\n xp,\r\n yp\r\n );\r\n\r\n if (newOffset >= 0 && newOffset <= 1) {\r\n //add the position of hole\r\n let temp = Hole.create(\r\n state,\r\n layerID,\r\n holeWithOffsetPoint.hole.type,\r\n line.id,\r\n newOffset,\r\n holeWithOffsetPoint.hole.properties,\r\n xp,\r\n yp\r\n );\r\n state = temp.updatedState;\r\n let holeX = 0,\r\n holeY = 0,\r\n holeID = temp.hole.id;\r\n\r\n if (GeometryUtils.almostEqual(y1, y2)) {\r\n if (x1 > x2) {\r\n holeX = x1 - lineLength * newOffset;\r\n holeY = y1;\r\n } else {\r\n holeX = x1 + lineLength * newOffset;\r\n holeY = y1;\r\n }\r\n } else if (GeometryUtils.almostEqual(x1, x2)) {\r\n if (y1 > y2) {\r\n holeX = x1;\r\n holeY = y1 - lineLength * newOffset;\r\n } else {\r\n holeX = x1;\r\n holeY = y1 + lineLength * newOffset;\r\n }\r\n } else if (x1 > x2) {\r\n if (y1 > y2) {\r\n holeX = x1 - lineLength * newOffset * cosAlpha;\r\n holeY = y1 - lineLength * newOffset * sinAlpha;\r\n } else if (y1 < y2) {\r\n holeX = x1 - lineLength * newOffset * cosAlpha;\r\n holeY = y1 + lineLength * newOffset * sinAlpha;\r\n }\r\n } else if (x1 < x2) {\r\n if (y1 > y2) {\r\n holeX = x1 + lineLength * newOffset * cosAlpha;\r\n holeY = y1 - lineLength * newOffset * sinAlpha;\r\n } else if (y1 < y2) {\r\n holeX = x1 + lineLength * newOffset * cosAlpha;\r\n holeY = y1 + lineLength * newOffset * sinAlpha;\r\n }\r\n }\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'holes', holeID, 'x'],\r\n holeX\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'holes', holeID, 'y'],\r\n holeY\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n lines.push(line);\r\n newLine = line;\r\n });\r\n\r\n return { updatedState: state, lines: new List(lines), newline: newLine };\r\n }\r\n\r\n static createAvoidingIntersections(\r\n state,\r\n layerID,\r\n type,\r\n x0,\r\n y0,\r\n x1,\r\n y1,\r\n oldProperties,\r\n oldHoles,\r\n lineCreatedDateTime = new Date().getTime()\r\n ) {\r\n let points = [\r\n { x: x0, y: y0 },\r\n { x: x1, y: y1 }\r\n ];\r\n\r\n state = state\r\n .getIn(['scene', 'layers', layerID, 'lines'])\r\n .reduce((reducedState, line) => {\r\n let [v0, v1] = line.vertices\r\n .map(vertexID =>\r\n reducedState\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .get(vertexID)\r\n )\r\n .toArray();\r\n\r\n let hasCommonEndpoint =\r\n GeometryUtils.samePoints(v0, points[0]) ||\r\n GeometryUtils.samePoints(v0, points[1]) ||\r\n GeometryUtils.samePoints(v1, points[0]) ||\r\n GeometryUtils.samePoints(v1, points[1]);\r\n\r\n let intersection = GeometryUtils.twoLineSegmentsIntersection(\r\n points[0],\r\n points[1],\r\n v0,\r\n v1\r\n );\r\n\r\n if (intersection.type === 'colinear' && !hasCommonEndpoint) {\r\n if (!oldHoles) {\r\n oldHoles = [];\r\n }\r\n\r\n let orderedVertices = GeometryUtils.orderVertices(points);\r\n\r\n reducedState\r\n .getIn(['scene', 'layers', layerID, 'lines', line.id, 'holes'])\r\n .forEach(holeID => {\r\n let hole = reducedState.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'holes',\r\n holeID\r\n ]);\r\n let oldLineLength = GeometryUtils.pointsDistance(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y\r\n );\r\n let offset = GeometryUtils.samePoints(\r\n orderedVertices[1],\r\n line.vertices.get(1)\r\n )\r\n ? 1 - hole.offset\r\n : hole.offset;\r\n let offsetPosition = GeometryUtils.extendLine(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y,\r\n oldLineLength * offset\r\n );\r\n\r\n oldHoles.push({ hole, offsetPosition });\r\n });\r\n\r\n reducedState = this.remove(\r\n reducedState,\r\n layerID,\r\n line.id\r\n ).updatedState;\r\n\r\n points.push(v0, v1);\r\n }\r\n\r\n if (intersection.type === 'intersecting' && !hasCommonEndpoint) {\r\n reducedState = this.split(\r\n reducedState,\r\n layerID,\r\n line.id,\r\n intersection.point.x,\r\n intersection.point.y\r\n ).updatedState;\r\n points.push(intersection.point);\r\n }\r\n\r\n return reducedState;\r\n }, state);\r\n\r\n let { updatedState, lines, newline } = Line.addFromPoints(\r\n state,\r\n layerID,\r\n type,\r\n points,\r\n oldProperties,\r\n oldHoles,\r\n lineCreatedDateTime\r\n );\r\n\r\n return { updatedState, lines, newline };\r\n }\r\n\r\n static replaceVertex(state, layerID, lineID, vertexIndex, x, y) {\r\n let vertexID = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'vertices',\r\n vertexIndex\r\n ]);\r\n\r\n state = Vertex.remove(\r\n state,\r\n layerID,\r\n vertexID,\r\n 'lines',\r\n lineID\r\n ).updatedState;\r\n let { updatedState: stateV, vertex } = Vertex.add(\r\n state,\r\n layerID,\r\n x,\r\n y,\r\n 'lines',\r\n lineID\r\n );\r\n state = stateV;\r\n\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'vertices', vertexIndex],\r\n vertex.id\r\n );\r\n state = state.setIn(\r\n ['scene', 'layers', layerID, 'lines', lineID],\r\n state.getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n );\r\n\r\n return {\r\n updatedState: state,\r\n line: state.getIn(['scene', 'layers', layerID, 'lines', lineID]),\r\n vertex\r\n };\r\n }\r\n\r\n static selectToolDrawingLine(state, sceneComponentType) {\r\n state = state.merge({\r\n mode: MODE_WAITING_DRAWING_LINE,\r\n drawingSupport: new Map({\r\n type: sceneComponentType\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDrawingLine(state, layerID, x, y) {\r\n // if end drawing by created area\r\n if (state.mode == MODE_IDLE) {\r\n return { updatedState: state };\r\n }\r\n // ///////////////\r\n let snapElements = SnapSceneUtils.sceneSnapElements(\r\n state.scene,\r\n new List(),\r\n state.snapMask\r\n );\r\n let snap = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n snap = SnapUtils.nearestSnap(snapElements, x, y, state.snapMask);\r\n if (snap) ({ x, y } = snap.point);\r\n\r\n snapElements = snapElements.withMutations(snapElements => {\r\n let a, b, c;\r\n ({ a, b, c } = GeometryUtils.horizontalLine(y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.verticalLine(x));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.upcrossLine(x, y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n ({ a, b, c } = GeometryUtils.downcrossLine(x, y));\r\n SnapUtils.addLineSnap(snapElements, a, b, c, 10, 3, null);\r\n });\r\n }\r\n\r\n let drawingSupport = state.get('drawingSupport').set('layerID', layerID);\r\n\r\n state = Layer.unselectAll(state, layerID).updatedState;\r\n\r\n let { updatedState: stateL, line } = Line.create(\r\n state,\r\n layerID,\r\n drawingSupport.get('type'),\r\n x,\r\n y,\r\n x,\r\n y\r\n );\r\n state = Line.select(stateL, layerID, line.id).updatedState;\r\n\r\n state = state.merge({\r\n mode: MODE_DRAWING_LINE,\r\n snapElements,\r\n activeSnapElement: snap ? snap.snap : null,\r\n drawingSupport\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateDrawingLine(state, x, y, relatedLines) {\r\n let snap = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n snap = SnapUtils.nearestSnap(state.snapElements, x, y, state.snapMask);\r\n if (snap) ({ x, y } = snap.point);\r\n }\r\n let layerID = state.getIn(['drawingSupport', 'layerID']);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n\r\n // let relatedLines = [];\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let moveFlag = true;\r\n let tx = vertices[drawingLine.vertices[1]].x;\r\n let ty = vertices[drawingLine.vertices[1]].y;\r\n\r\n if (!isEmpty(relatedLines)) {\r\n vertices[drawingLine.vertices[1]].x = x;\r\n vertices[drawingLine.vertices[1]].y = y;\r\n }\r\n\r\n let absAngle, lineAngle;\r\n\r\n // get the angle of two lines and check the angle\r\n if (drawingLine.vertices[0] !== drawingLine.vertices[1]) {\r\n relatedLines.forEach(line => {\r\n // get the points of two lines(drawing line and related line)\r\n if (!isEmpty(line)) {\r\n // the angle between two lines(line, drawingLine)\r\n lineAngle = GeometryUtils.angleBetweenTwoLines(\r\n line,\r\n drawingLine,\r\n vertices\r\n );\r\n // check whether the angle is less than or bigger than specific value.\r\n absAngle = Math.abs(lineAngle);\r\n if (\r\n absAngle < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n absAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n moveFlag = false;\r\n } else moveFlag = true;\r\n }\r\n });\r\n }\r\n\r\n // if the angle is bigger or less than specific value, the wall mustn't be drawn at new position\r\n if (moveFlag) {\r\n tx = x;\r\n ty = y;\r\n } else {\r\n let rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;\r\n // the origin point of rotation(snapping)\r\n let ox = vertices[drawingLine.vertices[0]].x;\r\n let oy = vertices[drawingLine.vertices[0]].y;\r\n // determine the direction of rotation.\r\n rest = lineAngle > 0 ? -rest : rest;\r\n // rotate the current point to last point around the first point of drawing line.\r\n let res = GeometryUtils.rotatePointAroundPoint(x, y, ox, oy, rest);\r\n tx = res.x;\r\n ty = res.y;\r\n }\r\n // angle snapping as a value of UNIT_ANGLE\r\n if (moveFlag && !isEmpty(absAngle) && absAngle % UNIT_ANGLE !== 0) {\r\n let result = GeometryUtils.snapAngleByUnit(\r\n lineAngle,\r\n vertices,\r\n drawingLine,\r\n tx,\r\n ty,\r\n drawingLine.vertices[1]\r\n );\r\n tx = result.x;\r\n ty = result.y;\r\n }\r\n let { updatedState: stateLV, vertex } = Line.replaceVertex(\r\n state,\r\n layerID,\r\n lineID,\r\n 1,\r\n tx,\r\n ty\r\n );\r\n state = stateLV;\r\n state = this.select(state, layerID, lineID).updatedState;\r\n state = state.merge({ activeSnapElement: snap ? snap.snap : null });\r\n state = state.setIn(['scene', 'setLineAttributes'], false);\r\n return { updatedState: state };\r\n }\r\n\r\n static drawLineByAttributes(state, layerID, lineID, lineAttributes) {\r\n let lAttr = lineAttributes.toJS();\r\n let { vertexOne, vertexTwo } = lAttr;\r\n // state = state.mergeIn(\r\n // ['scene', 'layers', layerID, 'lines', lineID],\r\n // fromJS(lAttr)\r\n // );\r\n\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n // let relatedLines = layer.lines.toArray().filter(line => {\r\n // return line.vertices.includes(vertexOne.id) && line.id != lineID;\r\n // });\r\n let lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n let relatedLines = [];\r\n let drawingLine = line.toJS();\r\n getRelatedLines(relatedLines, drawingLine, vertices, lines);\r\n\r\n //if lineAngle is 180 degree between two lines\r\n let lineAngle;\r\n let holesWithOffsetPosition = [];\r\n let v0;\r\n for (let i = 0; i < relatedLines.length; i++) {\r\n // A variable j, k is the number of points in the line\r\n for (let j = 0; j < 2; j++) {\r\n for (let k = 0; k < 2; k++) {\r\n // lineAngle is that angle between the two lines\r\n lineAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(\r\n relatedLines[i],\r\n drawingLine,\r\n vertices\r\n )\r\n );\r\n //when the related line is one, drawing a new line\r\n if (lineAngle === 180 && relatedLines.length === 1) {\r\n if (relatedLines[i].vertices[j] !== drawingLine.vertices[k]) {\r\n continue;\r\n } else {\r\n v0 = layer.vertices.get(relatedLines[i].vertices[1 - j]);\r\n let v1 = layer.vertices.get(relatedLines[i].vertices[j]);\r\n //remove the drawing line and related line\r\n state = Line.remove(\r\n state,\r\n layerID,\r\n relatedLines[i].id\r\n ).updatedState;\r\n //get the data of hole included in the related line\r\n layer.lines.get(relatedLines[i].id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(\r\n v0.x,\r\n v0.y,\r\n v1.x,\r\n v1.y\r\n );\r\n let minV = GeometryUtils.minVertex(v0, v1);\r\n let maxV = GeometryUtils.maxVertex(v0, v1);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n // state = state.mergeIn(\r\n // ['scene', 'layers', layerID, 'lines', lineID, 'focus'],\r\n // true\r\n // );\r\n let v2 = layer.vertices.get(line.vertices.get(0));\r\n let v3 = layer.vertices.get(line.vertices.get(1));\r\n state = this.select(state, layerID, lineID).updatedState;\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n let minV = GeometryUtils.minVertex(v2, v3);\r\n let maxV = GeometryUtils.maxVertex(v2, v3);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n layer.lines.get(lineID).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(v2.x, v2.y, v3.x, v3.y);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n let checkVertex = lineAngle === 180 && relatedLines.length === 1 ? v0 : v2;\r\n if (\r\n !GeometryUtils.samePoints(checkVertex, {\r\n x: vertexTwo.x,\r\n y: vertexTwo.y\r\n })\r\n ) {\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line.type,\r\n checkVertex.x,\r\n checkVertex.y,\r\n vertexTwo.x,\r\n vertexTwo.y,\r\n line.properties,\r\n holesWithOffsetPosition,\r\n line.createdDateTime\r\n );\r\n state = ret.updatedState;\r\n }\r\n // state = Line.createAvoidingIntersections(state, layerID, line.type, v0.x, v0.y, x, y).updatedState;\r\n\r\n // origin area count\r\n let areaCount = layer.areas.size;\r\n\r\n state = Layer.detectAndUpdateAreas(state, layerID).updatedState;\r\n\r\n state = state.merge({\r\n sceneHistory: history.historyPush(state.sceneHistory, state.scene)\r\n });\r\n\r\n // state = state.merge({\r\n // mode: MODE_WAITING_DRAWING_LINE,\r\n // snapElements: new List(),\r\n // activeSnapElement: null\r\n // });\r\n\r\n if (state.mode.endsWith('_LINE')) {\r\n state = state.setIn(['scene', 'setLineAttributes'], true);\r\n state = this.beginDrawingLine(\r\n state,\r\n layerID,\r\n vertexTwo.x,\r\n vertexTwo.y\r\n ).updatedState;\r\n }\r\n\r\n // update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static stopDrawingLine(state) {\r\n console.log('line aCtion');\r\n }\r\n\r\n /**\r\n * check the [curVertId] point\r\n * @param {*} state scene state\r\n * @param {*} curVertId id of vertex\r\n * returns colinear two line array - [line1, line2]\r\n * if there is no colinear lines or the count of colinear lines more than\r\n */\r\n static hasColinearTwoLines(state, curVertId, layerID) {\r\n let lineGroup = [];\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();\r\n\r\n layer.lines.forEach(line => {\r\n if (line.vertices.some(v => v === curVertId)) lineGroup.push(line.toJS());\r\n });\r\n if (lineGroup.length !== 2) return null;\r\n\r\n let lineAngle = Math.abs(\r\n GeometryUtils.angleBetweenTwoLines(lineGroup[0], lineGroup[1], vertices)\r\n );\r\n if (lineAngle === 180) return lineGroup;\r\n\r\n return null;\r\n }\r\n\r\n static mergeTwoColinearLines(state, line1, line2, layerID, lineProperties) {\r\n let nv0, nv1, nv2;\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n\r\n let holesWithOffsetPosition = [];\r\n\r\n line1.vertices.forEach(v1 => {\r\n line2.vertices.forEach(v2 => {\r\n if (v2 === v1) {\r\n nv1 = layer.vertices.get(v1);\r\n }\r\n });\r\n });\r\n line1.vertices.forEach(v1 => {\r\n if (v1 !== nv1.id) nv0 = layer.vertices.get(v1);\r\n });\r\n line2.vertices.forEach(v2 => {\r\n if (v2 !== nv1.id) nv2 = layer.vertices.get(v2);\r\n });\r\n\r\n state = Line.remove(state, layerID, line1.id).updatedState;\r\n //get the data of hole included in the related line\r\n layer.lines.get(line1.id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(nv0.x, nv0.y, nv1.x, nv1.y);\r\n let minV = GeometryUtils.minVertex(nv0, nv1);\r\n let maxV = GeometryUtils.maxVertex(nv0, nv1);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n state = Line.remove(state, layerID, line2.id).updatedState;\r\n layer.lines.get(line2.id).holes.forEach(holeID => {\r\n let lineLength = GeometryUtils.pointsDistance(nv1.x, nv1.y, nv2.x, nv2.y);\r\n let minV = GeometryUtils.minVertex(nv1, nv2);\r\n let maxV = GeometryUtils.maxVertex(nv1, nv2);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n // Calculate the hole position\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line1.type,\r\n nv0.x,\r\n nv0.y,\r\n nv2.x,\r\n nv2.y,\r\n lineProperties,\r\n holesWithOffsetPosition,\r\n line1.createdDateTime\r\n );\r\n state = ret.updatedState;\r\n\r\n // origin area count\r\n let areaCount = layer.areas.size;\r\n\r\n let drawingInfor = {\r\n drawingLine: ret.newline,\r\n vertices: layer.vertices\r\n };\r\n state = Layer.detectAndUpdateAreas(\r\n state,\r\n layerID,\r\n drawingInfor\r\n ).updatedState;\r\n\r\n //update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n return { updatedState: state, drawingInfor };\r\n }\r\n\r\n static endDrawingLine(state, x, y, relatedLines) {\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n let snap = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n x,\r\n y,\r\n state.snapMask\r\n );\r\n if (snap) ({ x, y } = snap.point);\r\n }\r\n\r\n let layerID = state.getIn(['drawingSupport', 'layerID']);\r\n let layer = state.getIn(['scene', 'layers', layerID]);\r\n let lineID = state\r\n .getIn(['scene', 'layers', layerID, 'selected', 'lines'])\r\n .first();\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n let drawingLine = line.toJS();\r\n\r\n if (drawingLine.vertices[0] === drawingLine.vertices[1]) {\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n snapElements: new List(),\r\n activeSnapElement: null\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n\r\n /// 180 merge lines - start ////\r\n let vertexGroup = [];\r\n let drawingInfor = {};\r\n\r\n line.vertices.forEach(vertexID => {\r\n let colinearLines = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n vertexID,\r\n 'lines'\r\n ]);\r\n colinearLines.forEach(lineID => {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n line.vertices.forEach(vertex => {\r\n if (vertex !== vertexID) vertexGroup.push(vertex);\r\n });\r\n });\r\n });\r\n\r\n vertexGroup.forEach(vertexId => {\r\n let lineGroup = [];\r\n\r\n lineGroup = this.hasColinearTwoLines(state, vertexId, layerID);\r\n if (!isEmpty(lineGroup)) {\r\n let ret = this.mergeTwoColinearLines(\r\n state,\r\n lineGroup[0],\r\n lineGroup[1],\r\n layerID,\r\n line.properties\r\n );\r\n state = ret.updatedState;\r\n drawingInfor = ret.drawingInfor;\r\n }\r\n });\r\n\r\n /// 180 merge lines - end ////\r\n\r\n if (isEmpty(drawingInfor)) {\r\n drawingInfor = {\r\n drawingLine: line,\r\n vertices: layer.vertices\r\n };\r\n state = Layer.detectAndUpdateAreas(\r\n state,\r\n layerID,\r\n drawingInfor\r\n ).updatedState;\r\n }\r\n\r\n //update area//\r\n layer = state.getIn(['scene', 'layers', layerID]);\r\n // if new area created\r\n // this.interiorsurfacedetect(state);\r\n\r\n state = state.merge({\r\n mode: MODE_WAITING_DRAWING_LINE,\r\n snapElements: new List(),\r\n activeSnapElement: null\r\n });\r\n return { updatedState: state };\r\n }\r\n\r\n static beginDraggingLine(state, layerID, lineID, x, y) {\r\n let snapElements = SnapSceneUtils.sceneSnapElements(\r\n state.scene,\r\n new List(),\r\n state.snapMask\r\n );\r\n\r\n let layer = state.scene.layers.get(layerID);\r\n let line = layer.lines.get(lineID);\r\n\r\n let vertex0 = layer.vertices.get(line.vertices.get(0));\r\n let vertex1 = layer.vertices.get(line.vertices.get(1));\r\n\r\n state = state.merge({\r\n mode: MODE_DRAGGING_LINE,\r\n snapElements,\r\n draggingSupport: Map({\r\n layerID,\r\n lineID,\r\n startPointX: x,\r\n startPointY: y,\r\n startVertex0X: vertex0.x,\r\n startVertex0Y: vertex0.y,\r\n startVertex1X: vertex1.x,\r\n startVertex1Y: vertex1.y\r\n })\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n draggingLine,\r\n relatedLines\r\n ) {\r\n if (\r\n !newPoints ||\r\n !allVertices ||\r\n !draggingLine ||\r\n !Array.isArray(relatedLines)\r\n ) {\r\n return newPoints; // Invalid input, just return\r\n }\r\n\r\n const draggingVertices = Array.isArray(draggingLine.vertices)\r\n ? draggingLine.vertices\r\n : [];\r\n const mvFlag = [];\r\n\r\n relatedLines.forEach(relLine => {\r\n if (!relLine || !Array.isArray(relLine.vertices)) return;\r\n\r\n relLine.vertices.forEach((vertexId, i) => {\r\n if (draggingVertices.includes(vertexId)) return; // skip shared vertices\r\n const vData = allVertices[vertexId];\r\n if (!vData) return; // guard: vertex missing\r\n\r\n const center =\r\n i === 0\r\n ? new Three.Vector2(\r\n newPoints?.newVertex0X ?? 0,\r\n newPoints?.newVertex0Y ?? 0\r\n )\r\n : new Three.Vector2(\r\n newPoints?.newVertex1X ?? 0,\r\n newPoints?.newVertex1Y ?? 0\r\n );\r\n\r\n const pos1 = new Three.Vector2(vData.x ?? 0, vData.y ?? 0);\r\n const pos2 =\r\n i === 0\r\n ? new Three.Vector2(\r\n newPoints?.newVertex1X ?? 0,\r\n newPoints?.newVertex1Y ?? 0\r\n )\r\n : new Three.Vector2(\r\n newPoints?.newVertex0X ?? 0,\r\n newPoints?.newVertex0Y ?? 0\r\n );\r\n\r\n const cen = center.clone();\r\n const vec1 = pos1.clone().sub(cen).normalize();\r\n const vec2 = pos2.clone().sub(cen).normalize();\r\n\r\n const angle = Math.floor(\r\n (vec1.angle() * 180) / Math.PI - (vec2.angle() * 180) / Math.PI + 0.5\r\n );\r\n\r\n if (\r\n Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL ||\r\n Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL\r\n ) {\r\n mvFlag.push(false);\r\n } else {\r\n mvFlag.push(true);\r\n }\r\n });\r\n });\r\n\r\n // If any flag is false, revert newPoints to original dragging line positions\r\n if (mvFlag.includes(false) && draggingVertices.length >= 2) {\r\n const v0 = allVertices[draggingVertices[0]];\r\n const v1 = allVertices[draggingVertices[1]];\r\n if (v0 && v1) {\r\n newPoints.newVertex0X = v0.x;\r\n newPoints.newVertex0Y = v0.y;\r\n newPoints.newVertex1X = v1.x;\r\n newPoints.newVertex1Y = v1.y;\r\n }\r\n }\r\n\r\n return newPoints;\r\n }\r\n\r\n static updateDraggingLine(state, x, y, relatedLines) {\r\n let draggingSupport = state.draggingSupport;\r\n let snapElements = state.snapElements;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let lineID = draggingSupport.get('lineID');\r\n let diffX = x - draggingSupport.get('startPointX');\r\n let diffY = y - draggingSupport.get('startPointY');\r\n let newVertex0X = draggingSupport.get('startVertex0X') + diffX;\r\n let newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;\r\n let newVertex1X = draggingSupport.get('startVertex1X') + diffX;\r\n let newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;\r\n let drawingLine = state\r\n .getIn(['scene', 'layers', layerID, 'lines', lineID])\r\n .toJS();\r\n let allVertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n\r\n let activeSnapElement = null;\r\n let curSnap0 = null,\r\n curSnap1 = null;\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n curSnap0 = SnapUtils.nearestSnap(\r\n snapElements,\r\n newVertex0X,\r\n newVertex0Y,\r\n state.snapMask\r\n );\r\n curSnap1 = SnapUtils.nearestSnap(\r\n snapElements,\r\n newVertex1X,\r\n newVertex1Y,\r\n state.snapMask\r\n );\r\n }\r\n\r\n let deltaX = 0,\r\n deltaY = 0;\r\n if (curSnap0 && curSnap1) {\r\n if (curSnap0.point.distance < curSnap1.point.distance) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n activeSnapElement = curSnap0.snap;\r\n } else {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n activeSnapElement = curSnap1.snap;\r\n }\r\n } else {\r\n if (curSnap0) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n activeSnapElement = curSnap0.snap;\r\n }\r\n if (curSnap1) {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n activeSnapElement = curSnap1.snap;\r\n }\r\n }\r\n\r\n newVertex0X += deltaX;\r\n newVertex0Y += deltaY;\r\n newVertex1X += deltaX;\r\n newVertex1Y += deltaY;\r\n let newPoints = {\r\n newVertex0X: newVertex0X,\r\n newVertex0Y: newVertex0Y,\r\n newVertex1X: newVertex1X,\r\n newVertex1Y: newVertex1Y\r\n };\r\n let newResult = this.getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n drawingLine,\r\n relatedLines\r\n );\r\n newVertex0X = newResult.newVertex0X;\r\n newVertex0Y = newResult.newVertex0Y;\r\n newVertex1X = newResult.newVertex1X;\r\n newVertex1Y = newResult.newVertex1Y;\r\n\r\n state = state.merge({\r\n activeSnapElement,\r\n scene: state.scene.updateIn(['layers', layerID], layer =>\r\n layer.withMutations(layer => {\r\n let lineVertices = layer.getIn(['lines', lineID, 'vertices']);\r\n layer.updateIn(['vertices', lineVertices.get(0)], vertex =>\r\n vertex.merge({ x: newVertex0X, y: newVertex0Y })\r\n );\r\n layer.updateIn(['vertices', lineVertices.get(1)], vertex =>\r\n vertex.merge({ x: newVertex1X, y: newVertex1Y })\r\n );\r\n return layer;\r\n })\r\n )\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static endDraggingLine(state, x, y, relatedLines) {\r\n let { draggingSupport } = state;\r\n\r\n let layerID = draggingSupport.get('layerID');\r\n let layer = state.scene.layers.get(layerID);\r\n let lineID = draggingSupport.get('lineID');\r\n let line = layer.lines.get(lineID);\r\n let drawedLine = line.toJS();\r\n let allVertices = state\r\n .getIn(['scene', 'layers', layerID, 'vertices'])\r\n .toJS();\r\n\r\n let vertex0 = layer.vertices.get(line.vertices.get(0));\r\n let vertex1 = layer.vertices.get(line.vertices.get(1));\r\n let maxV = GeometryUtils.maxVertex(vertex0, vertex1);\r\n let minV = GeometryUtils.minVertex(vertex0, vertex1);\r\n let lineLength = GeometryUtils.verticesDistance(minV, maxV);\r\n let alpha = Math.atan2(maxV.y - minV.y, maxV.x - minV.x);\r\n let holesWithOffsetPosition = [];\r\n layer.lines.get(lineID).holes.forEach(holeID => {\r\n let hole = layer.holes.get(holeID);\r\n let pointOnLine = lineLength * hole.offset;\r\n let offsetPosition = {\r\n x: pointOnLine * Math.cos(alpha) + minV.x,\r\n y: pointOnLine * Math.sin(alpha) + minV.y\r\n };\r\n holesWithOffsetPosition.push({ hole, offsetPosition });\r\n });\r\n\r\n let diffX = x - draggingSupport.get('startPointX');\r\n let diffY = y - draggingSupport.get('startPointY');\r\n let newVertex0X = draggingSupport.get('startVertex0X') + diffX;\r\n let newVertex0Y = draggingSupport.get('startVertex0Y') + diffY;\r\n let newVertex1X = draggingSupport.get('startVertex1X') + diffX;\r\n let newVertex1Y = draggingSupport.get('startVertex1Y') + diffY;\r\n\r\n if (state.snapMask && !state.snapMask.isEmpty()) {\r\n let curSnap0 = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n newVertex0X,\r\n newVertex0Y,\r\n state.snapMask\r\n );\r\n let curSnap1 = SnapUtils.nearestSnap(\r\n state.snapElements,\r\n newVertex1X,\r\n newVertex1Y,\r\n state.snapMask\r\n );\r\n\r\n let deltaX = 0,\r\n deltaY = 0;\r\n if (curSnap0 && curSnap1) {\r\n if (curSnap0.point.distance < curSnap1.point.distance) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n } else {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n }\r\n } else {\r\n if (curSnap0) {\r\n deltaX = curSnap0.point.x - newVertex0X;\r\n deltaY = curSnap0.point.y - newVertex0Y;\r\n }\r\n if (curSnap1) {\r\n deltaX = curSnap1.point.x - newVertex1X;\r\n deltaY = curSnap1.point.y - newVertex1Y;\r\n }\r\n }\r\n\r\n newVertex0X += deltaX;\r\n newVertex0Y += deltaY;\r\n newVertex1X += deltaX;\r\n newVertex1Y += deltaY;\r\n }\r\n let newPoints = {\r\n newVertex0X: newVertex0X,\r\n newVertex0Y: newVertex0Y,\r\n newVertex1X: newVertex1X,\r\n newVertex1Y: newVertex1Y\r\n };\r\n let newResult = this.getNewDraggedPoints(\r\n newPoints,\r\n allVertices,\r\n drawedLine,\r\n relatedLines\r\n );\r\n newVertex0X = newResult.newVertex0X;\r\n newVertex0Y = newResult.newVertex0Y;\r\n newVertex1X = newResult.newVertex1X;\r\n newVertex1Y = newResult.newVertex1Y;\r\n\r\n let lineGroups = state //get groups membership if present\r\n .getIn(['scene', 'groups'])\r\n .filter(group => {\r\n const lines = group.getIn(['elements', layerID, 'lines']);\r\n return lines && lines.contains(lineID);\r\n });\r\n\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n line.vertices.get(0)\r\n ).updatedState;\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n line.vertices.get(1)\r\n ).updatedState;\r\n state = Line.remove(state, layerID, lineID).updatedState;\r\n if (\r\n !GeometryUtils.samePoints(\r\n { newVertex0X, newVertex0Y },\r\n { newVertex1X, newVertex1Y }\r\n )\r\n ) {\r\n let ret = Line.createAvoidingIntersections(\r\n state,\r\n layerID,\r\n line.type,\r\n newVertex0X,\r\n newVertex0Y,\r\n newVertex1X,\r\n newVertex1Y,\r\n line.properties,\r\n holesWithOffsetPosition,\r\n line.createdDateTime\r\n );\r\n\r\n state = ret.updatedState;\r\n //re-add to old line's groups if present\r\n ret.lines.forEach(addedLine => {\r\n lineGroups.forEach(oldLineGroup => {\r\n state = Group.addElement(\r\n state,\r\n oldLineGroup.id,\r\n layerID,\r\n 'lines',\r\n addedLine.id\r\n ).updatedState;\r\n });\r\n });\r\n }\r\n\r\n /// merge line if line angle is 180 degree ----> start\r\n let draggingLineID = state.draggingSupport.get('lineID');\r\n let draggingLine = layer.lines.get(draggingLineID);\r\n let vertexGroup = [];\r\n\r\n draggingLine.vertices.forEach(vertexID => {\r\n let colinearLines = state.getIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'vertices',\r\n vertexID,\r\n 'lines'\r\n ]);\r\n if (!isEmpty(colinearLines)) {\r\n colinearLines.forEach(lineID => {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n\r\n line.vertices.forEach(vertex => {\r\n if (vertex !== vertexID) vertexGroup.push(vertex);\r\n });\r\n });\r\n }\r\n });\r\n\r\n vertexGroup.forEach(vertexId => {\r\n let lineGroup = [];\r\n\r\n lineGroup = this.hasColinearTwoLines(state, vertexId, layerID);\r\n if (!isEmpty(lineGroup)) {\r\n state = this.mergeTwoColinearLines(\r\n state,\r\n lineGroup[0],\r\n lineGroup[1],\r\n layerID,\r\n line.properties\r\n ).updatedState;\r\n }\r\n });\r\n\r\n /// ------> end\r\n state = Layer.detectAndUpdateAreas(state, layerID, {}).updatedState;\r\n\r\n state = state.merge({\r\n mode: MODE_IDLE,\r\n draggingSupport: null,\r\n activeSnapElement: null,\r\n snapElements: new List()\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setProperties(state, layerID, lineID, properties) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'properties'],\r\n properties\r\n );\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setJsProperties(state, layerID, lineID, properties) {\r\n return this.setProperties(state, layerID, lineID, fromJS(properties));\r\n }\r\n\r\n static updateProperties(state, layerID, lineID, properties) {\r\n properties.forEach((v, k) => {\r\n if (\r\n state.hasIn([\r\n 'scene',\r\n 'layers',\r\n layerID,\r\n 'lines',\r\n lineID,\r\n 'properties',\r\n k\r\n ])\r\n )\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'properties', k],\r\n v\r\n );\r\n });\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static updateJsProperties(state, layerID, lineID, properties) {\r\n return this.updateProperties(state, layerID, lineID, fromJS(properties));\r\n }\r\n\r\n static setAttributes(state, layerID, lineID, lineAttributes) {\r\n if (state.mode === MODE_WAITING_DRAWING_LINE)\r\n return this.drawLineByAttributes(state, layerID, lineID, lineAttributes);\r\n\r\n let lAttr = lineAttributes.toJS();\r\n let {\r\n vertexOne,\r\n vertexTwo,\r\n vertexThree,\r\n vertexFour,\r\n lineLength,\r\n lineToExtend\r\n } = lAttr;\r\n delete lAttr['vertexOne'];\r\n delete lAttr['vertexTwo'];\r\n delete lAttr['vertexThree'];\r\n delete lAttr['vertexFour'];\r\n delete lAttr['lineToExtend'];\r\n delete lAttr['lineLength'];\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n state = state\r\n .mergeIn(['scene', 'layers', layerID, 'lines', lineID], fromJS(lAttr))\r\n .mergeIn(['scene', 'layers', layerID, 'vertices', vertexOne.id], {\r\n x: vertexOne.x,\r\n y: vertexOne.y\r\n })\r\n .mergeIn(['scene', 'layers', layerID, 'vertices', vertexTwo.id], {\r\n x: vertexTwo.x,\r\n y: vertexTwo.y\r\n })\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineID, 'misc'],\r\n new Map({ _unitLength: lineLength._unit })\r\n )\r\n .mergeIn(['scene', 'layers', layerID, 'lines', lineID, 'focus'], true);\r\n if (lineToExtend) {\r\n state = state\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineToExtend.id],\r\n fromJS(lAttr)\r\n )\r\n .mergeIn(\r\n ['scene', 'layers', layerID, 'lines', lineToExtend.id, 'misc'],\r\n new Map({ _unitLength: lineLength._unit })\r\n );\r\n }\r\n if (vertexThree) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'vertices', vertexThree.id],\r\n { x: vertexThree.x, y: vertexThree.y }\r\n );\r\n }\r\n if (vertexFour) {\r\n state = state.mergeIn(\r\n ['scene', 'layers', layerID, 'vertices', vertexFour.id],\r\n { x: vertexFour.x, y: vertexFour.y }\r\n );\r\n }\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n vertexOne.id\r\n ).updatedState;\r\n if (vertexOne.x != vertexTwo.x && vertexOne.y != vertexTwo.y) {\r\n state = Layer.mergeEqualsVertices(\r\n state,\r\n layerID,\r\n vertexTwo.id\r\n ).updatedState;\r\n }\r\n state = Layer.detectAndUpdateAreas(state, layerID, {}).updatedState;\r\n state = state.merge({\r\n sceneHistory: history.historyPush(state.sceneHistory, state.scene)\r\n });\r\n if (state.mode.endsWith('_LINE')) {\r\n state = this.beginDrawingLine(\r\n state,\r\n layerID,\r\n vertexTwo.x,\r\n vertexTwo.y\r\n ).updatedState;\r\n }\r\n\r\n return { updatedState: state };\r\n }\r\n\r\n static setVerticesCoords(state, layerID, lineID, x1, y1, x2, y2) {\r\n let line = state.getIn(['scene', 'layers', layerID, 'lines', lineID]);\r\n state = Vertex.setAttributes(\r\n state,\r\n layerID,\r\n line.vertices.get(0),\r\n new Map({ x: x1, y: y1 })\r\n ).updatedState;\r\n state = Vertex.setAttributes(\r\n state,\r\n layerID,\r\n line.vertices.get(1),\r\n new Map({ x: x2, y: y2 })\r\n ).updatedState;\r\n\r\n return { updatedState: state };\r\n }\r\n}\r\n\r\nexport { Line as default };\r\n"],"mappings":"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","ignoreList":[]}