@hatiolab/things-scene 9.0.0-beta.36 → 9.0.0-beta.37

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 (397) hide show
  1. package/package.json +1 -1
  2. package/things-scene-min.js +11 -11
  3. package/things-scene-min.js.map +1 -1
  4. package/things-scene.mjs +11 -11
  5. package/things-scene.mjs.map +1 -1
  6. package/.cursorignore +0 -62
  7. package/.prettierrc +0 -21
  8. package/assets/icon-audio.png +0 -0
  9. package/assets/icon-gif-viewer.png +0 -0
  10. package/assets/images/spinner.png +0 -0
  11. package/babel.config.js +0 -23
  12. package/db.sqlite +0 -0
  13. package/dist/animation/animate.js +0 -63
  14. package/dist/animation/animate.js.map +0 -1
  15. package/dist/animation/animations/animation.js +0 -122
  16. package/dist/animation/animations/animation.js.map +0 -1
  17. package/dist/animation/animations/fade.js +0 -28
  18. package/dist/animation/animations/fade.js.map +0 -1
  19. package/dist/animation/animations/heartbeat.js +0 -28
  20. package/dist/animation/animations/heartbeat.js.map +0 -1
  21. package/dist/animation/animations/moving.js +0 -24
  22. package/dist/animation/animations/moving.js.map +0 -1
  23. package/dist/animation/animations/outline.js +0 -47
  24. package/dist/animation/animations/outline.js.map +0 -1
  25. package/dist/animation/animations/rotation.js +0 -22
  26. package/dist/animation/animations/rotation.js.map +0 -1
  27. package/dist/animation/animations/vibration.js +0 -31
  28. package/dist/animation/animations/vibration.js.map +0 -1
  29. package/dist/animation/compile.js +0 -31
  30. package/dist/animation/compile.js.map +0 -1
  31. package/dist/animation/delta.js +0 -51
  32. package/dist/animation/delta.js.map +0 -1
  33. package/dist/animation/index.js +0 -14
  34. package/dist/animation/index.js.map +0 -1
  35. package/dist/command/command-change.js +0 -33
  36. package/dist/command/command-change.js.map +0 -1
  37. package/dist/command/command-migrate.js +0 -103
  38. package/dist/command/command-migrate.js.map +0 -1
  39. package/dist/command/command.js +0 -18
  40. package/dist/command/command.js.map +0 -1
  41. package/dist/command/snapshot-commander.js +0 -84
  42. package/dist/command/snapshot-commander.js.map +0 -1
  43. package/dist/components/anchor/anchor.js +0 -105
  44. package/dist/components/anchor/anchor.js.map +0 -1
  45. package/dist/components/anchor/ellipse-anchors.js +0 -53
  46. package/dist/components/anchor/ellipse-anchors.js.map +0 -1
  47. package/dist/components/anchor/rect-anchors.js +0 -53
  48. package/dist/components/anchor/rect-anchors.js.map +0 -1
  49. package/dist/components/audio.js +0 -154
  50. package/dist/components/audio.js.map +0 -1
  51. package/dist/components/cloud.js +0 -44
  52. package/dist/components/cloud.js.map +0 -1
  53. package/dist/components/component.js +0 -1086
  54. package/dist/components/component.js.map +0 -1
  55. package/dist/components/container-abstract.js +0 -387
  56. package/dist/components/container-abstract.js.map +0 -1
  57. package/dist/components/container.js +0 -331
  58. package/dist/components/container.js.map +0 -1
  59. package/dist/components/data/data-mapping.js +0 -82
  60. package/dist/components/data/data-mapping.js.map +0 -1
  61. package/dist/components/data/data.js +0 -166
  62. package/dist/components/data/data.js.map +0 -1
  63. package/dist/components/data/evaluator.js +0 -103
  64. package/dist/components/data/evaluator.js.map +0 -1
  65. package/dist/components/donut.js +0 -104
  66. package/dist/components/donut.js.map +0 -1
  67. package/dist/components/drawer/draw-image-pendable.js +0 -20
  68. package/dist/components/drawer/draw-image-pendable.js.map +0 -1
  69. package/dist/components/drawer/effect.js +0 -19
  70. package/dist/components/drawer/effect.js.map +0 -1
  71. package/dist/components/drawer/fill.js +0 -228
  72. package/dist/components/drawer/fill.js.map +0 -1
  73. package/dist/components/drawer/format.js +0 -115
  74. package/dist/components/drawer/format.js.map +0 -1
  75. package/dist/components/drawer/line.js +0 -191
  76. package/dist/components/drawer/line.js.map +0 -1
  77. package/dist/components/drawer/stroke.js +0 -62
  78. package/dist/components/drawer/stroke.js.map +0 -1
  79. package/dist/components/drawer/text-wrapper.js +0 -51
  80. package/dist/components/drawer/text-wrapper.js.map +0 -1
  81. package/dist/components/drawer/text.js +0 -269
  82. package/dist/components/drawer/text.js.map +0 -1
  83. package/dist/components/ellipse.js +0 -110
  84. package/dist/components/ellipse.js.map +0 -1
  85. package/dist/components/file/ondropfile.js +0 -19
  86. package/dist/components/file/ondropfile.js.map +0 -1
  87. package/dist/components/fit/fit.js +0 -137
  88. package/dist/components/fit/fit.js.map +0 -1
  89. package/dist/components/geometry/transcoord.js +0 -339
  90. package/dist/components/geometry/transcoord.js.map +0 -1
  91. package/dist/components/geometry/union.js +0 -35
  92. package/dist/components/geometry/union.js.map +0 -1
  93. package/dist/components/gif-view.js +0 -128
  94. package/dist/components/gif-view.js.map +0 -1
  95. package/dist/components/global-ref.js +0 -154
  96. package/dist/components/global-ref.js.map +0 -1
  97. package/dist/components/group.js +0 -171
  98. package/dist/components/group.js.map +0 -1
  99. package/dist/components/html/elements.js +0 -24
  100. package/dist/components/html/elements.js.map +0 -1
  101. package/dist/components/html/fill.js +0 -126
  102. package/dist/components/html/fill.js.map +0 -1
  103. package/dist/components/html/reposition.js +0 -119
  104. package/dist/components/html/reposition.js.map +0 -1
  105. package/dist/components/html/shadow.js +0 -24
  106. package/dist/components/html/shadow.js.map +0 -1
  107. package/dist/components/html-overlay-container.js +0 -27
  108. package/dist/components/html-overlay-container.js.map +0 -1
  109. package/dist/components/html-overlay-element.js +0 -22
  110. package/dist/components/html-overlay-element.js.map +0 -1
  111. package/dist/components/image-view.js +0 -193
  112. package/dist/components/image-view.js.map +0 -1
  113. package/dist/components/index.js +0 -231
  114. package/dist/components/index.js.map +0 -1
  115. package/dist/components/info-window.js +0 -416
  116. package/dist/components/info-window.js.map +0 -1
  117. package/dist/components/line.js +0 -374
  118. package/dist/components/line.js.map +0 -1
  119. package/dist/components/local-ref.js +0 -114
  120. package/dist/components/local-ref.js.map +0 -1
  121. package/dist/components/mixins/connectable.js +0 -128
  122. package/dist/components/mixins/connectable.js.map +0 -1
  123. package/dist/components/mixins/data-source.js +0 -34
  124. package/dist/components/mixins/data-source.js.map +0 -1
  125. package/dist/components/mixins/html-element.js +0 -107
  126. package/dist/components/mixins/html-element.js.map +0 -1
  127. package/dist/components/mixins/move-handle.js +0 -73
  128. package/dist/components/mixins/move-handle.js.map +0 -1
  129. package/dist/components/mixins/rect-path.js +0 -113
  130. package/dist/components/mixins/rect-path.js.map +0 -1
  131. package/dist/components/mixins/value-holder.js +0 -81
  132. package/dist/components/mixins/value-holder.js.map +0 -1
  133. package/dist/components/mutater/bounds.js +0 -68
  134. package/dist/components/mutater/bounds.js.map +0 -1
  135. package/dist/components/mutater/path.js +0 -73
  136. package/dist/components/mutater/path.js.map +0 -1
  137. package/dist/components/ortholine.js +0 -763
  138. package/dist/components/ortholine.js.map +0 -1
  139. package/dist/components/outline/ellipse-outline.js +0 -23
  140. package/dist/components/outline/ellipse-outline.js.map +0 -1
  141. package/dist/components/outline/path-outline.js +0 -48
  142. package/dist/components/outline/path-outline.js.map +0 -1
  143. package/dist/components/path.js +0 -49
  144. package/dist/components/path.js.map +0 -1
  145. package/dist/components/polygon.js +0 -91
  146. package/dist/components/polygon.js.map +0 -1
  147. package/dist/components/polyline.js +0 -114
  148. package/dist/components/polyline.js.map +0 -1
  149. package/dist/components/popup.js +0 -160
  150. package/dist/components/popup.js.map +0 -1
  151. package/dist/components/rect.js +0 -72
  152. package/dist/components/rect.js.map +0 -1
  153. package/dist/components/retention/retention-manager.js +0 -81
  154. package/dist/components/retention/retention-manager.js.map +0 -1
  155. package/dist/components/root-container.js +0 -519
  156. package/dist/components/root-container.js.map +0 -1
  157. package/dist/components/ruler.js +0 -103
  158. package/dist/components/ruler.js.map +0 -1
  159. package/dist/components/shape.js +0 -97
  160. package/dist/components/shape.js.map +0 -1
  161. package/dist/components/star.js +0 -103
  162. package/dist/components/star.js.map +0 -1
  163. package/dist/components/text/substitutor.js +0 -92
  164. package/dist/components/text/substitutor.js.map +0 -1
  165. package/dist/components/text.js +0 -21
  166. package/dist/components/text.js.map +0 -1
  167. package/dist/components/triangle.js +0 -92
  168. package/dist/components/triangle.js.map +0 -1
  169. package/dist/const.js +0 -71
  170. package/dist/const.js.map +0 -1
  171. package/dist/core/collection.js +0 -28
  172. package/dist/core/collection.js.map +0 -1
  173. package/dist/core/debug.js +0 -12
  174. package/dist/core/debug.js.map +0 -1
  175. package/dist/core/deep-equals.js +0 -112
  176. package/dist/core/deep-equals.js.map +0 -1
  177. package/dist/core/dom-to-image.js +0 -617
  178. package/dist/core/dom-to-image.js.map +0 -1
  179. package/dist/core/event.js +0 -205
  180. package/dist/core/event.js.map +0 -1
  181. package/dist/core/index.js +0 -21
  182. package/dist/core/index.js.map +0 -1
  183. package/dist/core/list.js +0 -87
  184. package/dist/core/list.js.map +0 -1
  185. package/dist/core/logger.js +0 -29
  186. package/dist/core/logger.js.map +0 -1
  187. package/dist/core/memoize.js +0 -40
  188. package/dist/core/memoize.js.map +0 -1
  189. package/dist/core/mixin.js +0 -26
  190. package/dist/core/mixin.js.map +0 -1
  191. package/dist/core/obj-accessor.js +0 -26
  192. package/dist/core/obj-accessor.js.map +0 -1
  193. package/dist/core/reference-map.js +0 -147
  194. package/dist/core/reference-map.js.map +0 -1
  195. package/dist/core/round-rect.js +0 -62
  196. package/dist/core/round-rect.js.map +0 -1
  197. package/dist/core/safe-round.js +0 -10
  198. package/dist/core/safe-round.js.map +0 -1
  199. package/dist/core/script-loader.js +0 -148
  200. package/dist/core/script-loader.js.map +0 -1
  201. package/dist/core/snapshot-taker.js +0 -59
  202. package/dist/core/snapshot-taker.js.map +0 -1
  203. package/dist/core/stack.js +0 -18
  204. package/dist/core/stack.js.map +0 -1
  205. package/dist/core/timecapsule.js +0 -88
  206. package/dist/core/timecapsule.js.map +0 -1
  207. package/dist/core/utils.js +0 -309
  208. package/dist/core/utils.js.map +0 -1
  209. package/dist/decorator/anchors-decorator.js +0 -53
  210. package/dist/decorator/anchors-decorator.js.map +0 -1
  211. package/dist/decorator/bouncing-arrow-decorator.js +0 -52
  212. package/dist/decorator/bouncing-arrow-decorator.js.map +0 -1
  213. package/dist/decorator/data-spread-decorator.js +0 -69
  214. package/dist/decorator/data-spread-decorator.js.map +0 -1
  215. package/dist/decorator/decotag-decorator.js +0 -33
  216. package/dist/decorator/decotag-decorator.js.map +0 -1
  217. package/dist/decorator/index.js +0 -31
  218. package/dist/decorator/index.js.map +0 -1
  219. package/dist/decorator/link-decorator.js +0 -66
  220. package/dist/decorator/link-decorator.js.map +0 -1
  221. package/dist/effect/gradation.js +0 -37
  222. package/dist/effect/gradation.js.map +0 -1
  223. package/dist/effect/index.js +0 -23
  224. package/dist/effect/index.js.map +0 -1
  225. package/dist/effect/shadow.js +0 -33
  226. package/dist/effect/shadow.js.map +0 -1
  227. package/dist/effect/turn.js +0 -25
  228. package/dist/effect/turn.js.map +0 -1
  229. package/dist/event/event-engine.js +0 -76
  230. package/dist/event/event-engine.js.map +0 -1
  231. package/dist/event/event-pump.js +0 -92
  232. package/dist/event/event-pump.js.map +0 -1
  233. package/dist/event/event-tracker.js +0 -97
  234. package/dist/event/event-tracker.js.map +0 -1
  235. package/dist/event/index.js +0 -21
  236. package/dist/event/index.js.map +0 -1
  237. package/dist/event/ua-event-handler.js +0 -453
  238. package/dist/event/ua-event-handler.js.map +0 -1
  239. package/dist/event-map/animator-handler.js +0 -225
  240. package/dist/event-map/animator-handler.js.map +0 -1
  241. package/dist/event-map/animators/animated-icon.js +0 -265
  242. package/dist/event-map/animators/animated-icon.js.map +0 -1
  243. package/dist/event-map/animators/border-highlighting.js +0 -476
  244. package/dist/event-map/animators/border-highlighting.js.map +0 -1
  245. package/dist/event-map/animators/bouncing-arrow.js +0 -226
  246. package/dist/event-map/animators/bouncing-arrow.js.map +0 -1
  247. package/dist/event-map/event-map.js +0 -36
  248. package/dist/event-map/event-map.js.map +0 -1
  249. package/dist/event-map/index.js +0 -20
  250. package/dist/event-map/index.js.map +0 -1
  251. package/dist/event-map/move-handler.js +0 -233
  252. package/dist/event-map/move-handler.js.map +0 -1
  253. package/dist/event-map/paste-handler.js +0 -176
  254. package/dist/event-map/paste-handler.js.map +0 -1
  255. package/dist/event-map/shift-handler.js +0 -55
  256. package/dist/event-map/shift-handler.js.map +0 -1
  257. package/dist/event-map/text-editor-lite.js +0 -276
  258. package/dist/event-map/text-editor-lite.js.map +0 -1
  259. package/dist/event-map/zoom-handler.js +0 -49
  260. package/dist/event-map/zoom-handler.js.map +0 -1
  261. package/dist/index.js +0 -20
  262. package/dist/index.js.map +0 -1
  263. package/dist/layer/action/emphasize.js +0 -42
  264. package/dist/layer/action/emphasize.js.map +0 -1
  265. package/dist/layer/action/popup.js +0 -461
  266. package/dist/layer/action/popup.js.map +0 -1
  267. package/dist/layer/action/pressed.js +0 -31
  268. package/dist/layer/action/pressed.js.map +0 -1
  269. package/dist/layer/add-layer.js +0 -180
  270. package/dist/layer/add-layer.js.map +0 -1
  271. package/dist/layer/decotag-layer.js +0 -121
  272. package/dist/layer/decotag-layer.js.map +0 -1
  273. package/dist/layer/guide-layer.js +0 -292
  274. package/dist/layer/guide-layer.js.map +0 -1
  275. package/dist/layer/index.js +0 -70
  276. package/dist/layer/index.js.map +0 -1
  277. package/dist/layer/layer.js +0 -230
  278. package/dist/layer/layer.js.map +0 -1
  279. package/dist/layer/minimap-layer.js +0 -84
  280. package/dist/layer/minimap-layer.js.map +0 -1
  281. package/dist/layer/model-layer.js +0 -465
  282. package/dist/layer/model-layer.js.map +0 -1
  283. package/dist/layer/modeler/anchor-handler.js +0 -193
  284. package/dist/layer/modeler/anchor-handler.js.map +0 -1
  285. package/dist/layer/modeler/control-handler.js +0 -95
  286. package/dist/layer/modeler/control-handler.js.map +0 -1
  287. package/dist/layer/modeler/focus-outline.js +0 -41
  288. package/dist/layer/modeler/focus-outline.js.map +0 -1
  289. package/dist/layer/modeler/group-outline.js +0 -30
  290. package/dist/layer/modeler/group-outline.js.map +0 -1
  291. package/dist/layer/modeler/index.js +0 -56
  292. package/dist/layer/modeler/index.js.map +0 -1
  293. package/dist/layer/modeler/path-handler.js +0 -300
  294. package/dist/layer/modeler/path-handler.js.map +0 -1
  295. package/dist/layer/modeler/resizer.js +0 -333
  296. package/dist/layer/modeler/resizer.js.map +0 -1
  297. package/dist/layer/modeler/rotator.js +0 -134
  298. package/dist/layer/modeler/rotator.js.map +0 -1
  299. package/dist/layer/modeling-layer.js +0 -491
  300. package/dist/layer/modeling-layer.js.map +0 -1
  301. package/dist/layer/reaction-layer.js +0 -111
  302. package/dist/layer/reaction-layer.js.map +0 -1
  303. package/dist/layer/scroll-layer.js +0 -191
  304. package/dist/layer/scroll-layer.js.map +0 -1
  305. package/dist/layer/selection/selected-finder.js +0 -96
  306. package/dist/layer/selection/selected-finder.js.map +0 -1
  307. package/dist/layer/selection-layer.js +0 -373
  308. package/dist/layer/selection-layer.js.map +0 -1
  309. package/dist/layer/shift-layer.js +0 -83
  310. package/dist/layer/shift-layer.js.map +0 -1
  311. package/dist/layout/absolute.js +0 -30
  312. package/dist/layout/absolute.js.map +0 -1
  313. package/dist/layout/card.js +0 -52
  314. package/dist/layout/card.js.map +0 -1
  315. package/dist/layout/html-absolute.js +0 -32
  316. package/dist/layout/html-absolute.js.map +0 -1
  317. package/dist/layout/index.js +0 -56
  318. package/dist/layout/index.js.map +0 -1
  319. package/dist/layout/layout.js +0 -36
  320. package/dist/layout/layout.js.map +0 -1
  321. package/dist/layout/linear-horizontal.js +0 -56
  322. package/dist/layout/linear-horizontal.js.map +0 -1
  323. package/dist/layout/linear-vertical.js +0 -56
  324. package/dist/layout/linear-vertical.js.map +0 -1
  325. package/dist/layout/table.js +0 -106
  326. package/dist/layout/table.js.map +0 -1
  327. package/dist/license/license.js +0 -170
  328. package/dist/license/license.js.map +0 -1
  329. package/dist/model/compile.js +0 -40
  330. package/dist/model/compile.js.map +0 -1
  331. package/dist/model/duplicate.js +0 -19
  332. package/dist/model/duplicate.js.map +0 -1
  333. package/dist/model/index.js +0 -34
  334. package/dist/model/index.js.map +0 -1
  335. package/dist/model/selector.js +0 -104
  336. package/dist/model/selector.js.map +0 -1
  337. package/dist/style/compile.js +0 -14
  338. package/dist/style/compile.js.map +0 -1
  339. package/dist/style/index.js +0 -14
  340. package/dist/style/index.js.map +0 -1
  341. package/dist/things-scene/api/add-start.js +0 -18
  342. package/dist/things-scene/api/add-start.js.map +0 -1
  343. package/dist/things-scene/api/add.js +0 -71
  344. package/dist/things-scene/api/add.js.map +0 -1
  345. package/dist/things-scene/api/align.js +0 -116
  346. package/dist/things-scene/api/align.js.map +0 -1
  347. package/dist/things-scene/api/center-to.js +0 -50
  348. package/dist/things-scene/api/center-to.js.map +0 -1
  349. package/dist/things-scene/api/change.js +0 -27
  350. package/dist/things-scene/api/change.js.map +0 -1
  351. package/dist/things-scene/api/clipboard.js +0 -45
  352. package/dist/things-scene/api/clipboard.js.map +0 -1
  353. package/dist/things-scene/api/distribute.js +0 -57
  354. package/dist/things-scene/api/distribute.js.map +0 -1
  355. package/dist/things-scene/api/duplicate.js +0 -47
  356. package/dist/things-scene/api/duplicate.js.map +0 -1
  357. package/dist/things-scene/api/fullscreen.js +0 -26
  358. package/dist/things-scene/api/fullscreen.js.map +0 -1
  359. package/dist/things-scene/api/group.js +0 -91
  360. package/dist/things-scene/api/group.js.map +0 -1
  361. package/dist/things-scene/api/ids.js +0 -28
  362. package/dist/things-scene/api/ids.js.map +0 -1
  363. package/dist/things-scene/api/index.js +0 -192
  364. package/dist/things-scene/api/index.js.map +0 -1
  365. package/dist/things-scene/api/listener.js +0 -69
  366. package/dist/things-scene/api/listener.js.map +0 -1
  367. package/dist/things-scene/api/paste-start.js +0 -27
  368. package/dist/things-scene/api/paste-start.js.map +0 -1
  369. package/dist/things-scene/api/place.js +0 -98
  370. package/dist/things-scene/api/place.js.map +0 -1
  371. package/dist/things-scene/api/remove.js +0 -57
  372. package/dist/things-scene/api/remove.js.map +0 -1
  373. package/dist/things-scene/api/symmetry.js +0 -47
  374. package/dist/things-scene/api/symmetry.js.map +0 -1
  375. package/dist/things-scene/api/to-data-url.js +0 -76
  376. package/dist/things-scene/api/to-data-url.js.map +0 -1
  377. package/dist/things-scene/api/zorder.js +0 -68
  378. package/dist/things-scene/api/zorder.js.map +0 -1
  379. package/dist/things-scene/application-context.js +0 -168
  380. package/dist/things-scene/application-context.js.map +0 -1
  381. package/dist/things-scene/config.js +0 -18
  382. package/dist/things-scene/config.js.map +0 -1
  383. package/dist/things-scene/create.js +0 -67
  384. package/dist/things-scene/create.js.map +0 -1
  385. package/dist/things-scene/fps.js +0 -26
  386. package/dist/things-scene/fps.js.map +0 -1
  387. package/dist/things-scene/index.js +0 -152
  388. package/dist/things-scene/index.js.map +0 -1
  389. package/dist/things-scene/polyfill.js +0 -111
  390. package/dist/things-scene/polyfill.js.map +0 -1
  391. package/dist/things-scene/scene.js +0 -442
  392. package/dist/things-scene/scene.js.map +0 -1
  393. package/dist/things-scene/version.js +0 -12
  394. package/dist/things-scene/version.js.map +0 -1
  395. package/rollup.config.js +0 -67
  396. package/schema.graphql +0 -4606
  397. package/tsconfig.json +0 -31
