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

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 (1096) hide show
  1. package/package.json +24 -41
  2. package/src/@history.js +3 -0
  3. package/src/AppContext.js +5 -0
  4. package/src/KitchenConfigurator.jsx +1517 -0
  5. package/src/KitchenConfiguratorApp.jsx +443 -0
  6. package/src/actions/area-actions.js +15 -0
  7. package/src/actions/export.js +38 -0
  8. package/src/actions/groups-actions.js +102 -0
  9. package/src/actions/holes-actions.js +152 -0
  10. package/src/actions/items-actions.js +393 -0
  11. package/src/actions/lines-actions.js +103 -0
  12. package/src/actions/project-actions.js +391 -0
  13. package/src/actions/scene-actions.js +44 -0
  14. package/src/actions/user-actions.js +75 -0
  15. package/src/actions/vertices-actions.js +34 -0
  16. package/src/actions/viewer2d-actions.js +79 -0
  17. package/src/actions/viewer3d-actions.js +32 -0
  18. package/src/catalog/areas/area/planner-element.jsx +43 -0
  19. package/src/catalog/catalog.js +258 -0
  20. package/src/catalog/factories/area-factory-3d.js +252 -0
  21. package/src/catalog/factories/area-factory.jsx +102 -0
  22. package/src/catalog/factories/export.js +9 -0
  23. package/src/catalog/factories/wall-factory-3d.js +296 -0
  24. package/src/catalog/factories/wall-factory.jsx +321 -0
  25. package/src/catalog/holes/door-closet/planner-element.jsx +251 -0
  26. package/src/catalog/holes/door-double/planner-element.jsx +391 -0
  27. package/src/catalog/holes/door-exterior/planner-element.jsx +245 -0
  28. package/src/catalog/holes/door-interior/planner-element.jsx +256 -0
  29. package/src/catalog/holes/door-panic/planner-element.jsx +594 -0
  30. package/src/catalog/holes/door-panic-double/planner-element.jsx +574 -0
  31. package/src/catalog/holes/door-sliding/planner-element.jsx +256 -0
  32. package/src/catalog/holes/doorway-framed/planner-element.jsx +169 -0
  33. package/src/catalog/holes/doorway-frameless/planner-element.jsx +116 -0
  34. package/src/catalog/holes/window-clear/planner-element.jsx +181 -0
  35. package/src/catalog/holes/window-cross/planner-element.jsx +180 -0
  36. package/src/catalog/holes/window-double-hung/planner-element.jsx +366 -0
  37. package/src/catalog/holes/window-vertical/planner-element.jsx +290 -0
  38. package/src/catalog/lines/wall/planner-element.jsx +73 -0
  39. package/src/catalog/molding/molding-dcm/planner-element.jsx +35 -0
  40. package/src/catalog/molding/molding-fbm/planner-element.jsx +35 -0
  41. package/src/catalog/molding/molding-lrm/planner-element.jsx +35 -0
  42. package/src/catalog/properties/export.js +33 -0
  43. package/src/catalog/properties/property-checkbox.jsx +123 -0
  44. package/src/catalog/properties/property-color.jsx +52 -0
  45. package/src/catalog/properties/property-enum.jsx +87 -0
  46. package/src/catalog/properties/property-hidden.jsx +22 -0
  47. package/src/catalog/properties/property-lenght-measure.jsx +113 -0
  48. package/src/catalog/properties/property-length-measure.jsx +129 -0
  49. package/src/catalog/properties/property-length-measure_hole.jsx +110 -0
  50. package/src/catalog/properties/property-number.jsx +63 -0
  51. package/src/catalog/properties/property-read-only.jsx +37 -0
  52. package/src/catalog/properties/property-string.jsx +59 -0
  53. package/src/catalog/properties/property-toggle.jsx +51 -0
  54. package/src/catalog/properties/shared-property-style.js +13 -0
  55. package/src/catalog/utils/FuseUtils.js +61 -0
  56. package/src/catalog/utils/exporter.js +173 -0
  57. package/src/catalog/utils/geom-utils.js +301 -0
  58. package/src/catalog/utils/item-loader.jsx +2122 -0
  59. package/src/catalog/utils/load-obj.js +113 -0
  60. package/src/catalog/utils/mtl-loader.js +462 -0
  61. package/src/catalog/utils/obj-loader.js +544 -0
  62. package/src/class/FuseUtils.js +61 -0
  63. package/src/class/area.js +159 -0
  64. package/src/class/export.js +37 -0
  65. package/src/class/group.js +565 -0
  66. package/src/class/guide.js +44 -0
  67. package/src/class/hole.js +1359 -0
  68. package/src/class/item.js +2050 -0
  69. package/src/class/layer.js +926 -0
  70. package/src/class/line.js +1780 -0
  71. package/src/class/project.js +875 -0
  72. package/src/class/vertex.js +409 -0
  73. package/src/components/atoms/Snackbar/index.jsx +43 -0
  74. package/src/components/atoms/radio-button/index.jsx +20 -0
  75. package/src/components/atoms/radio-button/styles.js +56 -0
  76. package/src/components/button/MainButton.jsx +157 -0
  77. package/src/components/button/ToggleMeasureButton.jsx +65 -0
  78. package/src/components/catalog-view/catalog-breadcrumb.jsx +53 -0
  79. package/src/components/catalog-view/catalog-item.jsx +229 -0
  80. package/src/components/catalog-view/catalog-list.jsx +173 -0
  81. package/src/components/catalog-view/catalog-page-item.jsx +110 -0
  82. package/src/components/catalog-view/catalog-turn-back-page-item.jsx +80 -0
  83. package/src/components/configurator/custom-configurator.jsx +77 -0
  84. package/src/components/configurator/project-configurator.jsx +120 -0
  85. package/src/components/content.jsx +136 -0
  86. package/src/components/export.js +36 -0
  87. package/src/components/firstsetting/button/styles.js +223 -0
  88. package/src/components/firstsetting/export.js +9 -0
  89. package/src/components/firstsetting/firstsetting-content-button.jsx +198 -0
  90. package/src/components/firstsetting/firstsetting-toggle-button.jsx +101 -0
  91. package/src/components/firstsetting/firstsetting.jsx +814 -0
  92. package/src/components/footerbar/button/ControlButton.jsx +43 -0
  93. package/src/components/footerbar/button/DirectionButton.jsx +54 -0
  94. package/src/components/footerbar/button/DirectionPanSpinButton.jsx +36 -0
  95. package/src/components/footerbar/button/ToggleButton.jsx +58 -0
  96. package/src/components/footerbar/button/ToggleConvertButton.jsx +48 -0
  97. package/src/components/footerbar/button/ToggleMeasureButton.jsx +33 -0
  98. package/src/components/footerbar/button/styles.js +217 -0
  99. package/src/components/footerbar/export.js +9 -0
  100. package/src/components/footerbar/footer-content-button.jsx +198 -0
  101. package/src/components/footerbar/footer-toggle-button.jsx +101 -0
  102. package/src/components/footerbar/footerbar.jsx +1103 -0
  103. package/src/components/footerbar/styles.js +263 -0
  104. package/src/components/header/button/MenuButton.jsx +46 -0
  105. package/src/components/header/button/SaveButton.jsx +54 -0
  106. package/src/components/header/button/styles.js +181 -0
  107. package/src/components/header/export.js +5 -0
  108. package/src/components/header/header.jsx +631 -0
  109. package/src/components/header/styles.js +320 -0
  110. package/src/components/login/Login.js +77 -0
  111. package/src/components/login/LoginForm/index.js +108 -0
  112. package/src/components/login/Register.js +83 -0
  113. package/src/components/login/RegisterForm/index.js +171 -0
  114. package/src/components/login/jwtService.js +201 -0
  115. package/src/components/molecules/slider/index.jsx +15 -0
  116. package/src/components/molecules/slider/styles.js +0 -0
  117. package/src/components/myprojects/export.js +5 -0
  118. package/src/components/myprojects/index.jsx +445 -0
  119. package/src/components/myprojects/styles.js +241 -0
  120. package/src/components/sidebar/custom-accordion.jsx +48 -0
  121. package/src/components/sidebar/export.js +15 -0
  122. package/src/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.jsx +73 -0
  123. package/src/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.jsx +101 -0
  124. package/src/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.jsx +149 -0
  125. package/src/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.jsx +316 -0
  126. package/src/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.jsx +108 -0
  127. package/src/components/sidebar/panel-element-editor/element-editor.jsx +1070 -0
  128. package/src/components/sidebar/panel-element-editor/multi-elements-editor.jsx +0 -0
  129. package/src/components/sidebar/panel-element-editor/panel-element-editor.jsx +104 -0
  130. package/src/components/sidebar/panel-element-editor/panel-multi-elements-editor.jsx +155 -0
  131. package/src/components/sidebar/panel-group-editor.jsx +272 -0
  132. package/src/components/sidebar/panel-groups.jsx +310 -0
  133. package/src/components/sidebar/panel-guides.jsx +192 -0
  134. package/src/components/sidebar/panel-layer-elements.jsx +298 -0
  135. package/src/components/sidebar/panel-layers.jsx +381 -0
  136. package/src/components/sidebar/panel.jsx +71 -0
  137. package/src/components/sidebar/sidebar.jsx +106 -0
  138. package/src/components/sidebar/toolbar-panel.jsx +139 -0
  139. package/src/components/sign/export.js +7 -0
  140. package/src/components/sign/main/index.jsx +523 -0
  141. package/src/components/sign/main/styles.js +163 -0
  142. package/src/components/style/button.jsx +95 -0
  143. package/src/components/style/cancel-button.jsx +20 -0
  144. package/src/components/style/content-container.jsx +29 -0
  145. package/src/components/style/content-title.jsx +20 -0
  146. package/src/components/style/delete-button.jsx +23 -0
  147. package/src/components/style/export.jsx +48 -0
  148. package/src/components/style/form-block.jsx +13 -0
  149. package/src/components/style/form-color-input.jsx +27 -0
  150. package/src/components/style/form-label.jsx +15 -0
  151. package/src/components/style/form-number-input.jsx +196 -0
  152. package/src/components/style/form-number-input_2.jsx +191 -0
  153. package/src/components/style/form-select.jsx +38 -0
  154. package/src/components/style/form-slider.jsx +36 -0
  155. package/src/components/style/form-submit-button.jsx +23 -0
  156. package/src/components/style/form-text-input.jsx +65 -0
  157. package/src/components/toolbar/button/ControlButton.jsx +41 -0
  158. package/src/components/toolbar/button/DirectionButton.jsx +34 -0
  159. package/src/components/toolbar/button/RightButton.jsx +103 -0
  160. package/src/components/toolbar/button/ToggleButton.jsx +41 -0
  161. package/src/components/toolbar/button/index.jsx +55 -0
  162. package/src/components/toolbar/button/styles.js +127 -0
  163. package/src/components/toolbar/components/DoorStyleMenu.jsx +103 -0
  164. package/src/components/toolbar/components/Pricing.jsx +126 -0
  165. package/src/components/toolbar/components/ReviewForQuote.jsx +635 -0
  166. package/src/components/toolbar/export.js +21 -0
  167. package/src/components/toolbar/main/Alert.js +122 -0
  168. package/src/components/toolbar/main/TakePictureModal.jsx +104 -0
  169. package/src/components/toolbar/main/confirm-popup.jsx +99 -0
  170. package/src/components/toolbar/main/index.jsx +5687 -0
  171. package/src/components/toolbar/main/myComponents.js +123 -0
  172. package/src/components/toolbar/main/styles.js +696 -0
  173. package/src/components/toolbar/plugin-item.jsx +123 -0
  174. package/src/components/toolbar/popup/appliance/appliance-category/index.jsx +73 -0
  175. package/src/components/toolbar/popup/appliance/choose-appliance/index.jsx +102 -0
  176. package/src/components/toolbar/popup/appliance/index.jsx +83 -0
  177. package/src/components/toolbar/popup/autosaveprompt/index.jsx +150 -0
  178. package/src/components/toolbar/popup/autosaveprompt/styles.js +40 -0
  179. package/src/components/toolbar/popup/cabinet/cabinet-category/index.jsx +73 -0
  180. package/src/components/toolbar/popup/cabinet/choose-product/index.jsx +119 -0
  181. package/src/components/toolbar/popup/cabinet/index.jsx +85 -0
  182. package/src/components/toolbar/popup/doorStyle/choose-style/index.jsx +63 -0
  183. package/src/components/toolbar/popup/doorStyle/index.jsx +71 -0
  184. package/src/components/toolbar/popup/doorStyle/style-category/index.jsx +139 -0
  185. package/src/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +2 -0
  186. package/src/components/toolbar/popup/downloadsummary/downloadSummaryTemp.jsx +157 -0
  187. package/src/components/toolbar/popup/downloadsummary/index.jsx +643 -0
  188. package/src/components/toolbar/popup/downloadsummary/show2D/show2DView.jsx +51 -0
  189. package/src/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.jsx +175 -0
  190. package/src/components/toolbar/popup/downloadsummary/show3D/show3DView.jsx +283 -0
  191. package/src/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.jsx +2257 -0
  192. package/src/components/toolbar/popup/downloadsummary/showCabinetInfo.js +93 -0
  193. package/src/components/toolbar/popup/downloadsummary/showElevation/showElevationView.jsx +132 -0
  194. package/src/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.jsx +2198 -0
  195. package/src/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.jsx +152 -0
  196. package/src/components/toolbar/popup/downloadsummary/showWarranty.jsx +149 -0
  197. package/src/components/toolbar/popup/downloadsummary/styles.js +453 -0
  198. package/src/components/toolbar/popup/finishingtouch/category/index.jsx +34 -0
  199. package/src/components/toolbar/popup/finishingtouch/index.jsx +58 -0
  200. package/src/components/toolbar/popup/finishingtouch/material-edit.jsx +112 -0
  201. package/src/components/toolbar/popup/finishingtouch/product/index.jsx +116 -0
  202. package/src/components/toolbar/popup/floorplan/choose-floor/confirm-popup.jsx +101 -0
  203. package/src/components/toolbar/popup/floorplan/choose-floor/index.jsx +254 -0
  204. package/src/components/toolbar/popup/floorplan/choose-floor/styles.js +86 -0
  205. package/src/components/toolbar/popup/floorplan/floor-category/index.jsx +109 -0
  206. package/src/components/toolbar/popup/floorplan/index.jsx +60 -0
  207. package/src/components/toolbar/popup/index.jsx +241 -0
  208. package/src/components/toolbar/popup/newproject/index.jsx +59 -0
  209. package/src/components/toolbar/popup/newproject/styles.js +41 -0
  210. package/src/components/toolbar/popup/product/appliance.jsx +54 -0
  211. package/src/components/toolbar/popup/product/cabinetproduct.jsx +15 -0
  212. package/src/components/toolbar/popup/product/doorstyle.jsx +58 -0
  213. package/src/components/toolbar/popup/product/doorstyleproduct.jsx +47 -0
  214. package/src/components/toolbar/popup/product/floor.jsx +36 -0
  215. package/src/components/toolbar/popup/product/floorproduct.jsx +42 -0
  216. package/src/components/toolbar/popup/product/index.jsx +36 -0
  217. package/src/components/toolbar/popup/product/primary.jsx +77 -0
  218. package/src/components/toolbar/popup/product/productline.jsx +93 -0
  219. package/src/components/toolbar/popup/product/reviewItem.jsx +427 -0
  220. package/src/components/toolbar/popup/product/reviewMolding.jsx +310 -0
  221. package/src/components/toolbar/popup/product/styles.js +260 -0
  222. package/src/components/toolbar/popup/savedesign/FullPictureForm.jsx +146 -0
  223. package/src/components/toolbar/popup/savedesign/index.jsx +495 -0
  224. package/src/components/toolbar/popup/savedesign/styles.js +151 -0
  225. package/src/components/toolbar/popup/setDoorStyleOption/index.jsx +87 -0
  226. package/src/components/toolbar/popup/styles.js +909 -0
  227. package/src/components/toolbar/popup/submitforquote/AddToCartOptions.jsx +192 -0
  228. package/src/components/toolbar/popup/submitforquote/CustomerRequestsForm.jsx +96 -0
  229. package/src/components/toolbar/popup/submitforquote/SkipDesignerReview.jsx +54 -0
  230. package/src/components/toolbar/popup/submitforquote/StepDots.jsx +25 -0
  231. package/src/components/toolbar/popup/submitforquote/cart-choice.jsx +116 -0
  232. package/src/components/toolbar/popup/submitforquote/doorstyle-menus.js +38 -0
  233. package/src/components/toolbar/popup/submitforquote/index.jsx +698 -0
  234. package/src/components/toolbar/popup/submitforquote/styles.js +294 -0
  235. package/src/components/toolbar/popup/submitprompt/index.jsx +89 -0
  236. package/src/components/toolbar/popup/submitprompt/styles.js +42 -0
  237. package/src/components/toolbar/toolbar-button.jsx +90 -0
  238. package/src/components/toolbar/toolbar-load-button.jsx +36 -0
  239. package/src/components/toolbar/toolbar-save-button.jsx +32 -0
  240. package/src/components/tutorial-view/Modal.jsx +584 -0
  241. package/src/components/tutorial-view/styles.js +65 -0
  242. package/src/components/viewer2d/area.jsx +98 -0
  243. package/src/components/viewer2d/export.js +48 -0
  244. package/src/components/viewer2d/grids/grid-horizontal-streak.jsx +40 -0
  245. package/src/components/viewer2d/grids/grid-streak.jsx +32 -0
  246. package/src/components/viewer2d/grids/grid-vertical-streak.jsx +41 -0
  247. package/src/components/viewer2d/grids/grids.jsx +30 -0
  248. package/src/components/viewer2d/group.jsx +57 -0
  249. package/src/components/viewer2d/item.jsx +618 -0
  250. package/src/components/viewer2d/layer.jsx +214 -0
  251. package/src/components/viewer2d/line.jsx +1358 -0
  252. package/src/components/viewer2d/ruler.jsx +136 -0
  253. package/src/components/viewer2d/rulerDist.jsx +192 -0
  254. package/src/components/viewer2d/rulerX.jsx +141 -0
  255. package/src/components/viewer2d/rulerY.jsx +138 -0
  256. package/src/components/viewer2d/scene.jsx +94 -0
  257. package/src/components/viewer2d/snap.jsx +118 -0
  258. package/src/components/viewer2d/state.jsx +77 -0
  259. package/src/components/viewer2d/utils.js +195 -0
  260. package/src/components/viewer2d/vertex.jsx +76 -0
  261. package/src/components/viewer2d/viewer2d.jsx +1830 -0
  262. package/src/components/viewer3d/camera-controls-module/camera-controls.module.js +3078 -0
  263. package/src/components/viewer3d/dcm.js +226 -0
  264. package/src/components/viewer3d/fbm.js +383 -0
  265. package/src/components/viewer3d/front3D.jsx +63 -0
  266. package/src/components/viewer3d/grid-creator.js +25 -0
  267. package/src/components/viewer3d/grids/grid-horizontal-streak.js +41 -0
  268. package/src/components/viewer3d/grids/grid-streak.js +34 -0
  269. package/src/components/viewer3d/grids/grid-vertical-streak.js +42 -0
  270. package/src/components/viewer3d/libs/first-person-controls.js +70 -0
  271. package/src/components/viewer3d/libs/helvetiker_regular.typeface.js +1265 -0
  272. package/src/components/viewer3d/libs/mtl-loader.js +462 -0
  273. package/src/components/viewer3d/libs/obj-loader.js +653 -0
  274. package/src/components/viewer3d/libs/orbit-controls.js +945 -0
  275. package/src/components/viewer3d/libs/pointer-lock-controls.js +67 -0
  276. package/src/components/viewer3d/lrm.js +358 -0
  277. package/src/components/viewer3d/model.js +830 -0
  278. package/src/components/viewer3d/pointer-lock-navigation.js +140 -0
  279. package/src/components/viewer3d/ruler-utils/itemRect.jsx +91 -0
  280. package/src/components/viewer3d/ruler-utils/layer3D.jsx +528 -0
  281. package/src/components/viewer3d/ruler-utils/ruler3D.jsx +218 -0
  282. package/src/components/viewer3d/ruler-utils/scene3D.jsx +87 -0
  283. package/src/components/viewer3d/ruler-utils/state3D.jsx +25 -0
  284. package/src/components/viewer3d/scene-creator.js +5172 -0
  285. package/src/components/viewer3d/three-memory-cleaner.js +65 -0
  286. package/src/components/viewer3d/viewer3d-first-person.js +395 -0
  287. package/src/components/viewer3d/viewer3d.js +3376 -0
  288. package/src/components/wizardstep/button/styles.js +677 -0
  289. package/src/components/wizardstep/export.js +5 -0
  290. package/src/components/wizardstep/index.jsx +1372 -0
  291. package/src/components/wizardstep/styles.js +688 -0
  292. package/src/components/wizardstep/wizardstep-content-button.jsx +198 -0
  293. package/src/components/wizardstep/wizardstep-toggle-button.jsx +101 -0
  294. package/src/constants.js +731 -0
  295. package/src/hooks/useCheckCart.js +38 -0
  296. package/src/hooks/useGetPricesBySku.js +59 -0
  297. package/src/hooks/useValidateToken.js +181 -0
  298. package/src/index.js +32 -0
  299. package/src/models.js +541 -0
  300. package/src/plugins/SVGLoader.js +1991 -0
  301. package/src/plugins/autosave.js +39 -0
  302. package/src/plugins/console-debugger.js +36 -0
  303. package/src/plugins/export.js +11 -0
  304. package/src/plugins/keyboard.js +194 -0
  305. package/src/reducers/areas-reducer.js +13 -0
  306. package/src/reducers/export.js +39 -0
  307. package/src/reducers/groups-reducer.js +73 -0
  308. package/src/reducers/holes-reducer.js +125 -0
  309. package/src/reducers/items-reducer.js +286 -0
  310. package/src/reducers/lines-reducer.js +96 -0
  311. package/src/reducers/project-reducer.js +239 -0
  312. package/src/reducers/reducer.js +59 -0
  313. package/src/reducers/scene-reducer.js +41 -0
  314. package/src/reducers/user-reducer.js +30 -0
  315. package/src/reducers/vertices-reducer.js +34 -0
  316. package/src/reducers/viewer2d-reducer.js +81 -0
  317. package/src/reducers/viewer3d-reducer.js +65 -0
  318. package/src/shared-style.js +72 -0
  319. package/src/styles/export.js +7 -0
  320. package/src/translator/en.js +106 -0
  321. package/src/translator/it.js +80 -0
  322. package/src/translator/ru.js +80 -0
  323. package/src/translator/translator.js +81 -0
  324. package/src/utils/browser.js +36 -0
  325. package/src/utils/email-validator.js +5 -0
  326. package/src/utils/export.js +39 -0
  327. package/src/utils/geometry.js +2572 -0
  328. package/src/utils/get-edges-of-subgraphs.js +29 -0
  329. package/src/utils/graph-cycles.js +259 -0
  330. package/src/utils/graph-inner-cycles.js +49 -0
  331. package/src/utils/graph.js +147 -0
  332. package/src/utils/helper.js +431 -0
  333. package/src/utils/history.js +37 -0
  334. package/src/utils/id-broker.js +9 -0
  335. package/src/utils/logger.js +8 -0
  336. package/src/utils/math.js +51 -0
  337. package/src/utils/molding.js +973 -0
  338. package/src/utils/name-generator.js +5 -0
  339. package/src/utils/objects-utils.js +56 -0
  340. package/src/utils/phone-validator.js +4 -0
  341. package/src/utils/process-black-list.js +10 -0
  342. package/src/utils/react-if.jsx +20 -0
  343. package/src/utils/snap-scene.js +102 -0
  344. package/src/utils/snap.js +184 -0
  345. package/src/utils/threeCSG.es6.js +578 -0
  346. package/src/version.js +1 -0
  347. package/es/@history.js +0 -3
  348. package/es/@history.js.map +0 -1
  349. package/es/AppContext.js +0 -4
  350. package/es/AppContext.js.map +0 -1
  351. package/es/KitchenConfigurator.js +0 -1345
  352. package/es/KitchenConfigurator.js.map +0 -1
  353. package/es/KitchenConfiguratorApp.js +0 -532
  354. package/es/KitchenConfiguratorApp.js.map +0 -1
  355. package/es/actions/area-actions.js +0 -15
  356. package/es/actions/area-actions.js.map +0 -1
  357. package/es/actions/export.js +0 -26
  358. package/es/actions/export.js.map +0 -1
  359. package/es/actions/groups-actions.js +0 -90
  360. package/es/actions/groups-actions.js.map +0 -1
  361. package/es/actions/holes-actions.js +0 -120
  362. package/es/actions/holes-actions.js.map +0 -1
  363. package/es/actions/items-actions.js +0 -314
  364. package/es/actions/items-actions.js.map +0 -1
  365. package/es/actions/lines-actions.js +0 -83
  366. package/es/actions/lines-actions.js.map +0 -1
  367. package/es/actions/project-actions.js +0 -282
  368. package/es/actions/project-actions.js.map +0 -1
  369. package/es/actions/scene-actions.js +0 -34
  370. package/es/actions/scene-actions.js.map +0 -1
  371. package/es/actions/user-actions.js +0 -59
  372. package/es/actions/user-actions.js.map +0 -1
  373. package/es/actions/vertices-actions.js +0 -28
  374. package/es/actions/vertices-actions.js.map +0 -1
  375. package/es/actions/viewer2d-actions.js +0 -59
  376. package/es/actions/viewer2d-actions.js.map +0 -1
  377. package/es/actions/viewer3d-actions.js +0 -24
  378. package/es/actions/viewer3d-actions.js.map +0 -1
  379. package/es/catalog/areas/area/planner-element.js +0 -41
  380. package/es/catalog/areas/area/planner-element.js.map +0 -1
  381. package/es/catalog/catalog.js +0 -278
  382. package/es/catalog/catalog.js.map +0 -1
  383. package/es/catalog/factories/area-factory-3d.js +0 -183
  384. package/es/catalog/factories/area-factory-3d.js.map +0 -1
  385. package/es/catalog/factories/area-factory.js +0 -82
  386. package/es/catalog/factories/area-factory.js.map +0 -1
  387. package/es/catalog/factories/export.js +0 -8
  388. package/es/catalog/factories/export.js.map +0 -1
  389. package/es/catalog/factories/wall-factory-3d.js +0 -203
  390. package/es/catalog/factories/wall-factory-3d.js.map +0 -1
  391. package/es/catalog/factories/wall-factory.js +0 -269
  392. package/es/catalog/factories/wall-factory.js.map +0 -1
  393. package/es/catalog/holes/door-closet/planner-element.js +0 -223
  394. package/es/catalog/holes/door-closet/planner-element.js.map +0 -1
  395. package/es/catalog/holes/door-double/planner-element.js +0 -316
  396. package/es/catalog/holes/door-double/planner-element.js.map +0 -1
  397. package/es/catalog/holes/door-exterior/planner-element.js +0 -216
  398. package/es/catalog/holes/door-exterior/planner-element.js.map +0 -1
  399. package/es/catalog/holes/door-interior/planner-element.js +0 -228
  400. package/es/catalog/holes/door-interior/planner-element.js.map +0 -1
  401. package/es/catalog/holes/door-panic/planner-element.js +0 -504
  402. package/es/catalog/holes/door-panic/planner-element.js.map +0 -1
  403. package/es/catalog/holes/door-panic-double/planner-element.js +0 -464
  404. package/es/catalog/holes/door-panic-double/planner-element.js.map +0 -1
  405. package/es/catalog/holes/door-sliding/planner-element.js +0 -226
  406. package/es/catalog/holes/door-sliding/planner-element.js.map +0 -1
  407. package/es/catalog/holes/doorway-framed/planner-element.js +0 -146
  408. package/es/catalog/holes/doorway-framed/planner-element.js.map +0 -1
  409. package/es/catalog/holes/doorway-frameless/planner-element.js +0 -105
  410. package/es/catalog/holes/doorway-frameless/planner-element.js.map +0 -1
  411. package/es/catalog/holes/window-clear/planner-element.js +0 -167
  412. package/es/catalog/holes/window-clear/planner-element.js.map +0 -1
  413. package/es/catalog/holes/window-cross/planner-element.js +0 -166
  414. package/es/catalog/holes/window-cross/planner-element.js.map +0 -1
  415. package/es/catalog/holes/window-double-hung/planner-element.js +0 -304
  416. package/es/catalog/holes/window-double-hung/planner-element.js.map +0 -1
  417. package/es/catalog/holes/window-vertical/planner-element.js +0 -277
  418. package/es/catalog/holes/window-vertical/planner-element.js.map +0 -1
  419. package/es/catalog/lines/wall/planner-element.js +0 -71
  420. package/es/catalog/lines/wall/planner-element.js.map +0 -1
  421. package/es/catalog/molding/molding-dcm/planner-element.js +0 -30
  422. package/es/catalog/molding/molding-dcm/planner-element.js.map +0 -1
  423. package/es/catalog/molding/molding-fbm/planner-element.js +0 -30
  424. package/es/catalog/molding/molding-fbm/planner-element.js.map +0 -1
  425. package/es/catalog/molding/molding-lrm/planner-element.js +0 -30
  426. package/es/catalog/molding/molding-lrm/planner-element.js.map +0 -1
  427. package/es/catalog/properties/export.js +0 -22
  428. package/es/catalog/properties/export.js.map +0 -1
  429. package/es/catalog/properties/property-checkbox.js +0 -72
  430. package/es/catalog/properties/property-checkbox.js.map +0 -1
  431. package/es/catalog/properties/property-color.js +0 -40
  432. package/es/catalog/properties/property-color.js.map +0 -1
  433. package/es/catalog/properties/property-enum.js +0 -56
  434. package/es/catalog/properties/property-enum.js.map +0 -1
  435. package/es/catalog/properties/property-hidden.js +0 -20
  436. package/es/catalog/properties/property-hidden.js.map +0 -1
  437. package/es/catalog/properties/property-lenght-measure.js +0 -102
  438. package/es/catalog/properties/property-lenght-measure.js.map +0 -1
  439. package/es/catalog/properties/property-length-measure.js +0 -86
  440. package/es/catalog/properties/property-length-measure.js.map +0 -1
  441. package/es/catalog/properties/property-length-measure_hole.js +0 -102
  442. package/es/catalog/properties/property-length-measure_hole.js.map +0 -1
  443. package/es/catalog/properties/property-number.js +0 -49
  444. package/es/catalog/properties/property-number.js.map +0 -1
  445. package/es/catalog/properties/property-read-only.js +0 -27
  446. package/es/catalog/properties/property-read-only.js.map +0 -1
  447. package/es/catalog/properties/property-string.js +0 -49
  448. package/es/catalog/properties/property-string.js.map +0 -1
  449. package/es/catalog/properties/property-toggle.js +0 -40
  450. package/es/catalog/properties/property-toggle.js.map +0 -1
  451. package/es/catalog/properties/shared-property-style.js +0 -15
  452. package/es/catalog/properties/shared-property-style.js.map +0 -1
  453. package/es/catalog/utils/FuseUtils.js +0 -83
  454. package/es/catalog/utils/FuseUtils.js.map +0 -1
  455. package/es/catalog/utils/exporter.js +0 -149
  456. package/es/catalog/utils/exporter.js.map +0 -1
  457. package/es/catalog/utils/geom-utils.js +0 -190
  458. package/es/catalog/utils/geom-utils.js.map +0 -1
  459. package/es/catalog/utils/item-loader.js +0 -1522
  460. package/es/catalog/utils/item-loader.js.map +0 -1
  461. package/es/catalog/utils/load-obj.js +0 -92
  462. package/es/catalog/utils/load-obj.js.map +0 -1
  463. package/es/catalog/utils/mtl-loader.js +0 -358
  464. package/es/catalog/utils/mtl-loader.js.map +0 -1
  465. package/es/catalog/utils/obj-loader.js +0 -477
  466. package/es/catalog/utils/obj-loader.js.map +0 -1
  467. package/es/class/FuseUtils.js +0 -83
  468. package/es/class/FuseUtils.js.map +0 -1
  469. package/es/class/area.js +0 -146
  470. package/es/class/area.js.map +0 -1
  471. package/es/class/export.js +0 -25
  472. package/es/class/export.js.map +0 -1
  473. package/es/class/group.js +0 -441
  474. package/es/class/group.js.map +0 -1
  475. package/es/class/guide.js +0 -63
  476. package/es/class/guide.js.map +0 -1
  477. package/es/class/hole.js +0 -931
  478. package/es/class/hole.js.map +0 -1
  479. package/es/class/item.js +0 -1888
  480. package/es/class/item.js.map +0 -1
  481. package/es/class/layer.js +0 -668
  482. package/es/class/layer.js.map +0 -1
  483. package/es/class/line.js +0 -1290
  484. package/es/class/line.js.map +0 -1
  485. package/es/class/project.js +0 -823
  486. package/es/class/project.js.map +0 -1
  487. package/es/class/vertex.js +0 -267
  488. package/es/class/vertex.js.map +0 -1
  489. package/es/components/atoms/Snackbar/index.js +0 -50
  490. package/es/components/atoms/Snackbar/index.js.map +0 -1
  491. package/es/components/atoms/radio-button/index.js +0 -26
  492. package/es/components/atoms/radio-button/index.js.map +0 -1
  493. package/es/components/atoms/radio-button/styles.js +0 -5
  494. package/es/components/atoms/radio-button/styles.js.map +0 -1
  495. package/es/components/button/MainButton.js +0 -92
  496. package/es/components/button/MainButton.js.map +0 -1
  497. package/es/components/button/ToggleMeasureButton.js +0 -56
  498. package/es/components/button/ToggleMeasureButton.js.map +0 -1
  499. package/es/components/catalog-view/catalog-breadcrumb.js +0 -53
  500. package/es/components/catalog-view/catalog-breadcrumb.js.map +0 -1
  501. package/es/components/catalog-view/catalog-item.js +0 -226
  502. package/es/components/catalog-view/catalog-item.js.map +0 -1
  503. package/es/components/catalog-view/catalog-list.js +0 -182
  504. package/es/components/catalog-view/catalog-list.js.map +0 -1
  505. package/es/components/catalog-view/catalog-page-item.js +0 -130
  506. package/es/components/catalog-view/catalog-page-item.js.map +0 -1
  507. package/es/components/catalog-view/catalog-turn-back-page-item.js +0 -106
  508. package/es/components/catalog-view/catalog-turn-back-page-item.js.map +0 -1
  509. package/es/components/configurator/custom-configurator.js +0 -94
  510. package/es/components/configurator/custom-configurator.js.map +0 -1
  511. package/es/components/configurator/project-configurator.js +0 -131
  512. package/es/components/configurator/project-configurator.js.map +0 -1
  513. package/es/components/content.js +0 -123
  514. package/es/components/content.js.map +0 -1
  515. package/es/components/export.js +0 -24
  516. package/es/components/export.js.map +0 -1
  517. package/es/components/firstsetting/button/styles.js +0 -27
  518. package/es/components/firstsetting/button/styles.js.map +0 -1
  519. package/es/components/firstsetting/export.js +0 -9
  520. package/es/components/firstsetting/export.js.map +0 -1
  521. package/es/components/firstsetting/firstsetting-content-button.js +0 -217
  522. package/es/components/firstsetting/firstsetting-content-button.js.map +0 -1
  523. package/es/components/firstsetting/firstsetting-toggle-button.js +0 -126
  524. package/es/components/firstsetting/firstsetting-toggle-button.js.map +0 -1
  525. package/es/components/firstsetting/firstsetting.js +0 -626
  526. package/es/components/firstsetting/firstsetting.js.map +0 -1
  527. package/es/components/footerbar/button/ControlButton.js +0 -72
  528. package/es/components/footerbar/button/ControlButton.js.map +0 -1
  529. package/es/components/footerbar/button/DirectionButton.js +0 -69
  530. package/es/components/footerbar/button/DirectionButton.js.map +0 -1
  531. package/es/components/footerbar/button/DirectionPanSpinButton.js +0 -50
  532. package/es/components/footerbar/button/DirectionPanSpinButton.js.map +0 -1
  533. package/es/components/footerbar/button/ToggleButton.js +0 -76
  534. package/es/components/footerbar/button/ToggleButton.js.map +0 -1
  535. package/es/components/footerbar/button/ToggleConvertButton.js +0 -73
  536. package/es/components/footerbar/button/ToggleConvertButton.js.map +0 -1
  537. package/es/components/footerbar/button/ToggleMeasureButton.js +0 -52
  538. package/es/components/footerbar/button/ToggleMeasureButton.js.map +0 -1
  539. package/es/components/footerbar/button/styles.js +0 -22
  540. package/es/components/footerbar/button/styles.js.map +0 -1
  541. package/es/components/footerbar/export.js +0 -9
  542. package/es/components/footerbar/export.js.map +0 -1
  543. package/es/components/footerbar/footer-content-button.js +0 -217
  544. package/es/components/footerbar/footer-content-button.js.map +0 -1
  545. package/es/components/footerbar/footer-toggle-button.js +0 -126
  546. package/es/components/footerbar/footer-toggle-button.js.map +0 -1
  547. package/es/components/footerbar/footerbar.js +0 -801
  548. package/es/components/footerbar/footerbar.js.map +0 -1
  549. package/es/components/footerbar/styles.js +0 -34
  550. package/es/components/footerbar/styles.js.map +0 -1
  551. package/es/components/header/button/MenuButton.js +0 -70
  552. package/es/components/header/button/MenuButton.js.map +0 -1
  553. package/es/components/header/button/SaveButton.js +0 -48
  554. package/es/components/header/button/SaveButton.js.map +0 -1
  555. package/es/components/header/button/styles.js +0 -59
  556. package/es/components/header/button/styles.js.map +0 -1
  557. package/es/components/header/export.js +0 -5
  558. package/es/components/header/export.js.map +0 -1
  559. package/es/components/header/header.js +0 -550
  560. package/es/components/header/header.js.map +0 -1
  561. package/es/components/header/styles.js +0 -41
  562. package/es/components/header/styles.js.map +0 -1
  563. package/es/components/login/Login.js +0 -86
  564. package/es/components/login/Login.js.map +0 -1
  565. package/es/components/login/LoginForm/index.js +0 -132
  566. package/es/components/login/LoginForm/index.js.map +0 -1
  567. package/es/components/login/Register.js +0 -96
  568. package/es/components/login/Register.js.map +0 -1
  569. package/es/components/login/RegisterForm/index.js +0 -230
  570. package/es/components/login/RegisterForm/index.js.map +0 -1
  571. package/es/components/login/jwtService.js +0 -232
  572. package/es/components/login/jwtService.js.map +0 -1
  573. package/es/components/molecules/slider/index.js +0 -13
  574. package/es/components/molecules/slider/index.js.map +0 -1
  575. package/es/components/molecules/slider/styles.js +0 -2
  576. package/es/components/molecules/slider/styles.js.map +0 -1
  577. package/es/components/myprojects/export.js +0 -5
  578. package/es/components/myprojects/export.js.map +0 -1
  579. package/es/components/myprojects/index.js +0 -446
  580. package/es/components/myprojects/index.js.map +0 -1
  581. package/es/components/myprojects/styles.js +0 -24
  582. package/es/components/myprojects/styles.js.map +0 -1
  583. package/es/components/sidebar/custom-accordion.js +0 -38
  584. package/es/components/sidebar/custom-accordion.js.map +0 -1
  585. package/es/components/sidebar/export.js +0 -14
  586. package/es/components/sidebar/export.js.map +0 -1
  587. package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js +0 -65
  588. package/es/components/sidebar/panel-element-editor/attributes-editor/attributes-editor.js.map +0 -1
  589. package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js +0 -116
  590. package/es/components/sidebar/panel-element-editor/attributes-editor/confirm-popup.js.map +0 -1
  591. package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js +0 -126
  592. package/es/components/sidebar/panel-element-editor/attributes-editor/hole-attributes-editor.js.map +0 -1
  593. package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js +0 -251
  594. package/es/components/sidebar/panel-element-editor/attributes-editor/item-attributes-editor.js.map +0 -1
  595. package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js +0 -75
  596. package/es/components/sidebar/panel-element-editor/attributes-editor/line-attributes-editor.js.map +0 -1
  597. package/es/components/sidebar/panel-element-editor/element-editor.js +0 -878
  598. package/es/components/sidebar/panel-element-editor/element-editor.js.map +0 -1
  599. package/es/components/sidebar/panel-element-editor/multi-elements-editor.js +0 -2
  600. package/es/components/sidebar/panel-element-editor/multi-elements-editor.js.map +0 -1
  601. package/es/components/sidebar/panel-element-editor/panel-element-editor.js +0 -49
  602. package/es/components/sidebar/panel-element-editor/panel-element-editor.js.map +0 -1
  603. package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js +0 -118
  604. package/es/components/sidebar/panel-element-editor/panel-multi-elements-editor.js.map +0 -1
  605. package/es/components/sidebar/panel-group-editor.js +0 -211
  606. package/es/components/sidebar/panel-group-editor.js.map +0 -1
  607. package/es/components/sidebar/panel-groups.js +0 -267
  608. package/es/components/sidebar/panel-groups.js.map +0 -1
  609. package/es/components/sidebar/panel-guides.js +0 -185
  610. package/es/components/sidebar/panel-guides.js.map +0 -1
  611. package/es/components/sidebar/panel-layer-elements.js +0 -251
  612. package/es/components/sidebar/panel-layer-elements.js.map +0 -1
  613. package/es/components/sidebar/panel-layers.js +0 -340
  614. package/es/components/sidebar/panel-layers.js.map +0 -1
  615. package/es/components/sidebar/panel.js +0 -103
  616. package/es/components/sidebar/panel.js.map +0 -1
  617. package/es/components/sidebar/sidebar.js +0 -109
  618. package/es/components/sidebar/sidebar.js.map +0 -1
  619. package/es/components/sidebar/toolbar-panel.js +0 -164
  620. package/es/components/sidebar/toolbar-panel.js.map +0 -1
  621. package/es/components/sign/export.js +0 -6
  622. package/es/components/sign/export.js.map +0 -1
  623. package/es/components/sign/main/index.js +0 -560
  624. package/es/components/sign/main/index.js.map +0 -1
  625. package/es/components/sign/main/styles.js +0 -20
  626. package/es/components/sign/main/styles.js.map +0 -1
  627. package/es/components/style/button.js +0 -114
  628. package/es/components/style/button.js.map +0 -1
  629. package/es/components/style/cancel-button.js +0 -23
  630. package/es/components/style/cancel-button.js.map +0 -1
  631. package/es/components/style/content-container.js +0 -34
  632. package/es/components/style/content-container.js.map +0 -1
  633. package/es/components/style/content-title.js +0 -30
  634. package/es/components/style/content-title.js.map +0 -1
  635. package/es/components/style/delete-button.js +0 -26
  636. package/es/components/style/delete-button.js.map +0 -1
  637. package/es/components/style/export.js +0 -32
  638. package/es/components/style/export.js.map +0 -1
  639. package/es/components/style/form-block.js +0 -25
  640. package/es/components/style/form-block.js.map +0 -1
  641. package/es/components/style/form-color-input.js +0 -28
  642. package/es/components/style/form-color-input.js.map +0 -1
  643. package/es/components/style/form-label.js +0 -27
  644. package/es/components/style/form-label.js.map +0 -1
  645. package/es/components/style/form-number-input.js +0 -190
  646. package/es/components/style/form-number-input.js.map +0 -1
  647. package/es/components/style/form-number-input_2.js +0 -207
  648. package/es/components/style/form-number-input_2.js.map +0 -1
  649. package/es/components/style/form-select.js +0 -21
  650. package/es/components/style/form-select.js.map +0 -1
  651. package/es/components/style/form-slider.js +0 -46
  652. package/es/components/style/form-slider.js.map +0 -1
  653. package/es/components/style/form-submit-button.js +0 -27
  654. package/es/components/style/form-submit-button.js.map +0 -1
  655. package/es/components/style/form-text-input.js +0 -77
  656. package/es/components/style/form-text-input.js.map +0 -1
  657. package/es/components/toolbar/button/ControlButton.js +0 -69
  658. package/es/components/toolbar/button/ControlButton.js.map +0 -1
  659. package/es/components/toolbar/button/DirectionButton.js +0 -50
  660. package/es/components/toolbar/button/DirectionButton.js.map +0 -1
  661. package/es/components/toolbar/button/RightButton.js +0 -133
  662. package/es/components/toolbar/button/RightButton.js.map +0 -1
  663. package/es/components/toolbar/button/ToggleButton.js +0 -59
  664. package/es/components/toolbar/button/ToggleButton.js.map +0 -1
  665. package/es/components/toolbar/button/index.js +0 -88
  666. package/es/components/toolbar/button/index.js.map +0 -1
  667. package/es/components/toolbar/button/styles.js +0 -14
  668. package/es/components/toolbar/button/styles.js.map +0 -1
  669. package/es/components/toolbar/components/DoorStyleMenu.js +0 -105
  670. package/es/components/toolbar/components/DoorStyleMenu.js.map +0 -1
  671. package/es/components/toolbar/components/Pricing.js +0 -101
  672. package/es/components/toolbar/components/Pricing.js.map +0 -1
  673. package/es/components/toolbar/components/ReviewForQuote.js +0 -476
  674. package/es/components/toolbar/components/ReviewForQuote.js.map +0 -1
  675. package/es/components/toolbar/export.js +0 -14
  676. package/es/components/toolbar/export.js.map +0 -1
  677. package/es/components/toolbar/main/Alert.js +0 -125
  678. package/es/components/toolbar/main/Alert.js.map +0 -1
  679. package/es/components/toolbar/main/TakePictureModal.js +0 -100
  680. package/es/components/toolbar/main/TakePictureModal.js.map +0 -1
  681. package/es/components/toolbar/main/confirm-popup.js +0 -88
  682. package/es/components/toolbar/main/confirm-popup.js.map +0 -1
  683. package/es/components/toolbar/main/index.js +0 -4612
  684. package/es/components/toolbar/main/index.js.map +0 -1
  685. package/es/components/toolbar/main/myComponents.js +0 -118
  686. package/es/components/toolbar/main/myComponents.js.map +0 -1
  687. package/es/components/toolbar/main/styles.js +0 -64
  688. package/es/components/toolbar/main/styles.js.map +0 -1
  689. package/es/components/toolbar/plugin-item.js +0 -150
  690. package/es/components/toolbar/plugin-item.js.map +0 -1
  691. package/es/components/toolbar/popup/appliance/appliance-category/index.js +0 -77
  692. package/es/components/toolbar/popup/appliance/appliance-category/index.js.map +0 -1
  693. package/es/components/toolbar/popup/appliance/choose-appliance/index.js +0 -76
  694. package/es/components/toolbar/popup/appliance/choose-appliance/index.js.map +0 -1
  695. package/es/components/toolbar/popup/appliance/index.js +0 -81
  696. package/es/components/toolbar/popup/appliance/index.js.map +0 -1
  697. package/es/components/toolbar/popup/autosaveprompt/index.js +0 -91
  698. package/es/components/toolbar/popup/autosaveprompt/index.js.map +0 -1
  699. package/es/components/toolbar/popup/autosaveprompt/styles.js +0 -9
  700. package/es/components/toolbar/popup/autosaveprompt/styles.js.map +0 -1
  701. package/es/components/toolbar/popup/cabinet/cabinet-category/index.js +0 -77
  702. package/es/components/toolbar/popup/cabinet/cabinet-category/index.js.map +0 -1
  703. package/es/components/toolbar/popup/cabinet/choose-product/index.js +0 -98
  704. package/es/components/toolbar/popup/cabinet/choose-product/index.js.map +0 -1
  705. package/es/components/toolbar/popup/cabinet/index.js +0 -83
  706. package/es/components/toolbar/popup/cabinet/index.js.map +0 -1
  707. package/es/components/toolbar/popup/doorStyle/choose-style/index.js +0 -50
  708. package/es/components/toolbar/popup/doorStyle/choose-style/index.js.map +0 -1
  709. package/es/components/toolbar/popup/doorStyle/index.js +0 -61
  710. package/es/components/toolbar/popup/doorStyle/index.js.map +0 -1
  711. package/es/components/toolbar/popup/doorStyle/style-category/index.js +0 -143
  712. package/es/components/toolbar/popup/doorStyle/style-category/index.js.map +0 -1
  713. package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js +0 -3
  714. package/es/components/toolbar/popup/downloadsummary/downloadSummaryContext.js.map +0 -1
  715. package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js +0 -119
  716. package/es/components/toolbar/popup/downloadsummary/downloadSummaryTemp.js.map +0 -1
  717. package/es/components/toolbar/popup/downloadsummary/index.js +0 -564
  718. package/es/components/toolbar/popup/downloadsummary/index.js.map +0 -1
  719. package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js +0 -51
  720. package/es/components/toolbar/popup/downloadsummary/show2D/show2DView.js.map +0 -1
  721. package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js +0 -191
  722. package/es/components/toolbar/popup/downloadsummary/show2D/viewer2DDownLoad.js.map +0 -1
  723. package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js +0 -245
  724. package/es/components/toolbar/popup/downloadsummary/show3D/show3DView.js.map +0 -1
  725. package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js +0 -1758
  726. package/es/components/toolbar/popup/downloadsummary/show3D/viewer3DDownLoad.js.map +0 -1
  727. package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js +0 -87
  728. package/es/components/toolbar/popup/downloadsummary/showCabinetInfo.js.map +0 -1
  729. package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js +0 -116
  730. package/es/components/toolbar/popup/downloadsummary/showElevation/showElevationView.js.map +0 -1
  731. package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js +0 -1710
  732. package/es/components/toolbar/popup/downloadsummary/showElevation/viewer3DElevationDownload.js.map +0 -1
  733. package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js +0 -175
  734. package/es/components/toolbar/popup/downloadsummary/showElevation/viewerElevationDownload.js.map +0 -1
  735. package/es/components/toolbar/popup/downloadsummary/showWarranty.js +0 -106
  736. package/es/components/toolbar/popup/downloadsummary/showWarranty.js.map +0 -1
  737. package/es/components/toolbar/popup/downloadsummary/styles.js +0 -40
  738. package/es/components/toolbar/popup/downloadsummary/styles.js.map +0 -1
  739. package/es/components/toolbar/popup/finishingtouch/category/index.js +0 -35
  740. package/es/components/toolbar/popup/finishingtouch/category/index.js.map +0 -1
  741. package/es/components/toolbar/popup/finishingtouch/index.js +0 -47
  742. package/es/components/toolbar/popup/finishingtouch/index.js.map +0 -1
  743. package/es/components/toolbar/popup/finishingtouch/material-edit.js +0 -156
  744. package/es/components/toolbar/popup/finishingtouch/material-edit.js.map +0 -1
  745. package/es/components/toolbar/popup/finishingtouch/product/index.js +0 -56
  746. package/es/components/toolbar/popup/finishingtouch/product/index.js.map +0 -1
  747. package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js +0 -116
  748. package/es/components/toolbar/popup/floorplan/choose-floor/confirm-popup.js.map +0 -1
  749. package/es/components/toolbar/popup/floorplan/choose-floor/index.js +0 -246
  750. package/es/components/toolbar/popup/floorplan/choose-floor/index.js.map +0 -1
  751. package/es/components/toolbar/popup/floorplan/choose-floor/styles.js +0 -11
  752. package/es/components/toolbar/popup/floorplan/choose-floor/styles.js.map +0 -1
  753. package/es/components/toolbar/popup/floorplan/floor-category/index.js +0 -90
  754. package/es/components/toolbar/popup/floorplan/floor-category/index.js.map +0 -1
  755. package/es/components/toolbar/popup/floorplan/index.js +0 -49
  756. package/es/components/toolbar/popup/floorplan/index.js.map +0 -1
  757. package/es/components/toolbar/popup/index.js +0 -188
  758. package/es/components/toolbar/popup/index.js.map +0 -1
  759. package/es/components/toolbar/popup/newproject/index.js +0 -67
  760. package/es/components/toolbar/popup/newproject/index.js.map +0 -1
  761. package/es/components/toolbar/popup/newproject/styles.js +0 -9
  762. package/es/components/toolbar/popup/newproject/styles.js.map +0 -1
  763. package/es/components/toolbar/popup/product/appliance.js +0 -65
  764. package/es/components/toolbar/popup/product/appliance.js.map +0 -1
  765. package/es/components/toolbar/popup/product/cabinetproduct.js +0 -25
  766. package/es/components/toolbar/popup/product/cabinetproduct.js.map +0 -1
  767. package/es/components/toolbar/popup/product/doorstyle.js +0 -50
  768. package/es/components/toolbar/popup/product/doorstyle.js.map +0 -1
  769. package/es/components/toolbar/popup/product/doorstyleproduct.js +0 -51
  770. package/es/components/toolbar/popup/product/doorstyleproduct.js.map +0 -1
  771. package/es/components/toolbar/popup/product/floor.js +0 -52
  772. package/es/components/toolbar/popup/product/floor.js.map +0 -1
  773. package/es/components/toolbar/popup/product/floorproduct.js +0 -61
  774. package/es/components/toolbar/popup/product/floorproduct.js.map +0 -1
  775. package/es/components/toolbar/popup/product/index.js +0 -52
  776. package/es/components/toolbar/popup/product/index.js.map +0 -1
  777. package/es/components/toolbar/popup/product/primary.js +0 -63
  778. package/es/components/toolbar/popup/product/primary.js.map +0 -1
  779. package/es/components/toolbar/popup/product/productline.js +0 -120
  780. package/es/components/toolbar/popup/product/productline.js.map +0 -1
  781. package/es/components/toolbar/popup/product/reviewItem.js +0 -338
  782. package/es/components/toolbar/popup/product/reviewItem.js.map +0 -1
  783. package/es/components/toolbar/popup/product/reviewMolding.js +0 -282
  784. package/es/components/toolbar/popup/product/reviewMolding.js.map +0 -1
  785. package/es/components/toolbar/popup/product/styles.js +0 -71
  786. package/es/components/toolbar/popup/product/styles.js.map +0 -1
  787. package/es/components/toolbar/popup/savedesign/FullPictureForm.js +0 -161
  788. package/es/components/toolbar/popup/savedesign/FullPictureForm.js.map +0 -1
  789. package/es/components/toolbar/popup/savedesign/index.js +0 -508
  790. package/es/components/toolbar/popup/savedesign/index.js.map +0 -1
  791. package/es/components/toolbar/popup/savedesign/styles.js +0 -19
  792. package/es/components/toolbar/popup/savedesign/styles.js.map +0 -1
  793. package/es/components/toolbar/popup/setDoorStyleOption/index.js +0 -57
  794. package/es/components/toolbar/popup/setDoorStyleOption/index.js.map +0 -1
  795. package/es/components/toolbar/popup/styles.js +0 -98
  796. package/es/components/toolbar/popup/styles.js.map +0 -1
  797. package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js +0 -157
  798. package/es/components/toolbar/popup/submitforquote/AddToCartOptions.js.map +0 -1
  799. package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js +0 -85
  800. package/es/components/toolbar/popup/submitforquote/CustomerRequestsForm.js.map +0 -1
  801. package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js +0 -36
  802. package/es/components/toolbar/popup/submitforquote/SkipDesignerReview.js.map +0 -1
  803. package/es/components/toolbar/popup/submitforquote/StepDots.js +0 -33
  804. package/es/components/toolbar/popup/submitforquote/StepDots.js.map +0 -1
  805. package/es/components/toolbar/popup/submitforquote/cart-choice.js +0 -132
  806. package/es/components/toolbar/popup/submitforquote/cart-choice.js.map +0 -1
  807. package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js +0 -43
  808. package/es/components/toolbar/popup/submitforquote/doorstyle-menus.js.map +0 -1
  809. package/es/components/toolbar/popup/submitforquote/index.js +0 -690
  810. package/es/components/toolbar/popup/submitforquote/index.js.map +0 -1
  811. package/es/components/toolbar/popup/submitforquote/styles.js +0 -31
  812. package/es/components/toolbar/popup/submitforquote/styles.js.map +0 -1
  813. package/es/components/toolbar/popup/submitprompt/index.js +0 -71
  814. package/es/components/toolbar/popup/submitprompt/index.js.map +0 -1
  815. package/es/components/toolbar/popup/submitprompt/styles.js +0 -9
  816. package/es/components/toolbar/popup/submitprompt/styles.js.map +0 -1
  817. package/es/components/toolbar/toolbar-button.js +0 -105
  818. package/es/components/toolbar/toolbar-button.js.map +0 -1
  819. package/es/components/toolbar/toolbar-load-button.js +0 -29
  820. package/es/components/toolbar/toolbar-load-button.js.map +0 -1
  821. package/es/components/toolbar/toolbar-save-button.js +0 -27
  822. package/es/components/toolbar/toolbar-save-button.js.map +0 -1
  823. package/es/components/tutorial-view/Modal.js +0 -498
  824. package/es/components/tutorial-view/Modal.js.map +0 -1
  825. package/es/components/tutorial-view/styles.js +0 -6
  826. package/es/components/tutorial-view/styles.js.map +0 -1
  827. package/es/components/viewer2d/area.js +0 -83
  828. package/es/components/viewer2d/area.js.map +0 -1
  829. package/es/components/viewer2d/export.js +0 -32
  830. package/es/components/viewer2d/export.js.map +0 -1
  831. package/es/components/viewer2d/grids/grid-horizontal-streak.js +0 -38
  832. package/es/components/viewer2d/grids/grid-horizontal-streak.js.map +0 -1
  833. package/es/components/viewer2d/grids/grid-streak.js +0 -38
  834. package/es/components/viewer2d/grids/grid-streak.js.map +0 -1
  835. package/es/components/viewer2d/grids/grid-vertical-streak.js +0 -38
  836. package/es/components/viewer2d/grids/grid-vertical-streak.js.map +0 -1
  837. package/es/components/viewer2d/grids/grids.js +0 -36
  838. package/es/components/viewer2d/grids/grids.js.map +0 -1
  839. package/es/components/viewer2d/group.js +0 -54
  840. package/es/components/viewer2d/group.js.map +0 -1
  841. package/es/components/viewer2d/item.js +0 -514
  842. package/es/components/viewer2d/item.js.map +0 -1
  843. package/es/components/viewer2d/layer.js +0 -165
  844. package/es/components/viewer2d/layer.js.map +0 -1
  845. package/es/components/viewer2d/line.js +0 -889
  846. package/es/components/viewer2d/line.js.map +0 -1
  847. package/es/components/viewer2d/ruler.js +0 -101
  848. package/es/components/viewer2d/ruler.js.map +0 -1
  849. package/es/components/viewer2d/rulerDist.js +0 -147
  850. package/es/components/viewer2d/rulerDist.js.map +0 -1
  851. package/es/components/viewer2d/rulerX.js +0 -152
  852. package/es/components/viewer2d/rulerX.js.map +0 -1
  853. package/es/components/viewer2d/rulerY.js +0 -154
  854. package/es/components/viewer2d/rulerY.js.map +0 -1
  855. package/es/components/viewer2d/scene.js +0 -141
  856. package/es/components/viewer2d/scene.js.map +0 -1
  857. package/es/components/viewer2d/snap.js +0 -75
  858. package/es/components/viewer2d/snap.js.map +0 -1
  859. package/es/components/viewer2d/state.js +0 -79
  860. package/es/components/viewer2d/state.js.map +0 -1
  861. package/es/components/viewer2d/utils.js +0 -163
  862. package/es/components/viewer2d/utils.js.map +0 -1
  863. package/es/components/viewer2d/vertex.js +0 -67
  864. package/es/components/viewer2d/vertex.js.map +0 -1
  865. package/es/components/viewer2d/viewer2d.js +0 -1402
  866. package/es/components/viewer2d/viewer2d.js.map +0 -1
  867. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +0 -2593
  868. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js.map +0 -1
  869. package/es/components/viewer3d/dcm.js +0 -402
  870. package/es/components/viewer3d/dcm.js.map +0 -1
  871. package/es/components/viewer3d/fbm.js +0 -415
  872. package/es/components/viewer3d/fbm.js.map +0 -1
  873. package/es/components/viewer3d/front3D.js +0 -67
  874. package/es/components/viewer3d/front3D.js.map +0 -1
  875. package/es/components/viewer3d/grid-creator.js +0 -26
  876. package/es/components/viewer3d/grid-creator.js.map +0 -1
  877. package/es/components/viewer3d/grids/grid-horizontal-streak.js +0 -37
  878. package/es/components/viewer3d/grids/grid-horizontal-streak.js.map +0 -1
  879. package/es/components/viewer3d/grids/grid-streak.js +0 -28
  880. package/es/components/viewer3d/grids/grid-streak.js.map +0 -1
  881. package/es/components/viewer3d/grids/grid-vertical-streak.js +0 -37
  882. package/es/components/viewer3d/grids/grid-vertical-streak.js.map +0 -1
  883. package/es/components/viewer3d/libs/first-person-controls.js +0 -68
  884. package/es/components/viewer3d/libs/first-person-controls.js.map +0 -1
  885. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +0 -1282
  886. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js.map +0 -1
  887. package/es/components/viewer3d/libs/mtl-loader.js +0 -358
  888. package/es/components/viewer3d/libs/mtl-loader.js.map +0 -1
  889. package/es/components/viewer3d/libs/obj-loader.js +0 -463
  890. package/es/components/viewer3d/libs/obj-loader.js.map +0 -1
  891. package/es/components/viewer3d/libs/orbit-controls.js +0 -699
  892. package/es/components/viewer3d/libs/orbit-controls.js.map +0 -1
  893. package/es/components/viewer3d/libs/pointer-lock-controls.js +0 -46
  894. package/es/components/viewer3d/libs/pointer-lock-controls.js.map +0 -1
  895. package/es/components/viewer3d/lrm.js +0 -306
  896. package/es/components/viewer3d/lrm.js.map +0 -1
  897. package/es/components/viewer3d/model.js +0 -709
  898. package/es/components/viewer3d/model.js.map +0 -1
  899. package/es/components/viewer3d/pointer-lock-navigation.js +0 -116
  900. package/es/components/viewer3d/pointer-lock-navigation.js.map +0 -1
  901. package/es/components/viewer3d/ruler-utils/itemRect.js +0 -62
  902. package/es/components/viewer3d/ruler-utils/itemRect.js.map +0 -1
  903. package/es/components/viewer3d/ruler-utils/layer3D.js +0 -496
  904. package/es/components/viewer3d/ruler-utils/layer3D.js.map +0 -1
  905. package/es/components/viewer3d/ruler-utils/ruler3D.js +0 -228
  906. package/es/components/viewer3d/ruler-utils/ruler3D.js.map +0 -1
  907. package/es/components/viewer3d/ruler-utils/scene3D.js +0 -62
  908. package/es/components/viewer3d/ruler-utils/scene3D.js.map +0 -1
  909. package/es/components/viewer3d/ruler-utils/state3D.js +0 -19
  910. package/es/components/viewer3d/ruler-utils/state3D.js.map +0 -1
  911. package/es/components/viewer3d/scene-creator.js +0 -3607
  912. package/es/components/viewer3d/scene-creator.js.map +0 -1
  913. package/es/components/viewer3d/three-memory-cleaner.js +0 -52
  914. package/es/components/viewer3d/three-memory-cleaner.js.map +0 -1
  915. package/es/components/viewer3d/viewer3d-first-person.js +0 -316
  916. package/es/components/viewer3d/viewer3d-first-person.js.map +0 -1
  917. package/es/components/viewer3d/viewer3d.js +0 -2504
  918. package/es/components/viewer3d/viewer3d.js.map +0 -1
  919. package/es/components/wizardstep/button/styles.js +0 -60
  920. package/es/components/wizardstep/button/styles.js.map +0 -1
  921. package/es/components/wizardstep/export.js +0 -5
  922. package/es/components/wizardstep/export.js.map +0 -1
  923. package/es/components/wizardstep/index.js +0 -971
  924. package/es/components/wizardstep/index.js.map +0 -1
  925. package/es/components/wizardstep/styles.js +0 -61
  926. package/es/components/wizardstep/styles.js.map +0 -1
  927. package/es/components/wizardstep/wizardstep-content-button.js +0 -217
  928. package/es/components/wizardstep/wizardstep-content-button.js.map +0 -1
  929. package/es/components/wizardstep/wizardstep-toggle-button.js +0 -126
  930. package/es/components/wizardstep/wizardstep-toggle-button.js.map +0 -1
  931. package/es/constants.js +0 -637
  932. package/es/constants.js.map +0 -1
  933. package/es/hooks/useCheckCart.js +0 -53
  934. package/es/hooks/useCheckCart.js.map +0 -1
  935. package/es/hooks/useGetPricesBySku.js +0 -74
  936. package/es/hooks/useGetPricesBySku.js.map +0 -1
  937. package/es/hooks/useValidateToken.js +0 -201
  938. package/es/hooks/useValidateToken.js.map +0 -1
  939. package/es/index.js +0 -17
  940. package/es/index.js.map +0 -1
  941. package/es/models.js +0 -511
  942. package/es/models.js.map +0 -1
  943. package/es/plugins/SVGLoader.js +0 -1413
  944. package/es/plugins/SVGLoader.js.map +0 -1
  945. package/es/plugins/autosave.js +0 -34
  946. package/es/plugins/autosave.js.map +0 -1
  947. package/es/plugins/console-debugger.js +0 -38
  948. package/es/plugins/console-debugger.js.map +0 -1
  949. package/es/plugins/export.js +0 -10
  950. package/es/plugins/export.js.map +0 -1
  951. package/es/plugins/keyboard.js +0 -102
  952. package/es/plugins/keyboard.js.map +0 -1
  953. package/es/reducers/areas-reducer.js +0 -13
  954. package/es/reducers/areas-reducer.js.map +0 -1
  955. package/es/reducers/export.js +0 -26
  956. package/es/reducers/export.js.map +0 -1
  957. package/es/reducers/groups-reducer.js +0 -39
  958. package/es/reducers/groups-reducer.js.map +0 -1
  959. package/es/reducers/holes-reducer.js +0 -63
  960. package/es/reducers/holes-reducer.js.map +0 -1
  961. package/es/reducers/items-reducer.js +0 -144
  962. package/es/reducers/items-reducer.js.map +0 -1
  963. package/es/reducers/lines-reducer.js +0 -46
  964. package/es/reducers/lines-reducer.js.map +0 -1
  965. package/es/reducers/project-reducer.js +0 -130
  966. package/es/reducers/project-reducer.js.map +0 -1
  967. package/es/reducers/reducer.js +0 -20
  968. package/es/reducers/reducer.js.map +0 -1
  969. package/es/reducers/scene-reducer.js +0 -29
  970. package/es/reducers/scene-reducer.js.map +0 -1
  971. package/es/reducers/user-reducer.js +0 -42
  972. package/es/reducers/user-reducer.js.map +0 -1
  973. package/es/reducers/vertices-reducer.js +0 -20
  974. package/es/reducers/vertices-reducer.js.map +0 -1
  975. package/es/reducers/viewer2d-reducer.js +0 -76
  976. package/es/reducers/viewer2d-reducer.js.map +0 -1
  977. package/es/reducers/viewer3d-reducer.js +0 -57
  978. package/es/reducers/viewer3d-reducer.js.map +0 -1
  979. package/es/shared-style.js +0 -67
  980. package/es/shared-style.js.map +0 -1
  981. package/es/styles/export.js +0 -6
  982. package/es/styles/export.js.map +0 -1
  983. package/es/translator/en.js +0 -105
  984. package/es/translator/en.js.map +0 -1
  985. package/es/translator/it.js +0 -80
  986. package/es/translator/it.js.map +0 -1
  987. package/es/translator/ru.js +0 -80
  988. package/es/translator/ru.js.map +0 -1
  989. package/es/translator/translator.js +0 -85
  990. package/es/translator/translator.js.map +0 -1
  991. package/es/utils/browser.js +0 -34
  992. package/es/utils/browser.js.map +0 -1
  993. package/es/utils/email-validator.js +0 -5
  994. package/es/utils/email-validator.js.map +0 -1
  995. package/es/utils/export.js +0 -26
  996. package/es/utils/export.js.map +0 -1
  997. package/es/utils/geometry.js +0 -2237
  998. package/es/utils/geometry.js.map +0 -1
  999. package/es/utils/get-edges-of-subgraphs.js +0 -27
  1000. package/es/utils/get-edges-of-subgraphs.js.map +0 -1
  1001. package/es/utils/graph-cycles.js +0 -239
  1002. package/es/utils/graph-cycles.js.map +0 -1
  1003. package/es/utils/graph-inner-cycles.js +0 -47
  1004. package/es/utils/graph-inner-cycles.js.map +0 -1
  1005. package/es/utils/graph.js +0 -150
  1006. package/es/utils/graph.js.map +0 -1
  1007. package/es/utils/helper.js +0 -337
  1008. package/es/utils/helper.js.map +0 -1
  1009. package/es/utils/history.js +0 -30
  1010. package/es/utils/history.js.map +0 -1
  1011. package/es/utils/id-broker.js +0 -20
  1012. package/es/utils/id-broker.js.map +0 -1
  1013. package/es/utils/logger.js +0 -9
  1014. package/es/utils/logger.js.map +0 -1
  1015. package/es/utils/math.js +0 -51
  1016. package/es/utils/math.js.map +0 -1
  1017. package/es/utils/molding.js +0 -840
  1018. package/es/utils/molding.js.map +0 -1
  1019. package/es/utils/name-generator.js +0 -19
  1020. package/es/utils/name-generator.js.map +0 -1
  1021. package/es/utils/objects-utils.js +0 -51
  1022. package/es/utils/objects-utils.js.map +0 -1
  1023. package/es/utils/phone-validator.js +0 -5
  1024. package/es/utils/phone-validator.js.map +0 -1
  1025. package/es/utils/process-black-list.js +0 -19
  1026. package/es/utils/process-black-list.js.map +0 -1
  1027. package/es/utils/react-if.js +0 -19
  1028. package/es/utils/react-if.js.map +0 -1
  1029. package/es/utils/snap-scene.js +0 -100
  1030. package/es/utils/snap-scene.js.map +0 -1
  1031. package/es/utils/snap.js +0 -238
  1032. package/es/utils/snap.js.map +0 -1
  1033. package/es/utils/threeCSG.es6.js +0 -499
  1034. package/es/utils/threeCSG.es6.js.map +0 -1
  1035. package/es/version.js +0 -2
  1036. package/es/version.js.map +0 -1
  1037. /package/{es → src}/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  1038. /package/{es → src}/catalog/areas/area/textures/grass.jpg +0 -0
  1039. /package/{es → src}/catalog/areas/area/textures/parquet.jpg +0 -0
  1040. /package/{es → src}/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  1041. /package/{es → src}/catalog/areas/area/textures/tile1.jpg +0 -0
  1042. /package/{es → src}/catalog/back.png +0 -0
  1043. /package/{es → src}/catalog/doors.png +0 -0
  1044. /package/{es → src}/catalog/doorways.png +0 -0
  1045. /package/{es → src}/catalog/envMap/nx.hdr +0 -0
  1046. /package/{es → src}/catalog/envMap/ny.hdr +0 -0
  1047. /package/{es → src}/catalog/envMap/nz.hdr +0 -0
  1048. /package/{es → src}/catalog/envMap/px.hdr +0 -0
  1049. /package/{es → src}/catalog/envMap/py.hdr +0 -0
  1050. /package/{es → src}/catalog/envMap/pz.hdr +0 -0
  1051. /package/{es → src}/catalog/holes/door-double/door_double.png +0 -0
  1052. /package/{es → src}/catalog/holes/door-panic/panicDoor.png +0 -0
  1053. /package/{es → src}/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  1054. /package/{es → src}/catalog/holes/gate/gate.jpg +0 -0
  1055. /package/{es → src}/catalog/holes/window-clear/texture.png +0 -0
  1056. /package/{es → src}/catalog/holes/window-cross/texture.png +0 -0
  1057. /package/{es → src}/catalog/holes/window-double-hung/texture.png +0 -0
  1058. /package/{es → src}/catalog/holes/window-vertical/texture.png +0 -0
  1059. /package/{es → src}/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  1060. /package/{es → src}/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  1061. /package/{es → src}/catalog/lines/wall/textures/bricks.jpg +0 -0
  1062. /package/{es → src}/catalog/lines/wall/textures/bricks2.jpg +0 -0
  1063. /package/{es → src}/catalog/lines/wall/textures/bricks3.jpg +0 -0
  1064. /package/{es → src}/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  1065. /package/{es → src}/catalog/lines/wall/textures/morden.jpg +0 -0
  1066. /package/{es → src}/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  1067. /package/{es → src}/catalog/lines/wall/textures/painted.jpg +0 -0
  1068. /package/{es → src}/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  1069. /package/{es → src}/catalog/lines/wall/textures/plaster.jpg +0 -0
  1070. /package/{es → src}/catalog/lines/wall/wall.png +0 -0
  1071. /package/{es → src}/catalog/molding/molding-dcm/texture.png +0 -0
  1072. /package/{es → src}/catalog/molding/molding-fbm/texture.png +0 -0
  1073. /package/{es → src}/catalog/molding/molding-lrm/texture.png +0 -0
  1074. /package/{es → src}/catalog/windows.png +0 -0
  1075. /package/{es → src}/components/header/header.style.css +0 -0
  1076. /package/{es → src}/components/login/style.css +0 -0
  1077. /package/{es → src}/components/login/style.scss +0 -0
  1078. /package/{es → src}/components/molecules/slider/styles.scss +0 -0
  1079. /package/{es → src}/components/toolbar/main/lShaped.json +0 -0
  1080. /package/{es → src}/components/toolbar/main/longNarrow.json +0 -0
  1081. /package/{es → src}/components/toolbar/main/oRectangle.json +0 -0
  1082. /package/{es → src}/components/toolbar/main/rectangle.json +0 -0
  1083. /package/{es → src}/components/toolbar/main/style.css +0 -0
  1084. /package/{es → src}/components/toolbar/popup/autosaveprompt/styles.css +0 -0
  1085. /package/{es → src}/components/toolbar/popup/downloadsummary/styles.css +0 -0
  1086. /package/{es → src}/components/toolbar/popup/floorplan/choose-floor/lShaped.json +0 -0
  1087. /package/{es → src}/components/toolbar/popup/floorplan/choose-floor/longNarrow.json +0 -0
  1088. /package/{es → src}/components/toolbar/popup/floorplan/choose-floor/oRectangle.json +0 -0
  1089. /package/{es → src}/components/toolbar/popup/floorplan/choose-floor/rectangle.json +0 -0
  1090. /package/{es → src}/components/toolbar/popup/newproject/styles.css +0 -0
  1091. /package/{es → src}/components/toolbar/popup/product/style.css +0 -0
  1092. /package/{es → src}/components/toolbar/popup/savedesign/savedesign.style.css +0 -0
  1093. /package/{es → src}/components/toolbar/popup/submitforquote/styles.css +0 -0
  1094. /package/{es → src}/components/toolbar/popup/submitprompt/styles.css +0 -0
  1095. /package/{es → src}/components/tutorial-view/style.css +0 -0
  1096. /package/{es → src}/styles/tabs.css +0 -0
