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

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 (385) hide show
  1. package/babel.config.js +4 -3
  2. package/db.sqlite +0 -0
  3. package/dist/animation/animate.js +63 -0
  4. package/dist/animation/animate.js.map +1 -0
  5. package/dist/animation/animations/animation.js +122 -0
  6. package/dist/animation/animations/animation.js.map +1 -0
  7. package/dist/animation/animations/fade.js +28 -0
  8. package/dist/animation/animations/fade.js.map +1 -0
  9. package/dist/animation/animations/heartbeat.js +28 -0
  10. package/dist/animation/animations/heartbeat.js.map +1 -0
  11. package/dist/animation/animations/moving.js +24 -0
  12. package/dist/animation/animations/moving.js.map +1 -0
  13. package/dist/animation/animations/outline.js +47 -0
  14. package/dist/animation/animations/outline.js.map +1 -0
  15. package/dist/animation/animations/rotation.js +22 -0
  16. package/dist/animation/animations/rotation.js.map +1 -0
  17. package/dist/animation/animations/vibration.js +31 -0
  18. package/dist/animation/animations/vibration.js.map +1 -0
  19. package/dist/animation/compile.js +31 -0
  20. package/dist/animation/compile.js.map +1 -0
  21. package/dist/animation/delta.js +51 -0
  22. package/dist/animation/delta.js.map +1 -0
  23. package/dist/animation/index.js +14 -0
  24. package/dist/animation/index.js.map +1 -0
  25. package/dist/command/command-change.js +33 -0
  26. package/dist/command/command-change.js.map +1 -0
  27. package/dist/command/command-migrate.js +103 -0
  28. package/dist/command/command-migrate.js.map +1 -0
  29. package/dist/command/command.js +18 -0
  30. package/dist/command/command.js.map +1 -0
  31. package/dist/command/snapshot-commander.js +84 -0
  32. package/dist/command/snapshot-commander.js.map +1 -0
  33. package/dist/components/anchor/anchor.js +105 -0
  34. package/dist/components/anchor/anchor.js.map +1 -0
  35. package/dist/components/anchor/ellipse-anchors.js +53 -0
  36. package/dist/components/anchor/ellipse-anchors.js.map +1 -0
  37. package/dist/components/anchor/rect-anchors.js +53 -0
  38. package/dist/components/anchor/rect-anchors.js.map +1 -0
  39. package/dist/components/audio.js +154 -0
  40. package/dist/components/audio.js.map +1 -0
  41. package/dist/components/cloud.js +44 -0
  42. package/dist/components/cloud.js.map +1 -0
  43. package/dist/components/component.js +1086 -0
  44. package/dist/components/component.js.map +1 -0
  45. package/dist/components/container-abstract.js +387 -0
  46. package/dist/components/container-abstract.js.map +1 -0
  47. package/dist/components/container.js +331 -0
  48. package/dist/components/container.js.map +1 -0
  49. package/dist/components/data/data-mapping.js +82 -0
  50. package/dist/components/data/data-mapping.js.map +1 -0
  51. package/dist/components/data/data.js +166 -0
  52. package/dist/components/data/data.js.map +1 -0
  53. package/dist/components/data/evaluator.js +103 -0
  54. package/dist/components/data/evaluator.js.map +1 -0
  55. package/dist/components/donut.js +104 -0
  56. package/dist/components/donut.js.map +1 -0
  57. package/dist/components/drawer/draw-image-pendable.js +20 -0
  58. package/dist/components/drawer/draw-image-pendable.js.map +1 -0
  59. package/dist/components/drawer/effect.js +19 -0
  60. package/dist/components/drawer/effect.js.map +1 -0
  61. package/dist/components/drawer/fill.js +228 -0
  62. package/dist/components/drawer/fill.js.map +1 -0
  63. package/dist/components/drawer/format.js +115 -0
  64. package/dist/components/drawer/format.js.map +1 -0
  65. package/dist/components/drawer/line.js +191 -0
  66. package/dist/components/drawer/line.js.map +1 -0
  67. package/dist/components/drawer/stroke.js +62 -0
  68. package/dist/components/drawer/stroke.js.map +1 -0
  69. package/dist/components/drawer/text-wrapper.js +51 -0
  70. package/dist/components/drawer/text-wrapper.js.map +1 -0
  71. package/dist/components/drawer/text.js +269 -0
  72. package/dist/components/drawer/text.js.map +1 -0
  73. package/dist/components/ellipse.js +110 -0
  74. package/dist/components/ellipse.js.map +1 -0
  75. package/dist/components/file/ondropfile.js +19 -0
  76. package/dist/components/file/ondropfile.js.map +1 -0
  77. package/dist/components/fit/fit.js +137 -0
  78. package/dist/components/fit/fit.js.map +1 -0
  79. package/dist/components/geometry/transcoord.js +339 -0
  80. package/dist/components/geometry/transcoord.js.map +1 -0
  81. package/dist/components/geometry/union.js +35 -0
  82. package/dist/components/geometry/union.js.map +1 -0
  83. package/dist/components/gif-view.js +128 -0
  84. package/dist/components/gif-view.js.map +1 -0
  85. package/dist/components/global-ref.js +154 -0
  86. package/dist/components/global-ref.js.map +1 -0
  87. package/dist/components/group.js +171 -0
  88. package/dist/components/group.js.map +1 -0
  89. package/dist/components/html/elements.js +24 -0
  90. package/dist/components/html/elements.js.map +1 -0
  91. package/dist/components/html/fill.js +126 -0
  92. package/dist/components/html/fill.js.map +1 -0
  93. package/dist/components/html/reposition.js +119 -0
  94. package/dist/components/html/reposition.js.map +1 -0
  95. package/dist/components/html/shadow.js +24 -0
  96. package/dist/components/html/shadow.js.map +1 -0
  97. package/dist/components/html-overlay-container.js +27 -0
  98. package/dist/components/html-overlay-container.js.map +1 -0
  99. package/dist/components/html-overlay-element.js +22 -0
  100. package/dist/components/html-overlay-element.js.map +1 -0
  101. package/dist/components/image-view.js +193 -0
  102. package/dist/components/image-view.js.map +1 -0
  103. package/dist/components/index.js +231 -0
  104. package/dist/components/index.js.map +1 -0
  105. package/dist/components/info-window.js +416 -0
  106. package/dist/components/info-window.js.map +1 -0
  107. package/dist/components/line.js +374 -0
  108. package/dist/components/line.js.map +1 -0
  109. package/dist/components/local-ref.js +114 -0
  110. package/dist/components/local-ref.js.map +1 -0
  111. package/dist/components/mixins/connectable.js +128 -0
  112. package/dist/components/mixins/connectable.js.map +1 -0
  113. package/dist/components/mixins/data-source.js +34 -0
  114. package/dist/components/mixins/data-source.js.map +1 -0
  115. package/dist/components/mixins/html-element.js +107 -0
  116. package/dist/components/mixins/html-element.js.map +1 -0
  117. package/dist/components/mixins/move-handle.js +73 -0
  118. package/dist/components/mixins/move-handle.js.map +1 -0
  119. package/dist/components/mixins/rect-path.js +113 -0
  120. package/dist/components/mixins/rect-path.js.map +1 -0
  121. package/dist/components/mixins/value-holder.js +81 -0
  122. package/dist/components/mixins/value-holder.js.map +1 -0
  123. package/dist/components/mutater/bounds.js +68 -0
  124. package/dist/components/mutater/bounds.js.map +1 -0
  125. package/dist/components/mutater/path.js +73 -0
  126. package/dist/components/mutater/path.js.map +1 -0
  127. package/dist/components/ortholine.js +763 -0
  128. package/dist/components/ortholine.js.map +1 -0
  129. package/dist/components/outline/ellipse-outline.js +23 -0
  130. package/dist/components/outline/ellipse-outline.js.map +1 -0
  131. package/dist/components/outline/path-outline.js +48 -0
  132. package/dist/components/outline/path-outline.js.map +1 -0
  133. package/dist/components/path.js +49 -0
  134. package/dist/components/path.js.map +1 -0
  135. package/dist/components/polygon.js +91 -0
  136. package/dist/components/polygon.js.map +1 -0
  137. package/dist/components/polyline.js +114 -0
  138. package/dist/components/polyline.js.map +1 -0
  139. package/dist/components/popup.js +160 -0
  140. package/dist/components/popup.js.map +1 -0
  141. package/dist/components/rect.js +72 -0
  142. package/dist/components/rect.js.map +1 -0
  143. package/dist/components/retention/retention-manager.js +81 -0
  144. package/dist/components/retention/retention-manager.js.map +1 -0
  145. package/dist/components/root-container.js +519 -0
  146. package/dist/components/root-container.js.map +1 -0
  147. package/dist/components/ruler.js +103 -0
  148. package/dist/components/ruler.js.map +1 -0
  149. package/dist/components/shape.js +97 -0
  150. package/dist/components/shape.js.map +1 -0
  151. package/dist/components/star.js +103 -0
  152. package/dist/components/star.js.map +1 -0
  153. package/dist/components/text/substitutor.js +92 -0
  154. package/dist/components/text/substitutor.js.map +1 -0
  155. package/dist/components/text.js +21 -0
  156. package/dist/components/text.js.map +1 -0
  157. package/dist/components/triangle.js +92 -0
  158. package/dist/components/triangle.js.map +1 -0
  159. package/dist/const.js +71 -0
  160. package/dist/const.js.map +1 -0
  161. package/dist/core/collection.js +28 -0
  162. package/dist/core/collection.js.map +1 -0
  163. package/dist/core/debug.js +12 -0
  164. package/dist/core/debug.js.map +1 -0
  165. package/dist/core/deep-equals.js +112 -0
  166. package/dist/core/deep-equals.js.map +1 -0
  167. package/dist/core/dom-to-image.js +617 -0
  168. package/dist/core/dom-to-image.js.map +1 -0
  169. package/dist/core/event.js +205 -0
  170. package/dist/core/event.js.map +1 -0
  171. package/dist/core/index.js +21 -0
  172. package/dist/core/index.js.map +1 -0
  173. package/dist/core/list.js +87 -0
  174. package/dist/core/list.js.map +1 -0
  175. package/dist/core/logger.js +29 -0
  176. package/dist/core/logger.js.map +1 -0
  177. package/dist/core/memoize.js +40 -0
  178. package/dist/core/memoize.js.map +1 -0
  179. package/dist/core/mixin.js +26 -0
  180. package/dist/core/mixin.js.map +1 -0
  181. package/dist/core/obj-accessor.js +26 -0
  182. package/dist/core/obj-accessor.js.map +1 -0
  183. package/dist/core/reference-map.js +147 -0
  184. package/dist/core/reference-map.js.map +1 -0
  185. package/dist/core/round-rect.js +62 -0
  186. package/dist/core/round-rect.js.map +1 -0
  187. package/dist/core/safe-round.js +10 -0
  188. package/dist/core/safe-round.js.map +1 -0
  189. package/dist/core/script-loader.js +148 -0
  190. package/dist/core/script-loader.js.map +1 -0
  191. package/dist/core/snapshot-taker.js +59 -0
  192. package/dist/core/snapshot-taker.js.map +1 -0
  193. package/dist/core/stack.js +18 -0
  194. package/dist/core/stack.js.map +1 -0
  195. package/dist/core/timecapsule.js +88 -0
  196. package/dist/core/timecapsule.js.map +1 -0
  197. package/dist/core/utils.js +309 -0
  198. package/dist/core/utils.js.map +1 -0
  199. package/dist/decorator/anchors-decorator.js +53 -0
  200. package/dist/decorator/anchors-decorator.js.map +1 -0
  201. package/dist/decorator/bouncing-arrow-decorator.js +52 -0
  202. package/dist/decorator/bouncing-arrow-decorator.js.map +1 -0
  203. package/dist/decorator/data-spread-decorator.js +69 -0
  204. package/dist/decorator/data-spread-decorator.js.map +1 -0
  205. package/dist/decorator/decotag-decorator.js +33 -0
  206. package/dist/decorator/decotag-decorator.js.map +1 -0
  207. package/dist/decorator/index.js +31 -0
  208. package/dist/decorator/index.js.map +1 -0
  209. package/dist/decorator/link-decorator.js +66 -0
  210. package/dist/decorator/link-decorator.js.map +1 -0
  211. package/dist/effect/gradation.js +37 -0
  212. package/dist/effect/gradation.js.map +1 -0
  213. package/dist/effect/index.js +23 -0
  214. package/dist/effect/index.js.map +1 -0
  215. package/dist/effect/shadow.js +33 -0
  216. package/dist/effect/shadow.js.map +1 -0
  217. package/dist/effect/turn.js +25 -0
  218. package/dist/effect/turn.js.map +1 -0
  219. package/dist/event/event-engine.js +76 -0
  220. package/dist/event/event-engine.js.map +1 -0
  221. package/dist/event/event-pump.js +92 -0
  222. package/dist/event/event-pump.js.map +1 -0
  223. package/dist/event/event-tracker.js +97 -0
  224. package/dist/event/event-tracker.js.map +1 -0
  225. package/dist/event/index.js +21 -0
  226. package/dist/event/index.js.map +1 -0
  227. package/dist/event/ua-event-handler.js +453 -0
  228. package/dist/event/ua-event-handler.js.map +1 -0
  229. package/dist/event-map/animator-handler.js +225 -0
  230. package/dist/event-map/animator-handler.js.map +1 -0
  231. package/dist/event-map/animators/animated-icon.js +265 -0
  232. package/dist/event-map/animators/animated-icon.js.map +1 -0
  233. package/dist/event-map/animators/border-highlighting.js +476 -0
  234. package/dist/event-map/animators/border-highlighting.js.map +1 -0
  235. package/dist/event-map/animators/bouncing-arrow.js +226 -0
  236. package/dist/event-map/animators/bouncing-arrow.js.map +1 -0
  237. package/dist/event-map/event-map.js +36 -0
  238. package/dist/event-map/event-map.js.map +1 -0
  239. package/dist/event-map/index.js +20 -0
  240. package/dist/event-map/index.js.map +1 -0
  241. package/dist/event-map/move-handler.js +233 -0
  242. package/dist/event-map/move-handler.js.map +1 -0
  243. package/dist/event-map/paste-handler.js +176 -0
  244. package/dist/event-map/paste-handler.js.map +1 -0
  245. package/dist/event-map/shift-handler.js +55 -0
  246. package/dist/event-map/shift-handler.js.map +1 -0
  247. package/dist/event-map/text-editor-lite.js +276 -0
  248. package/dist/event-map/text-editor-lite.js.map +1 -0
  249. package/dist/event-map/zoom-handler.js +49 -0
  250. package/dist/event-map/zoom-handler.js.map +1 -0
  251. package/dist/index.js +20 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/layer/action/emphasize.js +42 -0
  254. package/dist/layer/action/emphasize.js.map +1 -0
  255. package/dist/layer/action/popup.js +461 -0
  256. package/dist/layer/action/popup.js.map +1 -0
  257. package/dist/layer/action/pressed.js +31 -0
  258. package/dist/layer/action/pressed.js.map +1 -0
  259. package/dist/layer/add-layer.js +180 -0
  260. package/dist/layer/add-layer.js.map +1 -0
  261. package/dist/layer/decotag-layer.js +121 -0
  262. package/dist/layer/decotag-layer.js.map +1 -0
  263. package/dist/layer/guide-layer.js +292 -0
  264. package/dist/layer/guide-layer.js.map +1 -0
  265. package/dist/layer/index.js +70 -0
  266. package/dist/layer/index.js.map +1 -0
  267. package/dist/layer/layer.js +230 -0
  268. package/dist/layer/layer.js.map +1 -0
  269. package/dist/layer/minimap-layer.js +84 -0
  270. package/dist/layer/minimap-layer.js.map +1 -0
  271. package/dist/layer/model-layer.js +465 -0
  272. package/dist/layer/model-layer.js.map +1 -0
  273. package/dist/layer/modeler/anchor-handler.js +193 -0
  274. package/dist/layer/modeler/anchor-handler.js.map +1 -0
  275. package/dist/layer/modeler/control-handler.js +95 -0
  276. package/dist/layer/modeler/control-handler.js.map +1 -0
  277. package/dist/layer/modeler/focus-outline.js +41 -0
  278. package/dist/layer/modeler/focus-outline.js.map +1 -0
  279. package/dist/layer/modeler/group-outline.js +30 -0
  280. package/dist/layer/modeler/group-outline.js.map +1 -0
  281. package/dist/layer/modeler/index.js +56 -0
  282. package/dist/layer/modeler/index.js.map +1 -0
  283. package/dist/layer/modeler/path-handler.js +300 -0
  284. package/dist/layer/modeler/path-handler.js.map +1 -0
  285. package/dist/layer/modeler/resizer.js +333 -0
  286. package/dist/layer/modeler/resizer.js.map +1 -0
  287. package/dist/layer/modeler/rotator.js +134 -0
  288. package/dist/layer/modeler/rotator.js.map +1 -0
  289. package/dist/layer/modeling-layer.js +491 -0
  290. package/dist/layer/modeling-layer.js.map +1 -0
  291. package/dist/layer/reaction-layer.js +111 -0
  292. package/dist/layer/reaction-layer.js.map +1 -0
  293. package/dist/layer/scroll-layer.js +191 -0
  294. package/dist/layer/scroll-layer.js.map +1 -0
  295. package/dist/layer/selection/selected-finder.js +96 -0
  296. package/dist/layer/selection/selected-finder.js.map +1 -0
  297. package/dist/layer/selection-layer.js +373 -0
  298. package/dist/layer/selection-layer.js.map +1 -0
  299. package/dist/layer/shift-layer.js +83 -0
  300. package/dist/layer/shift-layer.js.map +1 -0
  301. package/dist/layout/absolute.js +30 -0
  302. package/dist/layout/absolute.js.map +1 -0
  303. package/dist/layout/card.js +52 -0
  304. package/dist/layout/card.js.map +1 -0
  305. package/dist/layout/html-absolute.js +32 -0
  306. package/dist/layout/html-absolute.js.map +1 -0
  307. package/dist/layout/index.js +56 -0
  308. package/dist/layout/index.js.map +1 -0
  309. package/dist/layout/layout.js +36 -0
  310. package/dist/layout/layout.js.map +1 -0
  311. package/dist/layout/linear-horizontal.js +56 -0
  312. package/dist/layout/linear-horizontal.js.map +1 -0
  313. package/dist/layout/linear-vertical.js +56 -0
  314. package/dist/layout/linear-vertical.js.map +1 -0
  315. package/dist/layout/table.js +106 -0
  316. package/dist/layout/table.js.map +1 -0
  317. package/dist/license/license.js +170 -0
  318. package/dist/license/license.js.map +1 -0
  319. package/dist/model/compile.js +40 -0
  320. package/dist/model/compile.js.map +1 -0
  321. package/dist/model/duplicate.js +19 -0
  322. package/dist/model/duplicate.js.map +1 -0
  323. package/dist/model/index.js +34 -0
  324. package/dist/model/index.js.map +1 -0
  325. package/dist/model/selector.js +104 -0
  326. package/dist/model/selector.js.map +1 -0
  327. package/dist/style/compile.js +14 -0
  328. package/dist/style/compile.js.map +1 -0
  329. package/dist/style/index.js +14 -0
  330. package/dist/style/index.js.map +1 -0
  331. package/dist/things-scene/api/add-start.js +18 -0
  332. package/dist/things-scene/api/add-start.js.map +1 -0
  333. package/dist/things-scene/api/add.js +71 -0
  334. package/dist/things-scene/api/add.js.map +1 -0
  335. package/dist/things-scene/api/align.js +116 -0
  336. package/dist/things-scene/api/align.js.map +1 -0
  337. package/dist/things-scene/api/center-to.js +50 -0
  338. package/dist/things-scene/api/center-to.js.map +1 -0
  339. package/dist/things-scene/api/change.js +27 -0
  340. package/dist/things-scene/api/change.js.map +1 -0
  341. package/dist/things-scene/api/clipboard.js +45 -0
  342. package/dist/things-scene/api/clipboard.js.map +1 -0
  343. package/dist/things-scene/api/distribute.js +57 -0
  344. package/dist/things-scene/api/distribute.js.map +1 -0
  345. package/dist/things-scene/api/duplicate.js +47 -0
  346. package/dist/things-scene/api/duplicate.js.map +1 -0
  347. package/dist/things-scene/api/fullscreen.js +26 -0
  348. package/dist/things-scene/api/fullscreen.js.map +1 -0
  349. package/dist/things-scene/api/group.js +91 -0
  350. package/dist/things-scene/api/group.js.map +1 -0
  351. package/dist/things-scene/api/ids.js +28 -0
  352. package/dist/things-scene/api/ids.js.map +1 -0
  353. package/dist/things-scene/api/index.js +192 -0
  354. package/dist/things-scene/api/index.js.map +1 -0
  355. package/dist/things-scene/api/listener.js +69 -0
  356. package/dist/things-scene/api/listener.js.map +1 -0
  357. package/dist/things-scene/api/paste-start.js +27 -0
  358. package/dist/things-scene/api/paste-start.js.map +1 -0
  359. package/dist/things-scene/api/place.js +98 -0
  360. package/dist/things-scene/api/place.js.map +1 -0
  361. package/dist/things-scene/api/remove.js +57 -0
  362. package/dist/things-scene/api/remove.js.map +1 -0
  363. package/dist/things-scene/api/symmetry.js +47 -0
  364. package/dist/things-scene/api/symmetry.js.map +1 -0
  365. package/dist/things-scene/api/to-data-url.js +76 -0
  366. package/dist/things-scene/api/to-data-url.js.map +1 -0
  367. package/dist/things-scene/api/zorder.js +68 -0
  368. package/dist/things-scene/api/zorder.js.map +1 -0
  369. package/dist/things-scene/application-context.js +168 -0
  370. package/dist/things-scene/application-context.js.map +1 -0
  371. package/dist/things-scene/config.js +18 -0
  372. package/dist/things-scene/config.js.map +1 -0
  373. package/dist/things-scene/create.js +67 -0
  374. package/dist/things-scene/create.js.map +1 -0
  375. package/dist/things-scene/fps.js +26 -0
  376. package/dist/things-scene/fps.js.map +1 -0
  377. package/dist/things-scene/index.js +152 -0
  378. package/dist/things-scene/index.js.map +1 -0
  379. package/dist/things-scene/polyfill.js +111 -0
  380. package/dist/things-scene/polyfill.js.map +1 -0
  381. package/dist/things-scene/scene.js +442 -0
  382. package/dist/things-scene/scene.js.map +1 -0
  383. package/dist/things-scene/version.js +12 -0
  384. package/dist/things-scene/version.js.map +1 -0
  385. package/package.json +8 -6
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = linkDecorator;
7
+ var _roundRect = require("../core/round-rect.js");
8
+ // class Line extends Component {
9
+ // get fromEnd(): LinkEnd | undefined
10
+ // get toEnd(): LinkEnd | undefined
11
+ // get from(): LinkEndConfig
12
+ // get to(): LinkEndConfig
13
+ // }
14
+
15
+ // class LinkEnd {
16
+ // component: Component
17
+ // anchor: Anchor
18
+ // position: POSITION
19
+ // fromto: 'from' | 'to'
20
+ // }
21
+
22
+ function linkDecorator(component, context, delta /* 1 to 0 */) {
23
+ var rendered = false;
24
+ if (!component.isLine()) {
25
+ return;
26
+ }
27
+ const {
28
+ fromEnd,
29
+ toEnd
30
+ } = component;
31
+ [fromEnd, toEnd].filter(Boolean).forEach(end => {
32
+ const {
33
+ component,
34
+ anchor
35
+ } = end;
36
+ if (!anchor) {
37
+ return;
38
+ }
39
+ const {
40
+ name,
41
+ position
42
+ } = anchor || {};
43
+ if (!name || !position) {
44
+ return;
45
+ }
46
+ var {
47
+ x,
48
+ y
49
+ } = position || {};
50
+ var {
51
+ x,
52
+ y
53
+ } = component.transcoordS2C(x, y, component.rootModel);
54
+ x += 8;
55
+ y += 20;
56
+ context.font = '12px Arial';
57
+ let metrics = context.measureText(name);
58
+ context.fillStyle = '#FF0000';
59
+ (0, _roundRect.roundRect)(context, x - metrics.actualBoundingBoxLeft - 4, y - metrics.actualBoundingBoxAscent - 4, metrics.actualBoundingBoxLeft + metrics.actualBoundingBoxRight + 4 * 2, metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 4 * 2, 4 /* round */, true /* fill */, false /* stroke */);
60
+ context.fillStyle = 'white';
61
+ context.fillText(name, x, y);
62
+ rendered = true;
63
+ });
64
+ return rendered;
65
+ }
66
+ //# sourceMappingURL=link-decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-decorator.js","names":["_roundRect","require","linkDecorator","component","context","delta","rendered","isLine","fromEnd","toEnd","filter","Boolean","forEach","end","anchor","name","position","x","y","transcoordS2C","rootModel","font","metrics","measureText","fillStyle","roundRect","actualBoundingBoxLeft","actualBoundingBoxAscent","actualBoundingBoxRight","actualBoundingBoxDescent","fillText"],"sources":["../../src/decorator/link-decorator.js"],"sourcesContent":["// class Line extends Component {\n// get fromEnd(): LinkEnd | undefined\n// get toEnd(): LinkEnd | undefined\n// get from(): LinkEndConfig\n// get to(): LinkEndConfig\n// }\n\n// class LinkEnd {\n// component: Component\n// anchor: Anchor\n// position: POSITION\n// fromto: 'from' | 'to'\n// }\n\nimport { roundRect } from '../core/round-rect.js'\n\nexport default function linkDecorator(component, context, delta /* 1 to 0 */) {\n var rendered = false\n\n if (!component.isLine()) {\n return\n }\n\n const { fromEnd, toEnd } = component\n\n ;[fromEnd, toEnd].filter(Boolean).forEach(end => {\n const { component, anchor } = end\n\n if (!anchor) {\n return\n }\n\n const { name, position } = anchor || {}\n\n if (!name || !position) {\n return\n }\n\n var { x, y } = position || {}\n\n var { x, y } = component.transcoordS2C(x, y, component.rootModel)\n x += 8\n y += 20\n\n context.font = '12px Arial'\n let metrics = context.measureText(name)\n\n context.fillStyle = '#FF0000'\n roundRect(\n context,\n x - metrics.actualBoundingBoxLeft - 4,\n y - metrics.actualBoundingBoxAscent - 4,\n metrics.actualBoundingBoxLeft + metrics.actualBoundingBoxRight + 4 * 2,\n metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent + 4 * 2,\n 4 /* round */,\n true /* fill */,\n false /* stroke */\n )\n\n context.fillStyle = 'white'\n context.fillText(name, x, y)\n\n rendered = true\n })\n\n return rendered\n}\n"],"mappings":";;;;;;AAcA,IAAAA,UAAA,GAAAC,OAAA;AAdA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAIe,SAASC,aAAaA,CAACC,SAAS,EAAEC,OAAO,EAAEC,KAAK,CAAC,cAAc;EAC5E,IAAIC,QAAQ,GAAG,KAAK;EAEpB,IAAI,CAACH,SAAS,CAACI,MAAM,CAAC,CAAC,EAAE;IACvB;EACF;EAEA,MAAM;IAAEC,OAAO;IAAEC;EAAM,CAAC,GAAGN,SAAS;EAEnC,CAACK,OAAO,EAAEC,KAAK,CAAC,CAACC,MAAM,CAACC,OAAO,CAAC,CAACC,OAAO,CAACC,GAAG,IAAI;IAC/C,MAAM;MAAEV,SAAS;MAAEW;IAAO,CAAC,GAAGD,GAAG;IAEjC,IAAI,CAACC,MAAM,EAAE;MACX;IACF;IAEA,MAAM;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGF,MAAM,IAAI,CAAC,CAAC;IAEvC,IAAI,CAACC,IAAI,IAAI,CAACC,QAAQ,EAAE;MACtB;IACF;IAEA,IAAI;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGF,QAAQ,IAAI,CAAC,CAAC;IAE7B,IAAI;MAAEC,CAAC;MAAEC;IAAE,CAAC,GAAGf,SAAS,CAACgB,aAAa,CAACF,CAAC,EAAEC,CAAC,EAAEf,SAAS,CAACiB,SAAS,CAAC;IACjEH,CAAC,IAAI,CAAC;IACNC,CAAC,IAAI,EAAE;IAEPd,OAAO,CAACiB,IAAI,GAAG,YAAY;IAC3B,IAAIC,OAAO,GAAGlB,OAAO,CAACmB,WAAW,CAACR,IAAI,CAAC;IAEvCX,OAAO,CAACoB,SAAS,GAAG,SAAS;IAC7B,IAAAC,oBAAS,EACPrB,OAAO,EACPa,CAAC,GAAGK,OAAO,CAACI,qBAAqB,GAAG,CAAC,EACrCR,CAAC,GAAGI,OAAO,CAACK,uBAAuB,GAAG,CAAC,EACvCL,OAAO,CAACI,qBAAqB,GAAGJ,OAAO,CAACM,sBAAsB,GAAG,CAAC,GAAG,CAAC,EACtEN,OAAO,CAACK,uBAAuB,GAAGL,OAAO,CAACO,wBAAwB,GAAG,CAAC,GAAG,CAAC,EAC1E,CAAC,CAAC,aACF,IAAI,CAAC,YACL,KAAK,CAAC,YACR,CAAC;IAEDzB,OAAO,CAACoB,SAAS,GAAG,OAAO;IAC3BpB,OAAO,CAAC0B,QAAQ,CAACf,IAAI,EAAEE,CAAC,EAAEC,CAAC,CAAC;IAE5BZ,QAAQ,GAAG,IAAI;EACjB,CAAC,CAAC;EAEF,OAAOA,QAAQ;AACjB","ignoreList":[]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = gradation;
7
+ /*
8
+ * Copyright © HatioLab Inc. All rights reserved.
9
+ */
10
+
11
+ function gradation(client, ctx, model) {
12
+ var {
13
+ type,
14
+ subType,
15
+ from,
16
+ to,
17
+ colors
18
+ } = model;
19
+ switch (subType) {
20
+ case 'linear':
21
+ var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y);
22
+ break;
23
+ case 'radial':
24
+ var grad = ctx.createRadialGradient(from.x, from.y, from.r, to.x, to.y, to.r);
25
+ break;
26
+ default:
27
+ var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y);
28
+ }
29
+ if (colors) {
30
+ colors.forEach(function (obj) {
31
+ grad.addColorStop(obj.endPoint, obj.color);
32
+ });
33
+ ctx.fillStyle = grad;
34
+ ctx.fill();
35
+ }
36
+ }
37
+ //# sourceMappingURL=gradation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradation.js","names":["gradation","client","ctx","model","type","subType","from","to","colors","grad","createLinearGradient","x","y","createRadialGradient","r","forEach","obj","addColorStop","endPoint","color","fillStyle","fill"],"sources":["../../src/effect/gradation.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport default function gradation(client, ctx, model) {\n var { type, subType, from, to, colors } = model\n\n switch (subType) {\n case 'linear':\n var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y)\n break\n case 'radial':\n var grad = ctx.createRadialGradient(from.x, from.y, from.r, to.x, to.y, to.r)\n break\n default:\n var grad = ctx.createLinearGradient(from.x, from.y, to.x, to.y)\n }\n\n if (colors) {\n colors.forEach(function(obj) {\n grad.addColorStop(obj.endPoint, obj.color)\n })\n\n ctx.fillStyle = grad\n ctx.fill()\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEe,SAASA,SAASA,CAACC,MAAM,EAAEC,GAAG,EAAEC,KAAK,EAAE;EACpD,IAAI;IAAEC,IAAI;IAAEC,OAAO;IAAEC,IAAI;IAAEC,EAAE;IAAEC;EAAO,CAAC,GAAGL,KAAK;EAE/C,QAAQE,OAAO;IACb,KAAK,QAAQ;MACX,IAAII,IAAI,GAAGP,GAAG,CAACQ,oBAAoB,CAACJ,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEL,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,CAAC;MAC/D;IACF,KAAK,QAAQ;MACX,IAAIH,IAAI,GAAGP,GAAG,CAACW,oBAAoB,CAACP,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEN,IAAI,CAACQ,CAAC,EAAEP,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,EAAEL,EAAE,CAACO,CAAC,CAAC;MAC7E;IACF;MACE,IAAIL,IAAI,GAAGP,GAAG,CAACQ,oBAAoB,CAACJ,IAAI,CAACK,CAAC,EAAEL,IAAI,CAACM,CAAC,EAAEL,EAAE,CAACI,CAAC,EAAEJ,EAAE,CAACK,CAAC,CAAC;EACnE;EAEA,IAAIJ,MAAM,EAAE;IACVA,MAAM,CAACO,OAAO,CAAC,UAASC,GAAG,EAAE;MAC3BP,IAAI,CAACQ,YAAY,CAACD,GAAG,CAACE,QAAQ,EAAEF,GAAG,CAACG,KAAK,CAAC;IAC5C,CAAC,CAAC;IAEFjB,GAAG,CAACkB,SAAS,GAAGX,IAAI;IACpBP,GAAG,CAACmB,IAAI,CAAC,CAAC;EACZ;AACF","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = effect;
7
+ var _gradation = _interopRequireDefault(require("./gradation.js"));
8
+ var _shadow = require("./shadow.js");
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /*
11
+ * Copyright © HatioLab Inc. All rights reserved.
12
+ */
13
+
14
+ var registry = {
15
+ gradation: _gradation.default,
16
+ shadow: _shadow.setShadow
17
+ };
18
+ function effect(client, context, model) {
19
+ var effect = registry[model.type];
20
+ if (!effect) return;
21
+ effect(client, context, model);
22
+ }
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_gradation","_interopRequireDefault","require","_shadow","e","__esModule","default","registry","gradation","shadow","setShadow","effect","client","context","model","type"],"sources":["../../src/effect/index.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport gradation from './gradation.js'\nimport { setShadow } from './shadow.js'\n\nvar registry = {\n gradation,\n shadow: setShadow\n}\n\nexport default function effect(client, context, model) {\n var effect = registry[model.type]\n if (!effect) return\n\n effect(client, context, model)\n}\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAAuC,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AALvC;AACA;AACA;;AAKA,IAAIG,QAAQ,GAAG;EACbC,SAAS,EAATA,kBAAS;EACTC,MAAM,EAAEC;AACV,CAAC;AAEc,SAASC,MAAMA,CAACC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAE;EACrD,IAAIH,MAAM,GAAGJ,QAAQ,CAACO,KAAK,CAACC,IAAI,CAAC;EACjC,IAAI,CAACJ,MAAM,EAAE;EAEbA,MAAM,CAACC,MAAM,EAAEC,OAAO,EAAEC,KAAK,CAAC;AAChC","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.resetShadow = resetShadow;
7
+ exports.setShadow = setShadow;
8
+ var _const = require("../const.js");
9
+ /*
10
+ * Copyright © HatioLab Inc. All rights reserved.
11
+ */
12
+
13
+ const DEFAULT_SCALE = {
14
+ x: 1,
15
+ y: 1
16
+ };
17
+ function setShadow(context, shadow, component) {
18
+ var {
19
+ left = 0,
20
+ top = 0,
21
+ blurSize = 0,
22
+ color = 'transparent'
23
+ } = shadow;
24
+ var scale = component.rootModel.get('scale') || DEFAULT_SCALE;
25
+ context.shadowOffsetX = left * scale.x * _const.DPPX;
26
+ context.shadowOffsetY = top * scale.y * _const.DPPX;
27
+ context.shadowBlur = blurSize * scale.x * _const.DPPX;
28
+ context.shadowColor = color;
29
+ }
30
+ function resetShadow(context) {
31
+ context.shadowColor = 'transparent';
32
+ }
33
+ //# sourceMappingURL=shadow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shadow.js","names":["_const","require","DEFAULT_SCALE","x","y","setShadow","context","shadow","component","left","top","blurSize","color","scale","rootModel","get","shadowOffsetX","DPPX","shadowOffsetY","shadowBlur","shadowColor","resetShadow"],"sources":["../../src/effect/shadow.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nconst DEFAULT_SCALE = {\n x: 1,\n y: 1\n}\n\nimport { DPPX } from '../const.js'\n\nexport function setShadow(context, shadow, component) {\n var { left = 0, top = 0, blurSize = 0, color = 'transparent' } = shadow\n\n var scale = component.rootModel.get('scale') || DEFAULT_SCALE\n\n context.shadowOffsetX = left * scale.x * DPPX\n context.shadowOffsetY = top * scale.y * DPPX\n context.shadowBlur = blurSize * scale.x * DPPX\n context.shadowColor = color\n}\n\nexport function resetShadow(context) {\n context.shadowColor = 'transparent'\n}\n"],"mappings":";;;;;;;AASA,IAAAA,MAAA,GAAAC,OAAA;AATA;AACA;AACA;;AAEA,MAAMC,aAAa,GAAG;EACpBC,CAAC,EAAE,CAAC;EACJC,CAAC,EAAE;AACL,CAAC;AAIM,SAASC,SAASA,CAACC,OAAO,EAAEC,MAAM,EAAEC,SAAS,EAAE;EACpD,IAAI;IAAEC,IAAI,GAAG,CAAC;IAAEC,GAAG,GAAG,CAAC;IAAEC,QAAQ,GAAG,CAAC;IAAEC,KAAK,GAAG;EAAc,CAAC,GAAGL,MAAM;EAEvE,IAAIM,KAAK,GAAGL,SAAS,CAACM,SAAS,CAACC,GAAG,CAAC,OAAO,CAAC,IAAIb,aAAa;EAE7DI,OAAO,CAACU,aAAa,GAAGP,IAAI,GAAGI,KAAK,CAACV,CAAC,GAAGc,WAAI;EAC7CX,OAAO,CAACY,aAAa,GAAGR,GAAG,GAAGG,KAAK,CAACT,CAAC,GAAGa,WAAI;EAC5CX,OAAO,CAACa,UAAU,GAAGR,QAAQ,GAAGE,KAAK,CAACV,CAAC,GAAGc,WAAI;EAC9CX,OAAO,CAACc,WAAW,GAAGR,KAAK;AAC7B;AAEO,SAASS,WAAWA,CAACf,OAAO,EAAE;EACnCA,OAAO,CAACc,WAAW,GAAG,aAAa;AACrC","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.turn = turn;
7
+ /*
8
+ * Copyright © HatioLab Inc. All rights reserved.
9
+ */
10
+
11
+ function turn(component, params) {
12
+ component.set({
13
+ rotation: params.speed
14
+ });
15
+ t(component, params);
16
+ }
17
+ function t(component, params) {
18
+ component.set({
19
+ rotation: component.get('rotation') + params.speed
20
+ });
21
+ setTimeout(() => {
22
+ t(component, params);
23
+ }, 100);
24
+ }
25
+ //# sourceMappingURL=turn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn.js","names":["turn","component","params","set","rotation","speed","t","get","setTimeout"],"sources":["../../src/effect/turn.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function turn(component, params) {\n component.set({ rotation: params.speed })\n t(component, params)\n}\n\nfunction t(component, params) {\n component.set({ rotation: component.get('rotation') + params.speed })\n setTimeout(() => {\n t(component, params)\n }, 100)\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;;AAEO,SAASA,IAAIA,CAACC,SAAS,EAAEC,MAAM,EAAE;EACtCD,SAAS,CAACE,GAAG,CAAC;IAAEC,QAAQ,EAAEF,MAAM,CAACG;EAAM,CAAC,CAAC;EACzCC,CAAC,CAACL,SAAS,EAAEC,MAAM,CAAC;AACtB;AAEA,SAASI,CAACA,CAACL,SAAS,EAAEC,MAAM,EAAE;EAC5BD,SAAS,CAACE,GAAG,CAAC;IAAEC,QAAQ,EAAEH,SAAS,CAACM,GAAG,CAAC,UAAU,CAAC,GAAGL,MAAM,CAACG;EAAM,CAAC,CAAC;EACrEG,UAAU,CAAC,MAAM;IACfF,CAAC,CAACL,SAAS,EAAEC,MAAM,CAAC;EACtB,CAAC,EAAE,GAAG,CAAC;AACT","ignoreList":[]}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _eventPump = _interopRequireDefault(require("./event-pump.js"));
8
+ var ComponentSelector = _interopRequireWildcard(require("../model/selector.js"));
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ /*
13
+ * Copyright © HatioLab Inc. All rights reserved.
14
+ */
15
+
16
+ class EventEngine {
17
+ constructor(root) {
18
+ this.eventMaps = [];
19
+ this.root = root;
20
+ if (root.eventMap) {
21
+ this.add(root, root.eventMap);
22
+ }
23
+ }
24
+ set root(root) {
25
+ this._root = root;
26
+ }
27
+ get root() {
28
+ return this._root;
29
+ }
30
+ stop() {
31
+ this.eventMaps.forEach(map => map.eventPump.stop());
32
+ }
33
+ add(listener, handlerMap) {
34
+ if (!this.root) return;
35
+ for (let selector in handlerMap) {
36
+ let handlers = handlerMap[selector];
37
+
38
+ /* 리스너가 이벤트를 핸들링하는 오브젝트가 아닌 경우 '(self)' 선택자는 사용할 수 없다. */
39
+ if (selector === '(self)' && typeof listener.on === 'undefined') throw new Error('(self) selector not available when deliverer is not a event handlable object.');
40
+ let deliverers = ComponentSelector.select(selector, this.root, listener);
41
+ deliverers.forEach(deliverer => {
42
+ var eventPump = new _eventPump.default(deliverer);
43
+ eventPump.on(listener, handlers);
44
+ eventPump.start();
45
+ this.eventMaps.push({
46
+ eventPump,
47
+ listener,
48
+ handlerMap,
49
+ deliverer
50
+ });
51
+ });
52
+ }
53
+ }
54
+ remove(listener, handlerMap) {
55
+ var maps = this.eventMaps.slice(0); // Clone Array
56
+ for (let i = 0; i < maps.length; i++) {
57
+ let item = maps[i];
58
+ if (item.listener === listener && (!handlerMap || item.handlerMap === handlerMap)) {
59
+ this.eventMaps.splice(i, 1);
60
+ item.eventPump.dispose();
61
+ }
62
+ }
63
+ }
64
+ clear() {
65
+ var maps = this.eventMaps.slice(0); // Clone Array
66
+
67
+ maps.forEach(map => map.eventPump.dispose());
68
+ this.eventMaps = [];
69
+ }
70
+ dispose() {
71
+ this.stop();
72
+ this.clear();
73
+ }
74
+ }
75
+ exports.default = EventEngine;
76
+ //# sourceMappingURL=event-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-engine.js","names":["_eventPump","_interopRequireDefault","require","ComponentSelector","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","EventEngine","constructor","root","eventMaps","eventMap","add","_root","stop","forEach","map","eventPump","listener","handlerMap","selector","handlers","on","Error","deliverers","select","deliverer","EventPump","start","push","remove","maps","slice","length","item","splice","dispose","clear","exports"],"sources":["../../src/event/event-engine.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport EventPump from './event-pump.js'\nimport * as ComponentSelector from '../model/selector.js'\n\nexport default class EventEngine {\n constructor(root) {\n this.eventMaps = []\n this.root = root\n\n if (root.eventMap) {\n this.add(root, root.eventMap)\n }\n }\n\n set root(root) {\n this._root = root\n }\n\n get root() {\n return this._root\n }\n\n stop() {\n this.eventMaps.forEach(map => map.eventPump.stop())\n }\n\n add(listener, handlerMap) {\n if (!this.root) return\n\n for (let selector in handlerMap) {\n let handlers = handlerMap[selector]\n\n /* 리스너가 이벤트를 핸들링하는 오브젝트가 아닌 경우 '(self)' 선택자는 사용할 수 없다. */\n if (selector === '(self)' && typeof listener.on === 'undefined')\n throw new Error('(self) selector not available when deliverer is not a event handlable object.')\n\n let deliverers = ComponentSelector.select(selector, this.root, listener)\n\n deliverers.forEach(deliverer => {\n var eventPump = new EventPump(deliverer)\n eventPump.on(listener, handlers)\n eventPump.start()\n\n this.eventMaps.push({\n eventPump,\n listener,\n handlerMap,\n deliverer\n })\n })\n }\n }\n\n remove(listener, handlerMap) {\n var maps = this.eventMaps.slice(0) // Clone Array\n for (let i = 0; i < maps.length; i++) {\n let item = maps[i]\n if (item.listener === listener && (!handlerMap || item.handlerMap === handlerMap)) {\n this.eventMaps.splice(i, 1)\n item.eventPump.dispose()\n }\n }\n }\n\n clear() {\n var maps = this.eventMaps.slice(0) // Clone Array\n\n maps.forEach(map => map.eventPump.dispose())\n\n this.eventMaps = []\n }\n\n dispose() {\n this.stop()\n this.clear()\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAyD,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAF,wBAAAE,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAAA,SAAAb,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAI,UAAA,GAAAJ,CAAA,KAAAK,OAAA,EAAAL,CAAA;AALzD;AACA;AACA;;AAKe,MAAMmB,WAAW,CAAC;EAC/BC,WAAWA,CAACC,IAAI,EAAE;IAChB,IAAI,CAACC,SAAS,GAAG,EAAE;IACnB,IAAI,CAACD,IAAI,GAAGA,IAAI;IAEhB,IAAIA,IAAI,CAACE,QAAQ,EAAE;MACjB,IAAI,CAACC,GAAG,CAACH,IAAI,EAAEA,IAAI,CAACE,QAAQ,CAAC;IAC/B;EACF;EAEA,IAAIF,IAAIA,CAACA,IAAI,EAAE;IACb,IAAI,CAACI,KAAK,GAAGJ,IAAI;EACnB;EAEA,IAAIA,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACI,KAAK;EACnB;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACJ,SAAS,CAACK,OAAO,CAACC,GAAG,IAAIA,GAAG,CAACC,SAAS,CAACH,IAAI,CAAC,CAAC,CAAC;EACrD;EAEAF,GAAGA,CAACM,QAAQ,EAAEC,UAAU,EAAE;IACxB,IAAI,CAAC,IAAI,CAACV,IAAI,EAAE;IAEhB,KAAK,IAAIW,QAAQ,IAAID,UAAU,EAAE;MAC/B,IAAIE,QAAQ,GAAGF,UAAU,CAACC,QAAQ,CAAC;;MAEnC;MACA,IAAIA,QAAQ,KAAK,QAAQ,IAAI,OAAOF,QAAQ,CAACI,EAAE,KAAK,WAAW,EAC7D,MAAM,IAAIC,KAAK,CAAC,+EAA+E,CAAC;MAElG,IAAIC,UAAU,GAAGvC,iBAAiB,CAACwC,MAAM,CAACL,QAAQ,EAAE,IAAI,CAACX,IAAI,EAAES,QAAQ,CAAC;MAExEM,UAAU,CAACT,OAAO,CAACW,SAAS,IAAI;QAC9B,IAAIT,SAAS,GAAG,IAAIU,kBAAS,CAACD,SAAS,CAAC;QACxCT,SAAS,CAACK,EAAE,CAACJ,QAAQ,EAAEG,QAAQ,CAAC;QAChCJ,SAAS,CAACW,KAAK,CAAC,CAAC;QAEjB,IAAI,CAAClB,SAAS,CAACmB,IAAI,CAAC;UAClBZ,SAAS;UACTC,QAAQ;UACRC,UAAU;UACVO;QACF,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF;EAEAI,MAAMA,CAACZ,QAAQ,EAAEC,UAAU,EAAE;IAC3B,IAAIY,IAAI,GAAG,IAAI,CAACrB,SAAS,CAACsB,KAAK,CAAC,CAAC,CAAC,EAAC;IACnC,KAAK,IAAI3B,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG0B,IAAI,CAACE,MAAM,EAAE5B,CAAC,EAAE,EAAE;MACpC,IAAI6B,IAAI,GAAGH,IAAI,CAAC1B,CAAC,CAAC;MAClB,IAAI6B,IAAI,CAAChB,QAAQ,KAAKA,QAAQ,KAAK,CAACC,UAAU,IAAIe,IAAI,CAACf,UAAU,KAAKA,UAAU,CAAC,EAAE;QACjF,IAAI,CAACT,SAAS,CAACyB,MAAM,CAAC9B,CAAC,EAAE,CAAC,CAAC;QAC3B6B,IAAI,CAACjB,SAAS,CAACmB,OAAO,CAAC,CAAC;MAC1B;IACF;EACF;EAEAC,KAAKA,CAAA,EAAG;IACN,IAAIN,IAAI,GAAG,IAAI,CAACrB,SAAS,CAACsB,KAAK,CAAC,CAAC,CAAC,EAAC;;IAEnCD,IAAI,CAAChB,OAAO,CAACC,GAAG,IAAIA,GAAG,CAACC,SAAS,CAACmB,OAAO,CAAC,CAAC,CAAC;IAE5C,IAAI,CAAC1B,SAAS,GAAG,EAAE;EACrB;EAEA0B,OAAOA,CAAA,EAAG;IACR,IAAI,CAACtB,IAAI,CAAC,CAAC;IACX,IAAI,CAACuB,KAAK,CAAC,CAAC;EACd;AACF;AAACC,OAAA,CAAA7C,OAAA,GAAAc,WAAA","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var Selector = _interopRequireWildcard(require("../model/selector.js"));
8
+ var _logger = require("../core/logger.js");
9
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
10
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ /*
12
+ * Copyright © HatioLab Inc. All rights reserved.
13
+ */
14
+
15
+ function control(root, listener, handlers, event, args) {
16
+ for (let selector in handlers) {
17
+ let event_map = handlers[selector];
18
+ if (Selector.match(selector, event.origin, listener, root)) {
19
+ for (let event_name in event_map) {
20
+ let handler = event_map[event_name];
21
+ if (event_name == event.name) {
22
+ event.listener = listener;
23
+
24
+ /* 실행컨텍스트는 리스너가 되도록 한다. */
25
+ handler.apply(listener, args);
26
+ }
27
+ }
28
+ }
29
+ }
30
+ }
31
+ function event_handler_fn() {
32
+ var args = arguments;
33
+ var e = args[args.length - 1];
34
+ var event_pump = this.event_pump;
35
+ event_pump.listeners.forEach(listener => {
36
+ control(event_pump.deliverer, listener.listener, listener.cloned_handlers, e, args);
37
+ });
38
+ }
39
+ class EventPump {
40
+ /*
41
+ * Construct a new event pump.
42
+ *
43
+ * param [Object] deliverer target object to listen events that the object fires or delegates
44
+ */
45
+ constructor(deliverer) {
46
+ if (typeof deliverer.on === 'undefined') throw new Error('Deliverer should be a event handlable object.');
47
+ this.deliverer = deliverer;
48
+ this.listeners = [];
49
+ }
50
+ start() {
51
+ this.deliverer.on('(all)', event_handler_fn, {
52
+ event_pump: this
53
+ });
54
+ }
55
+ stop() {
56
+ this.deliverer.off('(all)', event_handler_fn);
57
+ }
58
+ on(listener, handlers) {
59
+ var cloned_handlers = Object.assign({}, handlers); // clone object
60
+
61
+ var selectors = Object.keys(cloned_handlers);
62
+ selectors.forEach(selector => {
63
+ if (selector.indexOf('?') == 0) {
64
+ let handler = cloned_handlers[selector];
65
+ let variable = selector.substr(1);
66
+ let value = listener.get(variable);
67
+ delete cloned_handlers[selector];
68
+ if (value) cloned_handlers[value] = handler;else (0, _logger.warn)('EventPump#on', `variable #{selector} is not evaluated on listener`);
69
+ }
70
+ });
71
+ this.listeners.push({
72
+ listener: listener,
73
+ handlers: handlers,
74
+ cloned_handlers: cloned_handlers
75
+ });
76
+ }
77
+ off(listener, handlers) {
78
+ for (let i = 0; i < this.listeners.length; i++) {
79
+ let item = this.listeners[i];
80
+ if (item.listener === listener && (!handlers || item.handlers === handlers)) this.listeners.splice(i, 1);
81
+ }
82
+ }
83
+ clear() {
84
+ this.listeners = [];
85
+ }
86
+ dispose() {
87
+ this.stop();
88
+ this.clear();
89
+ }
90
+ }
91
+ exports.default = EventPump;
92
+ //# sourceMappingURL=event-pump.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-pump.js","names":["Selector","_interopRequireWildcard","require","_logger","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","control","root","listener","handlers","event","args","selector","event_map","match","origin","event_name","handler","name","apply","event_handler_fn","arguments","length","event_pump","listeners","forEach","deliverer","cloned_handlers","EventPump","constructor","on","Error","start","stop","off","assign","selectors","keys","indexOf","variable","substr","value","warn","push","item","splice","clear","dispose","exports"],"sources":["../../src/event/event-pump.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as Selector from '../model/selector.js'\nimport { warn } from '../core/logger.js'\n\nfunction control(root, listener, handlers, event, args) {\n for (let selector in handlers) {\n let event_map = handlers[selector]\n\n if (Selector.match(selector, event.origin, listener, root)) {\n for (let event_name in event_map) {\n let handler = event_map[event_name]\n\n if (event_name == event.name) {\n event.listener = listener\n\n /* 실행컨텍스트는 리스너가 되도록 한다. */\n handler.apply(listener, args)\n }\n }\n }\n }\n}\n\nfunction event_handler_fn() {\n var args = arguments\n var e = args[args.length - 1]\n var event_pump = this.event_pump\n\n event_pump.listeners.forEach(listener => {\n control(event_pump.deliverer, listener.listener, listener.cloned_handlers, e, args)\n })\n}\n\nexport default class EventPump {\n /*\n * Construct a new event pump.\n *\n * param [Object] deliverer target object to listen events that the object fires or delegates\n */\n constructor(deliverer) {\n if (typeof deliverer.on === 'undefined') throw new Error('Deliverer should be a event handlable object.')\n\n this.deliverer = deliverer\n this.listeners = []\n }\n\n start() {\n this.deliverer.on('(all)', event_handler_fn, {\n event_pump: this\n })\n }\n\n stop() {\n this.deliverer.off('(all)', event_handler_fn)\n }\n\n on(listener, handlers) {\n var cloned_handlers = Object.assign({}, handlers) // clone object\n\n var selectors = Object.keys(cloned_handlers)\n\n selectors.forEach(selector => {\n if (selector.indexOf('?') == 0) {\n let handler = cloned_handlers[selector]\n let variable = selector.substr(1)\n let value = listener.get(variable)\n delete cloned_handlers[selector]\n\n if (value) cloned_handlers[value] = handler\n else warn('EventPump#on', `variable #{selector} is not evaluated on listener`)\n }\n })\n\n this.listeners.push({\n listener: listener,\n handlers: handlers,\n cloned_handlers: cloned_handlers\n })\n }\n\n off(listener, handlers) {\n for (let i = 0; i < this.listeners.length; i++) {\n let item = this.listeners[i]\n if (item.listener === listener && (!handlers || item.handlers === handlers)) this.listeners.splice(i, 1)\n }\n }\n\n clear() {\n this.listeners = []\n }\n\n dispose() {\n this.stop()\n this.clear()\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /*
8
+ * Copyright © HatioLab Inc. All rights reserved.
9
+ */
10
+
11
+ class StandAloneTracker {
12
+ constructor(target, handlers, self) {
13
+ this.started = false;
14
+ if (target) this.target = target;
15
+ this.handlers = handlers;
16
+ var self = self || this.target || this;
17
+ this.boundhandler = {};
18
+ for (let ev in handlers) {
19
+ let handler = handlers[ev];
20
+ if (typeof handler == 'function') {
21
+ this.boundhandler[ev] = handler.bind(self);
22
+ }
23
+ }
24
+ }
25
+ dispose() {
26
+ this.off();
27
+ }
28
+ on() {
29
+ if (this.started) return;
30
+ for (let ev in this.boundhandler) {
31
+ let handler = this.boundhandler[ev];
32
+ this.target.on(ev, handler);
33
+ }
34
+ this.started = true;
35
+ }
36
+ off() {
37
+ for (let ev in this.boundhandler) {
38
+ let handler = this.boundhandler[ev];
39
+ this.target.off(ev, handler);
40
+ }
41
+ this.started = false;
42
+ }
43
+ }
44
+ class EventTracker {
45
+ static get StandAlone() {
46
+ return StandAloneTracker;
47
+ }
48
+ constructor() {
49
+ this.trackers = [];
50
+ }
51
+ set selector(selector) {
52
+ this._selector = selector;
53
+ }
54
+ on(target, handlers, listener, context) {
55
+ var deliverers = null;
56
+ switch (typeof target) {
57
+ case 'object':
58
+ deliverers = [target];
59
+ break;
60
+ case 'string':
61
+ deliverers = this._selector.select(target, listener);
62
+ break;
63
+ default:
64
+ deliverers = [];
65
+ }
66
+ if (!(deliverers instanceof Array)) deliverers = [deliverers];
67
+ deliverers.forEach(deliverer => {
68
+ let tracker = new StandAloneTracker(deliverer, handlers, {
69
+ listener,
70
+ deliverer,
71
+ context: context || deliverer
72
+ });
73
+ this.trackers.push(tracker);
74
+ tracker.on();
75
+ });
76
+ }
77
+ off(target, handlers) {
78
+ var idxs = [];
79
+ for (let i = 0; i < this.trackers.length; i++) {
80
+ let tracker = this.trackers[i];
81
+ if (target === tracker.target && (!handlers || handlers === tracker.handlers)) idxs.push(i);
82
+ }
83
+ idxs.reverse().forEach(idx => this.trackers.splice(idx, 1)[0].off());
84
+ }
85
+ all() {
86
+ return this.trackers.map(tracker => {
87
+ return tracker;
88
+ });
89
+ }
90
+ dispose() {
91
+ this.trackers.forEach(tracker => tracker.dispose());
92
+ this.trackers = [];
93
+ this.selector = null;
94
+ }
95
+ }
96
+ exports.default = EventTracker;
97
+ //# sourceMappingURL=event-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-tracker.js","names":["StandAloneTracker","constructor","target","handlers","self","started","boundhandler","ev","handler","bind","dispose","off","on","EventTracker","StandAlone","trackers","selector","_selector","listener","context","deliverers","select","Array","forEach","deliverer","tracker","push","idxs","i","length","reverse","idx","splice","all","map","exports","default"],"sources":["../../src/event/event-tracker.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nclass StandAloneTracker {\n constructor(target, handlers, self) {\n this.started = false\n\n if (target) this.target = target\n\n this.handlers = handlers\n\n var self = self || this.target || this\n\n this.boundhandler = {}\n\n for (let ev in handlers) {\n let handler = handlers[ev]\n\n if (typeof handler == 'function') {\n this.boundhandler[ev] = handler.bind(self)\n }\n }\n }\n\n dispose() {\n this.off()\n }\n\n on() {\n if (this.started) return\n\n for (let ev in this.boundhandler) {\n let handler = this.boundhandler[ev]\n\n this.target.on(ev, handler)\n }\n\n this.started = true\n }\n\n off() {\n for (let ev in this.boundhandler) {\n let handler = this.boundhandler[ev]\n\n this.target.off(ev, handler)\n }\n\n this.started = false\n }\n}\n\nexport default class EventTracker {\n static get StandAlone() {\n return StandAloneTracker\n }\n\n constructor() {\n this.trackers = []\n }\n\n set selector(selector) {\n this._selector = selector\n }\n\n on(target, handlers, listener, context) {\n var deliverers = null\n\n switch (typeof target) {\n case 'object':\n deliverers = [target]\n break\n case 'string':\n deliverers = this._selector.select(target, listener)\n break\n default:\n deliverers = []\n }\n\n if (!(deliverers instanceof Array)) deliverers = [deliverers]\n\n deliverers.forEach(deliverer => {\n let tracker = new StandAloneTracker(deliverer, handlers, {\n listener,\n deliverer,\n context: context || deliverer\n })\n\n this.trackers.push(tracker)\n tracker.on()\n })\n }\n\n off(target, handlers) {\n var idxs = []\n\n for (let i = 0; i < this.trackers.length; i++) {\n let tracker = this.trackers[i]\n\n if (target === tracker.target && (!handlers || handlers === tracker.handlers)) idxs.push(i)\n }\n\n idxs.reverse().forEach(idx => this.trackers.splice(idx, 1)[0].off())\n }\n\n all() {\n return this.trackers.map(tracker => {\n return tracker\n })\n }\n\n dispose() {\n this.trackers.forEach(tracker => tracker.dispose())\n this.trackers = []\n this.selector = null\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "Engine", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _eventEngine.default;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "UAEventHandler", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _uaEventHandler.default;
16
+ }
17
+ });
18
+ var _eventEngine = _interopRequireDefault(require("./event-engine.js"));
19
+ var _uaEventHandler = _interopRequireDefault(require("./ua-event-handler.js"));
20
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_eventEngine","_interopRequireDefault","require","_uaEventHandler","e","__esModule","default"],"sources":["../../src/event/index.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport { default as Engine } from './event-engine.js'\nexport { default as UAEventHandler } from './ua-event-handler.js'\n"],"mappings":";;;;;;;;;;;;;;;;;AAIA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AAAiE,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}