@@ -1 +0,0 @@
1
- {"version":3,"file":"ortholine.js","names":["_component","_interopRequireDefault","require","_line","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","FROM","TO","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","OrthoLine","Line","pathExtendable","drawPath","fromPosition","path","toPosition","component","fromComponent","direction","fromDirection","boundaryPosition","fromBoundaryPosition","fromEnd","toComponent","toDirection","toBoundaryPosition","toEnd","boundaryPositions","push","fromOriginBounds","bounds","transcoorded","transcoordS2T","left","top","transcoordT2P","x","y","fromBounds","width","height","toOriginBounds","toBounds","fromToBounds","leftMost","topMost","unionBounds","centerX","centerY","centerWidth","centerHeight","upperComponent","leftComponent","rightComponent","lowerComponent","upperComponentDirection","lowerComponentDirection","leftComponentDirection","rightComponentDirection","lpath","WEST","EAST","leftComponentCenterY","leftY","Math","NORTH","SOUTH","rightY","undefined","reverse","upperComponentCenterX","upperX","lowerX","filter","p","idx","prev","length","next","nature","exports","Component","register"],"sources":["../../src/components/ortholine.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Line, { SOUTH, NORTH, EAST, WEST } from './line.js'\n\nconst FROM = 0\nconst TO = 1\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/ortholine'\n}\n\nexport default class OrthoLine extends Line {\n get pathExtendable() {\n return false\n }\n\n get drawPath() {\n const fromPosition = this.path[0]\n const toPosition = this.path[1]\n\n const {\n component: fromComponent,\n direction: fromDirection,\n boundaryPosition: fromBoundaryPosition = fromPosition\n } = this.fromEnd || {}\n const {\n component: toComponent,\n direction: toDirection,\n boundaryPosition: toBoundaryPosition = toPosition\n } = this.toEnd || {}\n\n var boundaryPositions = [fromBoundaryPosition, toBoundaryPosition]\n\n var path = []\n\n if (fromBoundaryPosition) {\n path.push(fromBoundaryPosition)\n }\n\n /* 두 컴포넌트의 확장된 바운드를 구한다. */\n var fromOriginBounds = fromComponent?.bounds\n if (fromOriginBounds) {\n var transcoorded = fromComponent.transcoordS2T(fromOriginBounds.left, fromOriginBounds.top)\n transcoorded = this.transcoordT2P(transcoorded.x, transcoorded.y)\n\n fromOriginBounds = {\n ...fromOriginBounds,\n left: transcoorded.x,\n top: transcoorded.y\n }\n }\n\n var fromBounds = fromOriginBounds\n ? {\n left: fromOriginBounds.left - 20,\n top: fromOriginBounds.top - 20,\n width: fromOriginBounds.width + 40,\n height: fromOriginBounds.height + 40\n }\n : {\n left: fromBoundaryPosition.x,\n top: fromBoundaryPosition.y,\n width: 0,\n height: 0\n }\n fromOriginBounds = fromOriginBounds || fromBounds\n\n var toOriginBounds = toComponent?.bounds\n if (toOriginBounds) {\n var transcoorded = toComponent.transcoordS2T(toOriginBounds.left, toOriginBounds.top)\n transcoorded = this.transcoordT2P(transcoorded.x, transcoorded.y)\n\n toOriginBounds = {\n ...toOriginBounds,\n left: transcoorded.x,\n top: transcoorded.y\n }\n }\n\n var toBounds = toOriginBounds\n ? {\n left: toOriginBounds.left - 20,\n top: toOriginBounds.top - 20,\n width: toOriginBounds.width + 40,\n height: toOriginBounds.height + 40\n }\n : {\n left: toBoundaryPosition.x,\n top: toBoundaryPosition.y,\n width: 0,\n height: 0\n }\n toOriginBounds = toOriginBounds || toBounds\n\n var fromToBounds = [fromBounds, toBounds]\n\n const leftMost = fromBounds.left > toBounds.left ? toBounds.left : fromBounds.left\n const topMost = fromBounds.top > toBounds.top ? toBounds.top : fromBounds.top\n\n var unionBounds = {\n left: leftMost,\n top: topMost,\n width:\n fromBounds.left + fromBounds.width > toBounds.left + toBounds.width\n ? fromBounds.left + fromBounds.width - leftMost\n : toBounds.left + toBounds.width - leftMost,\n height:\n fromBounds.top + fromBounds.height > toBounds.top + toBounds.height\n ? fromBounds.top + fromBounds.height - topMost\n : toBounds.top + toBounds.height - topMost\n }\n\n /* 두 컴포넌트 바운드의 센터를 찾는다. */\n var centerX,\n centerY,\n centerWidth = 0,\n centerHeight = 0\n var upperComponent, leftComponent, rightComponent, lowerComponent\n var upperComponentDirection, lowerComponentDirection\n var leftComponentDirection, rightComponentDirection\n\n if (fromOriginBounds.left + fromOriginBounds.width < toOriginBounds.left) {\n leftComponent = FROM\n rightComponent = TO\n leftComponentDirection = fromDirection\n rightComponentDirection = toDirection\n centerX = (fromOriginBounds.left + fromOriginBounds.width + toOriginBounds.left) / 2\n centerWidth = toOriginBounds.left - centerX\n } else if (toOriginBounds.left + toOriginBounds.width < fromOriginBounds.left) {\n leftComponent = TO\n rightComponent = FROM\n leftComponentDirection = toDirection\n rightComponentDirection = fromDirection\n centerX = (fromOriginBounds.left + toOriginBounds.width + toOriginBounds.left) / 2\n centerWidth = fromOriginBounds.left - centerX\n }\n\n if (fromOriginBounds.top + fromOriginBounds.height < toOriginBounds.top) {\n upperComponent = FROM\n lowerComponent = TO\n upperComponentDirection = fromDirection\n lowerComponentDirection = toDirection\n centerY = (fromOriginBounds.top + fromOriginBounds.height + toOriginBounds.top) / 2\n centerHeight = toOriginBounds.top - centerY\n } else if (toOriginBounds.top + toOriginBounds.height < fromOriginBounds.top) {\n upperComponent = TO\n lowerComponent = FROM\n upperComponentDirection = toDirection\n lowerComponentDirection = fromDirection\n centerY = (fromOriginBounds.top + toOriginBounds.height + toOriginBounds.top) / 2\n centerHeight = fromOriginBounds.top - centerY\n }\n\n /* 각 LinkEnd의 방향별 패스 구하기 */\n var lpath = []\n\n if (centerX && centerWidth > centerHeight) {\n switch (rightComponentDirection) {\n case WEST:\n switch (leftComponentDirection) {\n case EAST:\n lpath.push({\n x: centerX,\n y: boundaryPositions[leftComponent].y\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n case WEST:\n var leftComponentCenterY = fromToBounds[leftComponent].top + fromToBounds[leftComponent].height / 2\n var leftY =\n leftComponentCenterY > boundaryPositions[rightComponent].y\n ? Math.min(fromToBounds[leftComponent].top, boundaryPositions[rightComponent].y)\n : Math.max(\n fromToBounds[leftComponent].top + fromToBounds[leftComponent].height,\n boundaryPositions[rightComponent].y\n )\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n case NORTH:\n case SOUTH:\n var leftY =\n leftComponentDirection === SOUTH\n ? Math.max(boundaryPositions[leftComponent].y, boundaryPositions[rightComponent].y)\n : Math.min(boundaryPositions[leftComponent].y, boundaryPositions[rightComponent].y)\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: boundaryPositions[rightComponent].y\n })\n break\n default:\n return this.path\n }\n break\n case EAST:\n switch (leftComponentDirection) {\n case EAST:\n var leftY =\n boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? Math.min(fromToBounds[rightComponent].top, boundaryPositions[leftComponent].y)\n : Math.max(\n fromToBounds[rightComponent].top + fromToBounds[rightComponent].height,\n boundaryPositions[leftComponent].y\n )\n var rightY = leftY\n break\n\n case WEST:\n var leftY =\n centerY !== undefined\n ? centerY\n : boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? unionBounds.top - centerWidth * 0.5\n : unionBounds.top + unionBounds.height + centerWidth * 0.5\n\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY =\n centerY !== undefined\n ? Math.max(centerY, boundaryPositions[leftComponent].y)\n : unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n case NORTH:\n var leftY = centerY ? Math.min(centerY, fromToBounds[leftComponent].top) : unionBounds.top\n var rightY = leftY\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n\n break\n case SOUTH:\n switch (leftComponentDirection) {\n case EAST:\n var leftY = boundaryPositions[leftComponent].y\n var rightY =\n boundaryPositions[leftComponent].y > boundaryPositions[rightComponent].y\n ? boundaryPositions[leftComponent].y\n : fromToBounds[rightComponent].top + fromToBounds[rightComponent].height\n break\n\n case WEST:\n var leftY = centerY\n ? Math.max(centerY, fromToBounds[rightComponent].top + fromToBounds[rightComponent].height)\n : unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY = unionBounds.top + unionBounds.height\n var rightY = leftY\n\n break\n case NORTH:\n var leftY = centerY ? Math.min(centerY, fromToBounds[leftComponent].top) : fromToBounds[leftComponent].top\n var rightY = centerY\n ? Math.max(centerY, fromToBounds[rightComponent].top + fromToBounds[rightComponent].height)\n : fromToBounds[rightComponent].top + fromToBounds[rightComponent].height\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n break\n case NORTH:\n switch (leftComponentDirection) {\n case EAST:\n var leftY = boundaryPositions[leftComponent].y\n var rightY =\n boundaryPositions[leftComponent].y < boundaryPositions[rightComponent].y\n ? boundaryPositions[leftComponent].y\n : fromToBounds[rightComponent].top\n break\n\n case WEST:\n var leftY = centerY ? Math.min(centerY, fromToBounds[rightComponent].top) : unionBounds.top\n var rightY = leftY\n\n break\n\n case SOUTH:\n var leftY =\n centerY !== undefined\n ? Math.max(centerY, boundaryPositions[leftComponent].y)\n : boundaryPositions[leftComponent].y\n var rightY =\n centerY !== undefined\n ? Math.min(centerY, boundaryPositions[rightComponent].y)\n : boundaryPositions[rightComponent].y\n\n break\n case NORTH:\n var leftY = unionBounds.top\n var rightY = leftY\n\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: boundaryPositions[leftComponent].x,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: leftY\n })\n\n lpath.push({\n x: centerX,\n y: rightY\n })\n\n lpath.push({\n x: boundaryPositions[rightComponent].x,\n y: rightY\n })\n break\n default:\n return this.path\n }\n\n path.push(...(leftComponent === FROM ? lpath : lpath.reverse()))\n } else if (centerY) {\n switch (lowerComponentDirection) {\n case NORTH:\n switch (upperComponentDirection) {\n case SOUTH:\n lpath.push({\n x: boundaryPositions[upperComponent].x,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case NORTH:\n var upperComponentCenterX = fromToBounds[upperComponent].left + fromToBounds[upperComponent].width / 2\n var upperX =\n upperComponentCenterX > boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[upperComponent].left, boundaryPositions[lowerComponent].x)\n : Math.max(\n fromToBounds[upperComponent].left + fromToBounds[upperComponent].width,\n boundaryPositions[lowerComponent].x\n )\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case WEST:\n var upperX = Math.min(boundaryPositions[upperComponent].x, boundaryPositions[lowerComponent].x)\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n case EAST:\n var upperX = Math.max(boundaryPositions[upperComponent].x, boundaryPositions[lowerComponent].x)\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: boundaryPositions[lowerComponent].x,\n y: centerY\n })\n break\n default:\n return this.path\n }\n break\n case SOUTH:\n switch (upperComponentDirection) {\n case WEST:\n var upperX = unionBounds.left\n var lowerX = upperX\n break\n case EAST:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[upperComponent].x)\n : unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case NORTH:\n var upperX =\n centerX !== undefined\n ? centerX\n : boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? unionBounds.left - centerHeight * 0.5\n : unionBounds.left + unionBounds.width + centerHeight * 0.5\n var lowerX = upperX\n break\n case SOUTH:\n var upperX = boundaryPositions[upperComponent].x\n var lowerX =\n boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[lowerComponent].left, boundaryPositions[upperComponent].x)\n : Math.max(\n fromToBounds[lowerComponent].left + fromToBounds[lowerComponent].width,\n boundaryPositions[upperComponent].x\n )\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n case EAST:\n switch (upperComponentDirection) {\n case WEST:\n var upperX =\n centerX !== undefined\n ? Math.min(centerX, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[lowerComponent].x)\n : boundaryPositions[lowerComponent].x\n break\n case EAST:\n var upperX = unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case NORTH:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[lowerComponent].x)\n : unionBounds.left + unionBounds.width\n var lowerX = upperX\n break\n case SOUTH:\n var upperX = boundaryPositions[upperComponent].x\n var lowerX = Math.max(\n fromToBounds[lowerComponent].left + fromToBounds[lowerComponent].width,\n boundaryPositions[upperComponent].x\n )\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n case WEST:\n switch (upperComponentDirection) {\n case WEST:\n var upperX = unionBounds.left\n var lowerX = upperX\n\n break\n case EAST:\n var upperX =\n centerX !== undefined\n ? Math.max(centerX, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX =\n centerX !== undefined\n ? Math.min(centerX, boundaryPositions[lowerComponent].x)\n : boundaryPositions[lowerComponent].x\n break\n\n case NORTH:\n var upperX = unionBounds.left\n var lowerX = upperX\n\n break\n case SOUTH:\n var upperX =\n boundaryPositions[upperComponent].x < boundaryPositions[lowerComponent].x\n ? Math.min(fromToBounds[lowerComponent].left, boundaryPositions[upperComponent].x)\n : boundaryPositions[upperComponent].x\n var lowerX = Math.min(upperX, boundaryPositions[lowerComponent].x)\n break\n default:\n return this.path\n }\n\n lpath.push({\n x: upperX,\n y: boundaryPositions[upperComponent].y\n })\n\n lpath.push({\n x: upperX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: centerY\n })\n\n lpath.push({\n x: lowerX,\n y: boundaryPositions[lowerComponent].y\n })\n break\n default:\n return this.path\n }\n\n path.push(...(upperComponent === FROM ? lpath : lpath.reverse()))\n } else {\n switch (fromDirection) {\n case NORTH:\n switch (toDirection) {\n case NORTH:\n var y = unionBounds.top\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n\n path.push({\n x,\n y: unionBounds.top + unionBounds.height\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y: unionBounds.top + unionBounds.height\n })\n break\n case EAST:\n var x =\n boundaryPositions[TO].y < boundaryPositions[FROM].y &&\n boundaryPositions[TO].x < boundaryPositions[FROM].x\n ? boundaryPositions[FROM].x\n : unionBounds.left + unionBounds.width\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n case WEST:\n var x = unionBounds.left\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n\n break\n default:\n return this.path\n }\n break\n case SOUTH:\n switch (toDirection) {\n case NORTH:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n\n path.push({\n x,\n y: unionBounds.top\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y: unionBounds.top\n })\n break\n case SOUTH:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case WEST:\n var y = unionBounds.top + unionBounds.height\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n default:\n return this.path\n }\n break\n case WEST:\n switch (toDirection) {\n case NORTH:\n var x =\n boundaryPositions[FROM].x > boundaryPositions[TO].x &&\n boundaryPositions[FROM].y < boundaryPositions[TO].y\n ? boundaryPositions[TO].x\n : unionBounds.left\n var y =\n boundaryPositions[FROM].x > boundaryPositions[TO].x &&\n boundaryPositions[FROM].y < boundaryPositions[TO].y\n ? boundaryPositions[TO].y\n : Math.min(unionBounds.top, boundaryPositions[FROM].y)\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var x = unionBounds.left\n var y = Math.max(unionBounds.top + unionBounds.height, boundaryPositions[FROM].y)\n\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var x = unionBounds.left + unionBounds.width\n path.push({\n x: boundaryPositions[FROM].x,\n y: unionBounds.top\n })\n path.push({\n x,\n y: unionBounds.top\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n case WEST:\n var x = unionBounds.left\n path.push({\n x,\n y: boundaryPositions[FROM].y\n })\n path.push({\n x,\n y: boundaryPositions[TO].y\n })\n break\n default:\n return this.path\n }\n break\n case EAST:\n switch (toDirection) {\n case NORTH:\n var y =\n boundaryPositions[FROM].y < boundaryPositions[TO].y &&\n boundaryPositions[FROM].x < boundaryPositions[TO].x\n ? boundaryPositions[FROM].y\n : unionBounds.top\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case SOUTH:\n var y =\n boundaryPositions[FROM].y > boundaryPositions[TO].y &&\n boundaryPositions[FROM].x < boundaryPositions[TO].x\n ? boundaryPositions[FROM].y\n : unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n case EAST:\n var y = unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n\n case WEST:\n var y = unionBounds.top + unionBounds.height\n\n path.push({\n x: boundaryPositions[FROM].x,\n y\n })\n\n path.push({\n x: boundaryPositions[TO].x,\n y\n })\n break\n default:\n return this.path\n }\n break\n default:\n return this.path\n }\n }\n\n if (toBoundaryPosition) {\n path.push(toBoundaryPosition)\n }\n\n /* following 2 filters not to be merged */\n return [fromPosition, ...path, toPosition]\n .filter((p, idx, path) => {\n if (idx === 0) {\n return true\n }\n\n const prev = path[idx - 1]\n if (p.x === prev.x && p.y === prev.y) {\n return false\n }\n\n return true\n })\n .filter((p, idx, path) => {\n if (idx === 0 || idx >= path.length - 1) {\n return true\n }\n\n const prev = path[idx - 1]\n const next = path[idx + 1]\n\n if ((p.x === prev.x && p.x === next.x) || (p.y === prev.y && p.y === next.y)) {\n return false\n }\n\n return true\n })\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.register('ortholine', OrthoLine)\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = ellipseOutline;
7
- /*
8
- * Copyright © HatioLab Inc. All rights reserved.
9
- */
10
-
11
- function ellipseOutline(component, progress) {
12
- var {
13
- cx,
14
- cy,
15
- rx,
16
- ry
17
- } = component.model;
18
- var theta = Math.PI * 2 * progress;
19
- var x = cx + rx * Math.cos(theta);
20
- var y = cy + ry * Math.sin(theta);
21
- return component.transcoordS2T(x, y);
22
- }
23
- //# sourceMappingURL=ellipse-outline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipse-outline.js","names":["ellipseOutline","component","progress","cx","cy","rx","ry","model","theta","Math","PI","x","cos","y","sin","transcoordS2T"],"sources":["../../../src/components/outline/ellipse-outline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function ellipseOutline(component, progress) {\n var { cx, cy, rx, ry } = component.model\n var theta = Math.PI * 2 * progress\n\n var x = cx + rx * Math.cos(theta)\n var y = cy + ry * Math.sin(theta)\n\n return component.transcoordS2T(x, y)\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,cAAcA,CAACC,SAAS,EAAEC,QAAQ,EAAE;EAC1D,IAAI;IAAEC,EAAE;IAAEC,EAAE;IAAEC,EAAE;IAAEC;EAAG,CAAC,GAAGL,SAAS,CAACM,KAAK;EACxC,IAAIC,KAAK,GAAGC,IAAI,CAACC,EAAE,GAAG,CAAC,GAAGR,QAAQ;EAElC,IAAIS,CAAC,GAAGR,EAAE,GAAGE,EAAE,GAAGI,IAAI,CAACG,GAAG,CAACJ,KAAK,CAAC;EACjC,IAAIK,CAAC,GAAGT,EAAE,GAAGE,EAAE,GAAGG,IAAI,CAACK,GAAG,CAACN,KAAK,CAAC;EAEjC,OAAOP,SAAS,CAACc,aAAa,CAACJ,CAAC,EAAEE,CAAC,CAAC;AACtC","ignoreList":[]}
@@ -1,48 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = pathOutline;
7
- var _logger = require("../../core/logger.js");
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
-
12
- function pathOutline(component, progress) {
13
- var path = component.path.slice();
14
- if (!path || !path.length) {
15
- (0, _logger.error)('path should not be empty');
16
- return;
17
- }
18
- var i = 1;
19
- var lengths = [];
20
- if (!component.isLine()) path.push(path[0]);
21
- if (progress <= 0) return component.transcoordS2T(path[0].x, path[0].y);
22
- if (progress >= 1) return component.transcoordS2T(path[path.length - 1].x, path[path.length - 1].y);
23
- while (path[i]) {
24
- let prev = path[i - 1];
25
- let curr = path[i];
26
- let diffx = curr.x - prev.x;
27
- let diffy = curr.y - prev.y;
28
- lengths.push(Math.sqrt(diffx * diffx + diffy * diffy));
29
- i++;
30
- }
31
- var total = lengths.reduce(function (total, curr) {
32
- return total + curr;
33
- }, 0);
34
- i = 0;
35
- var len = 0;
36
- do {
37
- len += lengths[i++];
38
- } while (len / total < progress);
39
- len -= lengths[--i];
40
- var begin = len / total;
41
- progress = (progress - begin) * (total / lengths[i]);
42
- var from = path[i % path.length];
43
- var to = path[(i + 1) % path.length];
44
- var x = from.x + Math.round((to.x - from.x) * progress);
45
- var y = from.y + Math.round((to.y - from.y) * progress);
46
- return component.transcoordS2T(x, y);
47
- }
48
- //# sourceMappingURL=path-outline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path-outline.js","names":["_logger","require","pathOutline","component","progress","path","slice","length","error","i","lengths","isLine","push","transcoordS2T","x","y","prev","curr","diffx","diffy","Math","sqrt","total","reduce","len","begin","from","to","round"],"sources":["../../../src/components/outline/path-outline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { error } from '../../core/logger.js'\n\nexport default function pathOutline(component, progress) {\n var path = component.path.slice()\n\n if (!path || !path.length) {\n error('path should not be empty')\n return\n }\n\n var i = 1\n var lengths = []\n\n if (!component.isLine()) path.push(path[0])\n\n if (progress <= 0) return component.transcoordS2T(path[0].x, path[0].y)\n if (progress >= 1) return component.transcoordS2T(path[path.length - 1].x, path[path.length - 1].y)\n\n while (path[i]) {\n let prev = path[i - 1]\n let curr = path[i]\n\n let diffx = curr.x - prev.x\n let diffy = curr.y - prev.y\n\n lengths.push(Math.sqrt(diffx * diffx + diffy * diffy))\n\n i++\n }\n\n var total = lengths.reduce(function (total, curr) {\n return total + curr\n }, 0)\n\n i = 0\n\n var len = 0\n\n do {\n len += lengths[i++]\n } while (len / total < progress)\n len -= lengths[--i]\n\n var begin = len / total\n\n progress = (progress - begin) * (total / lengths[i])\n\n var from = path[i % path.length]\n var to = path[(i + 1) % path.length]\n\n var x = from.x + Math.round((to.x - from.x) * progress)\n var y = from.y + Math.round((to.y - from.y) * progress)\n\n return component.transcoordS2T(x, y)\n}\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIe,SAASC,WAAWA,CAACC,SAAS,EAAEC,QAAQ,EAAE;EACvD,IAAIC,IAAI,GAAGF,SAAS,CAACE,IAAI,CAACC,KAAK,CAAC,CAAC;EAEjC,IAAI,CAACD,IAAI,IAAI,CAACA,IAAI,CAACE,MAAM,EAAE;IACzB,IAAAC,aAAK,EAAC,0BAA0B,CAAC;IACjC;EACF;EAEA,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,OAAO,GAAG,EAAE;EAEhB,IAAI,CAACP,SAAS,CAACQ,MAAM,CAAC,CAAC,EAAEN,IAAI,CAACO,IAAI,CAACP,IAAI,CAAC,CAAC,CAAC,CAAC;EAE3C,IAAID,QAAQ,IAAI,CAAC,EAAE,OAAOD,SAAS,CAACU,aAAa,CAACR,IAAI,CAAC,CAAC,CAAC,CAACS,CAAC,EAAET,IAAI,CAAC,CAAC,CAAC,CAACU,CAAC,CAAC;EACvE,IAAIX,QAAQ,IAAI,CAAC,EAAE,OAAOD,SAAS,CAACU,aAAa,CAACR,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,CAACO,CAAC,EAAET,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC,CAAC,CAACQ,CAAC,CAAC;EAEnG,OAAOV,IAAI,CAACI,CAAC,CAAC,EAAE;IACd,IAAIO,IAAI,GAAGX,IAAI,CAACI,CAAC,GAAG,CAAC,CAAC;IACtB,IAAIQ,IAAI,GAAGZ,IAAI,CAACI,CAAC,CAAC;IAElB,IAAIS,KAAK,GAAGD,IAAI,CAACH,CAAC,GAAGE,IAAI,CAACF,CAAC;IAC3B,IAAIK,KAAK,GAAGF,IAAI,CAACF,CAAC,GAAGC,IAAI,CAACD,CAAC;IAE3BL,OAAO,CAACE,IAAI,CAACQ,IAAI,CAACC,IAAI,CAACH,KAAK,GAAGA,KAAK,GAAGC,KAAK,GAAGA,KAAK,CAAC,CAAC;IAEtDV,CAAC,EAAE;EACL;EAEA,IAAIa,KAAK,GAAGZ,OAAO,CAACa,MAAM,CAAC,UAAUD,KAAK,EAAEL,IAAI,EAAE;IAChD,OAAOK,KAAK,GAAGL,IAAI;EACrB,CAAC,EAAE,CAAC,CAAC;EAELR,CAAC,GAAG,CAAC;EAEL,IAAIe,GAAG,GAAG,CAAC;EAEX,GAAG;IACDA,GAAG,IAAId,OAAO,CAACD,CAAC,EAAE,CAAC;EACrB,CAAC,QAAQe,GAAG,GAAGF,KAAK,GAAGlB,QAAQ;EAC/BoB,GAAG,IAAId,OAAO,CAAC,EAAED,CAAC,CAAC;EAEnB,IAAIgB,KAAK,GAAGD,GAAG,GAAGF,KAAK;EAEvBlB,QAAQ,GAAG,CAACA,QAAQ,GAAGqB,KAAK,KAAKH,KAAK,GAAGZ,OAAO,CAACD,CAAC,CAAC,CAAC;EAEpD,IAAIiB,IAAI,GAAGrB,IAAI,CAACI,CAAC,GAAGJ,IAAI,CAACE,MAAM,CAAC;EAChC,IAAIoB,EAAE,GAAGtB,IAAI,CAAC,CAACI,CAAC,GAAG,CAAC,IAAIJ,IAAI,CAACE,MAAM,CAAC;EAEpC,IAAIO,CAAC,GAAGY,IAAI,CAACZ,CAAC,GAAGM,IAAI,CAACQ,KAAK,CAAC,CAACD,EAAE,CAACb,CAAC,GAAGY,IAAI,CAACZ,CAAC,IAAIV,QAAQ,CAAC;EACvD,IAAIW,CAAC,GAAGW,IAAI,CAACX,CAAC,GAAGK,IAAI,CAACQ,KAAK,CAAC,CAACD,EAAE,CAACZ,CAAC,GAAGW,IAAI,CAACX,CAAC,IAAIX,QAAQ,CAAC;EAEvD,OAAOD,SAAS,CAACU,aAAa,CAACC,CAAC,EAAEC,CAAC,CAAC;AACtC","ignoreList":[]}
@@ -1,49 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- class Path extends _component.default {
14
- render(ctx) {
15
- var {
16
- path = []
17
- } = this.state;
18
- if (path.length <= 1) return;
19
-
20
- // Polyline을 그린다.
21
- ctx.beginPath();
22
- ctx.moveTo(path[0].x, path[0].y);
23
- for (let i = 1; i < path.length; i++) ctx.lineTo(path[i].x, path[i].y);
24
- ctx.closePath();
25
- this.drawStroke(ctx);
26
- }
27
- get path() {
28
- return this.model.path;
29
- }
30
- set path(path) {
31
- this.set('path', path);
32
- }
33
- contains(x, y) {
34
- var path = this.state.path;
35
- var result = false;
36
- path.forEach((p, idx) => {
37
- let j = (idx + path.length + 1) % path.length;
38
- let x1 = p.x;
39
- let y1 = p.y;
40
- let x2 = path[j].x;
41
- let y2 = path[j].y;
42
- if (y1 > y != y2 > y && x < (x2 - x1) * (y - y1) / (y2 - y1) + x1) result = !result;
43
- });
44
- return result;
45
- }
46
- }
47
- exports.default = Path;
48
- _component.default.register('path', Path);
49
- //# sourceMappingURL=path.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"path.js","names":["_component","_interopRequireDefault","require","e","__esModule","default","Path","Component","render","ctx","path","state","length","beginPath","moveTo","x","y","i","lineTo","closePath","drawStroke","model","set","contains","result","forEach","p","idx","j","x1","y1","x2","y2","exports","register"],"sources":["../../src/components/path.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\n\nexport default class Path extends Component {\n render(ctx) {\n var { path = [] } = this.state\n\n if (path.length <= 1) return\n\n // Polyline을 그린다.\n ctx.beginPath()\n\n ctx.moveTo(path[0].x, path[0].y)\n\n for (let i = 1; i < path.length; i++) ctx.lineTo(path[i].x, path[i].y)\n\n ctx.closePath()\n\n this.drawStroke(ctx)\n }\n\n get path() {\n return this.model.path\n }\n\n set path(path) {\n this.set('path', path)\n }\n\n contains(x, y) {\n var path = this.state.path\n var result = false\n\n path.forEach((p, idx) => {\n let j = (idx + path.length + 1) % path.length\n\n let x1 = p.x\n let y1 = p.y\n let x2 = path[j].x\n let y2 = path[j].y\n\n if (y1 > y != y2 > y && x < ((x2 - x1) * (y - y1)) / (y2 - y1) + x1) result = !result\n })\n\n return result\n }\n}\n\nComponent.register('path', Path)\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAsC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJtC;AACA;AACA;;AAIe,MAAMG,IAAI,SAASC,kBAAS,CAAC;EAC1CC,MAAMA,CAACC,GAAG,EAAE;IACV,IAAI;MAAEC,IAAI,GAAG;IAAG,CAAC,GAAG,IAAI,CAACC,KAAK;IAE9B,IAAID,IAAI,CAACE,MAAM,IAAI,CAAC,EAAE;;IAEtB;IACAH,GAAG,CAACI,SAAS,CAAC,CAAC;IAEfJ,GAAG,CAACK,MAAM,CAACJ,IAAI,CAAC,CAAC,CAAC,CAACK,CAAC,EAAEL,IAAI,CAAC,CAAC,CAAC,CAACM,CAAC,CAAC;IAEhC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,IAAI,CAACE,MAAM,EAAEK,CAAC,EAAE,EAAER,GAAG,CAACS,MAAM,CAACR,IAAI,CAACO,CAAC,CAAC,CAACF,CAAC,EAAEL,IAAI,CAACO,CAAC,CAAC,CAACD,CAAC,CAAC;IAEtEP,GAAG,CAACU,SAAS,CAAC,CAAC;IAEf,IAAI,CAACC,UAAU,CAACX,GAAG,CAAC;EACtB;EAEA,IAAIC,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACW,KAAK,CAACX,IAAI;EACxB;EAEA,IAAIA,IAAIA,CAACA,IAAI,EAAE;IACb,IAAI,CAACY,GAAG,CAAC,MAAM,EAAEZ,IAAI,CAAC;EACxB;EAEAa,QAAQA,CAACR,CAAC,EAAEC,CAAC,EAAE;IACb,IAAIN,IAAI,GAAG,IAAI,CAACC,KAAK,CAACD,IAAI;IAC1B,IAAIc,MAAM,GAAG,KAAK;IAElBd,IAAI,CAACe,OAAO,CAAC,CAACC,CAAC,EAAEC,GAAG,KAAK;MACvB,IAAIC,CAAC,GAAG,CAACD,GAAG,GAAGjB,IAAI,CAACE,MAAM,GAAG,CAAC,IAAIF,IAAI,CAACE,MAAM;MAE7C,IAAIiB,EAAE,GAAGH,CAAC,CAACX,CAAC;MACZ,IAAIe,EAAE,GAAGJ,CAAC,CAACV,CAAC;MACZ,IAAIe,EAAE,GAAGrB,IAAI,CAACkB,CAAC,CAAC,CAACb,CAAC;MAClB,IAAIiB,EAAE,GAAGtB,IAAI,CAACkB,CAAC,CAAC,CAACZ,CAAC;MAElB,IAAIc,EAAE,GAAGd,CAAC,IAAIgB,EAAE,GAAGhB,CAAC,IAAID,CAAC,GAAI,CAACgB,EAAE,GAAGF,EAAE,KAAKb,CAAC,GAAGc,EAAE,CAAC,IAAKE,EAAE,GAAGF,EAAE,CAAC,GAAGD,EAAE,EAAEL,MAAM,GAAG,CAACA,MAAM;IACvF,CAAC,CAAC;IAEF,OAAOA,MAAM;EACf;AACF;AAACS,OAAA,CAAA5B,OAAA,GAAAC,IAAA;AAEDC,kBAAS,CAAC2B,QAAQ,CAAC,MAAM,EAAE5B,IAAI,CAAC","ignoreList":[]}
@@ -1,91 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _shape = _interopRequireDefault(require("./shape.js"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- var controlHandler = {
15
- ondragstart: function (point, index, component) {
16
- component.mutatePath(null, function (path) {
17
- path.splice(index + 1, 0, point);
18
- });
19
- },
20
- ondragmove: function (point, index, component) {
21
- component.mutatePath(null, function (path) {
22
- path[index + 1] = point;
23
- });
24
- },
25
- ondragend: function (point, index, component) {}
26
- };
27
- const NATURE = {
28
- mutable: true,
29
- resizable: false,
30
- rotatable: true,
31
- properties: [{
32
- type: 'number',
33
- label: 'round',
34
- name: 'round',
35
- property: {
36
- min: 0,
37
- max: 100,
38
- step: 1
39
- }
40
- }],
41
- help: 'scene/component/polygon'
42
- };
43
- class Polygon extends _shape.default {
44
- is3dish() {
45
- return true;
46
- }
47
- get mutable() {
48
- return true;
49
- }
50
- get pathExtendable() {
51
- return true;
52
- }
53
- get path() {
54
- return this.state.path;
55
- }
56
- set path(path) {
57
- this.set('path', path);
58
- }
59
- contains(x, y) {
60
- var path = this.state.path;
61
- var result = false;
62
- path.forEach((p, idx) => {
63
- let j = (idx + path.length + 1) % path.length;
64
- let x1 = p.x;
65
- let y1 = p.y;
66
- let x2 = path[j].x;
67
- let y2 = path[j].y;
68
- if (y1 > y != y2 > y && x < (x2 - x1) * (y - y1) / (y2 - y1) + x1) result = !result;
69
- });
70
- return result;
71
- }
72
- get controls() {
73
- // 폴리곤에서의 control은 새로운 path를 추가하는 포인트이다.
74
- var path = this.path;
75
- return path.map((p1, i) => {
76
- let p2 = path[i + 1 >= path.length ? 0 : i + 1];
77
- return {
78
- x: (p1.x + p2.x) / 2,
79
- y: (p1.y + p2.y) / 2,
80
- handler: controlHandler
81
- };
82
- });
83
- }
84
- get nature() {
85
- return NATURE;
86
- }
87
- }
88
- exports.default = Polygon;
89
- _component.default.memoize(Polygon.prototype, 'controls', false);
90
- _component.default.register('polygon', Polygon);
91
- //# sourceMappingURL=polygon.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polygon.js","names":["_component","_interopRequireDefault","require","_shape","e","__esModule","default","controlHandler","ondragstart","point","index","component","mutatePath","path","splice","ondragmove","ondragend","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","Polygon","Shape","is3dish","pathExtendable","state","set","contains","x","y","result","forEach","p","idx","j","length","x1","y1","x2","y2","controls","map","p1","i","p2","handler","nature","exports","Component","memoize","prototype","register"],"sources":["../../src/components/polygon.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Shape from './shape.js'\n\nvar controlHandler = {\n ondragstart: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path.splice(index + 1, 0, point)\n })\n },\n\n ondragmove: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path[index + 1] = point\n })\n },\n\n ondragend: function (point, index, component) {}\n}\n\nconst NATURE = {\n mutable: true,\n resizable: false,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/polygon'\n}\n\nexport default class Polygon extends Shape {\n is3dish() {\n return true\n }\n\n get mutable() {\n return true\n }\n\n get pathExtendable() {\n return true\n }\n\n get path() {\n return this.state.path\n }\n\n set path(path) {\n this.set('path', path)\n }\n\n contains(x, y) {\n var path = this.state.path\n var result = false\n\n path.forEach((p, idx) => {\n let j = (idx + path.length + 1) % path.length\n\n let x1 = p.x\n let y1 = p.y\n let x2 = path[j].x\n let y2 = path[j].y\n\n if (y1 > y != y2 > y && x < ((x2 - x1) * (y - y1)) / (y2 - y1) + x1) result = !result\n })\n\n return result\n }\n\n get controls() {\n // 폴리곤에서의 control은 새로운 path를 추가하는 포인트이다.\n var path = this.path\n\n return path.map((p1, i) => {\n let p2 = path[i + 1 >= path.length ? 0 : i + 1]\n\n return {\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2,\n handler: controlHandler\n }\n })\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Polygon.prototype, 'controls', false)\n\nComponent.register('polygon', Polygon)\n"],"mappings":"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","ignoreList":[]}
@@ -1,114 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _line = _interopRequireDefault(require("./line.js"));
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- var controlHandler = {
15
- ondragstart: function (point, index, component) {
16
- component.mutatePath(null, function (path) {
17
- path.splice(index, 0, point); // array.insert(index, point) 의 의미임.
18
- });
19
- },
20
- ondragmove: function (point, index, component) {
21
- component.mutatePath(null, function (path) {
22
- path[index] = point;
23
- });
24
- },
25
- ondragend: function (point, index, component) {}
26
- };
27
- const NATURE = {
28
- mutable: false,
29
- resizable: false,
30
- rotatable: false,
31
- properties: [{
32
- type: 'number',
33
- label: 'round',
34
- name: 'round',
35
- property: {
36
- min: 0,
37
- max: 100,
38
- step: 1
39
- }
40
- }],
41
- help: 'scene/component/polyline'
42
- };
43
- class Polyline extends _line.default {
44
- get pathExtendable() {
45
- return true;
46
- }
47
- get path() {
48
- const {
49
- from,
50
- to
51
- } = this.state;
52
- const {
53
- path
54
- } = this.state;
55
- return [this.fromEnd?.position || from?.position || path[0], ...path.slice(1, -1), this.toEnd?.position || to?.position || path[path.length - 1]];
56
- }
57
- set path(path) {
58
- const {
59
- from,
60
- to
61
- } = this.state;
62
- delete this._fromEnd;
63
- delete this._toEnd;
64
- this.set({
65
- from: {
66
- ...from,
67
- position: path[0]
68
- },
69
- to: {
70
- ...to,
71
- position: path[path.length - 1]
72
- },
73
- path
74
- });
75
- }
76
- get controls() {
77
- // 폴리라인에서의 control은 새로운 path를 추가하는 포인트이다.
78
- var path = this.path;
79
- var controls = [];
80
- for (let i = 0; i < path.length - 1; i++) {
81
- let p1 = path[i];
82
- let p2 = path[i + 1];
83
- if (i == 0) {
84
- controls.push({
85
- x: p1.x,
86
- y: p1.y,
87
- handler: controlHandler
88
- });
89
- }
90
- controls.push({
91
- x: (p1.x + p2.x) / 2,
92
- y: (p1.y + p2.y) / 2,
93
- handler: controlHandler
94
- });
95
- if (i == path.length - 2) {
96
- controls.push({
97
- x: p2.x,
98
- y: p2.y,
99
- handler: controlHandler
100
- });
101
- }
102
- }
103
- return controls;
104
- }
105
- get nature() {
106
- return NATURE;
107
- }
108
- }
109
-
110
- /* target anchor의 움직임이 반영되지 못하므로, 일단 controls memoize를 제거함. */
111
- // Component.memoize(Polyline.prototype, 'controls', false)
112
- exports.default = Polyline;
113
- _component.default.register('polyline', Polyline);
114
- //# sourceMappingURL=polyline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"polyline.js","names":["_component","_interopRequireDefault","require","_line","e","__esModule","default","controlHandler","ondragstart","point","index","component","mutatePath","path","splice","ondragmove","ondragend","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","min","max","step","help","Polyline","Line","pathExtendable","from","to","state","fromEnd","position","slice","toEnd","length","_fromEnd","_toEnd","set","controls","i","p1","p2","push","x","y","handler","nature","exports","Component","register"],"sources":["../../src/components/polyline.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Line from './line.js'\n\nvar controlHandler = {\n ondragstart: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path.splice(index, 0, point) // array.insert(index, point) 의 의미임.\n })\n },\n\n ondragmove: function (point, index, component) {\n component.mutatePath(null, function (path) {\n path[index] = point\n })\n },\n\n ondragend: function (point, index, component) {}\n}\n\nconst NATURE = {\n mutable: false,\n resizable: false,\n rotatable: false,\n properties: [\n {\n type: 'number',\n label: 'round',\n name: 'round',\n property: {\n min: 0,\n max: 100,\n step: 1\n }\n }\n ],\n help: 'scene/component/polyline'\n}\n\nexport default class Polyline extends Line {\n get pathExtendable() {\n return true\n }\n\n get path() {\n const { from, to } = this.state\n const { path } = this.state\n\n return [\n this.fromEnd?.position || from?.position || path[0],\n ...path.slice(1, -1),\n this.toEnd?.position || to?.position || path[path.length - 1]\n ]\n }\n\n set path(path) {\n const { from, to } = this.state\n\n delete this._fromEnd\n delete this._toEnd\n\n this.set({\n from: {\n ...from,\n position: path[0]\n },\n to: {\n ...to,\n position: path[path.length - 1]\n },\n path\n })\n }\n\n get controls() {\n // 폴리라인에서의 control은 새로운 path를 추가하는 포인트이다.\n var path = this.path\n var controls = []\n\n for (let i = 0; i < path.length - 1; i++) {\n let p1 = path[i]\n let p2 = path[i + 1]\n\n if (i == 0) {\n controls.push({\n x: p1.x,\n y: p1.y,\n handler: controlHandler\n })\n }\n\n controls.push({\n x: (p1.x + p2.x) / 2,\n y: (p1.y + p2.y) / 2,\n handler: controlHandler\n })\n\n if (i == path.length - 2) {\n controls.push({\n x: p2.x,\n y: p2.y,\n handler: controlHandler\n })\n }\n }\n\n return controls\n }\n\n get nature() {\n return NATURE\n }\n}\n\n/* target anchor의 움직임이 반영되지 못하므로, 일단 controls memoize를 제거함. */\n// Component.memoize(Polyline.prototype, 'controls', false)\n\nComponent.register('polyline', Polyline)\n"],"mappings":"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","ignoreList":[]}