@@ -0,0 +1,2050 @@
1
+ import convert from 'convert-units';
2
+ import { Layer, Group, Hole } from './export';
3
+ import {
4
+ IDBroker,
5
+ NameGenerator,
6
+ GeometryUtils,
7
+ MoldingUtils
8
+ } from '../utils/export';
9
+ import { Map, fromJS } from 'immutable';
10
+ import path from 'path';
11
+ import {
12
+ MODE_IDLE,
13
+ MODE_IDLE_3D,
14
+ MODE_DRAWING_ITEM,
15
+ MODE_DRAWING_ITEM_3D,
16
+ MODE_DRAGGING_ITEM,
17
+ MODE_DRAGGING_ITEM_3D,
18
+ MODE_ROTATING_ITEM,
19
+ MODE_ROTATING_ITEM_3D,
20
+ MOLDING_LOCATIONS,
21
+ INSTALLATION_SUFFIX_TYPE
22
+ } from '../constants';
23
+ import { debugUtil } from '../utils/helper';
24
+ import { isUndefined } from 'util';
25
+ import { hasMoldingLayout } from '../utils/molding';
26
+ import { getInstallationSuffix } from '../components/viewer2d/utils';
27
+ let allItemRect;
28
+ let allItemSnap;
29
+ let allLines;
30
+ let allLineRects;
31
+ let allLineSnap;
32
+ let allRect;
33
+ let time1;
34
+ let time2;
35
+
36
+ class Item {
37
+ static create(
38
+ state,
39
+ layerID,
40
+ type,
41
+ x,
42
+ y,
43
+ width,
44
+ height,
45
+ rotation,
46
+ isDuplication,
47
+ molding = []
48
+ ) {
49
+ let itemID = IDBroker.acquireID();
50
+
51
+ let item = state.catalog.factoryElement(
52
+ type,
53
+ {
54
+ id: itemID,
55
+ itemID: state.catalog.getIn(['elements', type, 'itemID']),
56
+ name: NameGenerator.generateName(
57
+ 'items',
58
+ state.catalog.getIn(['elements', type, 'info', 'title'])
59
+ ),
60
+ sku_number: state.catalog.getIn(['elements', type, 'obj']).toJS()
61
+ .sku_number,
62
+ //style: state.catalog.getIn(['elements', type, 'info', 'door']),
63
+ category: state.catalog.getIn(['elements', type, 'type']),
64
+ layoutpos: state.catalog.getIn(['elements', type, 'info', 'layoutpos']),
65
+ cabinet_category: state.catalog.getIn(['elements', type, 'obj']).toJS()
66
+ .cabinet_category,
67
+ type,
68
+ height,
69
+ width,
70
+ x,
71
+ y,
72
+ rotation,
73
+ isDuplication
74
+ },
75
+ null,
76
+ state
77
+ );
78
+
79
+ if (item.category === 'cabinet') {
80
+ const layer = state.getIn(['scene', 'layers', layerID]);
81
+ if (state.doorStyle !== null && state.doorStyle !== undefined) {
82
+ const temp = layer.doorStyle ? layer.doorStyle : state.doorStyle.toJS();
83
+ let cds = temp?.doorStyles?.cds.find(
84
+ elem =>
85
+ elem.itemID === state.catalog.getIn(['elements', type, 'itemID'])
86
+ );
87
+ let tmpDS = temp;
88
+ if (cds !== undefined && cds !== null) {
89
+ tmpDS.doorStyles = {
90
+ ...temp.doorStyles,
91
+ ...cds.data[0],
92
+ cabinet_door_style_id: cds.cabinet_door_style_id
93
+ };
94
+ item = item.merge({
95
+ doorStyle: fromJS(tmpDS)
96
+ });
97
+ } else {
98
+ let styleObj = state.oStyle?.toJS()?.oStyle;
99
+ if (styleObj) {
100
+ for (let x in styleObj) {
101
+ cds = styleObj[x].data.doorStyles.cds.find(
102
+ elem =>
103
+ elem.itemID ===
104
+ state.catalog.getIn(['elements', type, 'itemID'])
105
+ );
106
+ if (cds !== null && cds !== undefined && cds) {
107
+ tmpDS = styleObj[x].data;
108
+ tmpDS.doorStyles = {
109
+ ...tmpDS.doorStyles,
110
+ ...cds.data[0],
111
+ cabinet_door_style_id: cds.cabinet_door_style_id
112
+ };
113
+ item = item.merge({
114
+ doorStyle: fromJS(tmpDS)
115
+ });
116
+ break;
117
+ }
118
+ }
119
+ }
120
+ }
121
+ } else {
122
+ let styleObj = state.oStyle?.toJS()?.oStyle;
123
+ if (styleObj) {
124
+ for (let x in styleObj) {
125
+ cds = styleObj[x].data.doorStyles.cds.find(
126
+ elem =>
127
+ elem.itemID ===
128
+ state.catalog.getIn(['elements', type, 'itemID'])
129
+ );
130
+ if (cds !== null && cds !== undefined && cds) {
131
+ let tmpDS = styleObj[x].data;
132
+ tmpDS.doorStyles = {
133
+ ...tmpDS.doorStyles,
134
+ ...cds.data[0],
135
+ cabinet_door_style_id: cds.cabinet_door_style_id
136
+ };
137
+ item = item.merge({
138
+ doorStyle: fromJS(tmpDS)
139
+ });
140
+ break;
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+
147
+ if (item.get('type') === 'cabinet' && item.get('doorStyle').size === 0) {
148
+ return { updatedState: state, item: null };
149
+ }
150
+
151
+ let setSizeOfItemByDoorStyle = () => {
152
+ let doorStyle = item.get('doorStyle').toJS();
153
+ var cds = doorStyle?.doorStyles?.cds?.find(
154
+ elem => elem.itemID === item.itemID
155
+ );
156
+ let euro_cds = [];
157
+ if (cds !== undefined) {
158
+ euro_cds = cds && cds.data.filter(element => element.is_euro_cds);
159
+ }
160
+ if (
161
+ doorStyle.door_style_name === 'Euro & Frameless' &&
162
+ euro_cds.length > 0
163
+ ) {
164
+ let newProperties = item.get('properties').toJS();
165
+ if (newProperties.hasOwnProperty('depth')) {
166
+ if (!newProperties.hasOwnProperty('oldDepth')) {
167
+ newProperties['oldDepth'] = new Map({
168
+ length: newProperties.depth.length,
169
+ _length: newProperties.depth._length,
170
+ _unit: newProperties.depth._unit
171
+ });
172
+ }
173
+ newProperties['depth'] = new Map({
174
+ length: convert(euro_cds[0].euro_length).from('in').to('cm'),
175
+ _length: euro_cds[0].euro_length,
176
+ _unit: 'in'
177
+ });
178
+ }
179
+ if (newProperties.hasOwnProperty('height')) {
180
+ if (!newProperties.hasOwnProperty('oldHeight')) {
181
+ newProperties['oldHeight'] = new Map({
182
+ length: newProperties.height.length,
183
+ _length: newProperties.height._length,
184
+ _unit: newProperties.height._unit
185
+ });
186
+ }
187
+ newProperties['height'] = new Map({
188
+ length: convert(euro_cds[0].euro_height).from('in').to('cm'),
189
+ _length: euro_cds[0].euro_height,
190
+ _unit: 'in'
191
+ });
192
+ }
193
+ if (newProperties.hasOwnProperty('width')) {
194
+ if (!newProperties.hasOwnProperty('oldWidth')) {
195
+ newProperties['oldWidth'] = new Map({
196
+ length: newProperties.width.length,
197
+ _length: newProperties.width._length,
198
+ _unit: newProperties.width._unit
199
+ });
200
+ }
201
+ newProperties['width'] = new Map({
202
+ length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
203
+ _length: euro_cds[0].euro_width,
204
+ _unit: 'in'
205
+ });
206
+ }
207
+ item = item.merge({ properties: fromJS(newProperties) });
208
+ } else {
209
+ let properties = item.get('properties').toJS();
210
+ if (properties.hasOwnProperty('oldDepth')) {
211
+ properties['depth'] = new Map({
212
+ length: properties.oldDepth.length,
213
+ _length: properties.oldDepth._length,
214
+ _unit: properties.oldDepth._unit
215
+ });
216
+ }
217
+ if (properties.hasOwnProperty('oldHeight')) {
218
+ properties['height'] = new Map({
219
+ length: properties.oldHeight.length,
220
+ _length: properties.oldHeight._length,
221
+ _unit: properties.oldHeight._unit
222
+ });
223
+ }
224
+ if (properties.hasOwnProperty('oldWidth')) {
225
+ properties['width'] = new Map({
226
+ length: properties.oldWidth.length,
227
+ _length: properties.oldWidth._length,
228
+ _unit: properties.oldWidth._unit
229
+ });
230
+ }
231
+ item = item.merge({ properties: fromJS(properties) });
232
+ }
233
+ };
234
+ item.category === 'cabinet' && setSizeOfItemByDoorStyle();
235
+
236
+ item = this.updateDoorHandle(
237
+ item,
238
+ state.getIn(['scene', 'layers', layerID])
239
+ );
240
+
241
+ state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
242
+
243
+ if (item.type.includes('Light')) {
244
+ let ceilHeight = state.getIn(['scene', 'layers', layerID, 'ceilHeight']);
245
+ let ceilUnit = state.getIn(['scene', 'layers', layerID, 'unit']);
246
+ ceilHeight = convert(ceilHeight).from(ceilUnit).to('cm');
247
+ let newAltitude =
248
+ ceilHeight - item.properties.getIn(['height', 'length']);
249
+ newAltitude = convert(newAltitude).from('cm').to(ceilUnit);
250
+ item = item.setIn(['properties', 'altitude', '_length'], newAltitude);
251
+ state = state.setIn(['scene', 'layers', layerID, 'items', item.id], item);
252
+ }
253
+
254
+ if (item.category === 'cabinet') {
255
+ // If create a copied object, copied object has original object's molding property.And if create a object, it has a layer's molding property.
256
+ let layerMolding = state
257
+ .getIn(['scene', 'layers', layerID, 'molding'])
258
+ .filter(md => hasMoldingLayout(md, item.layoutpos));
259
+ state = state.setIn(
260
+ ['scene', 'layers', layerID, 'items', itemID, 'molding'],
261
+ layerMolding.length ? layerMolding : molding
262
+ );
263
+ }
264
+ return { updatedState: state, item };
265
+ }
266
+
267
+ static updateDoorHandle(item, layer) {
268
+ const doorHandle = layer.get('doorHandle');
269
+
270
+ if (doorHandle == '') return item;
271
+ const dataJSON = item.toJS();
272
+ let itemID = dataJSON.id;
273
+ var doorStyle = dataJSON.doorStyle;
274
+ var tmpDS = {
275
+ ...doorStyle,
276
+ handle_gltf: doorHandle,
277
+ metalness: 0.2,
278
+ roughness: 0.1
279
+ };
280
+ let cnt = 0;
281
+ for (let prop in doorStyle.doorStyles) cnt++;
282
+ if (cnt !== 0) {
283
+ for (var i = 1; i < 10; i++) {
284
+ tmpDS['doorStyles']['door_handle_' + i + '_gltf'] = doorHandle;
285
+ tmpDS['doorStyles']['fixed_drawer_door_handle_' + i + '_gltf'] =
286
+ doorHandle;
287
+ tmpDS['doorStyles']['drawer_door_handle_' + i + '_gltf'] = doorHandle;
288
+ }
289
+ }
290
+
291
+ item = item.mergeIn(['doorStyle'], fromJS(tmpDS));
292
+
293
+ return item;
294
+ }
295
+
296
+ static select(state, layerID, itemID) {
297
+ state = Layer.select(state, layerID).updatedState;
298
+ state = Layer.selectElement(state, layerID, 'items', itemID).updatedState;
299
+ state = state.merge({
300
+ replacingSupport: new Map({
301
+ layerID,
302
+ itemID
303
+ })
304
+ });
305
+
306
+ return { updatedState: state };
307
+ }
308
+
309
+ static selectHole(state, layerID, holeID) {
310
+ state = Layer.select(state, layerID).updatedState;
311
+ state = Layer.selectElement(state, layerID, 'holes', holeID).updatedState;
312
+
313
+ return { updatedState: state };
314
+ }
315
+
316
+ static editWidth(state, newWidth, layerID, itemID) {
317
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
318
+ let properties = item.properties;
319
+ if (newWidth === 0) {
320
+ alert('You can not set width to 0');
321
+ return { updatedState: state };
322
+ }
323
+ let width = new Map({
324
+ _length: newWidth,
325
+ _unit: 'in',
326
+ length: convert(newWidth).from('in').to('cm')
327
+ });
328
+ properties = properties.set('width', width);
329
+ state = state.mergeIn(
330
+ ['scene', 'layers', layerID, 'items', itemID, 'properties'],
331
+ properties
332
+ );
333
+ return { updatedState: state };
334
+ }
335
+
336
+ static prepareSnap(state, layerID) {
337
+ let layer = state.getIn(['scene', 'layers', layerID]);
338
+ let scene = state.get('scene');
339
+ let catalog = state.catalog.toJS();
340
+ allLines = GeometryUtils.getAllLines(layer);
341
+ allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
342
+ allItemRect = GeometryUtils.getAllItems(scene, catalog, allLineRects);
343
+ allItemSnap = GeometryUtils.getAllItemSnap(allItemRect);
344
+ allLineSnap = GeometryUtils.getAllLineSnap(allLineRects, allItemRect.cur);
345
+ allRect = allItemRect.others.concat(allLineRects);
346
+ allItemSnap = GeometryUtils.validateSnaps(allItemSnap, allRect);
347
+ allLineSnap = GeometryUtils.validateSnaps(allLineSnap, allRect);
348
+ }
349
+
350
+ static duplicateSelected(state, currentObject) {
351
+ let layerID = state.getIn(['scene', 'selectedLayer']);
352
+ let layer = state.getIn(['scene', 'layers', layerID]);
353
+ let objectID = currentObject.id;
354
+ let myObject;
355
+ let x = currentObject.x;
356
+ let y = currentObject.y;
357
+ let sceneComponentType, width, depth, rotRad;
358
+ switch (currentObject.prototype) {
359
+ case 'items':
360
+ myObject = state.getIn(['scene', 'layers', layerID, 'items', objectID]);
361
+ sceneComponentType = myObject.type;
362
+ width = myObject.properties.getIn(['width', 'length']);
363
+ depth = myObject.properties.getIn(['depth', 'length']);
364
+ rotRad = (myObject.rotation * Math.PI) / 180;
365
+ this.prepareSnap(state, layerID);
366
+ let val = {
367
+ pos: {
368
+ x: x + width * Math.cos(rotRad),
369
+ y: y + width * Math.sin(rotRad)
370
+ },
371
+ rotRad: rotRad
372
+ };
373
+ val.size = allItemRect.cur.size;
374
+ val.layoutpos = allItemRect.cur.layoutpos;
375
+ val.is_corner = allItemRect.cur.is_corner;
376
+ let isrectSect = GeometryUtils.validInterSect(allRect, val);
377
+ if (isrectSect) {
378
+ // Duplicated object has a original object's molding property
379
+ let { updatedState: stateI, item } = this.create(
380
+ state,
381
+ layerID,
382
+ sceneComponentType,
383
+ x + width * Math.cos(rotRad),
384
+ y + width * Math.sin(rotRad),
385
+ 200,
386
+ 100,
387
+ (rotRad * 180) / Math.PI,
388
+ true,
389
+ myObject.molding
390
+ );
391
+ if (item === null) {
392
+ alert('There are no Door Colors in this cabinet.');
393
+ state = state.merge({
394
+ mode: MODE_IDLE,
395
+ drawingSupport: new Map()
396
+ });
397
+ } else {
398
+ state = Item.select(stateI, layerID, item.id).updatedState;
399
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
400
+ }
401
+ } else {
402
+ let val = {
403
+ pos: {
404
+ x: x - width * Math.cos(rotRad),
405
+ y: y - width * Math.sin(rotRad)
406
+ },
407
+ rotRad: rotRad
408
+ };
409
+ val.size = allItemRect.cur.size;
410
+ val.layoutpos = allItemRect.cur.layoutpos;
411
+ val.is_corner = allItemRect.cur.is_corner;
412
+ let isRect = GeometryUtils.validInterSect(allRect, val);
413
+ if (isRect) {
414
+ let { updatedState: stateI, item } = this.create(
415
+ state,
416
+ layerID,
417
+ sceneComponentType,
418
+ x - width * Math.cos(rotRad),
419
+ y - width * Math.sin(rotRad),
420
+ 200,
421
+ 100,
422
+ (rotRad * 180) / Math.PI,
423
+ true,
424
+ myObject.molding
425
+ );
426
+ if (item === null) {
427
+ alert('There are no Door Colors in this cabinet.');
428
+ state = state.merge({
429
+ mode: MODE_IDLE,
430
+ drawingSupport: new Map()
431
+ });
432
+ } else {
433
+ state = Item.select(stateI, layerID, item.id).updatedState;
434
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
435
+ }
436
+ } else {
437
+ let val = {
438
+ pos: {
439
+ x: x - depth * Math.sin(rotRad),
440
+ y: y - depth * Math.cos(rotRad)
441
+ },
442
+ rotRad: rotRad
443
+ };
444
+ val.size = allItemRect.cur.size;
445
+ val.layoutpos = allItemRect.cur.layoutpos;
446
+ val.is_corner = allItemRect.cur.is_corner;
447
+ let isRectDown = GeometryUtils.validInterSect(allRect, val);
448
+ if (isRectDown) {
449
+ let { updatedState: stateI, item } = this.create(
450
+ state,
451
+ layerID,
452
+ sceneComponentType,
453
+ x - depth * Math.sin(rotRad),
454
+ y - depth * Math.cos(rotRad),
455
+ 200,
456
+ 100,
457
+ (rotRad * 180) / Math.PI,
458
+ true,
459
+ myObject.molding
460
+ );
461
+ if (item === null) {
462
+ alert('There are no Door Colors in this cabinet.');
463
+ state = state.merge({
464
+ mode: MODE_IDLE,
465
+ drawingSupport: new Map()
466
+ });
467
+ } else {
468
+ state = Item.select(stateI, layerID, item.id).updatedState;
469
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
470
+ }
471
+ } else {
472
+ let val = {
473
+ pos: {
474
+ x: x + depth * Math.sin(rotRad),
475
+ y: y + depth * Math.cos(rotRad)
476
+ },
477
+ rotRad: rotRad
478
+ };
479
+ val.size = allItemRect.cur.size;
480
+ val.layoutpos = allItemRect.cur.layoutpos;
481
+ val.is_corner = allItemRect.cur.is_corner;
482
+ let isRectUp = GeometryUtils.validInterSect(allRect, val);
483
+ if (isRectUp) {
484
+ let { updatedState: stateI, item } = this.create(
485
+ state,
486
+ layerID,
487
+ sceneComponentType,
488
+ x + depth * Math.sin(rotRad),
489
+ y + depth * Math.cos(rotRad),
490
+ 200,
491
+ 100,
492
+ (rotRad * 180) / Math.PI,
493
+ true,
494
+ myObject.molding
495
+ );
496
+ if (item === null) {
497
+ alert('There are no Door Colors in this cabinet.');
498
+ state = state.merge({
499
+ mode: MODE_IDLE,
500
+ drawingSupport: new Map()
501
+ });
502
+ } else {
503
+ state = Item.select(stateI, layerID, item.id).updatedState;
504
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
505
+ }
506
+ } else {
507
+ console.log('there is no space');
508
+ alert('No more space!');
509
+ }
510
+ }
511
+ }
512
+ }
513
+ break;
514
+ case 'holes':
515
+ this.prepareSnap(state, layerID);
516
+ myObject = state.getIn(['scene', 'layers', layerID, 'holes', objectID]);
517
+ let line = state.getIn([
518
+ 'scene',
519
+ 'layers',
520
+ layerID,
521
+ 'lines',
522
+ myObject.line
523
+ ]);
524
+ sceneComponentType = myObject.type;
525
+ width = myObject.get('properties').get('width').get('length');
526
+ let myOffset = myObject.offset;
527
+ let v0 = layer.getIn(['vertices', line.vertices.get(0)]);
528
+ let v1 = layer.getIn(['vertices', line.vertices.get(1)]);
529
+ let lineLength = GeometryUtils.pointsDistance(v0.x, v0.y, v1.x, v1.y);
530
+ let delta = width / 2 / lineLength + 0.00001;
531
+ let allHoles = state.getIn(['scene', 'layers', layerID, 'holes']);
532
+ let rightAble = true;
533
+ let leftAble = true;
534
+ if (myOffset + 3 * delta > 1) rightAble = false;
535
+ else if (myOffset - 3 * delta < 0) leftAble = false;
536
+ if (allHoles.size === 0) {
537
+ let { updatedState: stateH, hole } = this.createHole(
538
+ state,
539
+ layerID,
540
+ sceneComponentType,
541
+ myObject.line,
542
+ myOffset + delta * 2,
543
+ myObject.get('properties')
544
+ );
545
+ state = this.selectHole(stateH, layerID, hole.id).updatedState;
546
+ state = state.setIn(['drawingSupport', 'currentID'], hole.id);
547
+ } else {
548
+ allHoles.forEach(hole => {
549
+ if (hole.line === line.id)
550
+ if (!hole.selected) {
551
+ let newDelta =
552
+ hole.get('properties').get('width').get('length') /
553
+ 2 /
554
+ lineLength;
555
+ if (myOffset < hole.offset) {
556
+ if (myOffset + delta * 3 > hole.offset - newDelta) {
557
+ rightAble = false;
558
+ }
559
+ } else {
560
+ if (myOffset - delta * 3 < hole.offset + newDelta) {
561
+ leftAble = false;
562
+ }
563
+ }
564
+ }
565
+ });
566
+ }
567
+ if (rightAble) {
568
+ let { updatedState: stateH, hole } = this.createHole(
569
+ state,
570
+ layerID,
571
+ sceneComponentType,
572
+ myObject.line,
573
+ myOffset + delta * 2,
574
+ myObject.get('properties')
575
+ );
576
+ state = this.selectHole(stateH, layerID, hole.id).updatedState;
577
+ state = state.setIn(['drawingSupport', 'currentID'], hole.id);
578
+ } else {
579
+ if (leftAble) {
580
+ let { updatedState: stateH, hole } = this.createHole(
581
+ state,
582
+ layerID,
583
+ sceneComponentType,
584
+ myObject.line,
585
+ myOffset - delta * 2,
586
+ myObject.get('properties')
587
+ );
588
+ state = this.selectHole(stateH, layerID, hole.id).updatedState;
589
+ state = state.setIn(['drawingSupport', 'currentID'], hole.id);
590
+ } else alert('No more space');
591
+ }
592
+ break;
593
+ case 'lines':
594
+ alert('Duplicating lines is not currently supported yet.');
595
+ break;
596
+ default:
597
+ break;
598
+ }
599
+ return { updatedState: state };
600
+ }
601
+
602
+ static storeDistArray(state, layerID, itemID, distArray) {
603
+ let curDistArray = state.getIn([
604
+ 'scene',
605
+ 'layers',
606
+ layerID,
607
+ 'items',
608
+ itemID,
609
+ 'distArray'
610
+ ]);
611
+ let isEqualDist = (a, b) => {
612
+ return a == b;
613
+ };
614
+ if (curDistArray) {
615
+ let equal = curDistArray.every((curElement, index) => {
616
+ return isEqualDist(curElement[0], distArray[index][0]);
617
+ });
618
+ if (!equal) {
619
+ state = state.setIn(
620
+ ['scene', 'layers', layerID, 'items', itemID, 'distArray'],
621
+ distArray
622
+ );
623
+ }
624
+ }
625
+
626
+ return { updatedState: state };
627
+ }
628
+
629
+ static validateItemPositions(state, layerID) {
630
+ let layer = state.getIn(['scene', 'layers', layerID]);
631
+
632
+ function isItemInRect(item) {
633
+ let { width, height } = state.getIn(['scene']);
634
+ return item.x >= 0 && item.x <= width && item.y >= 0 && item.y <= height;
635
+ }
636
+
637
+ layer.items.forEach(item => {
638
+ if (!isItemInRect(item))
639
+ state = this.remove(state, layerID, item.id).updatedState;
640
+ });
641
+ return { updatedState: state };
642
+ }
643
+
644
+ static remove(state, layerID, itemID) {
645
+ state = this.unselect(state, layerID, itemID).updatedState;
646
+ state = Layer.removeElement(state, layerID, 'items', itemID).updatedState;
647
+
648
+ state
649
+ .getIn(['scene', 'groups'])
650
+ .forEach(
651
+ group =>
652
+ (state = Group.removeElement(
653
+ state,
654
+ group.id,
655
+ layerID,
656
+ 'items',
657
+ itemID
658
+ ).updatedState)
659
+ );
660
+
661
+ return { updatedState: state };
662
+ }
663
+
664
+ static replaceItem(state, selectedPos, currentObject, selectedObject) {
665
+ state = this.remove(
666
+ state,
667
+ state.scene.selectedLayer,
668
+ selectedPos.selectedItemId
669
+ ).updatedState;
670
+ state = this.create(
671
+ state,
672
+ state.scene.selectedLayer,
673
+ selectedObject.name,
674
+ selectedPos.x,
675
+ selectedPos.y,
676
+ selectedObject.info.width,
677
+ selectedObject.info.height,
678
+ selectedPos.rotation,
679
+ false
680
+ ).updatedState;
681
+ // state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
682
+ return { updatedState: state };
683
+ }
684
+
685
+ static unselect(state, layerID, itemID) {
686
+ state = Layer.unselect(state, layerID, 'items', itemID).updatedState;
687
+ return { updatedState: state };
688
+ }
689
+
690
+ static selectToolDrawingItem(state, sceneComponentType) {
691
+ state = state.merge({
692
+ mode: MODE_DRAWING_ITEM,
693
+ drawingSupport: new Map({
694
+ type: sceneComponentType
695
+ })
696
+ });
697
+
698
+ return { updatedState: state };
699
+ }
700
+
701
+ static selectToolDrawingItem3D(state, sceneComponentType) {
702
+ state = state.merge({
703
+ mode: MODE_DRAWING_ITEM_3D,
704
+ drawingSupport: new Map({
705
+ type: sceneComponentType
706
+ })
707
+ });
708
+ state = state.mergeIn(['scene', 'loadFlag'], false);
709
+ return { updatedState: state };
710
+ }
711
+
712
+ static endCreatingCabinet(state) {
713
+ state = state.merge({
714
+ isOpen: false,
715
+ openedType: 0
716
+ });
717
+ return { updatedState: state };
718
+ }
719
+ static updatePopupOpen(state, value) {
720
+ state = state.merge({
721
+ openedType: value
722
+ });
723
+ return { updatedState: state };
724
+ }
725
+
726
+ static updateDrawingItem(state, layerID, x, y) {
727
+ if (state.hasIn(['drawingSupport', 'currentID'])) {
728
+ let mode = state.get('mode');
729
+ if ([MODE_DRAWING_ITEM_3D].includes(mode)) {
730
+ state = state.updateIn(
731
+ [
732
+ 'scene',
733
+ 'layers',
734
+ layerID,
735
+ 'items',
736
+ state.getIn(['drawingSupport', 'currentID'])
737
+ ],
738
+ item => item && item.merge({ x, y })
739
+ );
740
+ state = state.merge({ mode: MODE_IDLE_3D });
741
+ }
742
+ if ([MODE_DRAWING_ITEM].includes(mode)) {
743
+ state = state.merge({ mode: MODE_IDLE });
744
+ state = state.updateIn(
745
+ [
746
+ 'scene',
747
+ 'layers',
748
+ layerID,
749
+ 'items',
750
+ state.getIn(['drawingSupport', 'currentID'])
751
+ ],
752
+ item => item && item.merge({ x, y })
753
+ );
754
+ }
755
+ } else {
756
+ let { updatedState: stateI, item } = this.create(
757
+ state,
758
+ layerID,
759
+ state.getIn(['drawingSupport', 'type']),
760
+ x,
761
+ y,
762
+ 200,
763
+ 100,
764
+ 0,
765
+ false
766
+ );
767
+ if (item === null) {
768
+ alert('There are no Door Colors in this cabinet.');
769
+ state = state.merge({
770
+ mode: MODE_IDLE,
771
+ drawingSupport: new Map()
772
+ });
773
+ } else {
774
+ state = Item.select(stateI, layerID, item.id).updatedState;
775
+ state = state.setIn(['drawingSupport', 'currentID'], item.id);
776
+ }
777
+ }
778
+
779
+ return { updatedState: state };
780
+ }
781
+
782
+ static updateDraggingItemChanged(state, x, y, layerID, itemID) {
783
+ let { scene } = state;
784
+ // let originalX = draggingSupport.get('originalX');
785
+ // let originalY = draggingSupport.get('originalY');
786
+
787
+ // let diffX = x;
788
+ // let diffY = y;
789
+
790
+ let item = scene.getIn(['layers', layerID, 'items', itemID]);
791
+ // let tX = originalX - diffX;
792
+ // let tY = originalY - diffY;
793
+ // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;
794
+ // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
795
+ item = item.merge({
796
+ x: x,
797
+ y: y
798
+ });
799
+
800
+ state = state.merge({
801
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
802
+ });
803
+ time2 = debugUtil();
804
+ false &&
805
+ console.log(
806
+ 'FPS:',
807
+ Math.round(1000 / (time2 - time1)),
808
+ ' Delta Time:',
809
+ (time2 - time1) / 1000,
810
+ '(s)'
811
+ );
812
+ return { updatedState: state };
813
+ }
814
+
815
+ static endDrawingItem(state, layerID, x, y) {
816
+ let catalog = state.catalog;
817
+ state = this.updateDrawingItem(state, layerID, x, y, catalog).updatedState;
818
+ state = Layer.unselectAll(state, layerID).updatedState;
819
+ let popup = state.get('popup');
820
+
821
+ state = state.merge({
822
+ drawingSupport: Map({
823
+ type: state.drawingSupport.get('type')
824
+ }),
825
+ isOpen: !popup
826
+ });
827
+ state = Layer.unselectAll(state, layerID).updatedState;
828
+ this.updateMolding(state);
829
+ return { updatedState: state };
830
+ }
831
+
832
+ static beginDraggingItem(state, layerID, itemID, x, y) {
833
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
834
+
835
+ time1 = debugUtil();
836
+ if (isUndefined(item)) return;
837
+ state = state.merge({
838
+ mode: MODE_DRAGGING_ITEM,
839
+ draggingSupport: Map({
840
+ layerID,
841
+ itemID,
842
+ startPointX: x,
843
+ startPointY: y,
844
+ originalX: item.x,
845
+ originalY: item.y
846
+ })
847
+ });
848
+
849
+ return { updatedState: state };
850
+ }
851
+
852
+ static beginDraggingItem3D(state, layerID, itemID, x, y) {
853
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
854
+ state = state.setIn(['scene', 'isEndDragging'], false);
855
+ if (isUndefined(item)) return { updatedState: state };
856
+ state = state.merge({
857
+ mode: MODE_DRAGGING_ITEM_3D,
858
+ draggingSupport: Map({
859
+ layerID,
860
+ itemID,
861
+ startPointX: x,
862
+ startPointY: y,
863
+ originalX: item.x,
864
+ originalY: item.y
865
+ })
866
+ });
867
+
868
+ return { updatedState: state };
869
+ }
870
+
871
+ static updateDraggingItem(state, x, y) {
872
+ let { draggingSupport, scene } = state;
873
+
874
+ let layerID = draggingSupport.get('layerID');
875
+ let itemID = draggingSupport.get('itemID');
876
+ let startPointX = draggingSupport.get('startPointX');
877
+ let startPointY = draggingSupport.get('startPointY');
878
+ let originalX = draggingSupport.get('originalX');
879
+ let originalY = draggingSupport.get('originalY');
880
+
881
+ let diffX = startPointX - x;
882
+ let diffY = startPointY - y;
883
+
884
+ let item = scene.getIn(['layers', layerID, 'items', itemID]);
885
+ if (isUndefined(item)) return { updatedState: state };
886
+ let tX = originalX - diffX;
887
+ let tY = originalY - diffY;
888
+ tX = tX > scene.width ? scene.width : tX < 0 ? 0 : tX;
889
+ tY = tY > scene.height ? scene.height : tY < 0 ? 0 : tY;
890
+ item = item.merge({
891
+ x: tX,
892
+ y: tY
893
+ });
894
+
895
+ state = state.merge({
896
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
897
+ });
898
+
899
+ return { updatedState: state };
900
+ }
901
+
902
+ static updateDraggingItem3DX(state, x) {
903
+ let { draggingSupport, scene } = state;
904
+
905
+ let layerID = draggingSupport.get('layerID');
906
+ let itemID = draggingSupport.get('itemID');
907
+ let startPointX = draggingSupport.get('startPointX');
908
+ let originalX = draggingSupport.get('originalX');
909
+
910
+ let diffX = startPointX - x;
911
+
912
+ let item = scene.getIn(['layers', layerID, 'items', itemID]);
913
+ item = item.merge({
914
+ x: originalX - diffX
915
+ });
916
+
917
+ state = state.merge({
918
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
919
+ });
920
+
921
+ return { updatedState: state };
922
+ }
923
+
924
+ static updateDraggingItem3DY(state, y) {
925
+ let { draggingSupport, scene } = state;
926
+
927
+ let layerID = draggingSupport.get('layerID');
928
+ let itemID = draggingSupport.get('itemID');
929
+ let startPointY = draggingSupport.get('startPointY');
930
+ let originalY = draggingSupport.get('originalY');
931
+
932
+ let diffY = startPointY - y;
933
+
934
+ let item = scene.getIn(['layers', layerID, 'items', itemID]);
935
+ item = item.merge({
936
+ y: originalY - diffY
937
+ });
938
+
939
+ state = state.merge({
940
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
941
+ });
942
+
943
+ return { updatedState: state };
944
+ }
945
+
946
+ static endDraggingItem(state, x, y) {
947
+ state = this.updateDraggingItem(state, x, y).updatedState;
948
+ state = state.merge({ mode: MODE_IDLE });
949
+
950
+ return { updatedState: state };
951
+ }
952
+
953
+ static endDraggingItem3D(state) {
954
+ // state = this.updateDraggingItem(state, x, y).updatedState;
955
+ state = state.merge({ mode: MODE_IDLE_3D });
956
+ state = state.setIn(['scene', 'isEndDragging'], true);
957
+
958
+ return { updatedState: state };
959
+ }
960
+
961
+ static beginRotatingItem(state, layerID, itemID, x, y) {
962
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
963
+ let originRotation = item.get('rotation');
964
+
965
+ state = state.merge({
966
+ mode: MODE_ROTATING_ITEM,
967
+ rotatingSupport: Map({
968
+ layerID,
969
+ itemID,
970
+ x,
971
+ y,
972
+ originRotation
973
+ })
974
+ });
975
+
976
+ return { updatedState: state };
977
+ }
978
+
979
+ static beginRotatingItem3D(state, layerID, itemID, x, y) {
980
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
981
+ let originRotation = item.get('rotation');
982
+
983
+ state = state.merge({
984
+ mode: MODE_ROTATING_ITEM_3D,
985
+ rotatingSupport: Map({
986
+ layerID,
987
+ itemID,
988
+ x,
989
+ y,
990
+ originRotation
991
+ })
992
+ });
993
+
994
+ return { updatedState: state };
995
+ }
996
+
997
+ static updateRotatingItem(state, x, y) {
998
+ let { rotatingSupport, scene } = state;
999
+ let layerID = rotatingSupport.get('layerID');
1000
+ let itemID = rotatingSupport.get('itemID');
1001
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1002
+ let origin = {
1003
+ x: rotatingSupport.get('x'),
1004
+ y: rotatingSupport.get('y'),
1005
+ originRotation: rotatingSupport.get('originRotation')
1006
+ };
1007
+
1008
+ let newRot =
1009
+ (Math.atan2(origin.y - item.y, origin.x - item.x) * 180) / Math.PI + 90;
1010
+ let deltaRot = newRot - origin.originRotation;
1011
+
1012
+ let deltaX = x - item.x;
1013
+ let deltaY = y - item.y;
1014
+
1015
+ let rotation = (Math.atan2(deltaY, deltaX) * 180) / Math.PI + 90;
1016
+ rotation -= deltaRot;
1017
+ if (-5 < rotation && rotation < 5) rotation = 0;
1018
+ if (-95 < rotation && rotation < -85) rotation = -90;
1019
+ if (-185 < rotation && rotation < -175) rotation = -180;
1020
+ if (85 < rotation && rotation < 95) rotation = 90;
1021
+ if (-270 < rotation && rotation < -265) rotation = 90;
1022
+ if (175 < rotation && rotation < 185) rotation = 180;
1023
+ if (265 < rotation && rotation < 275) rotation = -90;
1024
+
1025
+ item = item.merge({
1026
+ rotation
1027
+ });
1028
+
1029
+ state = state.merge({
1030
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1031
+ });
1032
+
1033
+ return { updatedState: state };
1034
+ }
1035
+
1036
+ static updateRotatingItemChanged(state, rotation, layerID, itemID) {
1037
+ let scene = state.scene;
1038
+
1039
+ // let originalX = draggingSupport.get('originalX');
1040
+ // let originalY = draggingSupport.get('originalY');
1041
+
1042
+ // let diffX = x;
1043
+ // let diffY = y;
1044
+
1045
+ let item = scene.getIn(['layers', layerID, 'items', itemID]);
1046
+ // let tX = originalX - diffX;
1047
+ // let tY = originalY - diffY;
1048
+ // tX = tX > 500 ? 500 : tX < 0 ? 0 : tX;
1049
+ // tY = tY > 500 ? 500 : tY < 0 ? 0 : tY;
1050
+ item = item.merge({
1051
+ rotation: rotation
1052
+ });
1053
+
1054
+ state = state.merge({
1055
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1056
+ });
1057
+
1058
+ return { updatedState: state };
1059
+ }
1060
+
1061
+ static endRotatingItem(state, x, y) {
1062
+ //state = this.updateRotatingItem(state, x, y).updatedState;
1063
+ state = state.merge({ mode: MODE_IDLE });
1064
+
1065
+ return { updatedState: state };
1066
+ }
1067
+
1068
+ static endRotatingItem3D(state, x, y) {
1069
+ state = this.updateRotatingItem(state, x, y).updatedState;
1070
+ state = state.merge({ mode: MODE_IDLE_3D });
1071
+
1072
+ return { updatedState: state };
1073
+ }
1074
+
1075
+ static replaceSubmodule(state, url) {
1076
+ let { replacingSupport, scene } = state;
1077
+ url = 'catalog/texture.png';
1078
+ let urlData = url.split('/');
1079
+ let newURL = '';
1080
+ let addURL = false;
1081
+ for (let i = 0; i < urlData.length; i++) {
1082
+ if (urlData[i] == '') {
1083
+ continue;
1084
+ }
1085
+ newURL += '/' + urlData[i];
1086
+ }
1087
+ let layerID = replacingSupport.get('layerID');
1088
+ let itemID = replacingSupport.get('itemID');
1089
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1090
+ let submodule = [];
1091
+ let normalMap = [];
1092
+
1093
+ for (let i = 0; i < item.submodule.size; i++)
1094
+ submodule.push(item.submodule.get(i));
1095
+ for (let i = 0; i < item.normalMap.size; i++)
1096
+ normalMap.push(item.normalMap.get(i));
1097
+ //let submodule = state.getIn(['scene', 'layers', layerID, 'items', itemID, 'submodule']);
1098
+ urlData = newURL.split('/');
1099
+ let flag = false;
1100
+ if (urlData[urlData.length - 1].includes('.gltf')) {
1101
+ for (let i = 0; i < submodule.length; i++) {
1102
+ let pathData = submodule[i].split('/');
1103
+ if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {
1104
+ submodule[i] = newURL;
1105
+ flag = true;
1106
+ }
1107
+ }
1108
+ if (!flag) submodule.push(newURL);
1109
+ item = item.merge({
1110
+ submodule
1111
+ });
1112
+ } else {
1113
+ for (let i = 0; i < normalMap.length; i++) {
1114
+ let pathData = normalMap[i].split('/');
1115
+ if (pathData[pathData.length - 2] === urlData[urlData.length - 2]) {
1116
+ normalMap[i] = newURL;
1117
+ flag = true;
1118
+ }
1119
+ }
1120
+ if (!flag) normalMap.push(newURL);
1121
+
1122
+ item = item.merge({
1123
+ normalMap
1124
+ });
1125
+ }
1126
+
1127
+ state = state.merge({
1128
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1129
+ });
1130
+ state = state.merge({ mode: MODE_IDLE_3D });
1131
+
1132
+ return { updatedState: state };
1133
+ }
1134
+
1135
+ static setProperties(state, layerID, itemID, properties) {
1136
+ state = state.mergeIn(
1137
+ ['scene', 'layers', layerID, 'items', itemID, 'properties'],
1138
+ properties
1139
+ );
1140
+
1141
+ return { updatedState: state };
1142
+ }
1143
+
1144
+ static setJsProperties(state, layerID, itemID, properties) {
1145
+ return this.setProperties(state, layerID, itemID, fromJS(properties));
1146
+ }
1147
+
1148
+ static updateProperties(state, layerID, itemID, properties) {
1149
+ properties.forEach((v, k) => {
1150
+ if (
1151
+ state.hasIn([
1152
+ 'scene',
1153
+ 'layers',
1154
+ layerID,
1155
+ 'items',
1156
+ itemID,
1157
+ 'properties',
1158
+ k
1159
+ ])
1160
+ )
1161
+ state = state.mergeIn(
1162
+ ['scene', 'layers', layerID, 'items', itemID, 'properties', k],
1163
+ v
1164
+ );
1165
+ });
1166
+
1167
+ return { updatedState: state };
1168
+ }
1169
+
1170
+ static updateJsProperties(state, layerID, itemID, properties) {
1171
+ return this.updateProperties(state, layerID, itemID, fromJS(properties));
1172
+ }
1173
+
1174
+ static setAttributes(state, layerID, itemID, itemAttributes) {
1175
+ state = state.mergeIn(
1176
+ ['scene', 'layers', layerID, 'items', itemID],
1177
+ itemAttributes
1178
+ );
1179
+ return { updatedState: state };
1180
+ }
1181
+
1182
+ static setJsAttributes(state, layerID, itemID, itemAttributes) {
1183
+ itemAttributes = fromJS(itemAttributes);
1184
+ return this.setAttributes(state, layerID, itemID, itemAttributes);
1185
+ }
1186
+
1187
+ static animateObject(state, value) {
1188
+ let { replacingSupport, scene } = state;
1189
+ let layerID = replacingSupport.get('layerID');
1190
+ let itemID = replacingSupport.get('itemID');
1191
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1192
+ if (item !== undefined) {
1193
+ let animCount = item.get('animate');
1194
+ item = item.merge({
1195
+ animValue: value,
1196
+ animate: animCount + 1
1197
+ });
1198
+
1199
+ state = state.merge({
1200
+ scene: scene.mergeIn(['layers', layerID, 'items', itemID], item)
1201
+ });
1202
+ state = state.merge({ mode: MODE_IDLE_3D });
1203
+ }
1204
+
1205
+ return { updatedState: state };
1206
+ }
1207
+
1208
+ static removeReplacingSupport(state) {
1209
+ state = state.merge({
1210
+ replacingSupport: new Map()
1211
+ });
1212
+ return { updatedState: state };
1213
+ }
1214
+
1215
+ static setInitialDoorStyle(state, doorStyle, oStyle) {
1216
+ if (doorStyle === undefined) {
1217
+ state = state.merge({
1218
+ oStyle: new Map({
1219
+ oStyle
1220
+ })
1221
+ });
1222
+ } else {
1223
+ state = state.merge({
1224
+ doorStyle: doorStyle,
1225
+ oStyle: new Map({
1226
+ oStyle
1227
+ })
1228
+ });
1229
+ let { scene } = state;
1230
+ let layerID = scene.get('selectedLayer');
1231
+ let layers = scene.layers.get(layerID);
1232
+ let items = layers.items;
1233
+ items.forEach(data => {
1234
+ {
1235
+ let itemID = data.id;
1236
+
1237
+ var tmpDS = {
1238
+ ...data.doorStyle,
1239
+ doorStyles: {
1240
+ ...data.doorStyle.doorStyles,
1241
+ counttop: doorStyle.doorStyles.counttop
1242
+ }
1243
+ };
1244
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1245
+ layers = layers.mergeIn(['items', itemID], data);
1246
+ state = state.merge({
1247
+ scene: scene.mergeIn(['layers', layerID], layers)
1248
+ });
1249
+ }
1250
+ });
1251
+ }
1252
+ return { updatedState: state };
1253
+ }
1254
+
1255
+ static setDoorStyle(state, doorStyle, pathes, isAll) {
1256
+ var keys = Object.keys(doorStyle.doorStyles);
1257
+ keys = keys.filter(elem => !elem.endsWith('_gltf'));
1258
+ var tmp = {};
1259
+ for (let x in keys) {
1260
+ tmp[keys[x]] = doorStyle.doorStyles[keys[x]];
1261
+ }
1262
+ state = state.setIn(
1263
+ ['scene', 'layers', state.scene.selectedLayer, 'doorStyle'],
1264
+ doorStyle
1265
+ );
1266
+ state = state.merge({
1267
+ doorStyle: doorStyle
1268
+ });
1269
+ let layerID = state.scene.get('selectedLayer');
1270
+ let temp_layer_molding = state.scene.getIn(['layers', layerID, 'molding']);
1271
+ temp_layer_molding = temp_layer_molding.filter(md =>
1272
+ doorStyle.doorStyles.cds.some(ds => md.itemID === ds.itemID)
1273
+ );
1274
+ state = state.setIn(
1275
+ ['scene', 'layers', layerID, 'molding'],
1276
+ temp_layer_molding
1277
+ );
1278
+ let itemIDs = state.scene.layers
1279
+ .getIn([layerID, 'selected', 'items'])
1280
+ .toJS();
1281
+
1282
+ let setDoorStyleOfItem = data => {
1283
+ if (data.category !== 'cabinet') return; //CDS should effect to cabinets
1284
+ let itemID = data.id;
1285
+ const curItem = state.getIn([
1286
+ 'scene',
1287
+ 'layers',
1288
+ layerID,
1289
+ 'items',
1290
+ itemID
1291
+ ]);
1292
+ const layer = state.getIn(['scene', 'layers', layerID]);
1293
+ let tmpMolding = [...curItem.molding];
1294
+ let temp_item_molding = [...curItem.molding];
1295
+ temp_item_molding = temp_item_molding.filter(md =>
1296
+ doorStyle.doorStyles.cds.some(ds => ds.itemID === md.itemID)
1297
+ );
1298
+ tmpMolding.forEach(md => {
1299
+ const itemGroup = MoldingUtils.getItemGroupFromMolding(
1300
+ layer,
1301
+ curItem,
1302
+ md
1303
+ );
1304
+ itemGroup.forEach(it => {
1305
+ state = state.setIn(
1306
+ ['scene', 'layers', layerID, 'items', it.id, 'molding'],
1307
+ temp_item_molding
1308
+ );
1309
+ });
1310
+ });
1311
+ var cds = doorStyle.doorStyles.cds.find(
1312
+ elem => elem.itemID === data.itemID
1313
+ );
1314
+ let euro_cds = [];
1315
+ if (cds !== undefined) {
1316
+ euro_cds = cds && cds.data.filter(element => element.is_euro_cds);
1317
+ }
1318
+ let cds_data;
1319
+ if (
1320
+ doorStyle.door_style_name === 'Euro & Frameless' &&
1321
+ euro_cds.length > 0
1322
+ ) {
1323
+ cds_data = cds
1324
+ ? { ...euro_cds[0], cabinet_door_style_id: cds.cabinet_door_style_id }
1325
+ : {};
1326
+ let newProperties = state.scene
1327
+ .getIn(['layers', layerID, 'items', itemID, 'properties'])
1328
+ .toJS();
1329
+ if (newProperties.hasOwnProperty('depth')) {
1330
+ if (!newProperties.hasOwnProperty('oldDepth')) {
1331
+ newProperties['oldDepth'] = new Map({
1332
+ length: newProperties.depth.length,
1333
+ _length: newProperties.depth._length,
1334
+ _unit: newProperties.depth._unit
1335
+ });
1336
+ }
1337
+ newProperties['depth'] = new Map({
1338
+ length: convert(euro_cds[0].euro_length).from('in').to('cm'),
1339
+ _length: euro_cds[0].euro_length,
1340
+ _unit: 'in'
1341
+ });
1342
+ }
1343
+ if (newProperties.hasOwnProperty('height')) {
1344
+ if (!newProperties.hasOwnProperty('oldHeight')) {
1345
+ newProperties['oldHeight'] = new Map({
1346
+ length: newProperties.height.length,
1347
+ _length: newProperties.height._length,
1348
+ _unit: newProperties.height._unit
1349
+ });
1350
+ }
1351
+ newProperties['height'] = new Map({
1352
+ length: convert(euro_cds[0].euro_height).from('in').to('cm'),
1353
+ _length: euro_cds[0].euro_height,
1354
+ _unit: 'in'
1355
+ });
1356
+ }
1357
+ if (newProperties.hasOwnProperty('width')) {
1358
+ if (!newProperties.hasOwnProperty('oldWidth')) {
1359
+ newProperties['oldWidth'] = new Map({
1360
+ length: newProperties.width.length,
1361
+ _length: newProperties.width._length,
1362
+ _unit: newProperties.width._unit
1363
+ });
1364
+ }
1365
+ newProperties['width'] = new Map({
1366
+ length: convert(euro_cds[0].euro_width).from('in').to('cm') - 10,
1367
+ _length: euro_cds[0].euro_width,
1368
+ _unit: 'in'
1369
+ });
1370
+ }
1371
+ state = this.setJsProperties(
1372
+ state,
1373
+ layerID,
1374
+ itemID,
1375
+ newProperties
1376
+ ).updatedState;
1377
+ } else {
1378
+ cds_data = cds
1379
+ ? { ...cds.data[0], cabinet_door_style_id: cds.cabinet_door_style_id }
1380
+ : {};
1381
+ let properties = state.scene
1382
+ .getIn(['layers', layerID, 'items', itemID, 'properties'])
1383
+ .toJS();
1384
+ if (properties.hasOwnProperty('oldDepth')) {
1385
+ properties['depth'] = new Map({
1386
+ length: properties.oldDepth.length,
1387
+ _length: properties.oldDepth._length,
1388
+ _unit: properties.oldDepth._unit
1389
+ });
1390
+ }
1391
+ if (properties.hasOwnProperty('oldHeight')) {
1392
+ properties['height'] = new Map({
1393
+ length: properties.oldHeight.length,
1394
+ _length: properties.oldHeight._length,
1395
+ _unit: properties.oldHeight._unit
1396
+ });
1397
+ }
1398
+ if (properties.hasOwnProperty('oldWidth')) {
1399
+ properties['width'] = new Map({
1400
+ length: properties.oldWidth.length,
1401
+ _length: properties.oldWidth._length,
1402
+ _unit: properties.oldWidth._unit
1403
+ });
1404
+ }
1405
+ state = this.setJsProperties(
1406
+ state,
1407
+ layerID,
1408
+ itemID,
1409
+ properties
1410
+ ).updatedState;
1411
+ }
1412
+ var tmpDS = {
1413
+ id: doorStyle.id,
1414
+ brightness: doorStyle.brightness,
1415
+ color: doorStyle.color,
1416
+ glossness: doorStyle.glossness,
1417
+ name: doorStyle.name,
1418
+ door_style_name: doorStyle.door_style_name,
1419
+ texture: doorStyle.texture,
1420
+ thumbnail: doorStyle.thumbnail,
1421
+ type: doorStyle.type,
1422
+ sku: doorStyle.sku,
1423
+ color_sku_alias: doorStyle.color_sku_alias, // alias name of color_sku for the current dealer
1424
+ install: getInstallationSuffix(
1425
+ INSTALLATION_SUFFIX_TYPE.NAME,
1426
+ doorStyle
1427
+ ),
1428
+ doorStyles: {
1429
+ ...tmp,
1430
+ ...cds_data
1431
+ }
1432
+ };
1433
+ state = state.mergeIn(
1434
+ ['scene', 'layers', layerID, 'items', itemID, 'doorStyle'],
1435
+ fromJS(tmpDS)
1436
+ );
1437
+ };
1438
+
1439
+ if (isAll) {
1440
+ let items = state.scene.layers.get(layerID).items;
1441
+ items.forEach(setDoorStyleOfItem);
1442
+ } else {
1443
+ if (itemIDs.length > 0) {
1444
+ for (let i = 0; i < itemIDs.length; i++) {
1445
+ let itemID = itemIDs[i];
1446
+ let items = state.scene.layers.get(layerID).items;
1447
+ items.forEach(data => {
1448
+ if (itemID === data.id) {
1449
+ setDoorStyleOfItem(data);
1450
+ }
1451
+ });
1452
+ }
1453
+ }
1454
+ }
1455
+ return { updatedState: state };
1456
+ }
1457
+ static setCounterTop(state, counterTop) {
1458
+ let { scene } = state;
1459
+ let layerID = scene.get('selectedLayer');
1460
+ let layers = scene.layers.get(layerID);
1461
+ layers = layers.mergeIn(['counterTop'], counterTop);
1462
+ state = state.merge({
1463
+ scene: scene.mergeIn(['layers', layerID], layers)
1464
+ });
1465
+ let items = layers.items;
1466
+ items.forEach(data => {
1467
+ {
1468
+ const dataJSON = data.toJS();
1469
+ let itemID = dataJSON.id;
1470
+ let newCounter = dataJSON.counterTop;
1471
+ newCounter = { ...newCounter, ...counterTop };
1472
+ data = data.mergeIn(['counterTop'], newCounter);
1473
+ layers = layers.mergeIn(['items', itemID], data);
1474
+ state = state.merge({
1475
+ scene: scene.mergeIn(['layers', layerID], layers)
1476
+ });
1477
+ }
1478
+ });
1479
+
1480
+ return { updatedState: state };
1481
+ }
1482
+
1483
+ static setItemsDoorHandle(state, scene, layer, layerID, elements_item) {
1484
+ elements_item.forEach(data => {
1485
+ let itemID = data.id;
1486
+ let item = this.updateDoorHandle(data, layer);
1487
+ layer = layer.mergeIn(['items', itemID], item);
1488
+ state = state.merge({
1489
+ scene: scene.mergeIn(['layers', layerID], layer)
1490
+ });
1491
+ });
1492
+ return { updatedState: state };
1493
+ }
1494
+
1495
+ static setDoorHandle(state, doorHandle) {
1496
+ let { scene } = state;
1497
+ let layerID = scene.get('selectedLayer');
1498
+ let layer = scene.layers.get(layerID);
1499
+
1500
+ layer = layer.mergeIn(['doorHandle'], doorHandle);
1501
+ state = state.merge({
1502
+ scene: scene.mergeIn(['layers', layerID], layer)
1503
+ });
1504
+
1505
+ let items = layer.items;
1506
+ let selectedItems = items.filter(element => element.selected === true); // find selected items (default 1 selected)
1507
+
1508
+ if (selectedItems.size === 0) {
1509
+ state = this.setItemsDoorHandle(
1510
+ state,
1511
+ scene,
1512
+ layer,
1513
+ layerID,
1514
+ items
1515
+ ).updatedState;
1516
+ } else {
1517
+ state = this.setItemsDoorHandle(
1518
+ state,
1519
+ scene,
1520
+ layer,
1521
+ layerID,
1522
+ selectedItems
1523
+ ).updatedState;
1524
+ }
1525
+ return { updatedState: state };
1526
+ }
1527
+ static setHandleMaterial(state, material) {
1528
+ let { scene } = state;
1529
+ let layerID = scene.get('selectedLayer');
1530
+ let layers = scene.layers.get(layerID);
1531
+ let items = layers.items;
1532
+ items.forEach(data => {
1533
+ const dataJSON = data.toJS();
1534
+ let itemID = dataJSON.id;
1535
+ var doorStyle = dataJSON.doorStyle;
1536
+ var tmpDS = {
1537
+ ...doorStyle,
1538
+ metalness: material.metalness,
1539
+ roughness: material.roughness
1540
+ };
1541
+ data = data.mergeIn(['doorStyle'], fromJS(tmpDS));
1542
+ layers = layers.mergeIn(['items', itemID], data);
1543
+ state = state.merge({
1544
+ scene: scene.mergeIn(['layers', layerID], layers)
1545
+ });
1546
+ });
1547
+ return { updatedState: state };
1548
+ }
1549
+
1550
+ static setWallColor(state, wallColor) {
1551
+ let { scene } = state;
1552
+ let layerID = scene.get('selectedLayer');
1553
+ let layer = scene.layers.get(layerID);
1554
+
1555
+ layer = layer.merge({ wallColor });
1556
+ state = state.merge({
1557
+ scene: scene.mergeIn(['layers', layerID], layer)
1558
+ });
1559
+
1560
+ let lines = layer.lines;
1561
+ lines.forEach(data => {
1562
+ const dataJSON = data.toJS();
1563
+ let lineID = dataJSON.id;
1564
+ data = data.mergeIn(['wallColor'], wallColor);
1565
+ layer = layer.mergeIn(['lines', lineID], data);
1566
+ state = state.merge({
1567
+ scene: scene.mergeIn(['layers', layerID], layer)
1568
+ });
1569
+ });
1570
+ return { updatedState: state };
1571
+ }
1572
+
1573
+ static setBacksplash(state, backsplash) {
1574
+ let { scene } = state;
1575
+ let layerID = scene.get('selectedLayer');
1576
+ let layer = scene.layers.get(layerID);
1577
+ const dataJSON = layer.toJS();
1578
+ let newBack = dataJSON.backsplash;
1579
+ let flag = true; // selected or not
1580
+ // if backsplash is already set
1581
+ if (layer.getIn(['backsplash']).uri === backsplash.uri) {
1582
+ // unselect
1583
+ newBack = { ...newBack, uri: '' };
1584
+ flag = false;
1585
+ }
1586
+ // else then, set backsplash
1587
+ else newBack = { ...newBack, ...backsplash };
1588
+ layer = layer.mergeIn(['backsplash'], newBack);
1589
+ layer = layer.set('backsplashApplied', flag);
1590
+ state = state.merge({
1591
+ scene: scene.mergeIn(['layers', layerID], layer)
1592
+ });
1593
+ return { updatedState: state };
1594
+ }
1595
+
1596
+ static setMolding(state, molding, isAll) {
1597
+ let { scene } = state;
1598
+ let layerID = scene.get('selectedLayer');
1599
+ let layer = scene.layers.get(layerID);
1600
+ if (isAll) {
1601
+ let tempLayerMolding = layer.molding;
1602
+ let flag = tempLayerMolding.some(mol => mol.name === molding.name);
1603
+ if (flag) {
1604
+ tempLayerMolding = tempLayerMolding.filter(
1605
+ mol => mol.name !== molding.name
1606
+ );
1607
+ } else {
1608
+ if (
1609
+ tempLayerMolding.some(
1610
+ mol =>
1611
+ mol.molding_type === molding.molding_type &&
1612
+ mol.location_type === molding.location_type
1613
+ )
1614
+ ) {
1615
+ tempLayerMolding = tempLayerMolding.filter(
1616
+ mol =>
1617
+ mol.molding_type !== molding.molding_type ||
1618
+ mol.location_type !== molding.location_type
1619
+ );
1620
+ }
1621
+ tempLayerMolding = tempLayerMolding.concat(molding);
1622
+ }
1623
+ layer = layer.set('molding', tempLayerMolding);
1624
+ state = state.merge({
1625
+ scene: scene.mergeIn(['layers', layerID], layer)
1626
+ });
1627
+ layer.items.toArray().forEach(item => {
1628
+ if (MoldingUtils.isEnableItemForMolding(layer, item, molding)) {
1629
+ let tempItemMolding = item.molding;
1630
+ if (flag) {
1631
+ if (tempItemMolding.some(mol => mol.name === molding.name)) {
1632
+ tempItemMolding = tempItemMolding.filter(
1633
+ mol => mol.name !== molding.name
1634
+ );
1635
+ }
1636
+ } else {
1637
+ if (
1638
+ tempItemMolding.some(
1639
+ mol =>
1640
+ mol.molding_type === molding.molding_type &&
1641
+ mol.location_type === molding.location_type
1642
+ )
1643
+ ) {
1644
+ tempItemMolding = tempItemMolding.filter(
1645
+ mol =>
1646
+ mol.molding_type !== molding.molding_type ||
1647
+ mol.location_type !== molding.location_type
1648
+ );
1649
+ }
1650
+ tempItemMolding = tempItemMolding.concat(molding);
1651
+ }
1652
+ state = state.setIn(
1653
+ ['scene', 'layers', layerID, 'items', item.id, 'molding'],
1654
+ tempItemMolding
1655
+ );
1656
+ }
1657
+ });
1658
+ } else {
1659
+ const selectedItem = layer.getIn([
1660
+ 'items',
1661
+ layer.selected.toJS().items[0]
1662
+ ]);
1663
+ if (MoldingUtils.isEnableItemForMolding(layer, selectedItem, molding)) {
1664
+ let moldingGroup = MoldingUtils.getItemGroupFromMolding(
1665
+ layer,
1666
+ selectedItem,
1667
+ molding
1668
+ );
1669
+ let tempSelItemMolding = selectedItem.molding;
1670
+ let flag = tempSelItemMolding.some(mol => mol.name === molding.name);
1671
+ moldingGroup.forEach(item => {
1672
+ let tempItemMolding = item.molding;
1673
+ if (flag) {
1674
+ if (tempItemMolding.some(mol => mol.name === molding.name)) {
1675
+ tempItemMolding = tempItemMolding.filter(
1676
+ mol => mol.name !== molding.name
1677
+ );
1678
+ }
1679
+ } else {
1680
+ if (
1681
+ tempItemMolding.some(
1682
+ mol =>
1683
+ mol.molding_type === molding.molding_type &&
1684
+ mol.location_type === molding.location_type
1685
+ )
1686
+ ) {
1687
+ tempItemMolding = tempItemMolding.filter(
1688
+ mol =>
1689
+ mol.molding_type !== molding.molding_type ||
1690
+ mol.location_type !== molding.location_type
1691
+ );
1692
+ }
1693
+ tempItemMolding = tempItemMolding.concat(molding);
1694
+ }
1695
+ state = state.setIn(
1696
+ ['scene', 'layers', layerID, 'items', item.id, 'molding'],
1697
+ tempItemMolding
1698
+ );
1699
+ });
1700
+ }
1701
+ }
1702
+ return { updatedState: state };
1703
+ }
1704
+
1705
+ static updateMolding(state) {
1706
+ const { scene } = state;
1707
+ const layerID = scene.get('selectedLayer');
1708
+ const layer = scene.layers.get(layerID);
1709
+ const selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
1710
+ let snappedItemGroup = []; // The array that include snapped items with selected item.
1711
+ if (!!selectedItem && selectedItem.category === 'cabinet') {
1712
+ let itemGroups = [];
1713
+ layer.items.toArray().forEach(curItem => {
1714
+ if (selectedItem.id !== curItem.id && curItem.category === 'cabinet') {
1715
+ if (MoldingUtils.isItemSnappedItem(selectedItem, curItem)) {
1716
+ snappedItemGroup.push(curItem); // add the snapped item.
1717
+ // add the snapped item that has same molding location type, layoutpos and height to itemGroups.
1718
+ if (curItem.molding.length) {
1719
+ curItem.molding.forEach(md => {
1720
+ // This code check whether the curItem can be grouped with selected Item in molding.
1721
+ if (
1722
+ MoldingUtils.tryMergeMDItem(
1723
+ layer,
1724
+ selectedItem,
1725
+ curItem,
1726
+ [selectedItem],
1727
+ md
1728
+ )
1729
+ ) {
1730
+ itemGroups.push({
1731
+ base_item: curItem,
1732
+ group: MoldingUtils.getItemGroupFromMolding(
1733
+ layer,
1734
+ curItem,
1735
+ md
1736
+ ),
1737
+ molding: md
1738
+ });
1739
+ }
1740
+ });
1741
+ }
1742
+ }
1743
+ }
1744
+ });
1745
+ const updateSelectItemMolding = () => {
1746
+ for (let i = 0; i < snappedItemGroup.length; i++) {
1747
+ // check whether snapped item is same as selected item in layoutpos(Wall, Tall, Base)
1748
+ if (
1749
+ MoldingUtils.isSameMoldingLayoutpos(
1750
+ selectedItem,
1751
+ snappedItemGroup[i]
1752
+ )
1753
+ ) {
1754
+ // check whether snapped item is same in location(same location type and height).
1755
+ let delMoldings = [];
1756
+ for (let k = 0; k < selectedItem.molding.length; k++) {
1757
+ if (
1758
+ MoldingUtils.isItemSameItemByLocation(
1759
+ selectedItem,
1760
+ snappedItemGroup[i],
1761
+ selectedItem.molding[k].location_type
1762
+ )
1763
+ ) {
1764
+ delMoldings.push(selectedItem.molding[k].itemID);
1765
+ }
1766
+ }
1767
+ let resultMol = [];
1768
+ selectedItem.molding.forEach(mol => {
1769
+ if (!delMoldings.some(id => id === mol.itemID)) {
1770
+ resultMol.push(mol);
1771
+ }
1772
+ });
1773
+ state = state.setIn(
1774
+ ['scene', 'layers', layerID, 'items', selectedItem.id, 'molding'],
1775
+ resultMol
1776
+ );
1777
+ }
1778
+ }
1779
+ };
1780
+ const emptyMoldingArray = () => {
1781
+ let temp_items = [selectedItem];
1782
+ let groupMoldings = [];
1783
+ itemGroups.forEach(itGroup => {
1784
+ groupMoldings.push(itGroup.molding);
1785
+ itGroup.group.forEach(it => {
1786
+ if (!temp_items.some(i => i.id === it.id)) {
1787
+ temp_items.push(it);
1788
+ }
1789
+ });
1790
+ });
1791
+ temp_items.forEach(item => {
1792
+ let finalMoldings = [];
1793
+ let tempMoldings = state.getIn([
1794
+ 'scene',
1795
+ 'layers',
1796
+ layerID,
1797
+ 'items',
1798
+ item.id,
1799
+ 'molding'
1800
+ ]);
1801
+ tempMoldings.forEach(molding => {
1802
+ if (!groupMoldings.some(ml => ml.itemID === molding.itemID)) {
1803
+ finalMoldings.push(molding);
1804
+ }
1805
+ });
1806
+ state = state.setIn(
1807
+ ['scene', 'layers', layerID, 'items', item.id, 'molding'],
1808
+ finalMoldings
1809
+ );
1810
+ });
1811
+ updateSelectItemMolding();
1812
+ };
1813
+ const setLocationMolding = location => {
1814
+ let locationMolding = itemGroups
1815
+ .filter(it => it.molding.location_type === location)
1816
+ .sort((a, b) => {
1817
+ if (a.group.length === b.group.length) {
1818
+ return (
1819
+ GeometryUtils.pointsDistance(
1820
+ a.base_item.x,
1821
+ a.base_item.y,
1822
+ selectedItem.x,
1823
+ selectedItem.y
1824
+ ) -
1825
+ GeometryUtils.pointsDistance(
1826
+ b.base_item.x,
1827
+ b.base_item.y,
1828
+ selectedItem.x,
1829
+ selectedItem.y
1830
+ )
1831
+ );
1832
+ } else {
1833
+ return a.group.length - b.group.length;
1834
+ }
1835
+ });
1836
+ if (locationMolding.length) {
1837
+ let locationMoldingItems = MoldingUtils.getItemGroupFromMolding(
1838
+ layer,
1839
+ selectedItem,
1840
+ locationMolding[0].molding
1841
+ );
1842
+ locationMoldingItems.forEach(item => {
1843
+ let tempMoldings = state.getIn([
1844
+ 'scene',
1845
+ 'layers',
1846
+ layerID,
1847
+ 'items',
1848
+ item.id,
1849
+ 'molding'
1850
+ ]);
1851
+ if (
1852
+ !tempMoldings.some(
1853
+ mol => mol.itemID === locationMolding[0].molding.itemID
1854
+ )
1855
+ )
1856
+ tempMoldings.push(locationMolding[0].molding);
1857
+ state = state.setIn(
1858
+ ['scene', 'layers', layerID, 'items', item.id, 'molding'],
1859
+ tempMoldings
1860
+ );
1861
+ });
1862
+ }
1863
+ };
1864
+ if (
1865
+ itemGroups.length &&
1866
+ layer.items.some(
1867
+ it =>
1868
+ MoldingUtils.isItemSnappedItem(selectedItem, it) &&
1869
+ it.category === 'cabinet'
1870
+ )
1871
+ ) {
1872
+ emptyMoldingArray();
1873
+ for (let i = 0; i < MOLDING_LOCATIONS.length; i++) {
1874
+ setLocationMolding(MOLDING_LOCATIONS[i]);
1875
+ }
1876
+ } else if (!itemGroups.length && selectedItem.molding.length) {
1877
+ // Delete the selected Item's molding property if selItem attached the group that has no molding.
1878
+ // If snapped items have no moldings and one item's property is same as selected Item, selected Item's molding should be deleted.
1879
+ updateSelectItemMolding();
1880
+ }
1881
+ }
1882
+ return { updatedState: state };
1883
+ }
1884
+
1885
+ static setBacksplashVisible(state, itemID, backsplashVisible) {
1886
+ let { scene } = state;
1887
+ let layerID = scene.get('selectedLayer');
1888
+ let layer = scene.layers.get(layerID);
1889
+ layer = layer.mergeIn(
1890
+ ['items', itemID, 'backsplashVisible'],
1891
+ backsplashVisible
1892
+ );
1893
+ // let cabinet_category = layer.getIn(["items"], itemID).toJS()[itemID].cabinet_category;
1894
+ // if (cabinet_category && (cabinet_category.search("Sink") !== -1 || cabinet_category.search("End/Angle") !== -1)) {
1895
+ // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], true);
1896
+ // } else {
1897
+ // layer = layer.mergeIn(["items", itemID, "backsplashVisible"], false);
1898
+ // }
1899
+ state = state.merge({
1900
+ scene: scene.mergeIn(['layers', layerID], layer)
1901
+ });
1902
+
1903
+ return { updatedState: state };
1904
+ }
1905
+ static setApplianceMaterial(state, material) {
1906
+ let { scene } = state;
1907
+ let layerID = scene.get('selectedLayer');
1908
+ let layers = scene.layers.get(layerID);
1909
+ let items = layers.items;
1910
+ items.forEach(data => {
1911
+ const dataJSON = data.toJS();
1912
+ let itemID = dataJSON.id;
1913
+ var newMaterial = {
1914
+ metalness: material.metalness,
1915
+ roughness: material.roughness
1916
+ };
1917
+ data = data.mergeIn(['applianceMaterial'], newMaterial);
1918
+ layers = layers.mergeIn(['items', itemID], data);
1919
+ state = state.merge({
1920
+ scene: scene.mergeIn(['layers', layerID], layers)
1921
+ });
1922
+ });
1923
+
1924
+ return { updatedState: state };
1925
+ }
1926
+
1927
+ static setModelling(state, molding) {
1928
+ let { scene } = state;
1929
+ let layerID = scene.get('selectedLayer');
1930
+ let layers = scene.layers.get(layerID);
1931
+ let items = layers.items;
1932
+ items.forEach(data => {
1933
+ const dataJSON = data.toJS();
1934
+ let itemID = dataJSON.id;
1935
+ });
1936
+ state = state.merge({
1937
+ scene: scene.mergeIn(['layers', layerID], layers)
1938
+ });
1939
+ return { updatedState: state };
1940
+ }
1941
+
1942
+ static updateItemsAltitude(state, layerID, itemID, value) {
1943
+ let item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
1944
+ let properties = item.get('properties');
1945
+ let altitude = properties.get('altitude');
1946
+ let length = altitude.get('length');
1947
+ let _length = altitude.get('_length');
1948
+ let _unit = altitude.get('_unit');
1949
+ length = length - value;
1950
+ switch (_unit) {
1951
+ case 'mm':
1952
+ _length = length * 10;
1953
+ break;
1954
+ case 'm':
1955
+ _length = length * 0.01;
1956
+ break;
1957
+ default:
1958
+ _length = length;
1959
+ }
1960
+ if (length <= 0) {
1961
+ length = 0;
1962
+ _length = 0;
1963
+ }
1964
+ state = state.mergeIn(
1965
+ ['scene', 'layers', layerID, 'items', itemID, 'properties', 'altitude'],
1966
+ new Map({
1967
+ length: length,
1968
+ _length: _length,
1969
+ _unit: _unit
1970
+ })
1971
+ );
1972
+ return { updatedState: state };
1973
+ }
1974
+
1975
+ static createHole(state, layerID, type, lineID, offset, properties) {
1976
+ let holeID = IDBroker.acquireID();
1977
+ let hole = state.catalog.factoryElement(
1978
+ type,
1979
+ {
1980
+ id: holeID,
1981
+ url: state.catalog.getIn(['elements', type, 'info', 'url']),
1982
+ type,
1983
+ offset,
1984
+ line: lineID
1985
+ },
1986
+ properties
1987
+ );
1988
+
1989
+ state = state.setIn(['scene', 'layers', layerID, 'holes', holeID], hole);
1990
+ state = state.updateIn(
1991
+ ['scene', 'layers', layerID, 'lines', lineID, 'holes'],
1992
+ holes => holes && holes.push(holeID)
1993
+ );
1994
+ // get vertex order/////
1995
+ let element = state.scene.layers.getIn([layerID, 'lines', lineID]);
1996
+ let layer = state.getIn(['scene', 'layers', layerID]);
1997
+ let vetName0 = element.vertices.get(0);
1998
+ let vetName1 = element.vertices.get(1);
1999
+ let verticesArray = [];
2000
+ layer.areas.forEach(data => {
2001
+ verticesArray.push(data.vertices.toJS());
2002
+ });
2003
+ for (let i = 0; i < verticesArray.length; i++) {
2004
+ let vertices = verticesArray[i];
2005
+ if (vertices.includes(vetName0) && vertices.includes(vetName1)) {
2006
+ let index0 = vertices.indexOf(vetName0);
2007
+ let index1 = vertices.indexOf(vetName1);
2008
+ // if vertex order chanege//
2009
+ if (index1 + 1 == index0) {
2010
+ return { updatedState: state, hole };
2011
+ }
2012
+ if (index0 == 0 && index1 == vertices.length - 1) {
2013
+ return { updatedState: state, hole };
2014
+ }
2015
+ // ////////////////////////
2016
+ }
2017
+ }
2018
+ // ///////////////////////////
2019
+ properties = hole.properties.toJS();
2020
+ if (properties.hasOwnProperty('flip_orizzontal')) {
2021
+ properties['flip_orizzontal'] = true;
2022
+ }
2023
+ if (properties.hasOwnProperty('flip_horizontal')) {
2024
+ properties['flip_horizontal'] = true;
2025
+ }
2026
+ state = Hole.setJsProperties(
2027
+ state,
2028
+ layerID,
2029
+ holeID,
2030
+ properties
2031
+ ).updatedState;
2032
+ return { updatedState: state, hole };
2033
+ }
2034
+
2035
+ static toggleLoadingCabinet(state) {
2036
+ let { scene } = state;
2037
+ console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
2038
+ // scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
2039
+ // state = state.set('scene', scene);
2040
+ state = state.setIn(['scene', 'isLoadingCabinet'], !scene.isLoadingCabinet);
2041
+ return { updatedState: state };
2042
+ }
2043
+ static endLoading(state) {
2044
+ let { scene } = state;
2045
+ state = state.setIn(['scene', 'loadFlag'], true);
2046
+ return { updatedState: state };
2047
+ }
2048
+ }
2049
+
2050
+ export { Item as default };