kitchen-simulator 1.1.1-test.49 → 1.1.1-test.50

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 (358) hide show
  1. package/es/@history.js +2 -0
  2. package/es/AppContext.js +3 -0
  3. package/es/KitchenConfigurator.js +645 -0
  4. package/es/KitchenConfiguratorApp.js +480 -0
  5. package/es/actions/area-actions.js +14 -0
  6. package/es/actions/export.js +23 -0
  7. package/es/actions/groups-actions.js +89 -0
  8. package/es/actions/holes-actions.js +119 -0
  9. package/es/actions/items-actions.js +313 -0
  10. package/es/actions/lines-actions.js +81 -0
  11. package/es/actions/project-actions.js +281 -0
  12. package/es/actions/scene-actions.js +33 -0
  13. package/es/actions/vertices-actions.js +27 -0
  14. package/es/actions/viewer2d-actions.js +58 -0
  15. package/es/actions/viewer3d-actions.js +23 -0
  16. package/es/catalog/areas/area/planner-element.js +40 -0
  17. package/es/catalog/areas/area/textures/ceramic-tile.jpg +0 -0
  18. package/es/catalog/areas/area/textures/grass.jpg +0 -0
  19. package/es/catalog/areas/area/textures/parquet.jpg +0 -0
  20. package/es/catalog/areas/area/textures/strand-porcelain.jpg +0 -0
  21. package/es/catalog/areas/area/textures/tile1.jpg +0 -0
  22. package/es/catalog/catalog.js +277 -0
  23. package/es/catalog/envMap/nx.hdr +0 -0
  24. package/es/catalog/envMap/ny.hdr +0 -0
  25. package/es/catalog/envMap/nz.hdr +0 -0
  26. package/es/catalog/envMap/px.hdr +0 -0
  27. package/es/catalog/envMap/py.hdr +0 -0
  28. package/es/catalog/envMap/pz.hdr +0 -0
  29. package/es/catalog/factories/area-factory-3d.js +181 -0
  30. package/es/catalog/factories/area-factory.js +81 -0
  31. package/es/catalog/factories/export.js +7 -0
  32. package/es/catalog/factories/wall-factory-3d.js +202 -0
  33. package/es/catalog/factories/wall-factory.js +268 -0
  34. package/es/catalog/holes/door-closet/planner-element.js +222 -0
  35. package/es/catalog/holes/door-double/door_double.png +0 -0
  36. package/es/catalog/holes/door-double/planner-element.js +315 -0
  37. package/es/catalog/holes/door-exterior/planner-element.js +215 -0
  38. package/es/catalog/holes/door-interior/planner-element.js +227 -0
  39. package/es/catalog/holes/door-panic/panicDoor.png +0 -0
  40. package/es/catalog/holes/door-panic/planner-element.js +503 -0
  41. package/es/catalog/holes/door-panic-double/panicDoorDouble.png +0 -0
  42. package/es/catalog/holes/door-panic-double/planner-element.js +463 -0
  43. package/es/catalog/holes/door-sliding/planner-element.js +225 -0
  44. package/es/catalog/holes/doorway-framed/planner-element.js +145 -0
  45. package/es/catalog/holes/doorway-frameless/planner-element.js +104 -0
  46. package/es/catalog/holes/export.js +13 -0
  47. package/es/catalog/holes/gate/gate.jpg +0 -0
  48. package/es/catalog/holes/window-clear/planner-element.js +166 -0
  49. package/es/catalog/holes/window-clear/texture.png +0 -0
  50. package/es/catalog/holes/window-cross/planner-element.js +165 -0
  51. package/es/catalog/holes/window-cross/texture.png +0 -0
  52. package/es/catalog/holes/window-double-hung/planner-element.js +303 -0
  53. package/es/catalog/holes/window-double-hung/texture.png +0 -0
  54. package/es/catalog/holes/window-vertical/planner-element.js +276 -0
  55. package/es/catalog/holes/window-vertical/texture.png +0 -0
  56. package/es/catalog/lines/wall/planner-element.js +70 -0
  57. package/es/catalog/lines/wall/textures/bricks-normal.jpg +0 -0
  58. package/es/catalog/lines/wall/textures/bricks-normal2.jpg +0 -0
  59. package/es/catalog/lines/wall/textures/bricks.jpg +0 -0
  60. package/es/catalog/lines/wall/textures/bricks2.jpg +0 -0
  61. package/es/catalog/lines/wall/textures/bricks3.jpg +0 -0
  62. package/es/catalog/lines/wall/textures/morden-normal.jpg +0 -0
  63. package/es/catalog/lines/wall/textures/morden.jpg +0 -0
  64. package/es/catalog/lines/wall/textures/painted-normal.jpg +0 -0
  65. package/es/catalog/lines/wall/textures/painted.jpg +0 -0
  66. package/es/catalog/lines/wall/textures/plaster-normal.jpg +0 -0
  67. package/es/catalog/lines/wall/textures/plaster.jpg +0 -0
  68. package/es/catalog/lines/wall/wall.png +0 -0
  69. package/es/catalog/molding/molding-dcm/planner-element.js +28 -0
  70. package/es/catalog/molding/molding-dcm/texture.png +0 -0
  71. package/es/catalog/molding/molding-fbm/planner-element.js +28 -0
  72. package/es/catalog/molding/molding-fbm/texture.png +0 -0
  73. package/es/catalog/molding/molding-lrm/planner-element.js +28 -0
  74. package/es/catalog/molding/molding-lrm/texture.png +0 -0
  75. package/es/catalog/properties/export.js +21 -0
  76. package/es/catalog/properties/property-checkbox.js +116 -0
  77. package/es/catalog/properties/property-color.js +39 -0
  78. package/es/catalog/properties/property-enum.js +97 -0
  79. package/es/catalog/properties/property-hidden.js +19 -0
  80. package/es/catalog/properties/property-lenght-measure.js +101 -0
  81. package/es/catalog/properties/property-length-measure.js +134 -0
  82. package/es/catalog/properties/property-length-measure_hole.js +101 -0
  83. package/es/catalog/properties/property-number.js +48 -0
  84. package/es/catalog/properties/property-read-only.js +26 -0
  85. package/es/catalog/properties/property-string.js +48 -0
  86. package/es/catalog/properties/property-toggle.js +39 -0
  87. package/es/catalog/properties/shared-property-style.js +14 -0
  88. package/es/catalog/utils/FuseUtils.js +82 -0
  89. package/es/catalog/utils/exporter.js +148 -0
  90. package/es/catalog/utils/geom-utils.js +189 -0
  91. package/es/catalog/utils/item-loader.js +1521 -0
  92. package/es/catalog/utils/load-obj.js +91 -0
  93. package/es/catalog/utils/mtl-loader.js +358 -0
  94. package/es/catalog/utils/obj-loader.js +477 -0
  95. package/es/class/FuseUtils.js +82 -0
  96. package/es/class/area.js +145 -0
  97. package/es/class/export.js +24 -0
  98. package/es/class/group.js +440 -0
  99. package/es/class/guide.js +62 -0
  100. package/es/class/hole.js +929 -0
  101. package/es/class/item.js +1883 -0
  102. package/es/class/layer.js +667 -0
  103. package/es/class/line.js +1180 -0
  104. package/es/class/project.js +793 -0
  105. package/es/class/vertex.js +202 -0
  106. package/es/components/content.js +107 -0
  107. package/es/components/disclaimer/disclaimer.js +97 -0
  108. package/es/components/export.js +9 -0
  109. package/es/components/style/button.js +113 -0
  110. package/es/components/style/cancel-button.js +22 -0
  111. package/es/components/style/content-container.js +33 -0
  112. package/es/components/style/content-title.js +29 -0
  113. package/es/components/style/delete-button.js +25 -0
  114. package/es/components/style/export.js +31 -0
  115. package/es/components/style/form-block.js +24 -0
  116. package/es/components/style/form-color-input.js +27 -0
  117. package/es/components/style/form-label.js +26 -0
  118. package/es/components/style/form-number-input.js +213 -0
  119. package/es/components/style/form-number-input_2.js +206 -0
  120. package/es/components/style/form-select.js +68 -0
  121. package/es/components/style/form-slider.js +61 -0
  122. package/es/components/style/form-submit-button.js +26 -0
  123. package/es/components/style/form-text-input.js +95 -0
  124. package/es/components/viewer2d/area.js +81 -0
  125. package/es/components/viewer2d/export.js +31 -0
  126. package/es/components/viewer2d/grids/grid-horizontal-streak.js +37 -0
  127. package/es/components/viewer2d/grids/grid-streak.js +37 -0
  128. package/es/components/viewer2d/grids/grid-vertical-streak.js +37 -0
  129. package/es/components/viewer2d/grids/grids.js +35 -0
  130. package/es/components/viewer2d/group.js +53 -0
  131. package/es/components/viewer2d/item.js +513 -0
  132. package/es/components/viewer2d/layer.js +164 -0
  133. package/es/components/viewer2d/line.js +882 -0
  134. package/es/components/viewer2d/ruler.js +100 -0
  135. package/es/components/viewer2d/rulerDist.js +146 -0
  136. package/es/components/viewer2d/rulerX.js +151 -0
  137. package/es/components/viewer2d/rulerY.js +153 -0
  138. package/es/components/viewer2d/scene.js +140 -0
  139. package/es/components/viewer2d/snap.js +74 -0
  140. package/es/components/viewer2d/state.js +78 -0
  141. package/es/components/viewer2d/utils.js +198 -0
  142. package/es/components/viewer2d/vertex.js +65 -0
  143. package/es/components/viewer2d/viewer2d.js +1398 -0
  144. package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +2592 -0
  145. package/es/components/viewer3d/dcm.js +401 -0
  146. package/es/components/viewer3d/fbm.js +414 -0
  147. package/es/components/viewer3d/front3D.js +66 -0
  148. package/es/components/viewer3d/grid-creator.js +25 -0
  149. package/es/components/viewer3d/grids/grid-horizontal-streak.js +36 -0
  150. package/es/components/viewer3d/grids/grid-streak.js +27 -0
  151. package/es/components/viewer3d/grids/grid-vertical-streak.js +36 -0
  152. package/es/components/viewer3d/libs/first-person-controls.js +67 -0
  153. package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1281 -0
  154. package/es/components/viewer3d/libs/mtl-loader.js +357 -0
  155. package/es/components/viewer3d/libs/obj-loader.js +462 -0
  156. package/es/components/viewer3d/libs/orbit-controls.js +699 -0
  157. package/es/components/viewer3d/libs/pointer-lock-controls.js +46 -0
  158. package/es/components/viewer3d/lrm.js +305 -0
  159. package/es/components/viewer3d/model.js +708 -0
  160. package/es/components/viewer3d/pointer-lock-navigation.js +115 -0
  161. package/es/components/viewer3d/ruler-utils/itemRect.js +61 -0
  162. package/es/components/viewer3d/ruler-utils/layer3D.js +495 -0
  163. package/es/components/viewer3d/ruler-utils/ruler3D.js +227 -0
  164. package/es/components/viewer3d/ruler-utils/scene3D.js +60 -0
  165. package/es/components/viewer3d/ruler-utils/state3D.js +18 -0
  166. package/es/components/viewer3d/scene-creator.js +3608 -0
  167. package/es/components/viewer3d/three-memory-cleaner.js +51 -0
  168. package/es/components/viewer3d/viewer3d-first-person.js +315 -0
  169. package/es/components/viewer3d/viewer3d.js +2527 -0
  170. package/es/constants.js +636 -0
  171. package/es/index.js +16 -0
  172. package/es/models.js +510 -0
  173. package/es/plugins/SVGLoader.js +1412 -0
  174. package/es/plugins/autosave.js +33 -0
  175. package/es/plugins/console-debugger.js +37 -0
  176. package/es/plugins/export.js +9 -0
  177. package/es/plugins/keyboard.js +101 -0
  178. package/es/reducers/areas-reducer.js +12 -0
  179. package/es/reducers/export.js +25 -0
  180. package/es/reducers/groups-reducer.js +38 -0
  181. package/es/reducers/holes-reducer.js +62 -0
  182. package/es/reducers/items-reducer.js +140 -0
  183. package/es/reducers/lines-reducer.js +45 -0
  184. package/es/reducers/project-reducer.js +129 -0
  185. package/es/reducers/reducer.js +19 -0
  186. package/es/reducers/scene-reducer.js +28 -0
  187. package/es/reducers/user-reducer.js +40 -0
  188. package/es/reducers/vertices-reducer.js +19 -0
  189. package/es/reducers/viewer2d-reducer.js +75 -0
  190. package/es/reducers/viewer3d-reducer.js +56 -0
  191. package/es/shared-style.js +66 -0
  192. package/es/styles/export.js +5 -0
  193. package/es/styles/tabs.css +40 -0
  194. package/es/translator/en.js +104 -0
  195. package/es/translator/it.js +79 -0
  196. package/es/translator/ru.js +79 -0
  197. package/es/translator/translator.js +84 -0
  198. package/es/utils/browser.js +33 -0
  199. package/es/utils/email-validator.js +4 -0
  200. package/es/utils/export.js +25 -0
  201. package/es/utils/geometry.js +2420 -0
  202. package/es/utils/get-edges-of-subgraphs.js +27 -0
  203. package/es/utils/graph-cycles.js +237 -0
  204. package/es/utils/graph-inner-cycles.js +46 -0
  205. package/es/utils/graph.js +150 -0
  206. package/es/utils/helper.js +268 -0
  207. package/es/utils/history.js +29 -0
  208. package/es/utils/id-broker.js +19 -0
  209. package/es/utils/logger.js +8 -0
  210. package/es/utils/math.js +50 -0
  211. package/es/utils/molding.js +871 -0
  212. package/es/utils/name-generator.js +18 -0
  213. package/es/utils/objects-utils.js +50 -0
  214. package/es/utils/phone-validator.js +4 -0
  215. package/es/utils/process-black-list.js +18 -0
  216. package/es/utils/react-if.js +18 -0
  217. package/es/utils/snap-scene.js +99 -0
  218. package/es/utils/snap.js +237 -0
  219. package/es/utils/summarizeCart.js +24 -0
  220. package/es/utils/threeCSG.es6.js +498 -0
  221. package/es/version.js +2 -0
  222. package/lib/catalog/properties/property-string.js +55 -0
  223. package/lib/catalog/properties/property-toggle.js +46 -0
  224. package/lib/catalog/properties/shared-property-style.js +20 -0
  225. package/lib/catalog/utils/FuseUtils.js +88 -0
  226. package/lib/catalog/utils/exporter.js +155 -0
  227. package/lib/catalog/utils/geom-utils.js +205 -0
  228. package/lib/catalog/utils/item-loader.js +1533 -0
  229. package/lib/catalog/utils/load-obj.js +99 -0
  230. package/lib/catalog/utils/mtl-loader.js +363 -0
  231. package/lib/catalog/utils/obj-loader.js +482 -0
  232. package/lib/class/FuseUtils.js +88 -0
  233. package/lib/class/area.js +150 -0
  234. package/lib/class/export.js +96 -0
  235. package/lib/class/group.js +445 -0
  236. package/lib/class/guide.js +67 -0
  237. package/lib/class/hole.js +934 -0
  238. package/lib/class/item.js +1889 -0
  239. package/lib/class/layer.js +672 -0
  240. package/lib/class/line.js +1186 -0
  241. package/lib/class/project.js +799 -0
  242. package/lib/class/vertex.js +207 -0
  243. package/lib/components/content.js +116 -0
  244. package/lib/components/disclaimer/disclaimer.js +105 -0
  245. package/lib/components/export.js +33 -0
  246. package/lib/components/style/button.js +120 -0
  247. package/lib/components/style/cancel-button.js +29 -0
  248. package/lib/components/style/content-container.js +40 -0
  249. package/lib/components/style/content-title.js +37 -0
  250. package/lib/components/style/delete-button.js +34 -0
  251. package/lib/components/style/export.js +121 -0
  252. package/lib/components/style/form-block.js +31 -0
  253. package/lib/components/style/form-color-input.js +34 -0
  254. package/lib/components/style/form-label.js +33 -0
  255. package/lib/components/style/form-number-input.js +220 -0
  256. package/lib/components/style/form-number-input_2.js +213 -0
  257. package/lib/components/style/form-select.js +75 -0
  258. package/lib/components/style/form-slider.js +68 -0
  259. package/lib/components/style/form-submit-button.js +35 -0
  260. package/lib/components/style/form-text-input.js +101 -0
  261. package/lib/components/viewer2d/area.js +88 -0
  262. package/lib/components/viewer2d/export.js +121 -0
  263. package/lib/components/viewer2d/grids/grid-horizontal-streak.js +44 -0
  264. package/lib/components/viewer2d/grids/grid-streak.js +44 -0
  265. package/lib/components/viewer2d/grids/grid-vertical-streak.js +44 -0
  266. package/lib/components/viewer2d/grids/grids.js +44 -0
  267. package/lib/components/viewer2d/group.js +62 -0
  268. package/lib/components/viewer2d/item.js +521 -0
  269. package/lib/components/viewer2d/layer.js +171 -0
  270. package/lib/components/viewer2d/line.js +892 -0
  271. package/lib/components/viewer2d/ruler.js +107 -0
  272. package/lib/components/viewer2d/rulerDist.js +153 -0
  273. package/lib/components/viewer2d/rulerX.js +158 -0
  274. package/lib/components/viewer2d/rulerY.js +160 -0
  275. package/lib/components/viewer2d/scene.js +147 -0
  276. package/lib/components/viewer2d/snap.js +83 -0
  277. package/lib/components/viewer2d/state.js +87 -0
  278. package/lib/components/viewer2d/utils.js +210 -0
  279. package/lib/components/viewer2d/vertex.js +74 -0
  280. package/lib/components/viewer2d/viewer2d.js +1405 -0
  281. package/lib/components/viewer3d/camera-controls-module/camera-controls.module.js +2597 -0
  282. package/lib/components/viewer3d/dcm.js +407 -0
  283. package/lib/components/viewer3d/fbm.js +420 -0
  284. package/lib/components/viewer3d/front3D.js +75 -0
  285. package/lib/components/viewer3d/grid-creator.js +34 -0
  286. package/lib/components/viewer3d/grids/grid-horizontal-streak.js +44 -0
  287. package/lib/components/viewer3d/grids/grid-streak.js +35 -0
  288. package/lib/components/viewer3d/grids/grid-vertical-streak.js +44 -0
  289. package/lib/components/viewer3d/libs/first-person-controls.js +74 -0
  290. package/lib/components/viewer3d/libs/helvetiker_regular.typeface.js +1287 -0
  291. package/lib/components/viewer3d/libs/mtl-loader.js +363 -0
  292. package/lib/components/viewer3d/libs/obj-loader.js +468 -0
  293. package/lib/components/viewer3d/libs/orbit-controls.js +705 -0
  294. package/lib/components/viewer3d/libs/pointer-lock-controls.js +52 -0
  295. package/lib/components/viewer3d/lrm.js +311 -0
  296. package/lib/components/viewer3d/model.js +714 -0
  297. package/lib/components/viewer3d/pointer-lock-navigation.js +122 -0
  298. package/lib/components/viewer3d/ruler-utils/itemRect.js +68 -0
  299. package/lib/components/viewer3d/ruler-utils/layer3D.js +502 -0
  300. package/lib/components/viewer3d/ruler-utils/ruler3D.js +234 -0
  301. package/lib/components/viewer3d/ruler-utils/scene3D.js +68 -0
  302. package/lib/components/viewer3d/ruler-utils/state3D.js +25 -0
  303. package/lib/components/viewer3d/scene-creator.js +3642 -0
  304. package/lib/components/viewer3d/three-memory-cleaner.js +60 -0
  305. package/lib/components/viewer3d/viewer3d-first-person.js +320 -0
  306. package/lib/components/viewer3d/viewer3d.js +2532 -0
  307. package/lib/constants.js +645 -0
  308. package/lib/index.js +96 -0
  309. package/lib/models.js +517 -0
  310. package/lib/plugins/SVGLoader.js +1417 -0
  311. package/lib/plugins/autosave.js +39 -0
  312. package/lib/plugins/console-debugger.js +44 -0
  313. package/lib/plugins/export.js +33 -0
  314. package/lib/plugins/keyboard.js +107 -0
  315. package/lib/reducers/areas-reducer.js +18 -0
  316. package/lib/reducers/export.js +97 -0
  317. package/lib/reducers/groups-reducer.js +44 -0
  318. package/lib/reducers/holes-reducer.js +68 -0
  319. package/lib/reducers/items-reducer.js +146 -0
  320. package/lib/reducers/lines-reducer.js +51 -0
  321. package/lib/reducers/project-reducer.js +135 -0
  322. package/lib/reducers/reducer.js +26 -0
  323. package/lib/reducers/scene-reducer.js +34 -0
  324. package/lib/reducers/user-reducer.js +46 -0
  325. package/lib/reducers/vertices-reducer.js +25 -0
  326. package/lib/reducers/viewer2d-reducer.js +82 -0
  327. package/lib/reducers/viewer3d-reducer.js +63 -0
  328. package/lib/shared-style.js +72 -0
  329. package/lib/styles/export.js +13 -0
  330. package/lib/translator/en.js +110 -0
  331. package/lib/translator/it.js +85 -0
  332. package/lib/translator/ru.js +85 -0
  333. package/lib/translator/translator.js +90 -0
  334. package/lib/utils/browser.js +40 -0
  335. package/lib/utils/email-validator.js +10 -0
  336. package/lib/utils/export.js +56 -0
  337. package/lib/utils/geometry.js +2516 -0
  338. package/lib/utils/get-edges-of-subgraphs.js +34 -0
  339. package/lib/utils/graph-cycles.js +240 -0
  340. package/lib/utils/graph-inner-cycles.js +54 -0
  341. package/lib/utils/graph.js +157 -0
  342. package/lib/utils/helper.js +291 -0
  343. package/lib/utils/history.js +36 -0
  344. package/lib/utils/id-broker.js +25 -0
  345. package/lib/utils/logger.js +14 -0
  346. package/lib/utils/math.js +57 -0
  347. package/lib/utils/molding.js +895 -0
  348. package/lib/utils/name-generator.js +23 -0
  349. package/lib/utils/objects-utils.js +60 -0
  350. package/lib/utils/phone-validator.js +10 -0
  351. package/lib/utils/process-black-list.js +24 -0
  352. package/lib/utils/react-if.js +24 -0
  353. package/lib/utils/snap-scene.js +105 -0
  354. package/lib/utils/snap.js +249 -0
  355. package/lib/utils/summarizeCart.js +30 -0
  356. package/lib/utils/threeCSG.es6.js +503 -0
  357. package/lib/version.js +8 -0
  358. package/package.json +3 -3
