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,277 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
3
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ 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; } }
5
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
6
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
7
+ 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; }
8
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
9
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
10
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ import { PropertyColor, PropertyEnum, PropertyString, PropertyNumber, PropertyLengthMeasure, PropertyToggle, PropertyCheckbox, PropertyHidden, PropertyReadOnly } from "./properties/export";
14
+ import { UNIT_CENTIMETER, UNIT_INCH } from "../constants";
15
+ import { returnReplaceableDeepSearchType } from "../components/viewer2d/utils";
16
+ var Catalog = /*#__PURE__*/function () {
17
+ function Catalog() {
18
+ var unit = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : UNIT_CENTIMETER;
19
+ _classCallCheck(this, Catalog);
20
+ this.elements = {};
21
+ this.categories = {
22
+ root: {
23
+ name: 'root',
24
+ label: '/',
25
+ elements: [],
26
+ categories: []
27
+ }
28
+ };
29
+ this.propertyTypes = {};
30
+ this.unit = unit;
31
+ this.registerMultiplePropertyType([['color', PropertyColor, PropertyColor], ['enum', PropertyEnum, PropertyEnum], ['string', PropertyString, PropertyString], ['number', PropertyNumber, PropertyNumber], ['length-measure', PropertyLengthMeasure, PropertyLengthMeasure], ['toggle', PropertyToggle, PropertyToggle], ['checkbox', PropertyCheckbox, PropertyCheckbox], ['hidden', PropertyHidden, PropertyHidden], ['read-only', PropertyReadOnly, PropertyReadOnly]]);
32
+ }
33
+
34
+ /**
35
+ * @description Get catalog's element
36
+ * @param {string} type Element's type
37
+ * @return {?object} Element
38
+ */
39
+ return _createClass(Catalog, [{
40
+ key: "getElement",
41
+ value: function getElement(type) {
42
+ if (this.hasElement(type)) {
43
+ return this.elements[type];
44
+ } else {
45
+ var deepSearchType = returnReplaceableDeepSearchType(type);
46
+ var element = this.elements[deepSearchType];
47
+ if (element) return element;
48
+ if (!element) return false;
49
+ // console.log("getElement", this);
50
+ throw new Error("Element ".concat(type, " does not exist in catalog"));
51
+ }
52
+ }
53
+
54
+ /**
55
+ * @description Get catalog category
56
+ * @param {string} categoryName Name of category
57
+ * @return {object} Category
58
+ */
59
+ }, {
60
+ key: "getCategory",
61
+ value: function getCategory(categoryName) {
62
+ if (this.hasCategory(categoryName)) {
63
+ return this.categories[categoryName];
64
+ }
65
+ throw new Error("Category ".concat(categoryName, " does not exist in catalog"));
66
+ }
67
+
68
+ /**
69
+ * @description Return type of a specfied property
70
+ * @param {string} type Property type
71
+ * @return {?object} Property
72
+ */
73
+ }, {
74
+ key: "getPropertyType",
75
+ value: function getPropertyType(type) {
76
+ if (this.propertyTypes.hasOwnProperty(type)) {
77
+ return this.propertyTypes[type];
78
+ }
79
+ throw new Error("Element ".concat(type, " does not exist in catalog"));
80
+ }
81
+
82
+ /**
83
+ * @description Register a new element
84
+ * @param {object} json Element structure
85
+ * @return {void}
86
+ */
87
+ }, {
88
+ key: "registerElement",
89
+ value: function registerElement(json) {
90
+ json.properties = json.properties || {};
91
+ if (this.validateElement(json)) {
92
+ this.elements[json.name] = json;
93
+ this.categories.root.elements.push(this.elements[json.name]);
94
+ }
95
+ }
96
+
97
+ /**
98
+ * @description Register multiple elements
99
+ * @param {array} [elementArray] Array of elements
100
+ * @return {void}
101
+ */
102
+ }, {
103
+ key: "registerMultipleElements",
104
+ value: function registerMultipleElements(elementArray) {
105
+ var _this = this;
106
+ elementArray.forEach(function (el) {
107
+ return _this.registerElement(el);
108
+ });
109
+ }
110
+
111
+ /**
112
+ * @description Register a new property
113
+ * @param {string} type Type of property
114
+ * @param {object} Viewer Property viewer component
115
+ * @param {object} Editor Property editor component
116
+ * @return {void}
117
+ */
118
+ }, {
119
+ key: "registerPropertyType",
120
+ value: function registerPropertyType(type, Viewer, Editor) {
121
+ this.propertyTypes[type] = {
122
+ type: type,
123
+ Viewer: Viewer,
124
+ Editor: Editor
125
+ };
126
+ }
127
+
128
+ /**
129
+ * @description Register multiple property
130
+ * @param {array} propertyTypeArray Array of properties
131
+ * @return {void}
132
+ */
133
+ }, {
134
+ key: "registerMultiplePropertyType",
135
+ value: function registerMultiplePropertyType(propertyTypeArray) {
136
+ var _this2 = this;
137
+ propertyTypeArray.forEach(function (el) {
138
+ return _this2.registerPropertyType.apply(_this2, _toConsumableArray(el));
139
+ });
140
+ }
141
+
142
+ /**
143
+ * @description Validate an element
144
+ * @param {object} json Element's structure
145
+ * @return {?boolean}
146
+ */
147
+ }, {
148
+ key: "validateElement",
149
+ value: function validateElement(json) {
150
+ if (!json.hasOwnProperty('name')) throw new Error('Element not valid');
151
+ var name = json.name;
152
+ if (json.prototype.toLowerCase().includes('molding')) return true;
153
+ if (!json.hasOwnProperty('prototype')) throw new Error("Element ".concat(name, " doesn't have prototype"));
154
+ if (!json.hasOwnProperty('info')) throw new Error("Element ".concat(name, " doesn't have info"));
155
+ if (!json.info.hasOwnProperty('tag')) throw new Error("Element ".concat(name, " doesn't have tag"));
156
+ if (!json.info.hasOwnProperty('description')) throw new Error("Element ".concat(name, " doesn't have description"));
157
+ // if (!json.info.hasOwnProperty('image')) throw new Error(`Element ${name} doesn't have image`);
158
+
159
+ if (!json.hasOwnProperty('render2D')) throw new Error("Element ".concat(name, " doesn't have render2D handler"));
160
+ if (!json.hasOwnProperty('render3D')) throw new Error("Element ".concat(name, " doesn't have render3D handler"));
161
+ if (!json.hasOwnProperty('properties')) throw new Error("Element ".concat(name, " doesn't have properties"));
162
+ for (var propertyName in json.properties) {
163
+ var propertyConfigs = json.properties[propertyName];
164
+ if (!propertyConfigs.hasOwnProperty('type')) throw new Error("Element ".concat(name, ", Property ").concat(propertyName, " doesn't have type"));
165
+ if (!propertyConfigs.hasOwnProperty('defaultValue')) throw new Error("Element ".concat(name, ", Property ").concat(propertyName, " doesn't have defaultValue"));
166
+ }
167
+ return true;
168
+ }
169
+
170
+ /**
171
+ * @description Check if catalog has element
172
+ * @param {string} type Element's type
173
+ * @return {boolean}
174
+ */
175
+ }, {
176
+ key: "hasElement",
177
+ value: function hasElement(type) {
178
+ return this.elements.hasOwnProperty(type);
179
+ }
180
+
181
+ /**
182
+ * @description Register a new category
183
+ * @param {string} name Name of category
184
+ * @param {string} label Label of category
185
+ * @param {array} [childs] Category's childs
186
+ * @return {?object} Registered category
187
+ */
188
+ }, {
189
+ key: "registerCategory",
190
+ value: function registerCategory(name, label, childs) {
191
+ var _this3 = this;
192
+ if (this.validateCategory(name, label)) {
193
+ this.categories[name] = {
194
+ name: name,
195
+ label: label,
196
+ categories: [],
197
+ elements: []
198
+ };
199
+ this.categories.root.categories.push(this.categories[name]);
200
+ if (childs && childs.length) {
201
+ childs.forEach(function (el) {
202
+ return _this3.addToCategory(name, el);
203
+ });
204
+ }
205
+ return this.categories[name];
206
+ }
207
+ return null;
208
+ }
209
+
210
+ /**
211
+ * @description Add an element to the specified category
212
+ * @param {string} name Name of category
213
+ * @param {object} child Element's structure
214
+ * @return {?void}
215
+ */
216
+ }, {
217
+ key: "addToCategory",
218
+ value: function addToCategory(name, child) {
219
+ if (this.hasElement(child.name)) {
220
+ this.categories[name].elements.push(child);
221
+ this.categories.root.elements.splice(this.categories.root.elements.indexOf(child), 1);
222
+ } else if (this.hasCategory(child.name)) {
223
+ this.categories[name].categories.push(child);
224
+ this.categories.root.categories.splice(this.categories.root.categories.indexOf(child), 1);
225
+ } else {
226
+ throw new Error("child ".concat(child, " is either category nor element"));
227
+ }
228
+ }
229
+
230
+ /**
231
+ * @description Check if category contain element
232
+ * @param {string} categoryName Name of category
233
+ * @param {string} elementName Name of element
234
+ * @return {boolean}
235
+ */
236
+ }, {
237
+ key: "categoryHasElement",
238
+ value: function categoryHasElement(categoryName, elementName) {
239
+ return this.hasCategory(categoryName) && this.categories[categoryName].elements.some(function (el) {
240
+ return el.name === elementName;
241
+ });
242
+ }
243
+
244
+ /**
245
+ * @description Validate a category
246
+ * @param {string} name Name of category
247
+ * @param {string} label Label of category
248
+ * @return {?boolean}
249
+ */
250
+ }, {
251
+ key: "validateCategory",
252
+ value: function validateCategory(name, label) {
253
+ if (!name) {
254
+ throw new Error('Category has undefined name');
255
+ }
256
+ if (name === '') {
257
+ throw new Error('Category has empty name');
258
+ }
259
+ if (this.hasCategory(name)) {
260
+ throw new Error('Category has already been registered');
261
+ }
262
+ return true;
263
+ }
264
+
265
+ /**
266
+ * @description Verify if catalog already contain a category with specified name
267
+ * @param {string} categoryName Name of category
268
+ * @return {boolean}
269
+ */
270
+ }, {
271
+ key: "hasCategory",
272
+ value: function hasCategory(categoryName) {
273
+ return this.categories.hasOwnProperty(categoryName);
274
+ }
275
+ }]);
276
+ }();
277
+ export { Catalog as default };
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,181 @@
1
+ import * as Three from 'three';
2
+ import { Box3, Mesh, MeshBasicMaterial, MeshPhysicalMaterial, RepeatWrapping, Shape, TextureLoader, Vector2 } from 'three';
3
+ import * as SharedStyle from "../../shared-style";
4
+ import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
5
+ var params = {
6
+ envMap: 'HDR',
7
+ roughness: 0.9,
8
+ metalness: 0.8,
9
+ exposure: 1.0
10
+ // debug: false
11
+ };
12
+
13
+ /**
14
+ * Apply a texture to a wall face
15
+ * @param material: The material of the face
16
+ * @param texture: The texture to load
17
+ * @param length: The lenght of the face
18
+ * @param height: The height of the face
19
+ */
20
+ var applyTexture = function applyTexture(material, texture, length, height) {
21
+ var loader = new TextureLoader();
22
+ if (texture) {
23
+ material.map = loader.load(texture.uri);
24
+ material.map.colorSpace = Three.SRGBColorSpace;
25
+ material.needsUpdate = true;
26
+ material.map.wrapS = RepeatWrapping;
27
+ material.map.wrapT = RepeatWrapping;
28
+ material.map.repeat.set(length * texture.lengthRepeatScale, height * texture.heightRepeatScale);
29
+ if (texture.normal) {
30
+ material.normalMap = loader.load(texture.normal.uri);
31
+ material.normalScale = new Vector2(texture.normal.normalScaleX, texture.normal.normalScaleY);
32
+ material.normalMap.wrapS = RepeatWrapping;
33
+ material.normalMap.wrapT = RepeatWrapping;
34
+ material.normalMap.repeat.set(length * texture.normal.lengthRepeatScale, height * texture.normal.heightRepeatScale);
35
+ }
36
+ }
37
+ };
38
+
39
+ /**
40
+ * Function that assign UV coordinates to a geometry
41
+ * @param geometry
42
+ */
43
+ var assignUVs = function assignUVs(geometry) {
44
+ geometry.computeBoundingBox();
45
+ var _geometry$boundingBox = geometry.boundingBox,
46
+ min = _geometry$boundingBox.min,
47
+ max = _geometry$boundingBox.max;
48
+ var offset = new Vector2(0 - min.x, 0 - min.y);
49
+ var range = new Vector2(max.x - min.x, max.y - min.y);
50
+ var uvArray = [];
51
+ var position = geometry.attributes.position;
52
+ for (var i = 0; i < position.count; i += 3) {
53
+ var x1 = position.getX(i);
54
+ var y1 = position.getY(i);
55
+ var x2 = position.getX(i + 1);
56
+ var y2 = position.getY(i + 1);
57
+ var x3 = position.getX(i + 2);
58
+ var y3 = position.getY(i + 2);
59
+ uvArray.push((x1 + offset.x) / range.x, (y1 + offset.y) / range.y, (x2 + offset.x) / range.x, (y2 + offset.y) / range.y, (x3 + offset.x) / range.x, (y3 + offset.y) / range.y);
60
+ }
61
+ geometry.setAttribute('uv', new Three.BufferAttribute(new Float32Array(uvArray), 2));
62
+ geometry.needsUpdate = true;
63
+ };
64
+ export function createArea(element, layer, scene, textures) {
65
+ var vertices = [];
66
+ element.vertices.forEach(function (vertexID) {
67
+ vertices.push(layer.vertices.get(vertexID));
68
+ });
69
+ var texture = element.texture;
70
+ texture.lengthRepeatScale = 0.01;
71
+ texture.heightRepeatScale = 0.01;
72
+ var color = element.properties.get('patternColor');
73
+ if (element.selected) {
74
+ color = SharedStyle.AREA_MESH_COLOR.selected;
75
+ } else {
76
+ color = SharedStyle.AREA_MESH_COLOR.unselected;
77
+ }
78
+ if (texture.uri === undefined || texture.uri == '') {
79
+ texture.uri = layer.floorStyle.uri;
80
+ }
81
+ var shape = new Shape();
82
+ shape.moveTo(vertices[0].x, vertices[0].y);
83
+ for (var i = 1; i < vertices.length; i++) {
84
+ shape.lineTo(vertices[i].x, vertices[i].y);
85
+ }
86
+ function loadFloorENV() {
87
+ return new RGBELoader().load('/assets/Window.hdr', function (texture) {
88
+ texture.mapping = Three.EquirectangularReflectionMapping;
89
+ return texture;
90
+ });
91
+ }
92
+ var floorENV = loadFloorENV();
93
+ var loader = new TextureLoader();
94
+ var areaMaterial = new MeshPhysicalMaterial({
95
+ side: Three.DoubleSide,
96
+ metalness: texture.metalness,
97
+ roughness: 0.3,
98
+ envMap: floorENV,
99
+ envMapIntensity: 1.8,
100
+ specularIntensity: 0.4,
101
+ map: loader.load(texture.uri)
102
+ });
103
+
104
+ /* Create holes for the area */
105
+ element.holes.forEach(function (holeID) {
106
+ var holeCoords = [];
107
+ layer.getIn(['areas', holeID, 'vertices']).forEach(function (vertexID) {
108
+ var _layer$getIn = layer.getIn(['vertices', vertexID]),
109
+ x = _layer$getIn.x,
110
+ y = _layer$getIn.y;
111
+ holeCoords.push([x, y]);
112
+ });
113
+ holeCoords = holeCoords.reverse();
114
+ var holeShape = createShape(holeCoords);
115
+ shape.holes.push(holeShape);
116
+ });
117
+
118
+ // This is extrude floor mesh
119
+
120
+ var extrudeSettings = {
121
+ depth: -3,
122
+ bevelEnabled: false
123
+ };
124
+ var shapeGeometry = new Three.ExtrudeGeometry(shape, extrudeSettings);
125
+ assignUVs(shapeGeometry);
126
+ var boundingBox = new Box3().setFromObject(new Mesh(shapeGeometry, new MeshBasicMaterial()));
127
+ var width = boundingBox.max.x - boundingBox.min.x;
128
+ var height = boundingBox.max.y - boundingBox.min.y;
129
+ var texture_unit = 70 * 2.54; // 70 inch
130
+
131
+ applyTexture(areaMaterial, texture, width / texture_unit * 100, height / texture_unit * 100);
132
+ var area = new Mesh(shapeGeometry, areaMaterial);
133
+ area.rotation.x -= Math.PI / 2;
134
+ area.receiveShadow = true;
135
+ area.name = 'floor';
136
+ // This mesh is use for creating ceiling mesh
137
+
138
+ var shapeGeometry2 = new Three.ShapeGeometry(shape);
139
+ var area2 = new Mesh(shapeGeometry2, new MeshBasicMaterial({
140
+ transparent: true,
141
+ opacity: 0.0
142
+ }));
143
+ area2.castShadow = true;
144
+ area2.rotation.x -= Math.PI / 2;
145
+ area2.receiveShadow = true;
146
+ area2.name = 'floorSupport';
147
+ var floorSupport = area2.clone();
148
+ area.userData.floorSupport = floorSupport;
149
+ return Promise.resolve(area);
150
+ }
151
+ export function updatedArea(element, layer, scene, textures, mesh, oldElement, differences, selfDestroy, selfBuild) {
152
+ var noPerf = function noPerf() {
153
+ selfDestroy();
154
+ return selfBuild();
155
+ };
156
+ var floor = mesh.getObjectByName('floor');
157
+ floor.receiveShadow = true;
158
+ if (differences[0] == 'selected') {
159
+ var color = element.selected ? SharedStyle.AREA_MESH_COLOR.selected : SharedStyle.AREA_MESH_COLOR.unselected;
160
+ floor.material.color.set(color);
161
+ } else if (differences[0] == 'properties') {
162
+ if (differences[1] === 'texture') {
163
+ return noPerf();
164
+ }
165
+ } else return noPerf();
166
+ return Promise.resolve(mesh);
167
+ }
168
+
169
+ /**
170
+ * This function will create a shape given a list of coordinates
171
+ * @param shapeCoords
172
+ * @returns {Shape}
173
+ */
174
+ var createShape = function createShape(shapeCoords) {
175
+ var shape = new Shape();
176
+ shape.moveTo(shapeCoords[0][0], shapeCoords[0][1]);
177
+ for (var i = 1; i < shapeCoords.length; i++) {
178
+ shape.lineTo(shapeCoords[i][0], shapeCoords[i][1]);
179
+ }
180
+ return shape;
181
+ };
@@ -0,0 +1,81 @@
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
4
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
6
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
7
+ import React from 'react';
8
+ import { createArea, updatedArea } from "./area-factory-3d";
9
+ import * as SharedStyle from "../../shared-style";
10
+ import Translator from "../../translator/translator";
11
+ var translator = new Translator();
12
+ export default function AreaFactory(name, info, textures) {
13
+ var areaElement = {
14
+ name: name,
15
+ prototype: 'areas',
16
+ info: _objectSpread(_objectSpread({}, info), {}, {
17
+ visibility: {
18
+ catalog: false,
19
+ layerElementsVisible: false
20
+ }
21
+ }),
22
+ properties: {
23
+ patternColor: {
24
+ label: translator.t('color'),
25
+ type: 'color',
26
+ defaultValue: 'rgba(175, 175, 175)'
27
+ },
28
+ thickness: {
29
+ label: translator.t('thickness'),
30
+ type: 'length-measure',
31
+ defaultValue: {
32
+ length: 0
33
+ }
34
+ }
35
+ },
36
+ render2D: function render2D(element, layer, scene) {
37
+ var path = '';
38
+
39
+ ///print area path
40
+ element.vertices.forEach(function (vertexID, ind) {
41
+ var vertex = layer.vertices.get(vertexID);
42
+ path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' ';
43
+ });
44
+
45
+ //add holes
46
+ element.holes.forEach(function (areaID) {
47
+ var area = layer.areas.get(areaID);
48
+ area.vertices.reverse().forEach(function (vertexID, ind) {
49
+ var vertex = layer.vertices.get(vertexID);
50
+ path += (ind ? 'L' : 'M') + vertex.x + ' ' + vertex.y + ' ';
51
+ });
52
+ });
53
+ var fill = element.selected ? SharedStyle.AREA_MESH_COLOR.selected : SharedStyle.AREA_MESH_COLOR.unselected;
54
+ return /*#__PURE__*/React.createElement("path", {
55
+ d: path,
56
+ fill: fill
57
+ });
58
+ },
59
+ render3D: function render3D(element, layer, scene) {
60
+ return createArea(element, layer, scene, textures);
61
+ },
62
+ updateRender3D: function updateRender3D(element, layer, scene, mesh, oldElement, differences, selfDestroy, selfBuild) {
63
+ return updatedArea(element, layer, scene, textures, mesh, oldElement, differences, selfDestroy, selfBuild);
64
+ }
65
+ };
66
+ if (textures && textures !== {}) {
67
+ var textureValues = {
68
+ none: 'None'
69
+ };
70
+ for (var textureName in textures) {
71
+ textureValues[textureName] = textures[textureName].name;
72
+ }
73
+ areaElement.properties.texture = {
74
+ label: translator.t('texture'),
75
+ type: 'enum',
76
+ defaultValue: 'none',
77
+ values: textureValues
78
+ };
79
+ }
80
+ return areaElement;
81
+ }
@@ -0,0 +1,7 @@
1
+ import WallFactory from "./wall-factory";
2
+ import AreaFactory from "./area-factory";
3
+ export { WallFactory, AreaFactory };
4
+ export default {
5
+ WallFactory: WallFactory,
6
+ AreaFactory: AreaFactory
7
+ };