@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,374 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = exports.WEST = exports.SOUTH = exports.NORTH = exports.EAST = void 0;
7
- var _component = _interopRequireDefault(require("./component.js"));
8
- var _line = require("./drawer/line.js");
9
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
- /*
11
- * Copyright © HatioLab Inc. All rights reserved.
12
- */
13
-
14
- const NORTH = exports.NORTH = 'N';
15
- const SOUTH = exports.SOUTH = 'S';
16
- const EAST = exports.EAST = 'E';
17
- const WEST = exports.WEST = 'W';
18
- class LinkEnd {
19
- constructor({
20
- component,
21
- anchor,
22
- position,
23
- self
24
- }) {
25
- this.component = component; /* component */
26
- this._anchorName = anchor;
27
- this._position = position;
28
- this.self = self;
29
- }
30
- get position() {
31
- const anchor = this.anchor;
32
- if (anchor) {
33
- var {
34
- position
35
- } = anchor;
36
- const fromTop = this.component.transcoordS2T(position.x, position.y);
37
- return this.self.transcoordT2P(fromTop.x, fromTop.y);
38
- }
39
- return this._position;
40
- }
41
- set position({
42
- x,
43
- y
44
- }) {
45
- this._position = {
46
- x,
47
- y
48
- };
49
- }
50
- get anchor() {
51
- return this.component?.findAnchor(this._anchorName /* anchor name */);
52
- }
53
- get direction() {
54
- const bounds = this.component.bounds;
55
- const anchor = this.anchor;
56
- if (!anchor) {
57
- return EAST;
58
- }
59
- const position = anchor.position;
60
- if (position.y <= bounds.top) {
61
- return NORTH;
62
- }
63
- if (position.y >= bounds.top + bounds.height) {
64
- return SOUTH;
65
- }
66
- if (position.x <= bounds.left) {
67
- return WEST;
68
- }
69
- return EAST;
70
- }
71
- get boundaryPosition() {
72
- const anchor = this.anchor;
73
- if (anchor) {
74
- var {
75
- position
76
- } = anchor;
77
- var dx = 0,
78
- dy = 0;
79
- switch (this.direction) {
80
- case SOUTH:
81
- dy = 20;
82
- break;
83
- case NORTH:
84
- dy = -20;
85
- break;
86
- case WEST:
87
- dx = -20;
88
- break;
89
- case EAST:
90
- default:
91
- dx = 20;
92
- }
93
- position = {
94
- x: position.x + dx,
95
- y: position.y + dy
96
- };
97
- const fromTop = this.component.transcoordS2T(position.x, position.y);
98
- return this.self.transcoordT2P(fromTop.x, fromTop.y);
99
- }
100
- }
101
- }
102
-
103
- /**
104
- * LinkEndConfig definition
105
- * @typedef {Object} LinkEndConfig
106
- * @property {string} component - end component refid
107
- * @property {string} anchor - end anchor name of end component
108
- * @property {Position} position - position of the link end
109
- */
110
-
111
- /**
112
- * Line type definition
113
- * @typedef {Object} Line
114
- * @property {LinkEndConfig} from
115
- * @property {LinkEndConfig} to
116
- * @property {LinkEnd} fromEnd
117
- * @property {LinkEnd} toEnd
118
- */
119
- class Line extends _component.default {
120
- isLine() {
121
- return true;
122
- }
123
- replaceRefids(replaceMap) {
124
- ;
125
- ['from', 'to'].forEach(fromto => {
126
- const anchor = this.get(fromto);
127
- if (anchor?.component) {
128
- const refid = replaceMap.get(anchor.component) || anchor.component;
129
- this.set(fromto, {
130
- ...anchor,
131
- component: refid
132
- });
133
- }
134
- });
135
- }
136
- get fromEnd() {
137
- if (this.parent && !this._fromEnd) {
138
- const {
139
- component,
140
- anchor,
141
- position
142
- } = this.getState('from') || {};
143
- if (!component) {
144
- return;
145
- }
146
- const componentObject = this.root?.findByRefid(component);
147
- if (!componentObject) {
148
- return;
149
- }
150
- this._fromEnd = new LinkEnd({
151
- component: componentObject,
152
- fromto: 'from',
153
- anchor,
154
- position,
155
- self: this
156
- });
157
- }
158
- return this._fromEnd;
159
- }
160
- get from() {
161
- return this.getState('from');
162
- }
163
- set from(from) {
164
- delete this._fromEnd;
165
- this.set('from', from);
166
- }
167
- get toEnd() {
168
- if (this.parent && !this._toEnd) {
169
- const {
170
- component,
171
- anchor,
172
- position
173
- } = this.getState('to') || {};
174
- if (!component) {
175
- return;
176
- }
177
- const componentObject = this.root?.findByRefid(component);
178
- if (!componentObject) {
179
- return;
180
- }
181
- this._toEnd = new LinkEnd({
182
- component: componentObject,
183
- fromto: 'to',
184
- anchor,
185
- position,
186
- self: this
187
- });
188
- }
189
- return this._toEnd;
190
- }
191
- get to() {
192
- return this.getState('to');
193
- }
194
- set to(to) {
195
- delete this._toEnd;
196
- this.set('to', to);
197
- }
198
- move({
199
- x,
200
- y
201
- }, absolutly) {
202
- if (absolutly) {
203
- /* move시에는 먼저 anchor들을 detach한다. */
204
- this.from = {
205
- position: this._fromEnd?.position || this.getState('from')?.position || {
206
- x: 0,
207
- y: 0
208
- }
209
- };
210
- this.to = {
211
- position: this._toEnd?.position || this.getState('to')?.position || {
212
- x: 0,
213
- y: 0
214
- }
215
- };
216
- }
217
- super.move({
218
- x,
219
- y
220
- }, absolutly);
221
- }
222
- render(ctx) {
223
- var {
224
- begin = 'none',
225
- end = 'none',
226
- lineWidth,
227
- round = 0
228
- } = this.state;
229
- var path = this.drawPath;
230
- (0, _line.drawEndTips)(ctx, path, this.state);
231
- ctx.beginPath();
232
- var beginPos = (0, _line.getTipNeckPos)(begin, lineWidth, path[0], path[1]);
233
- var endPos = (0, _line.getTipNeckPos)(end, lineWidth, path[path.length - 1], path[path.length - 2]);
234
- path = [beginPos, ...path.slice(1, -1), endPos];
235
- var cursor = {
236
- x: beginPos.x,
237
- y: beginPos.y
238
- };
239
- ctx.moveTo(beginPos.x, beginPos.y);
240
- for (var i = 1; i < path.length; i++) {
241
- const prev = cursor;
242
- cursor = path[i];
243
- const next = path[i + 1];
244
- if (prev.x === cursor.x && prev.y === cursor.y) {
245
- continue;
246
- }
247
- if (!next) {
248
- ctx.lineTo(cursor.x, cursor.y);
249
- break;
250
- }
251
- var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y));
252
- var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0;
253
- var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
254
- var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
255
- const p1 = round > 0 || length !== 0 ? {
256
- x,
257
- y
258
- } : cursor;
259
- var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y));
260
- theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0;
261
- x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
262
- y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
263
- const p2 = round > 0 || length !== 0 ? {
264
- x,
265
- y
266
- } : cursor;
267
- ctx.lineTo(p1.x, p1.y);
268
- round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y);
269
- }
270
- this.drawStroke(ctx);
271
- }
272
- contains(x, y) {
273
- // 효율을 위해서, contains를 호출하기 전에 x, y좌표값은 이 컴포넌트에 대해서 이미 transcoord 된 상태이다.
274
- // 참조 : capture(x, y)
275
- var {
276
- lineWidth
277
- } = this.state;
278
- return (0, _line.containedInPath)(x, y, this.drawPath, lineWidth);
279
- }
280
- get resizable() {
281
- return false;
282
- }
283
- get mutable() {
284
- return true;
285
- }
286
- get rotatable() {
287
- return false;
288
- }
289
- get path() {
290
- const {
291
- from,
292
- to
293
- } = this.state;
294
- var {
295
- x1,
296
- y1,
297
- x2,
298
- y2
299
- } = this.state;
300
- return [this.fromEnd?.position || from?.position || {
301
- x: x1,
302
- y: y1
303
- }, this.toEnd?.position || to?.position || {
304
- x: x2,
305
- y: y2
306
- }];
307
- }
308
- set path(path) {
309
- const [p1, p2] = path;
310
- const {
311
- from,
312
- to
313
- } = this.state;
314
- delete this._fromEnd;
315
- delete this._toEnd;
316
- this.set({
317
- from: {
318
- ...from,
319
- position: p1
320
- },
321
- to: {
322
- ...to,
323
- position: p2
324
- }
325
- });
326
- }
327
- get textBounds() {
328
- var path = this.drawPath;
329
- var from, to;
330
- var maxLength = 0;
331
-
332
- /* Find the longest path and set its midpoint as textBounds */
333
- for (let i = 1; i < path.length; i++) {
334
- var prev = path[i - 1];
335
- var next = path[i];
336
- var length = (prev.x - next.x) * (prev.x - next.x) + (prev.y - next.y) * (prev.y - next.y);
337
- if (length > maxLength) {
338
- // In case of similar length, the front pass takes precedence.(비슷한 길이인 경우에는 앞쪽 패스를 우선시한다)
339
- maxLength = Math.ceil(length);
340
- from = prev;
341
- to = next;
342
- }
343
- }
344
- var {
345
- paddingTop,
346
- paddingLeft,
347
- paddingRight,
348
- paddingBottom
349
- } = this.state;
350
- paddingBottom ||= 0;
351
- paddingTop ||= 0;
352
- paddingLeft ||= 0;
353
- paddingRight ||= 0;
354
- return {
355
- left: Math.min(from.x, to.x) + paddingLeft,
356
- top: Math.min(from.y, to.y) + paddingTop,
357
- width: Math.max(Math.abs(from.x - to.x) - paddingLeft - paddingRight, 0),
358
- height: Math.max(Math.abs(from.y - to.y) - paddingTop - paddingBottom, 0)
359
- };
360
- }
361
- get decorators() {
362
- return ['decotag'];
363
- }
364
- }
365
- exports.default = Line;
366
- Line.getTipNeckPos = _line.getTipNeckPos;
367
- Line.containedInPath = _line.containedInPath;
368
- Line.drawEndTips = _line.drawEndTips;
369
-
370
- /* anchor에 붙은 line은 모델의 변경없이도 position이 변화할 수 있으므로, memoize를 하지 않는다. */
371
- // Component.memoize(Line.prototype, 'path', false)
372
-
373
- _component.default.register('line', Line);
374
- //# sourceMappingURL=line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"line.js","names":["_component","_interopRequireDefault","require","_line","e","__esModule","default","NORTH","exports","SOUTH","EAST","WEST","LinkEnd","constructor","component","anchor","position","self","_anchorName","_position","fromTop","transcoordS2T","x","y","transcoordT2P","findAnchor","direction","bounds","top","height","left","boundaryPosition","dx","dy","Line","Component","isLine","replaceRefids","replaceMap","forEach","fromto","get","refid","set","fromEnd","parent","_fromEnd","getState","componentObject","root","findByRefid","from","toEnd","_toEnd","to","move","absolutly","render","ctx","begin","end","lineWidth","round","state","path","drawPath","drawEndTips","beginPath","beginPos","getTipNeckPos","endPos","length","slice","cursor","moveTo","i","prev","next","lineTo","Math","sqrt","theta","atan2","sin","min","cos","p1","p2","quadraticCurveTo","drawStroke","contains","containedInPath","resizable","mutable","rotatable","x1","y1","x2","y2","textBounds","maxLength","ceil","paddingTop","paddingLeft","paddingRight","paddingBottom","width","max","abs","decorators","register"],"sources":["../../src/components/line.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport { containedInPath, drawEndTips, getTipNeckPos } from './drawer/line.js'\n\nexport const NORTH = 'N'\nexport const SOUTH = 'S'\nexport const EAST = 'E'\nexport const WEST = 'W'\n\nclass LinkEnd {\n constructor({ component, anchor, position, self }) {\n this.component = component /* component */\n this._anchorName = anchor\n this._position = position\n this.self = self\n }\n\n get position() {\n const anchor = this.anchor\n if (anchor) {\n var { position } = anchor\n\n const fromTop = this.component.transcoordS2T(position.x, position.y)\n return this.self.transcoordT2P(fromTop.x, fromTop.y)\n }\n\n return this._position\n }\n\n set position({ x, y }) {\n this._position = { x, y }\n }\n\n get anchor() {\n return this.component?.findAnchor(this._anchorName /* anchor name */)\n }\n\n get direction() {\n const bounds = this.component.bounds\n const anchor = this.anchor\n\n if (!anchor) {\n return EAST\n }\n\n const position = anchor.position\n\n if (position.y <= bounds.top) {\n return NORTH\n }\n if (position.y >= bounds.top + bounds.height) {\n return SOUTH\n }\n if (position.x <= bounds.left) {\n return WEST\n }\n\n return EAST\n }\n\n get boundaryPosition() {\n const anchor = this.anchor\n\n if (anchor) {\n var { position } = anchor\n\n var dx = 0,\n dy = 0\n switch (this.direction) {\n case SOUTH:\n dy = 20\n break\n case NORTH:\n dy = -20\n break\n case WEST:\n dx = -20\n break\n case EAST:\n default:\n dx = 20\n }\n\n position = {\n x: position.x + dx,\n y: position.y + dy\n }\n\n const fromTop = this.component.transcoordS2T(position.x, position.y)\n return this.self.transcoordT2P(fromTop.x, fromTop.y)\n }\n }\n}\n\n/**\n * LinkEndConfig definition\n * @typedef {Object} LinkEndConfig\n * @property {string} component - end component refid\n * @property {string} anchor - end anchor name of end component\n * @property {Position} position - position of the link end\n */\n\n/**\n * Line type definition\n * @typedef {Object} Line\n * @property {LinkEndConfig} from\n * @property {LinkEndConfig} to\n * @property {LinkEnd} fromEnd\n * @property {LinkEnd} toEnd\n */\nexport default class Line extends Component {\n isLine() {\n return true\n }\n\n replaceRefids(replaceMap) {\n ;['from', 'to'].forEach(fromto => {\n const anchor = this.get(fromto)\n if (anchor?.component) {\n const refid = replaceMap.get(anchor.component) || anchor.component\n this.set(fromto, {\n ...anchor,\n component: refid\n })\n }\n })\n }\n\n get fromEnd() {\n if (this.parent && !this._fromEnd) {\n const { component, anchor, position } = this.getState('from') || {}\n\n if (!component) {\n return\n }\n\n const componentObject = this.root?.findByRefid(component)\n if (!componentObject) {\n return\n }\n\n this._fromEnd = new LinkEnd({\n component: componentObject,\n fromto: 'from',\n anchor,\n position,\n self: this\n })\n }\n\n return this._fromEnd\n }\n\n get from() {\n return this.getState('from')\n }\n\n set from(from) {\n delete this._fromEnd\n this.set('from', from)\n }\n\n get toEnd() {\n if (this.parent && !this._toEnd) {\n const { component, anchor, position } = this.getState('to') || {}\n\n if (!component) {\n return\n }\n\n const componentObject = this.root?.findByRefid(component)\n if (!componentObject) {\n return\n }\n\n this._toEnd = new LinkEnd({\n component: componentObject,\n fromto: 'to',\n anchor,\n position,\n self: this\n })\n }\n\n return this._toEnd\n }\n\n get to() {\n return this.getState('to')\n }\n\n set to(to) {\n delete this._toEnd\n this.set('to', to)\n }\n\n move({ x, y }, absolutly) {\n if (absolutly) {\n /* move시에는 먼저 anchor들을 detach한다. */\n this.from = {\n position: this._fromEnd?.position || this.getState('from')?.position || { x: 0, y: 0 }\n }\n this.to = {\n position: this._toEnd?.position || this.getState('to')?.position || { x: 0, y: 0 }\n }\n }\n\n super.move({ x, y }, absolutly)\n }\n\n render(ctx) {\n var { begin = 'none', end = 'none', lineWidth, round = 0 } = this.state\n\n var path = this.drawPath\n\n drawEndTips(ctx, path, this.state)\n\n ctx.beginPath()\n\n var beginPos = getTipNeckPos(begin, lineWidth, path[0], path[1])\n var endPos = getTipNeckPos(end, lineWidth, path[path.length - 1], path[path.length - 2])\n\n path = [beginPos, ...path.slice(1, -1), endPos]\n var cursor = { x: beginPos.x, y: beginPos.y }\n ctx.moveTo(beginPos.x, beginPos.y)\n\n for (var i = 1; i < path.length; i++) {\n const prev = cursor\n cursor = path[i]\n\n const next = path[i + 1]\n if (prev.x === cursor.x && prev.y === cursor.y) {\n continue\n }\n\n if (!next) {\n ctx.lineTo(cursor.x, cursor.y)\n break\n }\n\n var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y))\n var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0\n var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p1 = round > 0 || length !== 0 ? { x, y } : cursor\n\n var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y))\n theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0\n x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p2 = round > 0 || length !== 0 ? { x, y } : cursor\n\n ctx.lineTo(p1.x, p1.y)\n round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y)\n }\n\n this.drawStroke(ctx)\n }\n\n contains(x, y) {\n // 효율을 위해서, contains를 호출하기 전에 x, y좌표값은 이 컴포넌트에 대해서 이미 transcoord 된 상태이다.\n // 참조 : capture(x, y)\n var { lineWidth } = this.state\n\n return containedInPath(x, y, this.drawPath, lineWidth)\n }\n\n get resizable() {\n return false\n }\n\n get mutable() {\n return true\n }\n\n get rotatable() {\n return false\n }\n\n get path() {\n const { from, to } = this.state\n var { x1, y1, x2, y2 } = this.state\n\n return [\n this.fromEnd?.position ||\n from?.position || {\n x: x1,\n y: y1\n },\n this.toEnd?.position ||\n to?.position || {\n x: x2,\n y: y2\n }\n ]\n }\n\n set path(path) {\n const [p1, p2] = 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: p1\n },\n to: {\n ...to,\n position: p2\n }\n })\n }\n\n get textBounds() {\n var path = this.drawPath\n\n var from, to\n var maxLength = 0\n\n /* Find the longest path and set its midpoint as textBounds */\n for (let i = 1; i < path.length; i++) {\n var prev = path[i - 1]\n var next = path[i]\n\n var length = (prev.x - next.x) * (prev.x - next.x) + (prev.y - next.y) * (prev.y - next.y)\n if (length > maxLength) {\n // In case of similar length, the front pass takes precedence.(비슷한 길이인 경우에는 앞쪽 패스를 우선시한다)\n maxLength = Math.ceil(length)\n from = prev\n to = next\n }\n }\n\n var { paddingTop, paddingLeft, paddingRight, paddingBottom } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: Math.min(from.x, to.x) + paddingLeft,\n top: Math.min(from.y, to.y) + paddingTop,\n width: Math.max(Math.abs(from.x - to.x) - paddingLeft - paddingRight, 0),\n height: Math.max(Math.abs(from.y - to.y) - paddingTop - paddingBottom, 0)\n }\n }\n\n get decorators() {\n return ['decotag']\n }\n}\n\nLine.getTipNeckPos = getTipNeckPos\nLine.containedInPath = containedInPath\nLine.drawEndTips = drawEndTips\n\n/* anchor에 붙은 line은 모델의 변경없이도 position이 변화할 수 있으므로, memoize를 하지 않는다. */\n// Component.memoize(Line.prototype, 'path', false)\n\nComponent.register('line', Line)\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAA8E,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAL9E;AACA;AACA;;AAKO,MAAMG,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,GAAG;AACjB,MAAME,KAAK,GAAAD,OAAA,CAAAC,KAAA,GAAG,GAAG;AACjB,MAAMC,IAAI,GAAAF,OAAA,CAAAE,IAAA,GAAG,GAAG;AAChB,MAAMC,IAAI,GAAAH,OAAA,CAAAG,IAAA,GAAG,GAAG;AAEvB,MAAMC,OAAO,CAAC;EACZC,WAAWA,CAAC;IAAEC,SAAS;IAAEC,MAAM;IAAEC,QAAQ;IAAEC;EAAK,CAAC,EAAE;IACjD,IAAI,CAACH,SAAS,GAAGA,SAAS,EAAC;IAC3B,IAAI,CAACI,WAAW,GAAGH,MAAM;IACzB,IAAI,CAACI,SAAS,GAAGH,QAAQ;IACzB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EAEA,IAAID,QAAQA,CAAA,EAAG;IACb,MAAMD,MAAM,GAAG,IAAI,CAACA,MAAM;IAC1B,IAAIA,MAAM,EAAE;MACV,IAAI;QAAEC;MAAS,CAAC,GAAGD,MAAM;MAEzB,MAAMK,OAAO,GAAG,IAAI,CAACN,SAAS,CAACO,aAAa,CAACL,QAAQ,CAACM,CAAC,EAAEN,QAAQ,CAACO,CAAC,CAAC;MACpE,OAAO,IAAI,CAACN,IAAI,CAACO,aAAa,CAACJ,OAAO,CAACE,CAAC,EAAEF,OAAO,CAACG,CAAC,CAAC;IACtD;IAEA,OAAO,IAAI,CAACJ,SAAS;EACvB;EAEA,IAAIH,QAAQA,CAAC;IAAEM,CAAC;IAAEC;EAAE,CAAC,EAAE;IACrB,IAAI,CAACJ,SAAS,GAAG;MAAEG,CAAC;MAAEC;IAAE,CAAC;EAC3B;EAEA,IAAIR,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAACD,SAAS,EAAEW,UAAU,CAAC,IAAI,CAACP,WAAW,CAAC,iBAAiB,CAAC;EACvE;EAEA,IAAIQ,SAASA,CAAA,EAAG;IACd,MAAMC,MAAM,GAAG,IAAI,CAACb,SAAS,CAACa,MAAM;IACpC,MAAMZ,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,IAAI,CAACA,MAAM,EAAE;MACX,OAAOL,IAAI;IACb;IAEA,MAAMM,QAAQ,GAAGD,MAAM,CAACC,QAAQ;IAEhC,IAAIA,QAAQ,CAACO,CAAC,IAAII,MAAM,CAACC,GAAG,EAAE;MAC5B,OAAOrB,KAAK;IACd;IACA,IAAIS,QAAQ,CAACO,CAAC,IAAII,MAAM,CAACC,GAAG,GAAGD,MAAM,CAACE,MAAM,EAAE;MAC5C,OAAOpB,KAAK;IACd;IACA,IAAIO,QAAQ,CAACM,CAAC,IAAIK,MAAM,CAACG,IAAI,EAAE;MAC7B,OAAOnB,IAAI;IACb;IAEA,OAAOD,IAAI;EACb;EAEA,IAAIqB,gBAAgBA,CAAA,EAAG;IACrB,MAAMhB,MAAM,GAAG,IAAI,CAACA,MAAM;IAE1B,IAAIA,MAAM,EAAE;MACV,IAAI;QAAEC;MAAS,CAAC,GAAGD,MAAM;MAEzB,IAAIiB,EAAE,GAAG,CAAC;QACRC,EAAE,GAAG,CAAC;MACR,QAAQ,IAAI,CAACP,SAAS;QACpB,KAAKjB,KAAK;UACRwB,EAAE,GAAG,EAAE;UACP;QACF,KAAK1B,KAAK;UACR0B,EAAE,GAAG,CAAC,EAAE;UACR;QACF,KAAKtB,IAAI;UACPqB,EAAE,GAAG,CAAC,EAAE;UACR;QACF,KAAKtB,IAAI;QACT;UACEsB,EAAE,GAAG,EAAE;MACX;MAEAhB,QAAQ,GAAG;QACTM,CAAC,EAAEN,QAAQ,CAACM,CAAC,GAAGU,EAAE;QAClBT,CAAC,EAAEP,QAAQ,CAACO,CAAC,GAAGU;MAClB,CAAC;MAED,MAAMb,OAAO,GAAG,IAAI,CAACN,SAAS,CAACO,aAAa,CAACL,QAAQ,CAACM,CAAC,EAAEN,QAAQ,CAACO,CAAC,CAAC;MACpE,OAAO,IAAI,CAACN,IAAI,CAACO,aAAa,CAACJ,OAAO,CAACE,CAAC,EAAEF,OAAO,CAACG,CAAC,CAAC;IACtD;EACF;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,MAAMW,IAAI,SAASC,kBAAS,CAAC;EAC1CC,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI;EACb;EAEAC,aAAaA,CAACC,UAAU,EAAE;IACxB;IAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAACC,OAAO,CAACC,MAAM,IAAI;MAChC,MAAMzB,MAAM,GAAG,IAAI,CAAC0B,GAAG,CAACD,MAAM,CAAC;MAC/B,IAAIzB,MAAM,EAAED,SAAS,EAAE;QACrB,MAAM4B,KAAK,GAAGJ,UAAU,CAACG,GAAG,CAAC1B,MAAM,CAACD,SAAS,CAAC,IAAIC,MAAM,CAACD,SAAS;QAClE,IAAI,CAAC6B,GAAG,CAACH,MAAM,EAAE;UACf,GAAGzB,MAAM;UACTD,SAAS,EAAE4B;QACb,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,IAAIE,OAAOA,CAAA,EAAG;IACZ,IAAI,IAAI,CAACC,MAAM,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MACjC,MAAM;QAAEhC,SAAS;QAAEC,MAAM;QAAEC;MAAS,CAAC,GAAG,IAAI,CAAC+B,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;MAEnE,IAAI,CAACjC,SAAS,EAAE;QACd;MACF;MAEA,MAAMkC,eAAe,GAAG,IAAI,CAACC,IAAI,EAAEC,WAAW,CAACpC,SAAS,CAAC;MACzD,IAAI,CAACkC,eAAe,EAAE;QACpB;MACF;MAEA,IAAI,CAACF,QAAQ,GAAG,IAAIlC,OAAO,CAAC;QAC1BE,SAAS,EAAEkC,eAAe;QAC1BR,MAAM,EAAE,MAAM;QACdzB,MAAM;QACNC,QAAQ;QACRC,IAAI,EAAE;MACR,CAAC,CAAC;IACJ;IAEA,OAAO,IAAI,CAAC6B,QAAQ;EACtB;EAEA,IAAIK,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACJ,QAAQ,CAAC,MAAM,CAAC;EAC9B;EAEA,IAAII,IAAIA,CAACA,IAAI,EAAE;IACb,OAAO,IAAI,CAACL,QAAQ;IACpB,IAAI,CAACH,GAAG,CAAC,MAAM,EAAEQ,IAAI,CAAC;EACxB;EAEA,IAAIC,KAAKA,CAAA,EAAG;IACV,IAAI,IAAI,CAACP,MAAM,IAAI,CAAC,IAAI,CAACQ,MAAM,EAAE;MAC/B,MAAM;QAAEvC,SAAS;QAAEC,MAAM;QAAEC;MAAS,CAAC,GAAG,IAAI,CAAC+B,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;MAEjE,IAAI,CAACjC,SAAS,EAAE;QACd;MACF;MAEA,MAAMkC,eAAe,GAAG,IAAI,CAACC,IAAI,EAAEC,WAAW,CAACpC,SAAS,CAAC;MACzD,IAAI,CAACkC,eAAe,EAAE;QACpB;MACF;MAEA,IAAI,CAACK,MAAM,GAAG,IAAIzC,OAAO,CAAC;QACxBE,SAAS,EAAEkC,eAAe;QAC1BR,MAAM,EAAE,IAAI;QACZzB,MAAM;QACNC,QAAQ;QACRC,IAAI,EAAE;MACR,CAAC,CAAC;IACJ;IAEA,OAAO,IAAI,CAACoC,MAAM;EACpB;EAEA,IAAIC,EAAEA,CAAA,EAAG;IACP,OAAO,IAAI,CAACP,QAAQ,CAAC,IAAI,CAAC;EAC5B;EAEA,IAAIO,EAAEA,CAACA,EAAE,EAAE;IACT,OAAO,IAAI,CAACD,MAAM;IAClB,IAAI,CAACV,GAAG,CAAC,IAAI,EAAEW,EAAE,CAAC;EACpB;EAEAC,IAAIA,CAAC;IAAEjC,CAAC;IAAEC;EAAE,CAAC,EAAEiC,SAAS,EAAE;IACxB,IAAIA,SAAS,EAAE;MACb;MACA,IAAI,CAACL,IAAI,GAAG;QACVnC,QAAQ,EAAE,IAAI,CAAC8B,QAAQ,EAAE9B,QAAQ,IAAI,IAAI,CAAC+B,QAAQ,CAAC,MAAM,CAAC,EAAE/B,QAAQ,IAAI;UAAEM,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE;MACvF,CAAC;MACD,IAAI,CAAC+B,EAAE,GAAG;QACRtC,QAAQ,EAAE,IAAI,CAACqC,MAAM,EAAErC,QAAQ,IAAI,IAAI,CAAC+B,QAAQ,CAAC,IAAI,CAAC,EAAE/B,QAAQ,IAAI;UAAEM,CAAC,EAAE,CAAC;UAAEC,CAAC,EAAE;QAAE;MACnF,CAAC;IACH;IAEA,KAAK,CAACgC,IAAI,CAAC;MAAEjC,CAAC;MAAEC;IAAE,CAAC,EAAEiC,SAAS,CAAC;EACjC;EAEAC,MAAMA,CAACC,GAAG,EAAE;IACV,IAAI;MAAEC,KAAK,GAAG,MAAM;MAAEC,GAAG,GAAG,MAAM;MAAEC,SAAS;MAAEC,KAAK,GAAG;IAAE,CAAC,GAAG,IAAI,CAACC,KAAK;IAEvE,IAAIC,IAAI,GAAG,IAAI,CAACC,QAAQ;IAExB,IAAAC,iBAAW,EAACR,GAAG,EAAEM,IAAI,EAAE,IAAI,CAACD,KAAK,CAAC;IAElCL,GAAG,CAACS,SAAS,CAAC,CAAC;IAEf,IAAIC,QAAQ,GAAG,IAAAC,mBAAa,EAACV,KAAK,EAAEE,SAAS,EAAEG,IAAI,CAAC,CAAC,CAAC,EAAEA,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,IAAIM,MAAM,GAAG,IAAAD,mBAAa,EAACT,GAAG,EAAEC,SAAS,EAAEG,IAAI,CAACA,IAAI,CAACO,MAAM,GAAG,CAAC,CAAC,EAAEP,IAAI,CAACA,IAAI,CAACO,MAAM,GAAG,CAAC,CAAC,CAAC;IAExFP,IAAI,GAAG,CAACI,QAAQ,EAAE,GAAGJ,IAAI,CAACQ,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAEF,MAAM,CAAC;IAC/C,IAAIG,MAAM,GAAG;MAAEnD,CAAC,EAAE8C,QAAQ,CAAC9C,CAAC;MAAEC,CAAC,EAAE6C,QAAQ,CAAC7C;IAAE,CAAC;IAC7CmC,GAAG,CAACgB,MAAM,CAACN,QAAQ,CAAC9C,CAAC,EAAE8C,QAAQ,CAAC7C,CAAC,CAAC;IAElC,KAAK,IAAIoD,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,IAAI,CAACO,MAAM,EAAEI,CAAC,EAAE,EAAE;MACpC,MAAMC,IAAI,GAAGH,MAAM;MACnBA,MAAM,GAAGT,IAAI,CAACW,CAAC,CAAC;MAEhB,MAAME,IAAI,GAAGb,IAAI,CAACW,CAAC,GAAG,CAAC,CAAC;MACxB,IAAIC,IAAI,CAACtD,CAAC,KAAKmD,MAAM,CAACnD,CAAC,IAAIsD,IAAI,CAACrD,CAAC,KAAKkD,MAAM,CAAClD,CAAC,EAAE;QAC9C;MACF;MAEA,IAAI,CAACsD,IAAI,EAAE;QACTnB,GAAG,CAACoB,MAAM,CAACL,MAAM,CAACnD,CAAC,EAAEmD,MAAM,CAAClD,CAAC,CAAC;QAC9B;MACF;MAEA,IAAIgD,MAAM,GAAGQ,IAAI,CAACC,IAAI,CAAC,CAACJ,IAAI,CAACtD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,KAAKsD,IAAI,CAACtD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,CAAC,GAAG,CAACsD,IAAI,CAACrD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,KAAKqD,IAAI,CAACrD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,CAAC,CAAC;MAC7G,IAAI0D,KAAK,GAAGV,MAAM,KAAK,CAAC,GAAGQ,IAAI,CAACG,KAAK,CAACN,IAAI,CAACtD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,EAAEsD,IAAI,CAACrD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,CAAC,GAAG,CAAC;MAC/E,IAAID,CAAC,GAAGyD,IAAI,CAACI,GAAG,CAACF,KAAK,CAAC,GAAGF,IAAI,CAACK,GAAG,CAACtB,KAAK,EAAES,MAAM,GAAG,CAAC,CAAC,GAAGE,MAAM,CAACnD,CAAC;MAChE,IAAIC,CAAC,GAAGwD,IAAI,CAACM,GAAG,CAACJ,KAAK,CAAC,GAAGF,IAAI,CAACK,GAAG,CAACtB,KAAK,EAAES,MAAM,GAAG,CAAC,CAAC,GAAGE,MAAM,CAAClD,CAAC;MAEhE,MAAM+D,EAAE,GAAGxB,KAAK,GAAG,CAAC,IAAIS,MAAM,KAAK,CAAC,GAAG;QAAEjD,CAAC;QAAEC;MAAE,CAAC,GAAGkD,MAAM;MAExD,IAAIF,MAAM,GAAGQ,IAAI,CAACC,IAAI,CAAC,CAACH,IAAI,CAACvD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,KAAKuD,IAAI,CAACvD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,CAAC,GAAG,CAACuD,IAAI,CAACtD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,KAAKsD,IAAI,CAACtD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,CAAC,CAAC;MAC7G0D,KAAK,GAAGV,MAAM,KAAK,CAAC,GAAGQ,IAAI,CAACG,KAAK,CAACL,IAAI,CAACvD,CAAC,GAAGmD,MAAM,CAACnD,CAAC,EAAEuD,IAAI,CAACtD,CAAC,GAAGkD,MAAM,CAAClD,CAAC,CAAC,GAAG,CAAC;MAC3ED,CAAC,GAAGyD,IAAI,CAACI,GAAG,CAACF,KAAK,CAAC,GAAGF,IAAI,CAACK,GAAG,CAACtB,KAAK,EAAES,MAAM,GAAG,CAAC,CAAC,GAAGE,MAAM,CAACnD,CAAC;MAC5DC,CAAC,GAAGwD,IAAI,CAACM,GAAG,CAACJ,KAAK,CAAC,GAAGF,IAAI,CAACK,GAAG,CAACtB,KAAK,EAAES,MAAM,GAAG,CAAC,CAAC,GAAGE,MAAM,CAAClD,CAAC;MAE5D,MAAMgE,EAAE,GAAGzB,KAAK,GAAG,CAAC,IAAIS,MAAM,KAAK,CAAC,GAAG;QAAEjD,CAAC;QAAEC;MAAE,CAAC,GAAGkD,MAAM;MAExDf,GAAG,CAACoB,MAAM,CAACQ,EAAE,CAAChE,CAAC,EAAEgE,EAAE,CAAC/D,CAAC,CAAC;MACtBuC,KAAK,GAAG,CAAC,IAAIJ,GAAG,CAAC8B,gBAAgB,CAACf,MAAM,CAACnD,CAAC,EAAEmD,MAAM,CAAClD,CAAC,EAAEgE,EAAE,CAACjE,CAAC,EAAEiE,EAAE,CAAChE,CAAC,CAAC;IACnE;IAEA,IAAI,CAACkE,UAAU,CAAC/B,GAAG,CAAC;EACtB;EAEAgC,QAAQA,CAACpE,CAAC,EAAEC,CAAC,EAAE;IACb;IACA;IACA,IAAI;MAAEsC;IAAU,CAAC,GAAG,IAAI,CAACE,KAAK;IAE9B,OAAO,IAAA4B,qBAAe,EAACrE,CAAC,EAAEC,CAAC,EAAE,IAAI,CAAC0C,QAAQ,EAAEJ,SAAS,CAAC;EACxD;EAEA,IAAI+B,SAASA,CAAA,EAAG;IACd,OAAO,KAAK;EACd;EAEA,IAAIC,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI;EACb;EAEA,IAAIC,SAASA,CAAA,EAAG;IACd,OAAO,KAAK;EACd;EAEA,IAAI9B,IAAIA,CAAA,EAAG;IACT,MAAM;MAAEb,IAAI;MAAEG;IAAG,CAAC,GAAG,IAAI,CAACS,KAAK;IAC/B,IAAI;MAAEgC,EAAE;MAAEC,EAAE;MAAEC,EAAE;MAAEC;IAAG,CAAC,GAAG,IAAI,CAACnC,KAAK;IAEnC,OAAO,CACL,IAAI,CAACnB,OAAO,EAAE5B,QAAQ,IACpBmC,IAAI,EAAEnC,QAAQ,IAAI;MAChBM,CAAC,EAAEyE,EAAE;MACLxE,CAAC,EAAEyE;IACL,CAAC,EACH,IAAI,CAAC5C,KAAK,EAAEpC,QAAQ,IAClBsC,EAAE,EAAEtC,QAAQ,IAAI;MACdM,CAAC,EAAE2E,EAAE;MACL1E,CAAC,EAAE2E;IACL,CAAC,CACJ;EACH;EAEA,IAAIlC,IAAIA,CAACA,IAAI,EAAE;IACb,MAAM,CAACsB,EAAE,EAAEC,EAAE,CAAC,GAAGvB,IAAI;IACrB,MAAM;MAAEb,IAAI;MAAEG;IAAG,CAAC,GAAG,IAAI,CAACS,KAAK;IAE/B,OAAO,IAAI,CAACjB,QAAQ;IACpB,OAAO,IAAI,CAACO,MAAM;IAElB,IAAI,CAACV,GAAG,CAAC;MACPQ,IAAI,EAAE;QACJ,GAAGA,IAAI;QACPnC,QAAQ,EAAEsE;MACZ,CAAC;MACDhC,EAAE,EAAE;QACF,GAAGA,EAAE;QACLtC,QAAQ,EAAEuE;MACZ;IACF,CAAC,CAAC;EACJ;EAEA,IAAIY,UAAUA,CAAA,EAAG;IACf,IAAInC,IAAI,GAAG,IAAI,CAACC,QAAQ;IAExB,IAAId,IAAI,EAAEG,EAAE;IACZ,IAAI8C,SAAS,GAAG,CAAC;;IAEjB;IACA,KAAK,IAAIzB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,IAAI,CAACO,MAAM,EAAEI,CAAC,EAAE,EAAE;MACpC,IAAIC,IAAI,GAAGZ,IAAI,CAACW,CAAC,GAAG,CAAC,CAAC;MACtB,IAAIE,IAAI,GAAGb,IAAI,CAACW,CAAC,CAAC;MAElB,IAAIJ,MAAM,GAAG,CAACK,IAAI,CAACtD,CAAC,GAAGuD,IAAI,CAACvD,CAAC,KAAKsD,IAAI,CAACtD,CAAC,GAAGuD,IAAI,CAACvD,CAAC,CAAC,GAAG,CAACsD,IAAI,CAACrD,CAAC,GAAGsD,IAAI,CAACtD,CAAC,KAAKqD,IAAI,CAACrD,CAAC,GAAGsD,IAAI,CAACtD,CAAC,CAAC;MAC1F,IAAIgD,MAAM,GAAG6B,SAAS,EAAE;QACtB;QACAA,SAAS,GAAGrB,IAAI,CAACsB,IAAI,CAAC9B,MAAM,CAAC;QAC7BpB,IAAI,GAAGyB,IAAI;QACXtB,EAAE,GAAGuB,IAAI;MACX;IACF;IAEA,IAAI;MAAEyB,UAAU;MAAEC,WAAW;MAAEC,YAAY;MAAEC;IAAc,CAAC,GAAG,IAAI,CAAC1C,KAAK;IAEzE0C,aAAa,KAAK,CAAC;IACnBH,UAAU,KAAK,CAAC;IAChBC,WAAW,KAAK,CAAC;IACjBC,YAAY,KAAK,CAAC;IAElB,OAAO;MACL1E,IAAI,EAAEiD,IAAI,CAACK,GAAG,CAACjC,IAAI,CAAC7B,CAAC,EAAEgC,EAAE,CAAChC,CAAC,CAAC,GAAGiF,WAAW;MAC1C3E,GAAG,EAAEmD,IAAI,CAACK,GAAG,CAACjC,IAAI,CAAC5B,CAAC,EAAE+B,EAAE,CAAC/B,CAAC,CAAC,GAAG+E,UAAU;MACxCI,KAAK,EAAE3B,IAAI,CAAC4B,GAAG,CAAC5B,IAAI,CAAC6B,GAAG,CAACzD,IAAI,CAAC7B,CAAC,GAAGgC,EAAE,CAAChC,CAAC,CAAC,GAAGiF,WAAW,GAAGC,YAAY,EAAE,CAAC,CAAC;MACxE3E,MAAM,EAAEkD,IAAI,CAAC4B,GAAG,CAAC5B,IAAI,CAAC6B,GAAG,CAACzD,IAAI,CAAC5B,CAAC,GAAG+B,EAAE,CAAC/B,CAAC,CAAC,GAAG+E,UAAU,GAAGG,aAAa,EAAE,CAAC;IAC1E,CAAC;EACH;EAEA,IAAII,UAAUA,CAAA,EAAG;IACf,OAAO,CAAC,SAAS,CAAC;EACpB;AACF;AAACrG,OAAA,CAAAF,OAAA,GAAA4B,IAAA;AAEDA,IAAI,CAACmC,aAAa,GAAGA,mBAAa;AAClCnC,IAAI,CAACyD,eAAe,GAAGA,qBAAe;AACtCzD,IAAI,CAACgC,WAAW,GAAGA,iBAAW;;AAE9B;AACA;;AAEA/B,kBAAS,CAAC2E,QAAQ,CAAC,MAAM,EAAE5E,IAAI,CAAC","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 _shape = _interopRequireDefault(require("./shape.js"));
9
- var _rectPath = _interopRequireDefault(require("./mixins/rect-path.js"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
- /*
12
- * Copyright © HatioLab Inc. All rights reserved.
13
- */
14
-
15
- const NATURE = {
16
- mutable: false,
17
- resizable: true,
18
- rotatable: true,
19
- properties: [{
20
- type: 'id-input',
21
- label: 'ref',
22
- name: 'ref'
23
- }, {
24
- type: 'select',
25
- label: 'fit',
26
- name: 'fit',
27
- property: {
28
- options: ['', 'both', 'ratio']
29
- }
30
- }],
31
- 'value-property': 'ref',
32
- help: 'scene/component/local-ref'
33
- };
34
- class LocalRef extends (0, _rectPath.default)(_shape.default) {
35
- get ref() {
36
- var ref = this.getState('ref');
37
- if (!ref || typeof ref != 'string') return null;
38
- return this.root.findById(ref);
39
- }
40
- set ref(ref) {
41
- this.setState('ref', ref);
42
- }
43
- get refScale() {
44
- let targetBounds = this.ref.bounds;
45
- let bounds = this.bounds;
46
- let sx = bounds.width / targetBounds.width;
47
- let sy = bounds.height / targetBounds.height;
48
- switch (this.model.fit) {
49
- case 'both':
50
- return {
51
- x: sx,
52
- y: sy
53
- };
54
- break;
55
- case 'ratio':
56
- default:
57
- return {
58
- x: Math.min(sx, sy),
59
- y: Math.min(sx, sy)
60
- };
61
- break;
62
- }
63
- }
64
- draw(ctx) {
65
- if (this._drawing) return;
66
- this._drawing = true;
67
- super.draw(ctx);
68
- this._drawing = false;
69
- }
70
- prerender(ctx) {
71
- super.prerender(ctx);
72
- if (this.ref) {
73
- let targetCenter = this.ref.center;
74
- let center = this.center;
75
- let scale = this.refScale;
76
- ctx.translate(center.x, center.y);
77
- ctx.scale(scale.x, scale.y);
78
- ctx.translate(-targetCenter.x, -targetCenter.y);
79
- }
80
- }
81
- postrender(ctx) {
82
- if (this.ref) return this.ref.postrender(ctx);
83
- super.postrender(ctx);
84
- }
85
- render(ctx) {
86
- if (this.ref) return this.ref.render(ctx);
87
- var {
88
- round = 0
89
- } = this.state;
90
- var {
91
- left,
92
- top,
93
- width,
94
- height
95
- } = this.bounds;
96
-
97
- // 박스 그리기
98
- ctx.beginPath();
99
- ctx.rect(left, top, width, height);
100
-
101
- // TODO Logic
102
- }
103
- get nature() {
104
- return NATURE;
105
- }
106
- get hasTextProperty() {
107
- return false;
108
- }
109
- }
110
- exports.default = LocalRef;
111
- _component.default.memoize(LocalRef.prototype, 'ref', false);
112
- _component.default.memoize(LocalRef.prototype, 'refScale', false);
113
- _component.default.register('local-ref', LocalRef);
114
- //# sourceMappingURL=local-ref.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-ref.js","names":["_component","_interopRequireDefault","require","_shape","_rectPath","e","__esModule","default","NATURE","mutable","resizable","rotatable","properties","type","label","name","property","options","help","LocalRef","RectPath","Shape","ref","getState","root","findById","setState","refScale","targetBounds","bounds","sx","width","sy","height","model","fit","x","y","Math","min","draw","ctx","_drawing","prerender","targetCenter","center","scale","translate","postrender","render","round","state","left","top","beginPath","rect","nature","hasTextProperty","exports","Component","memoize","prototype","register"],"sources":["../../src/components/local-ref.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component.js'\nimport Shape from './shape.js'\n\nimport RectPath from './mixins/rect-path.js'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'id-input',\n label: 'ref',\n name: 'ref'\n },\n {\n type: 'select',\n label: 'fit',\n name: 'fit',\n property: {\n options: ['', 'both', 'ratio']\n }\n }\n ],\n 'value-property': 'ref',\n help: 'scene/component/local-ref'\n}\n\nexport default class LocalRef extends RectPath(Shape) {\n get ref() {\n var ref = this.getState('ref')\n\n if (!ref || typeof ref != 'string') return null\n\n return this.root.findById(ref)\n }\n\n set ref(ref) {\n this.setState('ref', ref)\n }\n\n get refScale() {\n let targetBounds = this.ref.bounds\n let bounds = this.bounds\n\n let sx = bounds.width / targetBounds.width\n let sy = bounds.height / targetBounds.height\n\n switch (this.model.fit) {\n case 'both':\n return {\n x: sx,\n y: sy\n }\n break\n case 'ratio':\n default:\n return {\n x: Math.min(sx, sy),\n y: Math.min(sx, sy)\n }\n break\n }\n }\n\n draw(ctx) {\n if (this._drawing) return\n\n this._drawing = true\n super.draw(ctx)\n this._drawing = false\n }\n\n prerender(ctx) {\n super.prerender(ctx)\n\n if (this.ref) {\n let targetCenter = this.ref.center\n let center = this.center\n\n let scale = this.refScale\n\n ctx.translate(center.x, center.y)\n ctx.scale(scale.x, scale.y)\n ctx.translate(-targetCenter.x, -targetCenter.y)\n }\n }\n\n postrender(ctx) {\n if (this.ref) return this.ref.postrender(ctx)\n\n super.postrender(ctx)\n }\n\n render(ctx) {\n if (this.ref) return this.ref.render(ctx)\n\n var { round = 0 } = this.state\n\n var { left, top, width, height } = this.bounds\n\n // 박스 그리기\n ctx.beginPath()\n\n ctx.rect(left, top, width, height)\n\n // TODO Logic\n }\n\n get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return false\n }\n}\n\nComponent.memoize(LocalRef.prototype, 'ref', false)\nComponent.memoize(LocalRef.prototype, 'refScale', false)\n\nComponent.register('local-ref', LocalRef)\n"],"mappings":"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","ignoreList":[]}
@@ -1,128 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _anchor = require("../anchor/anchor.js");
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
- var _default = superclass => {
12
- var A = class extends superclass {
13
- isConnectable() {
14
- return true;
15
- }
16
- postrender(context) {
17
- super.postrender(context);
18
- this._draw_anchors(context);
19
- }
20
-
21
- /**
22
- *
23
- * @param {CanvasRenderingContext2D} context
24
- */
25
- _draw_anchors(context) {
26
- /**
27
- * @type {import('../anchor/anchor.js').Anchor[]} anchors
28
- */
29
- var anchors = this.anchors || [];
30
- context.save();
31
- anchors.forEach(anchor => {
32
- var {
33
- position: {
34
- x,
35
- y
36
- },
37
- draw
38
- } = anchor;
39
- if (draw) {
40
- context.beginPath();
41
- try {
42
- draw.call(anchor, context, this);
43
- } catch (err) {
44
- console.error(err);
45
- }
46
- context.closePath();
47
- }
48
- });
49
- context.restore();
50
- }
51
- contains(x, y) {
52
- var contains = super.contains(x, y);
53
- if (contains) {
54
- return contains;
55
- }
56
-
57
- /**
58
- * @type {import('../anchor/anchor.js').Anchor[]} anchors
59
- */
60
- var anchors = this.anchors || [];
61
- for (let anchor of anchors) {
62
- const bounds = anchor.bounds;
63
- if (!bounds) {
64
- continue;
65
- }
66
- const {
67
- left,
68
- top,
69
- width,
70
- height
71
- } = bounds;
72
- var contains = x < Math.max(left + width, left) && x > Math.min(left + width, left) && y < Math.max(top + height, top) && y > Math.min(top + height, top);
73
- if (contains) {
74
- return contains;
75
- }
76
- }
77
- return false;
78
- }
79
-
80
- /**
81
- * @function findInOutLines
82
- * @param {string} anchorName
83
- * @return {Line[]}
84
- */
85
- findInOutLines(anchorName) {
86
- return (0, _anchor.findInOutLines)(this, anchorName);
87
- }
88
-
89
- /**
90
- * @function findOutletLines
91
- * @parameter {string} anchorName
92
- * @return {Line[]}
93
- */
94
- findOutletLines(anchorName) {
95
- return (0, _anchor.findOutletLines)(this, anchorName);
96
- }
97
-
98
- /**
99
- * @function findOutletEnds
100
- * @parameter {string} anchorName
101
- * @return {Component[]}
102
- */
103
- findOutletEnds(anchorName) {
104
- return (0, _anchor.findOutletEnds)(this, anchorName);
105
- }
106
-
107
- /**
108
- * @function findInletLines
109
- * @parameter {string} anchorName
110
- * @return {Line[]}
111
- */
112
- findInletLines(anchorName) {
113
- return (0, _anchor.findInletLines)(this, anchorName);
114
- }
115
-
116
- /**
117
- * @function findInletEnds
118
- * @parameter {string} anchorName
119
- * @return {Component[]}
120
- */
121
- findInletEnds(anchorName) {
122
- return (0, _anchor.findInletEnds)(this, anchorName);
123
- }
124
- };
125
- return A;
126
- };
127
- exports.default = _default;
128
- //# sourceMappingURL=connectable.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connectable.js","names":["_anchor","require","_default","superclass","A","isConnectable","postrender","context","_draw_anchors","anchors","save","forEach","anchor","position","x","y","draw","beginPath","call","err","console","error","closePath","restore","contains","bounds","left","top","width","height","Math","max","min","findInOutLines","anchorName","findOutletLines","findOutletEnds","findInletLines","findInletEnds","exports","default"],"sources":["../../../src/components/mixins/connectable.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { findInOutLines, findInletEnds, findInletLines, findOutletEnds, findOutletLines } from '../anchor/anchor.js'\n\nexport default superclass => {\n var A = class extends superclass {\n isConnectable() {\n return true\n }\n\n postrender(context) {\n super.postrender(context)\n\n this._draw_anchors(context)\n }\n\n /**\n *\n * @param {CanvasRenderingContext2D} context\n */\n _draw_anchors(context) {\n /**\n * @type {import('../anchor/anchor.js').Anchor[]} anchors\n */\n var anchors = this.anchors || []\n\n context.save()\n\n anchors.forEach(anchor => {\n var {\n position: { x, y },\n draw\n } = anchor\n\n if (draw) {\n context.beginPath()\n\n try {\n draw.call(anchor, context, this)\n } catch (err) {\n console.error(err)\n }\n\n context.closePath()\n }\n })\n\n context.restore()\n }\n\n contains(x, y) {\n var contains = super.contains(x, y)\n\n if (contains) {\n return contains\n }\n\n /**\n * @type {import('../anchor/anchor.js').Anchor[]} anchors\n */\n var anchors = this.anchors || []\n\n for (let anchor of anchors) {\n const bounds = anchor.bounds\n\n if (!bounds) {\n continue\n }\n\n const { left, top, width, height } = bounds\n\n var contains =\n x < Math.max(left + width, left) &&\n x > Math.min(left + width, left) &&\n y < Math.max(top + height, top) &&\n y > Math.min(top + height, top)\n\n if (contains) {\n return contains\n }\n }\n\n return false\n }\n\n /**\n * @function findInOutLines\n * @param {string} anchorName\n * @return {Line[]}\n */\n findInOutLines(anchorName) {\n return findInOutLines(this, anchorName)\n }\n\n /**\n * @function findOutletLines\n * @parameter {string} anchorName\n * @return {Line[]}\n */\n findOutletLines(anchorName) {\n return findOutletLines(this, anchorName)\n }\n\n /**\n * @function findOutletEnds\n * @parameter {string} anchorName\n * @return {Component[]}\n */\n findOutletEnds(anchorName) {\n return findOutletEnds(this, anchorName)\n }\n\n /**\n * @function findInletLines\n * @parameter {string} anchorName\n * @return {Line[]}\n */\n findInletLines(anchorName) {\n return findInletLines(this, anchorName)\n }\n\n /**\n * @function findInletEnds\n * @parameter {string} anchorName\n * @return {Component[]}\n */\n findInletEnds(anchorName) {\n return findInletEnds(this, anchorName)\n }\n }\n\n return A\n}\n"],"mappings":"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","ignoreList":[]}