@@ -0,0 +1,513 @@
1
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
5
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
6
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
7
+ import React from 'react';
8
+ import { useState } from 'react';
9
+ import PropTypes from 'prop-types';
10
+ import If from "../../utils/react-if";
11
+ import RulerDist from "./rulerDist";
12
+ import convert from 'convert-units';
13
+ import { GeometryUtils } from "../../utils/export";
14
+ import { MODE_ROTATING_ITEM, SECONDARY_PURPLE_COLOR, STATUS_NEGATIVE_COLOR, BG_COLOR_1, STATUS_WARNING_COLOR, WALL_CABINET_LAYOUTPOS } from "../../constants";
15
+ import { returnReplaceableDeepSearchType } from "./utils";
16
+ var STYLE_LINE = {
17
+ fill: '#0096fd',
18
+ stroke: '#0096fd'
19
+ };
20
+ var STYLE_CIRCLE = {
21
+ fill: '#0096fd',
22
+ stroke: '#0096fd',
23
+ cursor: 'ew-resize'
24
+ };
25
+ var STYLE_CIRCLE2 = {
26
+ fill: 'none',
27
+ stroke: '#0096fd',
28
+ cursor: 'ew-resize'
29
+ };
30
+ export default function Item(_ref, _ref2) {
31
+ var layer = _ref.layer,
32
+ item = _ref.item,
33
+ scene = _ref.scene,
34
+ catalog = _ref.catalog,
35
+ mode = _ref.mode;
36
+ var itemsActions = _ref2.itemsActions;
37
+ var x = item.x,
38
+ y = item.y,
39
+ rotation = item.rotation;
40
+ var showBaseCabinetMeasure = scene.showBaseCabinetMeasure,
41
+ showWallCabinetMeasure = scene.showWallCabinetMeasure;
42
+ var vertices = layer.vertices;
43
+ var layerID = scene.selectedLayer;
44
+ var element = catalog.getElement(item.type);
45
+ var allLines;
46
+ var curiteminfo;
47
+ var allLineRects;
48
+ var allItemRect;
49
+ var width, height;
50
+ var _useState = useState(false),
51
+ _useState2 = _slicedToArray(_useState, 2),
52
+ clockRotateState = _useState2[0],
53
+ setClockRotateState = _useState2[1];
54
+ var _useState3 = useState(false),
55
+ _useState4 = _slicedToArray(_useState3, 2),
56
+ antiClockRotateState = _useState4[0],
57
+ setAntiClockRotateState = _useState4[1];
58
+ var val = {
59
+ pos: {
60
+ x: item.x,
61
+ y: item.y
62
+ },
63
+ rotRad: item.rotation / 180 * Math.PI
64
+ };
65
+ var tempWidth = item.properties.get('width');
66
+ var tempHeight = item.properties.get('depth');
67
+ if (tempWidth || tempHeight) {
68
+ width = convert(tempWidth.get('_length')).from(tempWidth.get('_unit')).to('cm');
69
+ height = convert(tempHeight.get('_length')).from(tempHeight.get('_unit')).to('cm');
70
+ } else {
71
+ width = convert(element.info.sizeinfo.width).from('in').to('cm');
72
+ height = convert(element.info.sizeinfo.depth).from('in').to('cm');
73
+ }
74
+ var angle = rotation + 90;
75
+ val.size = {
76
+ width: width,
77
+ height: height
78
+ };
79
+ function point(x, y) {
80
+ return {
81
+ x: x,
82
+ y: y
83
+ };
84
+ }
85
+ var buttons = [{
86
+ name: 'Edit',
87
+ thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
88
+ }, {
89
+ name: 'Info',
90
+ thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
91
+ }];
92
+ function getCalcRectFromItem(items) {
93
+ var x = items.pos.x;
94
+ var y = items.pos.y;
95
+ var w = items.size.width / 2;
96
+ var h = items.size.height / 2;
97
+ var rotRad = items.rotRad;
98
+ var mh = 3 * h / 4;
99
+ var mx = x - w * Math.cos(rotRad) - mh * Math.sin(rotRad);
100
+ var my = y - w * Math.sin(rotRad) + mh * Math.cos(rotRad);
101
+ var m2x = x + w * Math.cos(rotRad) - mh * Math.sin(rotRad);
102
+ var m2y = y + w * Math.sin(rotRad) + mh * Math.cos(rotRad);
103
+ var m3x = x - h * Math.sin(rotRad);
104
+ var m3y = y + h * Math.cos(rotRad);
105
+ var m1x = x + h * Math.sin(rotRad);
106
+ var m1y = y - h * Math.cos(rotRad);
107
+ var x0 = mx + h * Math.sin(rotRad);
108
+ var y0 = my - h * Math.cos(rotRad);
109
+ var x3 = mx * 2 - x0;
110
+ var y3 = my * 2 - y0;
111
+ var x1 = x * 2 - x3;
112
+ var y1 = y * 2 - y3;
113
+ var x2 = x * 2 - x0;
114
+ var y2 = y * 2 - y0;
115
+ return {
116
+ rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
117
+ };
118
+ }
119
+ function getAllItems() {
120
+ var rectarray = [];
121
+ var currentItem;
122
+ var selectedItem;
123
+ if (layer.selected.items.size > 0) {
124
+ selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
125
+ var catid = selectedItem.type;
126
+ var cat = catalog.elements[catid];
127
+ if (!cat) cat = catalog.elements[returnReplaceableDeepSearchType(catid)];
128
+ if (cat === undefined || cat === null) {
129
+ cat = catalog.getIn(['elements', catid]);
130
+ if (!cat) cat = catalog.getIn(['elements', returnReplaceableDeepSearchType(catid)]);
131
+ }
132
+ currentItem = {
133
+ selectedItem: selectedItem,
134
+ cat: cat
135
+ };
136
+ }
137
+ layer.items.forEach(function (item) {
138
+ var val = {
139
+ pos: {
140
+ x: item.x,
141
+ y: item.y
142
+ },
143
+ rotRad: item.rotation / 180 * Math.PI
144
+ };
145
+ var catid = item.type;
146
+ var cat = catalog.elements[catid];
147
+ if (!cat) cat = catalog.elements[returnReplaceableDeepSearchType(catid)];
148
+ var width = convert(item.properties.getIn(['width', '_length'])).from('in').to('cm');
149
+ var height = convert(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
150
+ // let width = cat.info.sizeinfo.width;
151
+ // let height = cat.info.sizeinfo.depth;
152
+ val.size = {
153
+ width: width,
154
+ height: height
155
+ };
156
+ var otherItem = {
157
+ item: item,
158
+ cat: cat
159
+ };
160
+
161
+ // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
162
+ // return;
163
+ // }
164
+
165
+ if (!item.selected) {
166
+ var _x = val.pos.x;
167
+ var _y = val.pos.y;
168
+ var rotRad = val.rotRad;
169
+ var w = val.size.width / 2;
170
+ var h = val.size.height / 2;
171
+ var mx = _x - w * Math.cos(rotRad);
172
+ var my = _y - w * Math.sin(rotRad);
173
+ var x0 = mx + h * Math.sin(rotRad);
174
+ var y0 = my - h * Math.cos(rotRad);
175
+ var x3 = mx * 2 - x0;
176
+ var y3 = my * 2 - y0;
177
+ var x1 = _x * 2 - x3;
178
+ var y1 = _y * 2 - y3;
179
+ var x2 = _x * 2 - x0;
180
+ var y2 = _y * 2 - y0;
181
+ rectarray.push({
182
+ rect: [point(x0, y0), point(x1, y1), point(x0, y0), point(x1, y1)]
183
+ });
184
+ rectarray.push({
185
+ rect: [point(x1, y1), point(x2, y2), point(x1, y1), point(x2, y2)]
186
+ });
187
+ rectarray.push({
188
+ rect: [point(x2, y2), point(x3, y3), point(x2, y2), point(x3, y3)]
189
+ });
190
+ rectarray.push({
191
+ rect: [point(x3, y3), point(x0, y0), point(x3, y3), point(x0, y0)]
192
+ });
193
+ }
194
+ });
195
+
196
+ // layer.holes.forEach(hole => {
197
+ // let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
198
+ // let catid = hole.type;
199
+ // let cat = catalog.elements[catid];
200
+ // let width = hole.properties.getIn(['width']).getIn(['length']);
201
+ // let height = hole.properties.getIn(['height']).getIn(['length']);
202
+ // val.size = {width, height};
203
+ // let otherItem = {
204
+ // hole,
205
+ // cat
206
+ // }
207
+
208
+ // // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
209
+ // // return;
210
+ // // }
211
+
212
+ // if (!hole.selected) {
213
+ // let x = val.pos.x;
214
+ // let y = val.pos.y;
215
+ // let rotRad = val.rotRad;
216
+ // let w = val.size.width / 2;
217
+ // let mx = x - w * Math.cos(rotRad);
218
+ // let my = y - w * Math.sin(rotRad);
219
+ // let kx = x + w * Math.cos(rotRad);
220
+ // let ky = y + w * Math.sin(rotRad);
221
+ // let x0 = mx - 10 * Math.sin(rotRad);
222
+ // let y0 = my + 10 * Math.cos(rotRad);
223
+ // let x3 = mx + 10 * Math.sin(rotRad);
224
+ // let y3 = my - 10 * Math.cos(rotRad);
225
+ // let x1 = kx - 10 * Math.sin(rotRad);
226
+ // let y1 = ky + 10 * Math.cos(rotRad);
227
+ // let x2 = kx + 10 * Math.sin(rotRad);
228
+ // let y2 = ky - 10 * Math.cos(rotRad);
229
+ // rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
230
+ // rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
231
+ // rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
232
+ // rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
233
+ // }
234
+ // });
235
+ return {
236
+ others: rectarray
237
+ };
238
+ }
239
+ allItemRect = getAllItems();
240
+ allLines = GeometryUtils.getAllLines(layer);
241
+ allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
242
+ var allRect = allLineRects.concat(allItemRect.others);
243
+ curiteminfo = getCalcRectFromItem(val);
244
+
245
+ /**
246
+ *
247
+ * @param x y position
248
+ * @param y x position
249
+ * @param rotRad item's rotation in radian
250
+ */
251
+ var getDistant = function getDistant(x, y, rotRad) {
252
+ var center_h = 3 * height / 8;
253
+ var center_x = x;
254
+ var center_y = y;
255
+ var center_x1 = x - center_h * Math.sin(rotRad);
256
+ var center_y1 = y + center_h * Math.cos(rotRad);
257
+ var PointArray = [];
258
+ curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
259
+ var comparelength = [];
260
+ var a;
261
+ var RectLineFuction;
262
+ if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
263
+ allRect.forEach(function (linerect) {
264
+ var p0 = GeometryUtils.clone_point(linerect.rect[2]);
265
+ var p1 = GeometryUtils.clone_point(linerect.rect[3]);
266
+ var lineFunction = {};
267
+ if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
268
+ var coordinatePoint = GeometryUtils.twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
269
+ if (coordinatePoint !== undefined) {
270
+ if (GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
271
+ if (GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
272
+ comparelength.push(GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
273
+ a = Math.min.apply(null, comparelength);
274
+ }
275
+ }
276
+ }
277
+ });
278
+ PointArray.push([a, centerpoint[1]]);
279
+ });
280
+ return {
281
+ PointArray: PointArray
282
+ };
283
+ };
284
+ var nw = width / 2;
285
+ var nh = height / 2;
286
+ var _getDistant = getDistant(x, y, val.rotRad),
287
+ PointArray = _getDistant.PointArray;
288
+ PointArray.forEach(function (pointElement, index) {
289
+ if (pointElement[0] == undefined) PointArray[index][0] = 0;
290
+ });
291
+ var renderedRuler = [];
292
+ var ep = 0.1;
293
+ if (item.selected) {
294
+ PointArray.forEach(function (element, key) {
295
+ var itemDistanceFromLine = element[0];
296
+ var length = itemDistanceFromLine;
297
+ if (itemDistanceFromLine > ep || itemDistanceFromLine < -ep) {
298
+ renderedRuler.push(/*#__PURE__*/React.createElement("g", {
299
+ "data-element-root": true,
300
+ "data-prototype": "rulerDist",
301
+ "data-id": item.id,
302
+ "data-selected": item.selected,
303
+ "data-layer": layer.id,
304
+ key: key,
305
+ "data-length": length,
306
+ "data-direct": element[1]
307
+ }, /*#__PURE__*/React.createElement(RulerDist, {
308
+ key: key,
309
+ layer: layer,
310
+ unit: scene.unit,
311
+ rulerUnit: scene.rulerUnit,
312
+ length: itemDistanceFromLine,
313
+ angle: rotation,
314
+ rotation: element[1],
315
+ transform: "translate(".concat(element[1] === 180 ? -nw : element[1] === 0 ? nw : 0, ", ").concat(element[1] === 90 ? nh : element[1] === -90 ? -nh : 3 * nh / 4, ") rotate(").concat(element[1], ", 0, 0)")
316
+ })));
317
+ }
318
+ });
319
+ }
320
+ var renderedItem = element.render2D.call(element, item, layer, scene);
321
+ var isSmall = false;
322
+ if (width < 40) isSmall = true;
323
+ var parts = [];
324
+ var warning_buttons = '';
325
+ var newWidth = item.toJS().properties.width.length;
326
+ if (item.toJS().doorStyle.doorStyles && item.toJS().doorStyle.doorStyles.cds && item.toJS().doorStyle.doorStyles.cds.filter(function (cd) {
327
+ return cd.itemID == item.getIn(['itemID']);
328
+ }).length === 0 && item.category === 'cabinet') warning_buttons = /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
329
+ id: "warning_info_2d",
330
+ style: {
331
+ transform: "translate(0px,20px)",
332
+ cursor: 'pointer'
333
+ },
334
+ onMouseEnter: function onMouseEnter(event) {
335
+ var bbox = event.target.getBoundingClientRect();
336
+ document.getElementById('warning_box_2d').style.display = 'flex';
337
+ document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
338
+ document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
339
+ },
340
+ onMouseLeave: function onMouseLeave() {
341
+ document.getElementById('warning_box_2d').style.display = 'none';
342
+ }
343
+ }, /*#__PURE__*/React.createElement("circle", {
344
+ cx: 0,
345
+ cy: 0,
346
+ r: 8,
347
+ fill: "white"
348
+ }), /*#__PURE__*/React.createElement("image", {
349
+ width: 15,
350
+ height: 15,
351
+ x: -7.5,
352
+ y: -7.5,
353
+ style: {
354
+ transform: "rotate(".concat(180 - item.rotation, "deg)")
355
+ },
356
+ href: buttons[1].thumbnail
357
+ })), /*#__PURE__*/React.createElement("g", {
358
+ style: {
359
+ cursor: 'pointer'
360
+ },
361
+ "data-element-root": true,
362
+ "data-prototype": item.prototype,
363
+ "data-id": item.id,
364
+ "data-selected": item.selected,
365
+ "data-layer": layer.id,
366
+ "data-part": "warning_edit"
367
+ }, /*#__PURE__*/React.createElement("circle", {
368
+ cx: 0,
369
+ cy: 0,
370
+ r: 8,
371
+ fill: "white"
372
+ }), /*#__PURE__*/React.createElement("image", {
373
+ width: 15,
374
+ height: 15,
375
+ x: -7.5,
376
+ y: -7.5,
377
+ style: {
378
+ transform: "rotate(".concat(90 - item.rotation, "deg)")
379
+ },
380
+ href: buttons[0].thumbnail
381
+ })));
382
+ if (item.selected) parts = [/*#__PURE__*/React.createElement("g", {
383
+ key: 0,
384
+ "data-element-root": true,
385
+ "data-prototype": item.prototype,
386
+ "data-id": item.id,
387
+ "data-selected": item.selected,
388
+ "data-layer": layer.id,
389
+ "data-part": "rotation-anchor",
390
+ style: {
391
+ cursor: 'w-resize'
392
+ }
393
+ }, /*#__PURE__*/React.createElement("image", {
394
+ href: clockRotateState ? '/assets/img/svg/rotate.png' : '/assets/img/svg/blank_div.svg',
395
+ style: {
396
+ transform: "scale(-1, -1) translate(".concat(width / 2, "px, ").concat(height / 2, "px) rotate(25deg)")
397
+ },
398
+ height: "20",
399
+ width: "20",
400
+ onMouseEnter: function onMouseEnter() {
401
+ setClockRotateState(true);
402
+ setAntiClockRotateState(false);
403
+ },
404
+ onMouseLeave: function onMouseLeave() {
405
+ return setClockRotateState(mode === MODE_ROTATING_ITEM ? true : false);
406
+ }
407
+ }), /*#__PURE__*/React.createElement("image", {
408
+ href: antiClockRotateState ? '/assets/img/svg/rotate.png' : '/assets/img/svg/blank_div.svg',
409
+ style: {
410
+ transform: "scale(1, -1) translate(".concat(width / 2, "px, ").concat(height / 2, "px) rotate(25deg)")
411
+ },
412
+ height: "20",
413
+ width: "20",
414
+ onMouseEnter: function onMouseEnter() {
415
+ setAntiClockRotateState(true);
416
+ setClockRotateState(false);
417
+ },
418
+ onMouseLeave: function onMouseLeave() {
419
+ return setAntiClockRotateState(mode === MODE_ROTATING_ITEM ? true : false);
420
+ }
421
+ })), /*#__PURE__*/React.createElement("g", {
422
+ key: 1
423
+ // transform={`translate(${-width / 2 - (!isSmall ? 40 : 0)},${height / 2 + 40})`}
424
+ ,
425
+ style: {
426
+ cursor: 'pointer',
427
+ transform: "rotate(".concat(360 - item.rotation, "deg) translate(").concat(-width / 2 - 27, "px, ", 0, "px)")
428
+ },
429
+ "data-element-root": true,
430
+ "data-prototype": item.prototype,
431
+ "data-id": item.id,
432
+ "data-selected": item.selected,
433
+ "data-layer": layer.id,
434
+ "data-part": "duplicate"
435
+ }, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("filter", {
436
+ id: "shadow"
437
+ }, /*#__PURE__*/React.createElement("feDropShadow", {
438
+ dx: "0",
439
+ dy: "0",
440
+ stdDeviation: "0.6"
441
+ }))), /*#__PURE__*/React.createElement("rect", {
442
+ rx: "4",
443
+ ry: "4",
444
+ height: "22",
445
+ width: "22",
446
+ fill: "white",
447
+ filter: "url(#shadow)"
448
+ }), /*#__PURE__*/React.createElement("image", {
449
+ href: "/assets/img/svg/duplicate.svg",
450
+ x: "3",
451
+ y: "-19",
452
+ height: "16",
453
+ width: "16",
454
+ style: {
455
+ transform: 'rotateX(180deg)'
456
+ }
457
+ })), /*#__PURE__*/React.createElement("g", {
458
+ key: 2
459
+ // transform={`translate(${-width / 2 - (!isSmall ? 40 : 0)},${height / 2})`}
460
+ ,
461
+ style: {
462
+ cursor: 'pointer',
463
+ transform: "rotate(".concat(360 - item.rotation, "deg) translate(").concat(-width / 2 - 27, "px, ").concat(-27, "px)")
464
+ },
465
+ "data-element-root": true,
466
+ "data-prototype": item.prototype,
467
+ "data-id": item.id,
468
+ "data-selected": item.selected,
469
+ "data-layer": layer.id,
470
+ "data-part": "remove"
471
+ }, /*#__PURE__*/React.createElement("rect", {
472
+ rx: "4",
473
+ ry: "4",
474
+ height: "22",
475
+ width: "22",
476
+ fill: "white",
477
+ filter: "url(#shadow)"
478
+ }), /*#__PURE__*/React.createElement("image", {
479
+ href: "/assets/img/svg/delete.svg",
480
+ x: "3",
481
+ y: "-19",
482
+ height: "16",
483
+ width: "16",
484
+ style: {
485
+ transform: 'rotateX(180deg)'
486
+ }
487
+ }))];
488
+ var measure = item.layoutpos === WALL_CABINET_LAYOUTPOS ? showWallCabinetMeasure : showBaseCabinetMeasure;
489
+ return /*#__PURE__*/React.createElement("g", {
490
+ "data-element-root": true,
491
+ "data-prototype": item.prototype,
492
+ "data-id": item.id,
493
+ "data-selected": item.selected,
494
+ "data-layer": layer.id,
495
+ style: item.selected ? {
496
+ cursor: 'move'
497
+ } : {}
498
+ }, renderedItem, /*#__PURE__*/React.createElement("g", {
499
+ transform: "translate(".concat(x, ",").concat(y, ") rotate(").concat(rotation, ")"),
500
+ style: {
501
+ cursor: 'initial'
502
+ }
503
+ }, measure ? renderedRuler : null, parts, warning_buttons));
504
+ }
505
+ Item.propTypes = {
506
+ item: PropTypes.object.isRequired,
507
+ layer: PropTypes.object.isRequired,
508
+ scene: PropTypes.object.isRequired,
509
+ catalog: PropTypes.object.isRequired
510
+ };
511
+ Item.contextTypes = {
512
+ itemsActions: PropTypes.object.isRequired
513
+ };
@@ -0,0 +1,164 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import { Line, Area, Vertex, Item, Group } from "./export";
4
+ import { GeometryUtils } from "../../utils/export";
5
+ import { MODE_DRAWING_LINE, WALL_CABINET_LAYOUTPOS } from "../../constants";
6
+ import { returnReplaceableDeepSearchType } from "./utils";
7
+ var STYLE = {
8
+ stroke: '#494949',
9
+ strokeWidth: 1,
10
+ strokeLinecap: 'round',
11
+ strokeLinejoin: 'round',
12
+ strokeMiterlimit: 2.613,
13
+ fill: '#D6F0EE'
14
+ };
15
+ var STYLE_TEXT = {
16
+ textAnchor: 'middle',
17
+ fontSize: 10,
18
+ fontFamily: "'Courier New', Courier, monospace",
19
+ fontWeight: 'bold',
20
+ fill: '#506ad3'
21
+ };
22
+ var HINT_STYLE_TEXT = {
23
+ textAnchor: 'middle',
24
+ fontSize: '10px',
25
+ fontFamily: "'Microsoft YaHei UI', Courier, monospace",
26
+ fontWeight: 'bold',
27
+ fill: '1a75ff'
28
+ };
29
+ export default function Layer(_ref) {
30
+ var layer = _ref.layer,
31
+ scene = _ref.scene,
32
+ catalog = _ref.catalog,
33
+ mode = _ref.mode,
34
+ state = _ref.state,
35
+ relatedLines = _ref.relatedLines;
36
+ var unit = scene.unit,
37
+ groups = scene.groups;
38
+ var lines = layer.lines,
39
+ areas = layer.areas,
40
+ vertices = layer.vertices,
41
+ holes = layer.holes,
42
+ layerID = layer.id,
43
+ items = layer.items,
44
+ opacity = layer.opacity;
45
+ var allLines;
46
+ var allLineRects;
47
+ allLines = GeometryUtils.getAllLines(layer);
48
+ allLineRects = GeometryUtils.buildRectFromLines(layer, allLines);
49
+ var hintVertex = {
50
+ x: 0,
51
+ y: 0
52
+ };
53
+ var angleVertexes = [];
54
+ vertices.valueSeq().forEach(function (vert) {
55
+ var vertexes = [vert];
56
+ lines.valueSeq().forEach(function (line) {
57
+ var vertex0 = layer.vertices.get(line.vertices.get(0));
58
+ var vertex1 = layer.vertices.get(line.vertices.get(1));
59
+ if (vertex0 === vert) vertexes.push(vertex1);
60
+ if (vertex1 === vert) vertexes.push(vertex0);
61
+ });
62
+ if (vertexes.length === 3) {
63
+ angleVertexes.push(vertexes);
64
+ }
65
+ hintVertex.x += vert.x;
66
+ hintVertex.y += vert.y;
67
+ });
68
+ hintVertex.x /= vertices.size;
69
+ hintVertex.y /= vertices.size;
70
+ var itemData = [];
71
+ var itemWall = [];
72
+ var itemSelected = [];
73
+ items = items.sort(function (a, b) {
74
+ return a.getIn(['properties', 'altitude', '_length']) - b.getIn(['properties', 'altitude', '_length']);
75
+ });
76
+ items.valueSeq().filter(function (a) {
77
+ return a.selected === true;
78
+ }).forEach(function (item) {
79
+ itemSelected.push(/*#__PURE__*/React.createElement(Item, {
80
+ key: item.id,
81
+ layer: layer,
82
+ item: item,
83
+ scene: scene,
84
+ catalog: catalog,
85
+ mode: mode
86
+ }));
87
+ });
88
+ items.valueSeq().forEach(function (item) {
89
+ if (item.layoutpos !== WALL_CABINET_LAYOUTPOS) {
90
+ if (catalog.elements.hasOwnProperty(item.type) || !catalog.elements[item.type] && !!catalog.elements[returnReplaceableDeepSearchType(item.type)]) itemData.push(/*#__PURE__*/React.createElement(Item, {
91
+ key: item.id,
92
+ layer: layer,
93
+ item: item,
94
+ scene: scene,
95
+ catalog: catalog
96
+ }));else {
97
+ console.log("Element ".concat(item.type, " does not exist in catalog."));
98
+ }
99
+ }
100
+ });
101
+ items.valueSeq().filter(function (a) {
102
+ return a.selected === false;
103
+ }).forEach(function (item) {
104
+ if (item.layoutpos === WALL_CABINET_LAYOUTPOS) {
105
+ if (catalog.elements.hasOwnProperty(item.type) || !catalog.elements[item.type] && !!catalog.elements[returnReplaceableDeepSearchType(item.type)]) itemWall.push(/*#__PURE__*/React.createElement(Item, {
106
+ key: item.id,
107
+ layer: layer,
108
+ item: item,
109
+ scene: scene,
110
+ catalog: catalog
111
+ }));else {
112
+ console.log("Element ".concat(item.type, " does not exist in catalog."));
113
+ }
114
+ }
115
+ });
116
+ var lineData = [];
117
+ lines.sort(function compare(a, b) {
118
+ return a.createdDateTime - b.createdDateTime;
119
+ }).valueSeq().forEach(function (line) {
120
+ lineData.push(/*#__PURE__*/React.createElement(Line, {
121
+ key: line.id,
122
+ layer: layer,
123
+ line: line,
124
+ scene: scene,
125
+ catalog: catalog,
126
+ state: state,
127
+ relatedLines: relatedLines
128
+ }));
129
+ });
130
+ return /*#__PURE__*/React.createElement("g", {
131
+ opacity: opacity
132
+ }, areas.valueSeq().map(function (area) {
133
+ return /*#__PURE__*/React.createElement(Area, {
134
+ key: area.id,
135
+ layer: layer,
136
+ area: area,
137
+ unit: unit,
138
+ catalog: catalog
139
+ });
140
+ }), lineData, itemData, itemWall, itemSelected, mode !== MODE_DRAWING_LINE && vertices.valueSeq().filter(function (v) {
141
+ return v.selected;
142
+ }).map(function (vertex) {
143
+ return /*#__PURE__*/React.createElement(Vertex, {
144
+ key: vertex.id,
145
+ layer: layer,
146
+ vertex: vertex
147
+ });
148
+ }), groups.valueSeq().filter(function (g) {
149
+ return g.hasIn(['elements', layerID]) && g.get('selected');
150
+ }).map(function (group) {
151
+ return /*#__PURE__*/React.createElement(Group, {
152
+ key: group.get('id'),
153
+ layer: layer,
154
+ group: group,
155
+ scene: scene,
156
+ catalog: catalog
157
+ });
158
+ }));
159
+ }
160
+ Layer.propTypes = {
161
+ layer: PropTypes.object.isRequired,
162
+ scene: PropTypes.object.isRequired,
163
+ catalog: PropTypes.object.isRequired
164
+ };