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,145 @@
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
6
+ 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); } }
7
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
8
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
9
+ 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); }
10
+ import { fromJS } from 'immutable';
11
+ import { Group, Layer, Vertex } from "./export";
12
+ import { IDBroker, NameGenerator } from "../utils/export";
13
+ var Area = /*#__PURE__*/function () {
14
+ function Area() {
15
+ _classCallCheck(this, Area);
16
+ }
17
+ return _createClass(Area, null, [{
18
+ key: "add",
19
+ value: function add(state, layerID, type, verticesCoords, catalog) {
20
+ var area;
21
+ var layer = state.getIn(['scene', 'layers', layerID]);
22
+ var areaID;
23
+ areaID = IDBroker.acquireID();
24
+ var vertices = verticesCoords.map(function (v) {
25
+ var retVal = Vertex.add(state, layerID, v.x, v.y, 'areas', areaID);
26
+ state = retVal.updatedState;
27
+ return retVal.vertex.id;
28
+ });
29
+ area = catalog.factoryElement(type, {
30
+ id: areaID,
31
+ name: NameGenerator.generateName('areas', catalog.getIn(['elements', type, 'info', 'title'])),
32
+ type: type,
33
+ prototype: 'areas',
34
+ vertices: vertices
35
+ });
36
+ state = state.setIn(['scene', 'layers', layerID, 'areas', areaID], area);
37
+ // set default texture//
38
+ var properties = area.properties;
39
+ var JsProperty = properties.toJS();
40
+ JsProperty.texture = 'parquet'; // set parquet as default texture
41
+ state = this.setJsProperties(state, layerID, areaID, JsProperty).updatedState;
42
+ // /////////////////////
43
+ return {
44
+ updatedState: state,
45
+ area: area
46
+ };
47
+ }
48
+ }, {
49
+ key: "select",
50
+ value: function select(state, layerID, areaID) {
51
+ state = Layer.select(state, layerID).updatedState;
52
+ state = Layer.selectElement(state, layerID, 'areas', areaID).updatedState;
53
+ return {
54
+ updatedState: state
55
+ };
56
+ }
57
+ }, {
58
+ key: "remove",
59
+ value: function remove(state, layerID, areaID) {
60
+ var area = state.getIn(['scene', 'layers', layerID, 'areas', areaID]);
61
+ if (area.get('selected') === true) state = this.unselect(state, layerID, areaID).updatedState;
62
+ area.vertices.forEach(function (vertexID) {
63
+ state = Vertex.remove(state, layerID, vertexID, 'areas', areaID).updatedState;
64
+ });
65
+ state = state.deleteIn(['scene', 'layers', layerID, 'areas', areaID]);
66
+ state.getIn(['scene', 'groups']).forEach(function (group) {
67
+ return state = Group.removeElement(state, group.id, layerID, 'areas', areaID).updatedState;
68
+ });
69
+ return {
70
+ updatedState: state
71
+ };
72
+ }
73
+ }, {
74
+ key: "unselect",
75
+ value: function unselect(state, layerID, areaID) {
76
+ state = Layer.unselect(state, layerID, 'areas', areaID).updatedState;
77
+ return {
78
+ updatedState: state
79
+ };
80
+ }
81
+ }, {
82
+ key: "setProperties",
83
+ value: function setProperties(state, layerID, areaID, properties) {
84
+ state = state.mergeIn(['scene', 'layers', layerID, 'areas', areaID, 'properties'], properties);
85
+ return {
86
+ updatedState: state
87
+ };
88
+ }
89
+ }, {
90
+ key: "setFloorStyles",
91
+ value: function setFloorStyles(state, texture) {
92
+ var _state = state,
93
+ scene = _state.scene;
94
+ var layerID = scene.get('selectedLayer');
95
+ var layer = scene.layers.get(layerID);
96
+ layer = layer.mergeIn(['floorStyle'], texture);
97
+ state = state.merge({
98
+ scene: scene.mergeIn(['layers', layerID], layer)
99
+ });
100
+ var areas = layer.areas;
101
+ areas.forEach(function (data) {
102
+ var dataJSON = data.toJS();
103
+ var id = dataJSON.id;
104
+ var newTex = dataJSON.texture;
105
+ newTex = _objectSpread(_objectSpread({}, newTex), texture);
106
+ data = data.mergeIn(['texture'], newTex);
107
+ layer = layer.mergeIn(['areas', id], data);
108
+ state = state.merge({
109
+ scene: scene.mergeIn(['layers', layerID], layer)
110
+ });
111
+ });
112
+ return {
113
+ updatedState: state
114
+ };
115
+ }
116
+ }, {
117
+ key: "setJsProperties",
118
+ value: function setJsProperties(state, layerID, areaID, properties) {
119
+ return this.setProperties(state, layerID, areaID, fromJS(properties));
120
+ }
121
+ }, {
122
+ key: "updateProperties",
123
+ value: function updateProperties(state, layerID, areaID, properties) {
124
+ properties.forEach(function (v, k) {
125
+ if (state.hasIn(['scene', 'layers', layerID, 'areas', areaID, 'properties', k])) state = state.mergeIn(['scene', 'layers', layerID, 'areas', areaID, 'properties', k], v);
126
+ });
127
+ return {
128
+ updatedState: state
129
+ };
130
+ }
131
+ }, {
132
+ key: "updateJsProperties",
133
+ value: function updateJsProperties(state, layerID, areaID, properties) {
134
+ return this.updateProperties(state, layerID, areaID, fromJS(properties));
135
+ }
136
+ }, {
137
+ key: "setAttributes",
138
+ value: function setAttributes(state) {
139
+ return {
140
+ updatedState: state
141
+ };
142
+ }
143
+ }]);
144
+ }();
145
+ export { Area as default };
@@ -0,0 +1,24 @@
1
+ import Project from "./project";
2
+ import Group from "./group";
3
+ import Layer from "./layer";
4
+ import Line from "./line";
5
+ import Hole from "./hole";
6
+ import Vertex from "./vertex";
7
+ import Area from "./area";
8
+ import Item from "./item";
9
+ import FuseUtils from "./FuseUtils";
10
+ import { HorizontalGuide, VerticalGuide } from "./guide";
11
+ export { Project, Group, FuseUtils, Layer, Line, Hole, Vertex, Area, Item, HorizontalGuide, VerticalGuide };
12
+ export default {
13
+ Project: Project,
14
+ Group: Group,
15
+ FuseUtils: FuseUtils,
16
+ Layer: Layer,
17
+ Line: Line,
18
+ Hole: Hole,
19
+ Vertex: Vertex,
20
+ Area: Area,
21
+ Item: Item,
22
+ HorizontalGuide: HorizontalGuide,
23
+ VerticalGuide: VerticalGuide
24
+ };
@@ -0,0 +1,440 @@
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 _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ 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."); }
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 _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; }
6
+ 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; } }
7
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
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 { Area, Hole, Item, Layer, Line, Project, Vertex } from "./export";
14
+ import { List, Map } from 'immutable';
15
+ import { Group as GroupModel } from "../models";
16
+ import { GeometryUtils, IDBroker } from "../utils/export";
17
+ var Group = /*#__PURE__*/function () {
18
+ function Group() {
19
+ _classCallCheck(this, Group);
20
+ }
21
+ return _createClass(Group, null, [{
22
+ key: "select",
23
+ value: function select(state, groupID) {
24
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
25
+ state = Project.setAlterate(state).updatedState;
26
+ layerList.entrySeq().forEach(function (_ref) {
27
+ var _ref2 = _slicedToArray(_ref, 2),
28
+ groupLayerID = _ref2[0],
29
+ groupLayerElements = _ref2[1];
30
+ state = Layer.unselectAll(state, groupLayerID).updatedState;
31
+ var lines = groupLayerElements.get('lines');
32
+ var holes = groupLayerElements.get('holes');
33
+ var items = groupLayerElements.get('items');
34
+ var areas = groupLayerElements.get('areas');
35
+ if (lines) lines.forEach(function (lineID) {
36
+ state = Line.select(state, groupLayerID, lineID).updatedState;
37
+ });
38
+ if (holes) holes.forEach(function (holeID) {
39
+ state = Hole.select(state, groupLayerID, holeID).updatedState;
40
+ });
41
+ if (items) items.forEach(function (itemID) {
42
+ state = Item.select(state, groupLayerID, itemID).updatedState;
43
+ });
44
+ if (areas) areas.forEach(function (areaID) {
45
+ state = Area.select(state, groupLayerID, areaID).updatedState;
46
+ });
47
+ });
48
+ state = Project.setAlterate(state).updatedState;
49
+ var groups = state.getIn(['scene', 'groups']).map(function (g) {
50
+ return g.set('selected', false);
51
+ });
52
+ state = state.setIn(['scene', 'groups'], groups).setIn(['scene', 'groups', groupID, 'selected'], true);
53
+ return {
54
+ updatedState: state
55
+ };
56
+ }
57
+ }, {
58
+ key: "unselect",
59
+ value: function unselect(state, groupID) {
60
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
61
+ var reduced = layerList.reduce(function (newState, layer, layerID) {
62
+ return Layer.unselectAll(newState, layerID).updatedState;
63
+ }, state);
64
+ state = reduced.setIn(['scene', 'groups', groupID, 'selected'], false);
65
+ return {
66
+ updatedState: state
67
+ };
68
+ }
69
+ }, {
70
+ key: "create",
71
+ value: function create(state) {
72
+ var groupID = IDBroker.acquireID();
73
+ state = state.setIn(['scene', 'groups', groupID], new GroupModel({
74
+ id: groupID,
75
+ name: groupID
76
+ }));
77
+ return {
78
+ updatedState: state
79
+ };
80
+ }
81
+ }, {
82
+ key: "createFromSelectedElements",
83
+ value: function createFromSelectedElements(state) {
84
+ var _this = this;
85
+ var groupID = IDBroker.acquireID();
86
+ state = state.setIn(['scene', 'groups', groupID], new GroupModel({
87
+ id: groupID,
88
+ name: groupID
89
+ }));
90
+ state.getIn(['scene', 'layers']).forEach(function (layer) {
91
+ var layerID = layer.get('id');
92
+ var layerElements = {
93
+ lines: layer.get('lines').filter(function (el) {
94
+ return el.get('selected');
95
+ }),
96
+ items: layer.get('items').filter(function (el) {
97
+ return el.get('selected');
98
+ }),
99
+ holes: layer.get('holes').filter(function (el) {
100
+ return el.get('selected');
101
+ }),
102
+ areas: layer.get('areas').filter(function (el) {
103
+ return el.get('selected');
104
+ })
105
+ };
106
+ var _loop = function _loop(elementPrototype) {
107
+ layerElements[elementPrototype].forEach(function (el) {
108
+ return state = _this.addElement(state, groupID, layerID, elementPrototype, el.get('id')).updatedState;
109
+ });
110
+ };
111
+ for (var elementPrototype in layerElements) {
112
+ _loop(elementPrototype);
113
+ }
114
+ });
115
+ return {
116
+ updatedState: state
117
+ };
118
+ }
119
+ }, {
120
+ key: "addElement",
121
+ value: function addElement(state, groupID, layerID, elementPrototype, elementID) {
122
+ var actualList = state.getIn(['scene', 'groups', groupID, 'elements', layerID, elementPrototype]) || new List();
123
+ if (!actualList.contains(elementID)) {
124
+ state = state.setIn(['scene', 'groups', groupID, 'elements', layerID, elementPrototype], actualList.push(elementID));
125
+ state = this.reloadBaricenter(state, groupID).updatedState;
126
+ }
127
+ return {
128
+ updatedState: state
129
+ };
130
+ }
131
+ }, {
132
+ key: "setBarycenter",
133
+ value: function setBarycenter(state, groupID, x, y) {
134
+ if (typeof x !== 'undefined') state = state.setIn(['scene', 'groups', groupID, 'x'], x);
135
+ if (typeof y !== 'undefined') state = state.setIn(['scene', 'groups', groupID, 'y'], y);
136
+ return {
137
+ updatedState: state
138
+ };
139
+ }
140
+ }, {
141
+ key: "reloadBaricenter",
142
+ value: function reloadBaricenter(state, groupID) {
143
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
144
+ var _state$get$toJS = state.get('viewer2D').toJS(),
145
+ a = _state$get$toJS.a,
146
+ b = _state$get$toJS.b,
147
+ c = _state$get$toJS.c,
148
+ d = _state$get$toJS.d,
149
+ e = _state$get$toJS.e,
150
+ f = _state$get$toJS.f,
151
+ SVGHeight = _state$get$toJS.SVGHeight;
152
+ var m1 = [[a, b, c], [d, e, f], [0, 0, 1]];
153
+ var xBar = 0;
154
+ var yBar = 0;
155
+ var elementCount = 0;
156
+ layerList.entrySeq().forEach(function (_ref3) {
157
+ var _ref4 = _slicedToArray(_ref3, 2),
158
+ groupLayerID = _ref4[0],
159
+ groupLayerElements = _ref4[1];
160
+ state = Layer.unselectAll(state, groupLayerID).updatedState;
161
+ var lines = groupLayerElements.get('lines');
162
+ var holes = groupLayerElements.get('holes');
163
+ var items = groupLayerElements.get('items');
164
+ var areas = groupLayerElements.get('areas');
165
+ if (lines) lines.forEach(function (lineID) {
166
+ var vertices = state.getIn(['scene', 'layers', groupLayerID, 'lines', lineID, 'vertices']).map(function (vID) {
167
+ return state.getIn(['scene', 'layers', groupLayerID, 'vertices', vID]);
168
+ });
169
+ var _vertices$get = vertices.get(0),
170
+ x1 = _vertices$get.x,
171
+ y1 = _vertices$get.y;
172
+ var _vertices$get2 = vertices.get(1),
173
+ x2 = _vertices$get2.x,
174
+ y2 = _vertices$get2.y;
175
+ var _GeometryUtils$midPoi = GeometryUtils.midPoint(x1, y1, x2, y2),
176
+ xM = _GeometryUtils$midPoi.x,
177
+ yM = _GeometryUtils$midPoi.y;
178
+ xBar += xM;
179
+ yBar += yM;
180
+ elementCount++;
181
+ });
182
+ if (holes) holes.forEach(function (holeID) {
183
+ var hole = state.getIn(['scene', 'layers', groupLayerID, 'holes', holeID]);
184
+ var lineVertices = state.getIn(['scene', 'layers', groupLayerID, 'lines', hole.line, 'vertices']).map(function (vID) {
185
+ return state.getIn(['scene', 'layers', groupLayerID, 'vertices', vID]);
186
+ });
187
+ var _lineVertices$get = lineVertices.get(0),
188
+ x1 = _lineVertices$get.x,
189
+ y1 = _lineVertices$get.y;
190
+ var _lineVertices$get2 = lineVertices.get(1),
191
+ x2 = _lineVertices$get2.x,
192
+ y2 = _lineVertices$get2.y;
193
+ var _GeometryUtils$extend = GeometryUtils.extendLine(x1, y1, x2, y2, hole.offset * GeometryUtils.pointsDistance(x1, y1, x2, y2)),
194
+ x = _GeometryUtils$extend.x,
195
+ y = _GeometryUtils$extend.y;
196
+ xBar += x;
197
+ yBar += y;
198
+ elementCount++;
199
+ });
200
+ if (items) items.forEach(function (itemID) {
201
+ var _state$getIn = state.getIn(['scene', 'layers', groupLayerID, 'items', itemID]),
202
+ x = _state$getIn.x,
203
+ y = _state$getIn.y;
204
+ xBar += x;
205
+ yBar += y;
206
+ elementCount++;
207
+ });
208
+ if (areas) areas.forEach(function (areaID) {
209
+ var areaVertices = state.getIn(['scene', 'layers', groupLayerID, 'areas', areaID, 'vertices']).map(function (vID) {
210
+ return state.getIn(['scene', 'layers', groupLayerID, 'vertices', vID]);
211
+ }).toJS();
212
+ var _GeometryUtils$vertic = GeometryUtils.verticesMidPoint(areaVertices),
213
+ x = _GeometryUtils$vertic.x,
214
+ y = _GeometryUtils$vertic.y;
215
+ xBar += x;
216
+ yBar += y;
217
+ elementCount++;
218
+ });
219
+ });
220
+ if (elementCount) {
221
+ state = this.setBarycenter(state, groupID, xBar / elementCount, yBar / elementCount).updatedState;
222
+ }
223
+ return {
224
+ updatedState: state
225
+ };
226
+ }
227
+ }, {
228
+ key: "removeElement",
229
+ value: function removeElement(state, groupID, layerID, elementPrototype, elementID) {
230
+ var actualList = state.getIn(['scene', 'groups', groupID, 'elements', layerID, elementPrototype]);
231
+ if (!actualList || !actualList.contains(elementID)) {
232
+ return {
233
+ updatedState: state
234
+ };
235
+ }
236
+ state = state.setIn(['scene', 'groups', groupID, 'elements', layerID, elementPrototype], actualList.filterNot(function (el) {
237
+ return el === elementID;
238
+ }));
239
+ return {
240
+ updatedState: state
241
+ };
242
+ }
243
+ }, {
244
+ key: "setAttributes",
245
+ value: function setAttributes(state, groupID, attributes) {
246
+ state = state.mergeIn(['scene', 'groups', groupID], attributes);
247
+ return {
248
+ updatedState: state
249
+ };
250
+ }
251
+ }, {
252
+ key: "setProperties",
253
+ value: function setProperties(state, groupID, properties) {
254
+ state = state.mergeIn(['scene', 'groups', groupID, 'properties'], properties);
255
+ return {
256
+ updatedState: state
257
+ };
258
+ }
259
+ }, {
260
+ key: "remove",
261
+ value: function remove(state, groupID) {
262
+ state = state.removeIn(['scene', 'groups', groupID]);
263
+ return {
264
+ updatedState: state
265
+ };
266
+ }
267
+ }, {
268
+ key: "removeAndDeleteElements",
269
+ value: function removeAndDeleteElements(state, groupID) {
270
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
271
+ layerList.entrySeq().forEach(function (_ref5) {
272
+ var _ref6 = _slicedToArray(_ref5, 2),
273
+ groupLayerID = _ref6[0],
274
+ groupLayerElements = _ref6[1];
275
+ state = Layer.unselectAll(state, groupLayerID).updatedState;
276
+ var lines = groupLayerElements.get('lines');
277
+ var holes = groupLayerElements.get('holes');
278
+ var items = groupLayerElements.get('items');
279
+ var areas = groupLayerElements.get('areas');
280
+ if (lines) {
281
+ lines.forEach(function (lineID) {
282
+ state = Line.remove(state, groupLayerID, lineID).updatedState;
283
+ state = Layer.detectAndUpdateAreas(state, groupLayerID, {}).updatedState;
284
+ });
285
+ }
286
+ if (holes) holes.forEach(function (holeID) {
287
+ state = Hole.remove(state, groupLayerID, holeID).updatedState;
288
+ });
289
+ if (items) items.forEach(function (itemID) {
290
+ state = Item.remove(state, groupLayerID, itemID).updatedState;
291
+ });
292
+ //( actually ) no effect by area's destruction
293
+ if (false && areas) areas.forEach(function (areaID) {
294
+ state = Area.remove(state, groupLayerID, areaID).updatedState;
295
+ });
296
+ });
297
+ state = state.deleteIn(['scene', 'groups', groupID]);
298
+ return {
299
+ updatedState: state
300
+ };
301
+ }
302
+ }, {
303
+ key: "translate",
304
+ value: function translate(state, groupID, x, y) {
305
+ var deltaX = x - state.getIn(['scene', 'groups', groupID, 'x']);
306
+ var deltaY = y - state.getIn(['scene', 'groups', groupID, 'y']);
307
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
308
+ layerList.entrySeq().forEach(function (_ref7) {
309
+ var _ref8 = _slicedToArray(_ref7, 2),
310
+ groupLayerID = _ref8[0],
311
+ groupLayerElements = _ref8[1];
312
+ var lines = groupLayerElements.get('lines');
313
+ //let holes = groupLayerElements.get('holes');
314
+ var items = groupLayerElements.get('items');
315
+ //let areas = groupLayerElements.get('areas');
316
+
317
+ //move vertices instead lines avoiding multiple vertex translation
318
+ if (lines) {
319
+ var vertices = {};
320
+ lines.forEach(function (lineID) {
321
+ var line = state.getIn(['scene', 'layers', groupLayerID, 'lines', lineID]);
322
+ if (!vertices[line.vertices.get(0)]) vertices[line.vertices.get(0)] = state.getIn(['scene', 'layers', groupLayerID, 'vertices', line.vertices.get(0)]);
323
+ if (!vertices[line.vertices.get(1)]) vertices[line.vertices.get(1)] = state.getIn(['scene', 'layers', groupLayerID, 'vertices', line.vertices.get(1)]);
324
+ });
325
+ for (var vertexID in vertices) {
326
+ var _vertices$vertexID = vertices[vertexID],
327
+ xV = _vertices$vertexID.x,
328
+ yV = _vertices$vertexID.y;
329
+ state = Vertex.setAttributes(state, groupLayerID, vertexID, new Map({
330
+ x: xV + deltaX,
331
+ y: yV + deltaY
332
+ })).updatedState;
333
+ }
334
+
335
+ //need to be separated from setAttributes cycle
336
+ for (var _vertexID in vertices) {
337
+ state = Vertex.beginDraggingVertex(state, groupLayerID, _vertexID).updatedState;
338
+ state = Vertex.endDraggingVertex(state).updatedState;
339
+ }
340
+ }
341
+ if (items) state = items.map(function (itemID) {
342
+ return state.getIn(['scene', 'layers', groupLayerID, 'items', itemID]);
343
+ }).reduce(function (newState, item) {
344
+ var xI = item.x,
345
+ yI = item.y;
346
+ return Item.setAttributes(newState, groupLayerID, item.id, new Map({
347
+ x: xI + deltaX,
348
+ y: yI + deltaY
349
+ })).updatedState;
350
+ }, state);
351
+
352
+ //translation of holes and areas should not take any effect
353
+ //if( holes ) holes.forEach( holeID => { state = Hole.select( state, groupLayerID, holeID ).updatedState; });
354
+ //if( areas ) areas.forEach( areaID => { state = Area.select( state, groupLayerID, areaID ).updatedState; });
355
+
356
+ state = Layer.detectAndUpdateAreas(state, groupLayerID, {}).updatedState;
357
+ });
358
+ state = this.setBarycenter(state, groupID, x, y).updatedState;
359
+ state = Group.select(state, groupID).updatedState;
360
+ return {
361
+ updatedState: state
362
+ };
363
+ }
364
+ }, {
365
+ key: "rotate",
366
+ value: function rotate(state, groupID, newAlpha) {
367
+ var _state$getIn2 = state.getIn(['scene', 'groups', groupID]),
368
+ barX = _state$getIn2.x,
369
+ barY = _state$getIn2.y,
370
+ rotation = _state$getIn2.rotation;
371
+ var alpha = newAlpha - rotation;
372
+ state = Group.setAttributes(state, groupID, new Map({
373
+ rotation: newAlpha
374
+ })).updatedState;
375
+ var layerList = state.getIn(['scene', 'groups', groupID, 'elements']);
376
+ layerList.entrySeq().forEach(function (_ref9) {
377
+ var _ref0 = _slicedToArray(_ref9, 2),
378
+ groupLayerID = _ref0[0],
379
+ groupLayerElements = _ref0[1];
380
+ var lines = groupLayerElements.get('lines');
381
+ var holes = groupLayerElements.get('holes');
382
+ var items = groupLayerElements.get('items');
383
+ var areas = groupLayerElements.get('areas');
384
+
385
+ //move vertices instead lines avoiding multiple vertex translation
386
+ if (lines) {
387
+ var vertices = {};
388
+ lines.forEach(function (lineID) {
389
+ var line = state.getIn(['scene', 'layers', groupLayerID, 'lines', lineID]);
390
+ if (!vertices[line.vertices.get(0)]) vertices[line.vertices.get(0)] = state.getIn(['scene', 'layers', groupLayerID, 'vertices', line.vertices.get(0)]);
391
+ if (!vertices[line.vertices.get(1)]) vertices[line.vertices.get(1)] = state.getIn(['scene', 'layers', groupLayerID, 'vertices', line.vertices.get(1)]);
392
+ });
393
+ for (var vertexID in vertices) {
394
+ var _vertices$vertexID2 = vertices[vertexID],
395
+ xV = _vertices$vertexID2.x,
396
+ yV = _vertices$vertexID2.y;
397
+ var _GeometryUtils$rotate = GeometryUtils.rotatePointAroundPoint(xV, yV, barX, barY, alpha),
398
+ newX = _GeometryUtils$rotate.x,
399
+ newY = _GeometryUtils$rotate.y;
400
+ state = Vertex.setAttributes(state, groupLayerID, vertexID, new Map({
401
+ x: newX,
402
+ y: newY
403
+ })).updatedState;
404
+ }
405
+ //need to be separated from setAttributes cycle
406
+ for (var _vertexID2 in vertices) {
407
+ state = Vertex.beginDraggingVertex(state, groupLayerID, _vertexID2).updatedState;
408
+ state = Vertex.endDraggingVertex(state).updatedState;
409
+ }
410
+ }
411
+ if (items) state = items.map(function (itemID) {
412
+ return state.getIn(['scene', 'layers', groupLayerID, 'items', itemID]);
413
+ }).reduce(function (newState, item) {
414
+ var xI = item.x,
415
+ yI = item.y,
416
+ rI = item.rotation;
417
+ var _GeometryUtils$rotate2 = GeometryUtils.rotatePointAroundPoint(xI, yI, barX, barY, alpha),
418
+ newX = _GeometryUtils$rotate2.x,
419
+ newY = _GeometryUtils$rotate2.y;
420
+ return Item.setAttributes(newState, groupLayerID, item.id, new Map({
421
+ x: newX,
422
+ y: newY,
423
+ rotation: rI + alpha
424
+ })).updatedState;
425
+ }, state);
426
+
427
+ //rotation of holes and areas should not take any effect
428
+ //if( holes ) holes.forEach( holeID => { state = Hole.select( state, groupLayerID, holeID ).updatedState; });
429
+ //if( areas ) areas.forEach( areaID => { state = Area.select( state, groupLayerID, areaID ).updatedState; });
430
+
431
+ state = Layer.detectAndUpdateAreas(state, groupLayerID, {}).updatedState;
432
+ });
433
+ state = Group.select(state, groupID).updatedState;
434
+ return {
435
+ updatedState: state
436
+ };
437
+ }
438
+ }]);
439
+ }();
440
+ export { Group as default };
@@ -0,0 +1,62 @@
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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
3
+ 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); } }
4
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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 { IDBroker } from "../utils/export";
8
+ var HorizontalGuide = /*#__PURE__*/function () {
9
+ function HorizontalGuide() {
10
+ _classCallCheck(this, HorizontalGuide);
11
+ }
12
+ return _createClass(HorizontalGuide, null, [{
13
+ key: "create",
14
+ value: function create(state, coordinate) {
15
+ var hGuideID = IDBroker.acquireID();
16
+ state = state.setIn(['scene', 'guides', 'horizontal', hGuideID], coordinate);
17
+ return {
18
+ updatedState: state
19
+ };
20
+ }
21
+ }, {
22
+ key: "remove",
23
+ value: function remove(state, hGuideID) {
24
+ state = state.deleteIn(['scene', 'guides', 'horizontal', hGuideID]);
25
+ return {
26
+ updatedState: state
27
+ };
28
+ }
29
+ }]);
30
+ }();
31
+ var VerticalGuide = /*#__PURE__*/function () {
32
+ function VerticalGuide() {
33
+ _classCallCheck(this, VerticalGuide);
34
+ }
35
+ return _createClass(VerticalGuide, null, [{
36
+ key: "create",
37
+ value: function create(state, coordinate) {
38
+ var vGuideID = IDBroker.acquireID();
39
+ state = state.setIn(['scene', 'guides', 'vertical', vGuideID], coordinate);
40
+ return {
41
+ updatedState: state
42
+ };
43
+ }
44
+ }, {
45
+ key: "remove",
46
+ value: function remove(state, vGuideID) {
47
+ state = state.deleteIn(['scene', 'guides', 'vertical', vGuideID]);
48
+ return {
49
+ updatedState: state
50
+ };
51
+ }
52
+ }]);
53
+ }();
54
+ var CircularGuide = /*#__PURE__*/_createClass(function CircularGuide() {
55
+ _classCallCheck(this, CircularGuide);
56
+ });
57
+ export { HorizontalGuide, VerticalGuide, CircularGuide };
58
+ export default {
59
+ HorizontalGuide: HorizontalGuide,
60
+ VerticalGuide: VerticalGuide,
61
+ CircularGuide: CircularGuide
62
+ };