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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (397) hide show
  1. package/package.json +1 -1
  2. package/things-scene-min.js +11 -11
  3. package/things-scene-min.js.map +1 -1
  4. package/things-scene.mjs +11 -11
  5. package/things-scene.mjs.map +1 -1
  6. package/.cursorignore +0 -62
  7. package/.prettierrc +0 -21
  8. package/assets/icon-audio.png +0 -0
  9. package/assets/icon-gif-viewer.png +0 -0
  10. package/assets/images/spinner.png +0 -0
  11. package/babel.config.js +0 -23
  12. package/db.sqlite +0 -0
  13. package/dist/animation/animate.js +0 -63
  14. package/dist/animation/animate.js.map +0 -1
  15. package/dist/animation/animations/animation.js +0 -122
  16. package/dist/animation/animations/animation.js.map +0 -1
  17. package/dist/animation/animations/fade.js +0 -28
  18. package/dist/animation/animations/fade.js.map +0 -1
  19. package/dist/animation/animations/heartbeat.js +0 -28
  20. package/dist/animation/animations/heartbeat.js.map +0 -1
  21. package/dist/animation/animations/moving.js +0 -24
  22. package/dist/animation/animations/moving.js.map +0 -1
  23. package/dist/animation/animations/outline.js +0 -47
  24. package/dist/animation/animations/outline.js.map +0 -1
  25. package/dist/animation/animations/rotation.js +0 -22
  26. package/dist/animation/animations/rotation.js.map +0 -1
  27. package/dist/animation/animations/vibration.js +0 -31
  28. package/dist/animation/animations/vibration.js.map +0 -1
  29. package/dist/animation/compile.js +0 -31
  30. package/dist/animation/compile.js.map +0 -1
  31. package/dist/animation/delta.js +0 -51
  32. package/dist/animation/delta.js.map +0 -1
  33. package/dist/animation/index.js +0 -14
  34. package/dist/animation/index.js.map +0 -1
  35. package/dist/command/command-change.js +0 -33
  36. package/dist/command/command-change.js.map +0 -1
  37. package/dist/command/command-migrate.js +0 -103
  38. package/dist/command/command-migrate.js.map +0 -1
  39. package/dist/command/command.js +0 -18
  40. package/dist/command/command.js.map +0 -1
  41. package/dist/command/snapshot-commander.js +0 -84
  42. package/dist/command/snapshot-commander.js.map +0 -1
  43. package/dist/components/anchor/anchor.js +0 -105
  44. package/dist/components/anchor/anchor.js.map +0 -1
  45. package/dist/components/anchor/ellipse-anchors.js +0 -53
  46. package/dist/components/anchor/ellipse-anchors.js.map +0 -1
  47. package/dist/components/anchor/rect-anchors.js +0 -53
  48. package/dist/components/anchor/rect-anchors.js.map +0 -1
  49. package/dist/components/audio.js +0 -154
  50. package/dist/components/audio.js.map +0 -1
  51. package/dist/components/cloud.js +0 -44
  52. package/dist/components/cloud.js.map +0 -1
  53. package/dist/components/component.js +0 -1086
  54. package/dist/components/component.js.map +0 -1
  55. package/dist/components/container-abstract.js +0 -387
  56. package/dist/components/container-abstract.js.map +0 -1
  57. package/dist/components/container.js +0 -331
  58. package/dist/components/container.js.map +0 -1
  59. package/dist/components/data/data-mapping.js +0 -82
  60. package/dist/components/data/data-mapping.js.map +0 -1
  61. package/dist/components/data/data.js +0 -166
  62. package/dist/components/data/data.js.map +0 -1
  63. package/dist/components/data/evaluator.js +0 -103
  64. package/dist/components/data/evaluator.js.map +0 -1
  65. package/dist/components/donut.js +0 -104
  66. package/dist/components/donut.js.map +0 -1
  67. package/dist/components/drawer/draw-image-pendable.js +0 -20
  68. package/dist/components/drawer/draw-image-pendable.js.map +0 -1
  69. package/dist/components/drawer/effect.js +0 -19
  70. package/dist/components/drawer/effect.js.map +0 -1
  71. package/dist/components/drawer/fill.js +0 -228
  72. package/dist/components/drawer/fill.js.map +0 -1
  73. package/dist/components/drawer/format.js +0 -115
  74. package/dist/components/drawer/format.js.map +0 -1
  75. package/dist/components/drawer/line.js +0 -191
  76. package/dist/components/drawer/line.js.map +0 -1
  77. package/dist/components/drawer/stroke.js +0 -62
  78. package/dist/components/drawer/stroke.js.map +0 -1
  79. package/dist/components/drawer/text-wrapper.js +0 -51
  80. package/dist/components/drawer/text-wrapper.js.map +0 -1
  81. package/dist/components/drawer/text.js +0 -269
  82. package/dist/components/drawer/text.js.map +0 -1
  83. package/dist/components/ellipse.js +0 -110
  84. package/dist/components/ellipse.js.map +0 -1
  85. package/dist/components/file/ondropfile.js +0 -19
  86. package/dist/components/file/ondropfile.js.map +0 -1
  87. package/dist/components/fit/fit.js +0 -137
  88. package/dist/components/fit/fit.js.map +0 -1
  89. package/dist/components/geometry/transcoord.js +0 -339
  90. package/dist/components/geometry/transcoord.js.map +0 -1
  91. package/dist/components/geometry/union.js +0 -35
  92. package/dist/components/geometry/union.js.map +0 -1
  93. package/dist/components/gif-view.js +0 -128
  94. package/dist/components/gif-view.js.map +0 -1
  95. package/dist/components/global-ref.js +0 -154
  96. package/dist/components/global-ref.js.map +0 -1
  97. package/dist/components/group.js +0 -171
  98. package/dist/components/group.js.map +0 -1
  99. package/dist/components/html/elements.js +0 -24
  100. package/dist/components/html/elements.js.map +0 -1
  101. package/dist/components/html/fill.js +0 -126
  102. package/dist/components/html/fill.js.map +0 -1
  103. package/dist/components/html/reposition.js +0 -119
  104. package/dist/components/html/reposition.js.map +0 -1
  105. package/dist/components/html/shadow.js +0 -24
  106. package/dist/components/html/shadow.js.map +0 -1
  107. package/dist/components/html-overlay-container.js +0 -27
  108. package/dist/components/html-overlay-container.js.map +0 -1
  109. package/dist/components/html-overlay-element.js +0 -22
  110. package/dist/components/html-overlay-element.js.map +0 -1
  111. package/dist/components/image-view.js +0 -193
  112. package/dist/components/image-view.js.map +0 -1
  113. package/dist/components/index.js +0 -231
  114. package/dist/components/index.js.map +0 -1
  115. package/dist/components/info-window.js +0 -416
  116. package/dist/components/info-window.js.map +0 -1
  117. package/dist/components/line.js +0 -374
  118. package/dist/components/line.js.map +0 -1
  119. package/dist/components/local-ref.js +0 -114
  120. package/dist/components/local-ref.js.map +0 -1
  121. package/dist/components/mixins/connectable.js +0 -128
  122. package/dist/components/mixins/connectable.js.map +0 -1
  123. package/dist/components/mixins/data-source.js +0 -34
  124. package/dist/components/mixins/data-source.js.map +0 -1
  125. package/dist/components/mixins/html-element.js +0 -107
  126. package/dist/components/mixins/html-element.js.map +0 -1
  127. package/dist/components/mixins/move-handle.js +0 -73
  128. package/dist/components/mixins/move-handle.js.map +0 -1
  129. package/dist/components/mixins/rect-path.js +0 -113
  130. package/dist/components/mixins/rect-path.js.map +0 -1
  131. package/dist/components/mixins/value-holder.js +0 -81
  132. package/dist/components/mixins/value-holder.js.map +0 -1
  133. package/dist/components/mutater/bounds.js +0 -68
  134. package/dist/components/mutater/bounds.js.map +0 -1
  135. package/dist/components/mutater/path.js +0 -73
  136. package/dist/components/mutater/path.js.map +0 -1
  137. package/dist/components/ortholine.js +0 -763
  138. package/dist/components/ortholine.js.map +0 -1
  139. package/dist/components/outline/ellipse-outline.js +0 -23
  140. package/dist/components/outline/ellipse-outline.js.map +0 -1
  141. package/dist/components/outline/path-outline.js +0 -48
  142. package/dist/components/outline/path-outline.js.map +0 -1
  143. package/dist/components/path.js +0 -49
  144. package/dist/components/path.js.map +0 -1
  145. package/dist/components/polygon.js +0 -91
  146. package/dist/components/polygon.js.map +0 -1
  147. package/dist/components/polyline.js +0 -114
  148. package/dist/components/polyline.js.map +0 -1
  149. package/dist/components/popup.js +0 -160
  150. package/dist/components/popup.js.map +0 -1
  151. package/dist/components/rect.js +0 -72
  152. package/dist/components/rect.js.map +0 -1
  153. package/dist/components/retention/retention-manager.js +0 -81
  154. package/dist/components/retention/retention-manager.js.map +0 -1
  155. package/dist/components/root-container.js +0 -519
  156. package/dist/components/root-container.js.map +0 -1
  157. package/dist/components/ruler.js +0 -103
  158. package/dist/components/ruler.js.map +0 -1
  159. package/dist/components/shape.js +0 -97
  160. package/dist/components/shape.js.map +0 -1
  161. package/dist/components/star.js +0 -103
  162. package/dist/components/star.js.map +0 -1
  163. package/dist/components/text/substitutor.js +0 -92
  164. package/dist/components/text/substitutor.js.map +0 -1
  165. package/dist/components/text.js +0 -21
  166. package/dist/components/text.js.map +0 -1
  167. package/dist/components/triangle.js +0 -92
  168. package/dist/components/triangle.js.map +0 -1
  169. package/dist/const.js +0 -71
  170. package/dist/const.js.map +0 -1
  171. package/dist/core/collection.js +0 -28
  172. package/dist/core/collection.js.map +0 -1
  173. package/dist/core/debug.js +0 -12
  174. package/dist/core/debug.js.map +0 -1
  175. package/dist/core/deep-equals.js +0 -112
  176. package/dist/core/deep-equals.js.map +0 -1
  177. package/dist/core/dom-to-image.js +0 -617
  178. package/dist/core/dom-to-image.js.map +0 -1
  179. package/dist/core/event.js +0 -205
  180. package/dist/core/event.js.map +0 -1
  181. package/dist/core/index.js +0 -21
  182. package/dist/core/index.js.map +0 -1
  183. package/dist/core/list.js +0 -87
  184. package/dist/core/list.js.map +0 -1
  185. package/dist/core/logger.js +0 -29
  186. package/dist/core/logger.js.map +0 -1
  187. package/dist/core/memoize.js +0 -40
  188. package/dist/core/memoize.js.map +0 -1
  189. package/dist/core/mixin.js +0 -26
  190. package/dist/core/mixin.js.map +0 -1
  191. package/dist/core/obj-accessor.js +0 -26
  192. package/dist/core/obj-accessor.js.map +0 -1
  193. package/dist/core/reference-map.js +0 -147
  194. package/dist/core/reference-map.js.map +0 -1
  195. package/dist/core/round-rect.js +0 -62
  196. package/dist/core/round-rect.js.map +0 -1
  197. package/dist/core/safe-round.js +0 -10
  198. package/dist/core/safe-round.js.map +0 -1
  199. package/dist/core/script-loader.js +0 -148
  200. package/dist/core/script-loader.js.map +0 -1
  201. package/dist/core/snapshot-taker.js +0 -59
  202. package/dist/core/snapshot-taker.js.map +0 -1
  203. package/dist/core/stack.js +0 -18
  204. package/dist/core/stack.js.map +0 -1
  205. package/dist/core/timecapsule.js +0 -88
  206. package/dist/core/timecapsule.js.map +0 -1
  207. package/dist/core/utils.js +0 -309
  208. package/dist/core/utils.js.map +0 -1
  209. package/dist/decorator/anchors-decorator.js +0 -53
  210. package/dist/decorator/anchors-decorator.js.map +0 -1
  211. package/dist/decorator/bouncing-arrow-decorator.js +0 -52
  212. package/dist/decorator/bouncing-arrow-decorator.js.map +0 -1
  213. package/dist/decorator/data-spread-decorator.js +0 -69
  214. package/dist/decorator/data-spread-decorator.js.map +0 -1
  215. package/dist/decorator/decotag-decorator.js +0 -33
  216. package/dist/decorator/decotag-decorator.js.map +0 -1
  217. package/dist/decorator/index.js +0 -31
  218. package/dist/decorator/index.js.map +0 -1
  219. package/dist/decorator/link-decorator.js +0 -66
  220. package/dist/decorator/link-decorator.js.map +0 -1
  221. package/dist/effect/gradation.js +0 -37
  222. package/dist/effect/gradation.js.map +0 -1
  223. package/dist/effect/index.js +0 -23
  224. package/dist/effect/index.js.map +0 -1
  225. package/dist/effect/shadow.js +0 -33
  226. package/dist/effect/shadow.js.map +0 -1
  227. package/dist/effect/turn.js +0 -25
  228. package/dist/effect/turn.js.map +0 -1
  229. package/dist/event/event-engine.js +0 -76
  230. package/dist/event/event-engine.js.map +0 -1
  231. package/dist/event/event-pump.js +0 -92
  232. package/dist/event/event-pump.js.map +0 -1
  233. package/dist/event/event-tracker.js +0 -97
  234. package/dist/event/event-tracker.js.map +0 -1
  235. package/dist/event/index.js +0 -21
  236. package/dist/event/index.js.map +0 -1
  237. package/dist/event/ua-event-handler.js +0 -453
  238. package/dist/event/ua-event-handler.js.map +0 -1
  239. package/dist/event-map/animator-handler.js +0 -225
  240. package/dist/event-map/animator-handler.js.map +0 -1
  241. package/dist/event-map/animators/animated-icon.js +0 -265
  242. package/dist/event-map/animators/animated-icon.js.map +0 -1
  243. package/dist/event-map/animators/border-highlighting.js +0 -476
  244. package/dist/event-map/animators/border-highlighting.js.map +0 -1
  245. package/dist/event-map/animators/bouncing-arrow.js +0 -226
  246. package/dist/event-map/animators/bouncing-arrow.js.map +0 -1
  247. package/dist/event-map/event-map.js +0 -36
  248. package/dist/event-map/event-map.js.map +0 -1
  249. package/dist/event-map/index.js +0 -20
  250. package/dist/event-map/index.js.map +0 -1
  251. package/dist/event-map/move-handler.js +0 -233
  252. package/dist/event-map/move-handler.js.map +0 -1
  253. package/dist/event-map/paste-handler.js +0 -176
  254. package/dist/event-map/paste-handler.js.map +0 -1
  255. package/dist/event-map/shift-handler.js +0 -55
  256. package/dist/event-map/shift-handler.js.map +0 -1
  257. package/dist/event-map/text-editor-lite.js +0 -276
  258. package/dist/event-map/text-editor-lite.js.map +0 -1
  259. package/dist/event-map/zoom-handler.js +0 -49
  260. package/dist/event-map/zoom-handler.js.map +0 -1
  261. package/dist/index.js +0 -20
  262. package/dist/index.js.map +0 -1
  263. package/dist/layer/action/emphasize.js +0 -42
  264. package/dist/layer/action/emphasize.js.map +0 -1
  265. package/dist/layer/action/popup.js +0 -461
  266. package/dist/layer/action/popup.js.map +0 -1
  267. package/dist/layer/action/pressed.js +0 -31
  268. package/dist/layer/action/pressed.js.map +0 -1
  269. package/dist/layer/add-layer.js +0 -180
  270. package/dist/layer/add-layer.js.map +0 -1
  271. package/dist/layer/decotag-layer.js +0 -121
  272. package/dist/layer/decotag-layer.js.map +0 -1
  273. package/dist/layer/guide-layer.js +0 -292
  274. package/dist/layer/guide-layer.js.map +0 -1
  275. package/dist/layer/index.js +0 -70
  276. package/dist/layer/index.js.map +0 -1
  277. package/dist/layer/layer.js +0 -230
  278. package/dist/layer/layer.js.map +0 -1
  279. package/dist/layer/minimap-layer.js +0 -84
  280. package/dist/layer/minimap-layer.js.map +0 -1
  281. package/dist/layer/model-layer.js +0 -465
  282. package/dist/layer/model-layer.js.map +0 -1
  283. package/dist/layer/modeler/anchor-handler.js +0 -193
  284. package/dist/layer/modeler/anchor-handler.js.map +0 -1
  285. package/dist/layer/modeler/control-handler.js +0 -95
  286. package/dist/layer/modeler/control-handler.js.map +0 -1
  287. package/dist/layer/modeler/focus-outline.js +0 -41
  288. package/dist/layer/modeler/focus-outline.js.map +0 -1
  289. package/dist/layer/modeler/group-outline.js +0 -30
  290. package/dist/layer/modeler/group-outline.js.map +0 -1
  291. package/dist/layer/modeler/index.js +0 -56
  292. package/dist/layer/modeler/index.js.map +0 -1
  293. package/dist/layer/modeler/path-handler.js +0 -300
  294. package/dist/layer/modeler/path-handler.js.map +0 -1
  295. package/dist/layer/modeler/resizer.js +0 -333
  296. package/dist/layer/modeler/resizer.js.map +0 -1
  297. package/dist/layer/modeler/rotator.js +0 -134
  298. package/dist/layer/modeler/rotator.js.map +0 -1
  299. package/dist/layer/modeling-layer.js +0 -491
  300. package/dist/layer/modeling-layer.js.map +0 -1
  301. package/dist/layer/reaction-layer.js +0 -111
  302. package/dist/layer/reaction-layer.js.map +0 -1
  303. package/dist/layer/scroll-layer.js +0 -191
  304. package/dist/layer/scroll-layer.js.map +0 -1
  305. package/dist/layer/selection/selected-finder.js +0 -96
  306. package/dist/layer/selection/selected-finder.js.map +0 -1
  307. package/dist/layer/selection-layer.js +0 -373
  308. package/dist/layer/selection-layer.js.map +0 -1
  309. package/dist/layer/shift-layer.js +0 -83
  310. package/dist/layer/shift-layer.js.map +0 -1
  311. package/dist/layout/absolute.js +0 -30
  312. package/dist/layout/absolute.js.map +0 -1
  313. package/dist/layout/card.js +0 -52
  314. package/dist/layout/card.js.map +0 -1
  315. package/dist/layout/html-absolute.js +0 -32
  316. package/dist/layout/html-absolute.js.map +0 -1
  317. package/dist/layout/index.js +0 -56
  318. package/dist/layout/index.js.map +0 -1
  319. package/dist/layout/layout.js +0 -36
  320. package/dist/layout/layout.js.map +0 -1
  321. package/dist/layout/linear-horizontal.js +0 -56
  322. package/dist/layout/linear-horizontal.js.map +0 -1
  323. package/dist/layout/linear-vertical.js +0 -56
  324. package/dist/layout/linear-vertical.js.map +0 -1
  325. package/dist/layout/table.js +0 -106
  326. package/dist/layout/table.js.map +0 -1
  327. package/dist/license/license.js +0 -170
  328. package/dist/license/license.js.map +0 -1
  329. package/dist/model/compile.js +0 -40
  330. package/dist/model/compile.js.map +0 -1
  331. package/dist/model/duplicate.js +0 -19
  332. package/dist/model/duplicate.js.map +0 -1
  333. package/dist/model/index.js +0 -34
  334. package/dist/model/index.js.map +0 -1
  335. package/dist/model/selector.js +0 -104
  336. package/dist/model/selector.js.map +0 -1
  337. package/dist/style/compile.js +0 -14
  338. package/dist/style/compile.js.map +0 -1
  339. package/dist/style/index.js +0 -14
  340. package/dist/style/index.js.map +0 -1
  341. package/dist/things-scene/api/add-start.js +0 -18
  342. package/dist/things-scene/api/add-start.js.map +0 -1
  343. package/dist/things-scene/api/add.js +0 -71
  344. package/dist/things-scene/api/add.js.map +0 -1
  345. package/dist/things-scene/api/align.js +0 -116
  346. package/dist/things-scene/api/align.js.map +0 -1
  347. package/dist/things-scene/api/center-to.js +0 -50
  348. package/dist/things-scene/api/center-to.js.map +0 -1
  349. package/dist/things-scene/api/change.js +0 -27
  350. package/dist/things-scene/api/change.js.map +0 -1
  351. package/dist/things-scene/api/clipboard.js +0 -45
  352. package/dist/things-scene/api/clipboard.js.map +0 -1
  353. package/dist/things-scene/api/distribute.js +0 -57
  354. package/dist/things-scene/api/distribute.js.map +0 -1
  355. package/dist/things-scene/api/duplicate.js +0 -47
  356. package/dist/things-scene/api/duplicate.js.map +0 -1
  357. package/dist/things-scene/api/fullscreen.js +0 -26
  358. package/dist/things-scene/api/fullscreen.js.map +0 -1
  359. package/dist/things-scene/api/group.js +0 -91
  360. package/dist/things-scene/api/group.js.map +0 -1
  361. package/dist/things-scene/api/ids.js +0 -28
  362. package/dist/things-scene/api/ids.js.map +0 -1
  363. package/dist/things-scene/api/index.js +0 -192
  364. package/dist/things-scene/api/index.js.map +0 -1
  365. package/dist/things-scene/api/listener.js +0 -69
  366. package/dist/things-scene/api/listener.js.map +0 -1
  367. package/dist/things-scene/api/paste-start.js +0 -27
  368. package/dist/things-scene/api/paste-start.js.map +0 -1
  369. package/dist/things-scene/api/place.js +0 -98
  370. package/dist/things-scene/api/place.js.map +0 -1
  371. package/dist/things-scene/api/remove.js +0 -57
  372. package/dist/things-scene/api/remove.js.map +0 -1
  373. package/dist/things-scene/api/symmetry.js +0 -47
  374. package/dist/things-scene/api/symmetry.js.map +0 -1
  375. package/dist/things-scene/api/to-data-url.js +0 -76
  376. package/dist/things-scene/api/to-data-url.js.map +0 -1
  377. package/dist/things-scene/api/zorder.js +0 -68
  378. package/dist/things-scene/api/zorder.js.map +0 -1
  379. package/dist/things-scene/application-context.js +0 -168
  380. package/dist/things-scene/application-context.js.map +0 -1
  381. package/dist/things-scene/config.js +0 -18
  382. package/dist/things-scene/config.js.map +0 -1
  383. package/dist/things-scene/create.js +0 -67
  384. package/dist/things-scene/create.js.map +0 -1
  385. package/dist/things-scene/fps.js +0 -26
  386. package/dist/things-scene/fps.js.map +0 -1
  387. package/dist/things-scene/index.js +0 -152
  388. package/dist/things-scene/index.js.map +0 -1
  389. package/dist/things-scene/polyfill.js +0 -111
  390. package/dist/things-scene/polyfill.js.map +0 -1
  391. package/dist/things-scene/scene.js +0 -442
  392. package/dist/things-scene/scene.js.map +0 -1
  393. package/dist/things-scene/version.js +0 -12
  394. package/dist/things-scene/version.js.map +0 -1
  395. package/rollup.config.js +0 -67
  396. package/schema.graphql +0 -4606
  397. package/tsconfig.json +0 -31
@@ -1 +0,0 @@
1
- {"version":3,"file":"obj-accessor.js","names":["_jsonataEs","_interopRequireDefault","require","e","__esModule","default","SELF","o","buildAccessor","accessor","expression","jsonata","evaluate","err","console","error"],"sources":["../../src/core/obj-accessor.js"],"sourcesContent":["import jsonata from 'jsonata/jsonata-es5.js'\n\nconst SELF = function (o) {\n return o\n}\n\nexport default function buildAccessor(accessor) {\n if (!accessor) {\n return SELF\n }\n\n try {\n var expression = jsonata(accessor)\n\n return function (o) {\n return expression.evaluate(o)\n }\n } catch (err) {\n console.error(err)\n return SELF\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA4C,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE5C,MAAMG,IAAI,GAAG,SAAAA,CAAUC,CAAC,EAAE;EACxB,OAAOA,CAAC;AACV,CAAC;AAEc,SAASC,aAAaA,CAACC,QAAQ,EAAE;EAC9C,IAAI,CAACA,QAAQ,EAAE;IACb,OAAOH,IAAI;EACb;EAEA,IAAI;IACF,IAAII,UAAU,GAAG,IAAAC,kBAAO,EAACF,QAAQ,CAAC;IAElC,OAAO,UAAUF,CAAC,EAAE;MAClB,OAAOG,UAAU,CAACE,QAAQ,CAACL,CAAC,CAAC;IAC/B,CAAC;EACH,CAAC,CAAC,OAAOM,GAAG,EAAE;IACZC,OAAO,CAACC,KAAK,CAACF,GAAG,CAAC;IAClB,OAAOP,IAAI;EACb;AACF","ignoreList":[]}
@@ -1,147 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _logger = require("./logger.js");
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
-
12
- var reference_count = 0;
13
- const finalizationRegistry = new FinalizationRegistry(() => {
14
- reference_count--;
15
- });
16
- class ReferenceMap {
17
- static get residents() {
18
- return reference_count;
19
- }
20
- static get residentsCount() {
21
- return reference_count;
22
- }
23
- constructor(creator, disposer) {
24
- this.counters = {};
25
- this.references = {};
26
- this.creator = creator;
27
- this.disposer = disposer;
28
- reference_count++;
29
- finalizationRegistry.register(this, reference_count);
30
- }
31
- dispose() {
32
- if (this.disposer) {
33
- for (let id in this.references) this.disposer.call(null, id, this.references[id]);
34
- }
35
- delete this.references;
36
- delete this.counters;
37
- }
38
- get ids() {
39
- return Object.keys(this.references);
40
- }
41
-
42
- /* 제공된 생성자를 이용해서 Scene 생성하기만 한다. */
43
- create(id) {
44
- var self = this;
45
- return new Promise(function (resolve, reject) {
46
- function _resolve(target) {
47
- target.release = function () {
48
- this.disposer && this.disposer.call(null, id, target);
49
- delete target.release;
50
- (0, _logger.debug)('RELEASED', id);
51
- };
52
- resolve(target);
53
- }
54
- if (!self.creator) {
55
- reject(Error('Reference id(' + id + ') could not be created. Reference creator should be defined.'));
56
- return;
57
- }
58
- self.creator.call(null, id, function (target) {
59
- _resolve(target);
60
- }, function (error) {
61
- reject(error);
62
- });
63
- });
64
- }
65
- add(id, target) {
66
- var self = this;
67
- var promise = new Promise(function (resolve, reject) {
68
- var ref = self.references[id];
69
- if (ref) {
70
- if (ref === target) reject(Error('Reference ID and target duplicate'));else if (target) reject(Error('Reference ID duplicate'));else resolve(ref);
71
- } else {
72
- function _resolve(target) {
73
- target.release = function () {
74
- self.release(this);
75
- };
76
- self.references[id] = target;
77
- self.counters[id] = 1;
78
- resolve(target);
79
- }
80
- if (target) {
81
- _resolve(target);
82
- } else {
83
- if (!self.creator) {
84
- reject(Error('Reference id(' + id + ') is not allowed. Reference creator should be defined.'));
85
- return;
86
- }
87
- self.creator.call(null, id, function (target) {
88
- _resolve(target);
89
- }, function (error) {
90
- reject(error);
91
- });
92
- }
93
- }
94
- });
95
- if (!this.references[id]) {
96
- this.references[id] = promise;
97
- }
98
- return promise;
99
- }
100
- async get(id, createIf) {
101
- var ref = this.references[id];
102
- if (ref) {
103
- if (!(ref instanceof Promise)) {
104
- if (!(id in this.counters)) {
105
- throw new Error('No Reference Count');
106
- }
107
- this.counters[id]++;
108
- return ref;
109
- }
110
- if (createIf) {
111
- /* createIf 인 경우에만, ref가 아직 Promise이면, 기다린다. */
112
- ref = await ref;
113
- this.counters[id]++;
114
- return ref;
115
- }
116
- }
117
- if (createIf) {
118
- return await this.add(id);
119
- }
120
- throw new Error('No References for ' + id);
121
- }
122
- _id(target) {
123
- for (let id in this.references) {
124
- let ref = this.references[id];
125
- if (ref === target) return id;
126
- }
127
- return -1;
128
- }
129
- release(target) {
130
- var id = this._id(target);
131
- var ref = this.references[id];
132
- if (!ref) {
133
- (0, _logger.error)('No Referenced ID');
134
- return;
135
- }
136
- this.counters[id]--;
137
- if (this.counters[id] == 0) {
138
- this.disposer && this.disposer.call(null, id, ref);
139
- delete this.references[id];
140
- delete this.counters[id];
141
- delete target.release;
142
- (0, _logger.debug)('RELEASED', id);
143
- }
144
- }
145
- }
146
- exports.default = ReferenceMap;
147
- //# sourceMappingURL=reference-map.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"reference-map.js","names":["_logger","require","reference_count","finalizationRegistry","FinalizationRegistry","ReferenceMap","residents","residentsCount","constructor","creator","disposer","counters","references","register","dispose","id","call","ids","Object","keys","create","self","Promise","resolve","reject","_resolve","target","release","debug","Error","error","add","promise","ref","get","createIf","_id","exports","default"],"sources":["../../src/core/reference-map.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { debug, error } from './logger.js'\n\nvar reference_count = 0\nconst finalizationRegistry = new FinalizationRegistry(() => {\n reference_count--\n})\n\nexport default class ReferenceMap {\n static get residents() {\n return reference_count\n }\n\n static get residentsCount() {\n return reference_count\n }\n\n constructor(creator, disposer) {\n this.counters = {}\n this.references = {}\n this.creator = creator\n this.disposer = disposer\n\n reference_count++\n finalizationRegistry.register(this, reference_count)\n }\n\n dispose() {\n if (this.disposer) {\n for (let id in this.references) this.disposer.call(null, id, this.references[id])\n }\n\n delete this.references\n delete this.counters\n }\n\n get ids() {\n return Object.keys(this.references)\n }\n\n /* 제공된 생성자를 이용해서 Scene 생성하기만 한다. */\n create(id) {\n var self = this\n\n return new Promise(function (resolve, reject) {\n function _resolve(target) {\n target.release = function () {\n this.disposer && this.disposer.call(null, id, target)\n delete target.release\n debug('RELEASED', id)\n }\n\n resolve(target)\n }\n\n if (!self.creator) {\n reject(Error('Reference id(' + id + ') could not be created. Reference creator should be defined.'))\n return\n }\n\n self.creator.call(\n null,\n id,\n function (target) {\n _resolve(target)\n },\n function (error) {\n reject(error)\n }\n )\n })\n }\n\n add(id, target) {\n var self = this\n\n var promise = new Promise(function (resolve, reject) {\n var ref = self.references[id]\n\n if (ref) {\n if (ref === target) reject(Error('Reference ID and target duplicate'))\n else if (target) reject(Error('Reference ID duplicate'))\n else resolve(ref)\n } else {\n function _resolve(target) {\n target.release = function () {\n self.release(this)\n }\n\n self.references[id] = target\n self.counters[id] = 1\n\n resolve(target)\n }\n\n if (target) {\n _resolve(target)\n } else {\n if (!self.creator) {\n reject(Error('Reference id(' + id + ') is not allowed. Reference creator should be defined.'))\n return\n }\n\n self.creator.call(\n null,\n id,\n function (target) {\n _resolve(target)\n },\n function (error) {\n reject(error)\n }\n )\n }\n }\n })\n\n if (!this.references[id]) {\n this.references[id] = promise\n }\n\n return promise\n }\n\n async get(id, createIf) {\n var ref = this.references[id]\n\n if (ref) {\n if (!(ref instanceof Promise)) {\n if (!(id in this.counters)) {\n throw new Error('No Reference Count')\n }\n\n this.counters[id]++\n return ref\n }\n\n if (createIf) {\n /* createIf 인 경우에만, ref가 아직 Promise이면, 기다린다. */\n ref = await ref\n this.counters[id]++\n return ref\n }\n }\n\n if (createIf) {\n return await this.add(id)\n }\n\n throw new Error('No References for ' + id)\n }\n\n _id(target) {\n for (let id in this.references) {\n let ref = this.references[id]\n if (ref === target) return id\n }\n\n return -1\n }\n\n release(target) {\n var id = this._id(target)\n var ref = this.references[id]\n\n if (!ref) {\n error('No Referenced ID')\n return\n }\n\n this.counters[id]--\n\n if (this.counters[id] == 0) {\n this.disposer && this.disposer.call(null, id, ref)\n delete this.references[id]\n delete this.counters[id]\n delete target.release\n debug('RELEASED', id)\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,62 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.roundRect = roundRect;
7
- /**
8
- * Draws a rounded rectangle using the current state of the canvas.
9
- * If you omit the last three params, it will draw a rectangle
10
- * outline with a 5 pixel border radius
11
- * @param {CanvasRenderingContext2D} context
12
- * @param {Number} x The top left x coordinate
13
- * @param {Number} y The top left y coordinate
14
- * @param {Number} width The width of the rectangle
15
- * @param {Number} height The height of the rectangle
16
- * @param {Number|Array<Number>} [radius = 0] The corner radius; It can also be an object
17
- * to specify different radii for corners
18
- * @param {Number} [radius.tl = 0] Top left
19
- * @param {Number} [radius.tr = 0] Top right
20
- * @param {Number} [radius.br = 0] Bottom right
21
- * @param {Number} [radius.bl = 0] Bottom left
22
- * @param {Boolean} [fill = false] Whether to fill the rectangle.
23
- * @param {Boolean} [stroke = true] Whether to stroke the rectangle.
24
- */
25
- function roundRect(context, x, y, width, height, radius = 0, fill = false, stroke = true) {
26
- if (typeof radius === 'number') {
27
- radius = {
28
- tl: radius,
29
- tr: radius,
30
- br: radius,
31
- bl: radius
32
- };
33
- } else {
34
- radius = {
35
- ...{
36
- tl: 0,
37
- tr: 0,
38
- br: 0,
39
- bl: 0
40
- },
41
- ...radius
42
- };
43
- }
44
- context.beginPath();
45
- context.moveTo(x + radius.tl, y);
46
- context.lineTo(x + width - radius.tr, y);
47
- context.quadraticCurveTo(x + width, y, x + width, y + radius.tr);
48
- context.lineTo(x + width, y + height - radius.br);
49
- context.quadraticCurveTo(x + width, y + height, x + width - radius.br, y + height);
50
- context.lineTo(x + radius.bl, y + height);
51
- context.quadraticCurveTo(x, y + height, x, y + height - radius.bl);
52
- context.lineTo(x, y + radius.tl);
53
- context.quadraticCurveTo(x, y, x + radius.tl, y);
54
- context.closePath();
55
- if (fill) {
56
- context.fill();
57
- }
58
- if (stroke) {
59
- context.stroke();
60
- }
61
- }
62
- //# sourceMappingURL=round-rect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"round-rect.js","names":["roundRect","context","x","y","width","height","radius","fill","stroke","tl","tr","br","bl","beginPath","moveTo","lineTo","quadraticCurveTo","closePath"],"sources":["../../src/core/round-rect.js"],"sourcesContent":["/**\n * Draws a rounded rectangle using the current state of the canvas.\n * If you omit the last three params, it will draw a rectangle\n * outline with a 5 pixel border radius\n * @param {CanvasRenderingContext2D} context\n * @param {Number} x The top left x coordinate\n * @param {Number} y The top left y coordinate\n * @param {Number} width The width of the rectangle\n * @param {Number} height The height of the rectangle\n * @param {Number|Array<Number>} [radius = 0] The corner radius; It can also be an object\n * to specify different radii for corners\n * @param {Number} [radius.tl = 0] Top left\n * @param {Number} [radius.tr = 0] Top right\n * @param {Number} [radius.br = 0] Bottom right\n * @param {Number} [radius.bl = 0] Bottom left\n * @param {Boolean} [fill = false] Whether to fill the rectangle.\n * @param {Boolean} [stroke = true] Whether to stroke the rectangle.\n */\nexport function roundRect(context, x, y, width, height, radius = 0, fill = false, stroke = true) {\n if (typeof radius === 'number') {\n radius = { tl: radius, tr: radius, br: radius, bl: radius }\n } else {\n radius = { ...{ tl: 0, tr: 0, br: 0, bl: 0 }, ...radius }\n }\n\n context.beginPath()\n context.moveTo(x + radius.tl, y)\n context.lineTo(x + width - radius.tr, y)\n context.quadraticCurveTo(x + width, y, x + width, y + radius.tr)\n context.lineTo(x + width, y + height - radius.br)\n context.quadraticCurveTo(x + width, y + height, x + width - radius.br, y + height)\n context.lineTo(x + radius.bl, y + height)\n context.quadraticCurveTo(x, y + height, x, y + height - radius.bl)\n context.lineTo(x, y + radius.tl)\n context.quadraticCurveTo(x, y, x + radius.tl, y)\n context.closePath()\n\n if (fill) {\n context.fill()\n }\n\n if (stroke) {\n context.stroke()\n }\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,SAASA,CAACC,OAAO,EAAEC,CAAC,EAAEC,CAAC,EAAEC,KAAK,EAAEC,MAAM,EAAEC,MAAM,GAAG,CAAC,EAAEC,IAAI,GAAG,KAAK,EAAEC,MAAM,GAAG,IAAI,EAAE;EAC/F,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE;IAC9BA,MAAM,GAAG;MAAEG,EAAE,EAAEH,MAAM;MAAEI,EAAE,EAAEJ,MAAM;MAAEK,EAAE,EAAEL,MAAM;MAAEM,EAAE,EAAEN;IAAO,CAAC;EAC7D,CAAC,MAAM;IACLA,MAAM,GAAG;MAAE,GAAG;QAAEG,EAAE,EAAE,CAAC;QAAEC,EAAE,EAAE,CAAC;QAAEC,EAAE,EAAE,CAAC;QAAEC,EAAE,EAAE;MAAE,CAAC;MAAE,GAAGN;IAAO,CAAC;EAC3D;EAEAL,OAAO,CAACY,SAAS,CAAC,CAAC;EACnBZ,OAAO,CAACa,MAAM,CAACZ,CAAC,GAAGI,MAAM,CAACG,EAAE,EAAEN,CAAC,CAAC;EAChCF,OAAO,CAACc,MAAM,CAACb,CAAC,GAAGE,KAAK,GAAGE,MAAM,CAACI,EAAE,EAAEP,CAAC,CAAC;EACxCF,OAAO,CAACe,gBAAgB,CAACd,CAAC,GAAGE,KAAK,EAAED,CAAC,EAAED,CAAC,GAAGE,KAAK,EAAED,CAAC,GAAGG,MAAM,CAACI,EAAE,CAAC;EAChET,OAAO,CAACc,MAAM,CAACb,CAAC,GAAGE,KAAK,EAAED,CAAC,GAAGE,MAAM,GAAGC,MAAM,CAACK,EAAE,CAAC;EACjDV,OAAO,CAACe,gBAAgB,CAACd,CAAC,GAAGE,KAAK,EAAED,CAAC,GAAGE,MAAM,EAAEH,CAAC,GAAGE,KAAK,GAAGE,MAAM,CAACK,EAAE,EAAER,CAAC,GAAGE,MAAM,CAAC;EAClFJ,OAAO,CAACc,MAAM,CAACb,CAAC,GAAGI,MAAM,CAACM,EAAE,EAAET,CAAC,GAAGE,MAAM,CAAC;EACzCJ,OAAO,CAACe,gBAAgB,CAACd,CAAC,EAAEC,CAAC,GAAGE,MAAM,EAAEH,CAAC,EAAEC,CAAC,GAAGE,MAAM,GAAGC,MAAM,CAACM,EAAE,CAAC;EAClEX,OAAO,CAACc,MAAM,CAACb,CAAC,EAAEC,CAAC,GAAGG,MAAM,CAACG,EAAE,CAAC;EAChCR,OAAO,CAACe,gBAAgB,CAACd,CAAC,EAAEC,CAAC,EAAED,CAAC,GAAGI,MAAM,CAACG,EAAE,EAAEN,CAAC,CAAC;EAChDF,OAAO,CAACgB,SAAS,CAAC,CAAC;EAEnB,IAAIV,IAAI,EAAE;IACRN,OAAO,CAACM,IAAI,CAAC,CAAC;EAChB;EAEA,IAAIC,MAAM,EAAE;IACVP,OAAO,CAACO,MAAM,CAAC,CAAC;EAClB;AACF","ignoreList":[]}
@@ -1,10 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.safeRound = safeRound;
7
- function safeRound(round, width, height) {
8
- return Math.max(0, Math.min(round, Math.min(height, width) / 2));
9
- }
10
- //# sourceMappingURL=safe-round.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"safe-round.js","names":["safeRound","round","width","height","Math","max","min"],"sources":["../../src/core/safe-round.js"],"sourcesContent":["export function safeRound(round, width, height) {\n return Math.max(0, Math.min(round, Math.min(height, width) / 2))\n}\n"],"mappings":";;;;;;AAAO,SAASA,SAASA,CAACC,KAAK,EAAEC,KAAK,EAAEC,MAAM,EAAE;EAC9C,OAAOC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACL,KAAK,EAAEG,IAAI,CAACE,GAAG,CAACH,MAAM,EAAED,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAClE","ignoreList":[]}
@@ -1,148 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- /*
8
- * 1. SCRIPTS, STYLES 에는 각 소스별 상태를 관리한다.
9
- * SCRIPTS, STYLES : {
10
- * 'http://echarts.baidu.com/dist/echarts.min.js': true | false (true means loaded, false means not loaded yet)
11
- * }
12
- *
13
- * 2. PROMISES : 각 소스군별 pending resolver, reject 을 관리한다.
14
- * PROMISES: [{
15
- * resolve,
16
- * reject,
17
- * srcs: ['src1', 'src2']
18
- * }]
19
- *
20
- * [특징]
21
- * 1. CORS 제약에서 자유롭다.
22
- * 2. 같은 스크립트를 반복해서 로드하지 않는다.
23
- * 3. 로드에 실패한 스크립트도 다시 반복해서 로드를 시도할 수 있다.
24
- */
25
-
26
- // SystemJS를 활용하는 경우에는 다음과 같이 import 할 수 있다.
27
- //
28
- // import System from 'systemjs/dist/system-production'
29
-
30
- var SCRIPTS = {};
31
- var STYLES = {};
32
- var PROMISES = [];
33
- function onload(e) {
34
- var types = e.target.tagName == 'SCRIPT' ? SCRIPTS : STYLES;
35
- var src = e.target.src || e.target.href;
36
- types[src] = true;
37
- PROMISES.forEach((ready, index) => {
38
- let {
39
- resolve,
40
- scripts,
41
- styles
42
- } = ready;
43
- if (types == SCRIPTS) {
44
- let idx = scripts.indexOf(src);
45
- if (idx > -1 && idx < scripts.length - 1) request_script(scripts[idx + 1]);
46
- }
47
- for (let i = 0; i < scripts.length; i++) if (!SCRIPTS[scripts[i]]) return;
48
- if (styles) {
49
- for (let i = 0; i < styles.length; i++) if (!STYLES[styles[i]]) return;
50
- }
51
- resolve();
52
- PROMISES[index] = null;
53
- });
54
- PROMISES = PROMISES.filter(Boolean);
55
- }
56
- function onerror(e) {
57
- var src = e.target.src;
58
- var types = e.target.tagName == 'SCRIPT' ? SCRIPTS : STYLES;
59
- PROMISES.forEach((ready, index) => {
60
- let {
61
- reject,
62
- scripts,
63
- styles
64
- } = ready;
65
- let done = false;
66
- if (types === SCRIPTS) {
67
- for (let i = 0; i < scripts.length; i++) {
68
- if (scripts[i] == src) {
69
- done = true;
70
- break;
71
- }
72
- }
73
- } else if (styles) {
74
- for (let i = 0; i < styles.length; i++) {
75
- if (styles[i] == src) {
76
- done = true;
77
- break;
78
- }
79
- }
80
- }
81
- if (done) {
82
- reject(e);
83
- PROMISES[index] = null;
84
- }
85
- });
86
- PROMISES = PROMISES.filter(Boolean);
87
- delete types[src];
88
- document.head.removeChild(e.target);
89
- }
90
- function request_script(src) {
91
- SCRIPTS[src] = false;
92
- var script = document.createElement('script');
93
- script.onload = onload;
94
- script.onerror = onerror;
95
- script.type = 'text/javascript';
96
- script.src = src;
97
- document.head.appendChild(script);
98
- }
99
- function request_style(src) {
100
- STYLES[src] = false;
101
- var link = document.createElement('link');
102
- link.onload = onload;
103
- link.onerror = onerror;
104
- link.type = 'text/css';
105
- link.rel = 'stylesheet';
106
- link.media = 'screen,print';
107
- link.href = src;
108
- document.head.appendChild(link);
109
- }
110
- class ScriptLoader {
111
- static load(scripts, styles) {
112
- if (typeof scripts == 'string') scripts = [scripts];
113
- if (typeof styles == 'string') styles = [styles];
114
- return new Promise(function (resolve, reject) {
115
- if (scripts && !(scripts instanceof Array) || styles && !(styles instanceof Array)) {
116
- reject('invalid sources for load');
117
- return;
118
- }
119
-
120
- /* check state of each src */
121
- var done = true;
122
-
123
- // style first
124
- styles && styles.forEach(src => {
125
- if (!STYLES.hasOwnProperty(src)) request_style(src);
126
- if (!STYLES[src]) done = false;
127
- });
128
- var first;
129
- if (scripts && scripts.length > 0) {
130
- scripts.forEach(src => {
131
- if (!SCRIPTS.hasOwnProperty(src)) first = first || src;else if (!SCRIPTS[src]) done = false;
132
- });
133
- }
134
- if (first) request_script(first);else if (done) {
135
- resolve();
136
- return;
137
- }
138
- PROMISES.push({
139
- resolve,
140
- reject,
141
- scripts,
142
- styles
143
- });
144
- });
145
- }
146
- }
147
- exports.default = ScriptLoader;
148
- //# sourceMappingURL=script-loader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"script-loader.js","names":["SCRIPTS","STYLES","PROMISES","onload","e","types","target","tagName","src","href","forEach","ready","index","resolve","scripts","styles","idx","indexOf","length","request_script","i","filter","Boolean","onerror","reject","done","document","head","removeChild","script","createElement","type","appendChild","request_style","link","rel","media","ScriptLoader","load","Promise","Array","hasOwnProperty","first","push","exports","default"],"sources":["../../src/core/script-loader.js"],"sourcesContent":["/*\n * 1. SCRIPTS, STYLES 에는 각 소스별 상태를 관리한다.\n * SCRIPTS, STYLES : {\n * 'http://echarts.baidu.com/dist/echarts.min.js': true | false (true means loaded, false means not loaded yet)\n * }\n *\n * 2. PROMISES : 각 소스군별 pending resolver, reject 을 관리한다.\n * PROMISES: [{\n * resolve,\n * reject,\n * srcs: ['src1', 'src2']\n * }]\n *\n * [특징]\n * 1. CORS 제약에서 자유롭다.\n * 2. 같은 스크립트를 반복해서 로드하지 않는다.\n * 3. 로드에 실패한 스크립트도 다시 반복해서 로드를 시도할 수 있다.\n */\n\n// SystemJS를 활용하는 경우에는 다음과 같이 import 할 수 있다.\n//\n// import System from 'systemjs/dist/system-production'\n\nvar SCRIPTS = {}\nvar STYLES = {}\n\nvar PROMISES = []\n\nfunction onload(e) {\n var types = e.target.tagName == 'SCRIPT' ? SCRIPTS : STYLES\n var src = e.target.src || e.target.href\n\n types[src] = true\n\n PROMISES.forEach((ready, index) => {\n let { resolve, scripts, styles } = ready\n\n if (types == SCRIPTS) {\n let idx = scripts.indexOf(src)\n if (idx > -1 && idx < scripts.length - 1) request_script(scripts[idx + 1])\n }\n\n for (let i = 0; i < scripts.length; i++) if (!SCRIPTS[scripts[i]]) return\n\n if (styles) {\n for (let i = 0; i < styles.length; i++) if (!STYLES[styles[i]]) return\n }\n\n resolve()\n\n PROMISES[index] = null\n })\n\n PROMISES = PROMISES.filter(Boolean)\n}\n\nfunction onerror(e) {\n var src = e.target.src\n var types = e.target.tagName == 'SCRIPT' ? SCRIPTS : STYLES\n\n PROMISES.forEach((ready, index) => {\n let { reject, scripts, styles } = ready\n\n let done = false\n\n if (types === SCRIPTS) {\n for (let i = 0; i < scripts.length; i++) {\n if (scripts[i] == src) {\n done = true\n break\n }\n }\n } else if (styles) {\n for (let i = 0; i < styles.length; i++) {\n if (styles[i] == src) {\n done = true\n break\n }\n }\n }\n\n if (done) {\n reject(e)\n\n PROMISES[index] = null\n }\n })\n\n PROMISES = PROMISES.filter(Boolean)\n\n delete types[src]\n document.head.removeChild(e.target)\n}\n\nfunction request_script(src) {\n SCRIPTS[src] = false\n\n var script = document.createElement('script')\n script.onload = onload\n script.onerror = onerror\n\n script.type = 'text/javascript'\n script.src = src\n document.head.appendChild(script)\n}\n\nfunction request_style(src) {\n STYLES[src] = false\n\n var link = document.createElement('link')\n link.onload = onload\n link.onerror = onerror\n\n link.type = 'text/css'\n link.rel = 'stylesheet'\n link.media = 'screen,print'\n link.href = src\n\n document.head.appendChild(link)\n}\n\nexport default class ScriptLoader {\n static load(scripts, styles) {\n if (typeof scripts == 'string') scripts = [scripts]\n if (typeof styles == 'string') styles = [styles]\n\n return new Promise(function (resolve, reject) {\n if ((scripts && !(scripts instanceof Array)) || (styles && !(styles instanceof Array))) {\n reject('invalid sources for load')\n return\n }\n\n /* check state of each src */\n var done = true\n\n // style first\n styles &&\n styles.forEach(src => {\n if (!STYLES.hasOwnProperty(src)) request_style(src)\n\n if (!STYLES[src]) done = false\n })\n\n var first\n if (scripts && scripts.length > 0) {\n scripts.forEach(src => {\n if (!SCRIPTS.hasOwnProperty(src)) first = first || src\n else if (!SCRIPTS[src]) done = false\n })\n }\n\n if (first) request_script(first)\n else if (done) {\n resolve()\n return\n }\n\n PROMISES.push({ resolve, reject, scripts, styles })\n })\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,59 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _utils = require("./utils.js");
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
-
12
- var debouncer = (0, _utils.debounce)(taker => {
13
- if (!taker.brake) {
14
- taker.take();
15
- }
16
- }, 1000, {
17
- leading: true,
18
- trailing: false
19
- });
20
- function take_snapshot(taker) {
21
- if (taker.brake || !taker.dirty) return;
22
- debouncer(taker);
23
- }
24
- class SnapshotTaker {
25
- constructor(state_holder, timecapsule) {
26
- this.brake = false;
27
- this.dirty = false;
28
- this.state_holder = state_holder;
29
- this.timecapsule = timecapsule;
30
- this.timecapsule.snapshot_taker = this;
31
- }
32
- dispose() {
33
- delete this.state_holder;
34
- delete this.timecapsule;
35
- }
36
- touch() {
37
- this.dirty = true;
38
- take_snapshot(this);
39
- }
40
-
41
- /* 모든 조건에 관계없이 현재 상태를 snapshot으로 취한다. */
42
- take(force) {
43
- if (this.dirty || force) {
44
- this.timecapsule.snapshot(this.state_holder.state);
45
- this.dirty = false;
46
- }
47
- }
48
- get brake() {
49
- return this._brake;
50
- }
51
-
52
- /* 마우스를 드래깅하는 동안, 보통 brake 를 ON 시킨다. */
53
- set brake(brake) {
54
- this._brake = !!brake;
55
- take_snapshot(this);
56
- }
57
- }
58
- exports.default = SnapshotTaker;
59
- //# sourceMappingURL=snapshot-taker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"snapshot-taker.js","names":["_utils","require","debouncer","debounce","taker","brake","take","leading","trailing","take_snapshot","dirty","SnapshotTaker","constructor","state_holder","timecapsule","snapshot_taker","dispose","touch","force","snapshot","state","_brake","exports","default"],"sources":["../../src/core/snapshot-taker.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { debounce } from './utils.js'\n\nvar debouncer = debounce(\n taker => {\n if (!taker.brake) {\n taker.take()\n }\n },\n 1000,\n { leading: true, trailing: false }\n)\n\nfunction take_snapshot(taker) {\n if (taker.brake || !taker.dirty) return\n debouncer(taker)\n}\n\nexport default class SnapshotTaker {\n constructor(state_holder, timecapsule) {\n this.brake = false\n this.dirty = false\n this.state_holder = state_holder\n this.timecapsule = timecapsule\n this.timecapsule.snapshot_taker = this\n }\n\n dispose() {\n delete this.state_holder\n delete this.timecapsule\n }\n\n touch() {\n this.dirty = true\n take_snapshot(this)\n }\n\n /* 모든 조건에 관계없이 현재 상태를 snapshot으로 취한다. */\n take(force) {\n if (this.dirty || force) {\n this.timecapsule.snapshot(this.state_holder.state)\n this.dirty = false\n }\n }\n\n get brake() {\n return this._brake\n }\n\n /* 마우스를 드래깅하는 동안, 보통 brake 를 ON 시킨다. */\n set brake(brake) {\n this._brake = !!brake\n take_snapshot(this)\n }\n}\n"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAJA;AACA;AACA;;AAIA,IAAIC,SAAS,GAAG,IAAAC,eAAQ,EACtBC,KAAK,IAAI;EACP,IAAI,CAACA,KAAK,CAACC,KAAK,EAAE;IAChBD,KAAK,CAACE,IAAI,CAAC,CAAC;EACd;AACF,CAAC,EACD,IAAI,EACJ;EAAEC,OAAO,EAAE,IAAI;EAAEC,QAAQ,EAAE;AAAM,CACnC,CAAC;AAED,SAASC,aAAaA,CAACL,KAAK,EAAE;EAC5B,IAAIA,KAAK,CAACC,KAAK,IAAI,CAACD,KAAK,CAACM,KAAK,EAAE;EACjCR,SAAS,CAACE,KAAK,CAAC;AAClB;AAEe,MAAMO,aAAa,CAAC;EACjCC,WAAWA,CAACC,YAAY,EAAEC,WAAW,EAAE;IACrC,IAAI,CAACT,KAAK,GAAG,KAAK;IAClB,IAAI,CAACK,KAAK,GAAG,KAAK;IAClB,IAAI,CAACG,YAAY,GAAGA,YAAY;IAChC,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACA,WAAW,CAACC,cAAc,GAAG,IAAI;EACxC;EAEAC,OAAOA,CAAA,EAAG;IACR,OAAO,IAAI,CAACH,YAAY;IACxB,OAAO,IAAI,CAACC,WAAW;EACzB;EAEAG,KAAKA,CAAA,EAAG;IACN,IAAI,CAACP,KAAK,GAAG,IAAI;IACjBD,aAAa,CAAC,IAAI,CAAC;EACrB;;EAEA;EACAH,IAAIA,CAACY,KAAK,EAAE;IACV,IAAI,IAAI,CAACR,KAAK,IAAIQ,KAAK,EAAE;MACvB,IAAI,CAACJ,WAAW,CAACK,QAAQ,CAAC,IAAI,CAACN,YAAY,CAACO,KAAK,CAAC;MAClD,IAAI,CAACV,KAAK,GAAG,KAAK;IACpB;EACF;EAEA,IAAIL,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACgB,MAAM;EACpB;;EAEA;EACA,IAAIhB,KAAKA,CAACA,KAAK,EAAE;IACf,IAAI,CAACgB,MAAM,GAAG,CAAC,CAAChB,KAAK;IACrBI,aAAa,CAAC,IAAI,CAAC;EACrB;AACF;AAACa,OAAA,CAAAC,OAAA,GAAAZ,aAAA","ignoreList":[]}
@@ -1,18 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.pop = pop;
7
- exports.push = push;
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
-
12
- function push(item) {
13
- throw new Error('Not Implemented Yet');
14
- }
15
- function pop(item) {
16
- throw new Error('Not Implemented Yet');
17
- }
18
- //# sourceMappingURL=stack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stack.js","names":["push","item","Error","pop"],"sources":["../../src/core/stack.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function push(item) {\n throw new Error('Not Implemented Yet')\n}\n\nexport function pop(item) {\n throw new Error('Not Implemented Yet')\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEO,SAASA,IAAIA,CAACC,IAAI,EAAE;EACzB,MAAM,IAAIC,KAAK,CAAC,qBAAqB,CAAC;AACxC;AAEO,SAASC,GAAGA,CAACF,IAAI,EAAE;EACxB,MAAM,IAAIC,KAAK,CAAC,qBAAqB,CAAC;AACxC","ignoreList":[]}
@@ -1,88 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _logger = require("./logger.js");
8
- /*
9
- * Copyright © HatioLab Inc. All rights reserved.
10
- */
11
-
12
- class TimeCapsule {
13
- constructor(maxsize, start_state) {
14
- maxsize = Number(maxsize);
15
- if (!maxsize || maxsize <= 0) {
16
- (0, _logger.error)('TimeCapsule maxsize should be greater than 0.', maxsize);
17
- this.maxsize = 10;
18
- } else {
19
- this.maxsize = maxsize;
20
- }
21
- this.reset();
22
- if (start_state) {
23
- this.snapshot(start_state);
24
- this.preserve();
25
- }
26
- }
27
-
28
- /**
29
- * 타임캡슐의 변경 상태를 저장하였음을 알린다.
30
- */
31
- preserve() {
32
- this.checkPoint = this.pos;
33
- }
34
-
35
- /**
36
- * 타임캡슐이 마지막 저장된 상태와 현재 상태가 같은 지 여부를 얻는다.
37
- */
38
- hasUnpreservedChanges() {
39
- return this.checkPoint != this.pos;
40
- }
41
- dispose() {
42
- this.reset();
43
- }
44
- snapshot(state) {
45
- this.q.splice(this.pos + 1, this.q.length - (this.pos + 1), state);
46
- if (this.q.length > this.maxsize) {
47
- const cutout = this.q.splice(0, this.q.length - this.maxsize);
48
- this.checkPoint = Math.max(-1, this.checkPoint - cutout.length);
49
- }
50
- this.pos = this.q.length - 1;
51
- }
52
- forward() {
53
- if (this.snapshot_taker) this.snapshot_taker.take();
54
- if (this.forwardable) return this.q[++this.pos];
55
- (0, _logger.warn)('Not forwardable.');
56
- }
57
- backward() {
58
- if (this.snapshot_taker) this.snapshot_taker.take();
59
- if (this.backwardable) return this.q[--this.pos];
60
- (0, _logger.warn)('Not backwardable.');
61
- }
62
- get current() {
63
- if (this.pos !== -1) return this.q[this.pos];
64
- (0, _logger.warn)('Non state has been recorded.');
65
- }
66
- get length() {
67
- return this.q.length;
68
- }
69
- get forwardable() {
70
- return this.pos < this.q.length - 1;
71
- }
72
- get backwardable() {
73
- return this.pos > 0;
74
- }
75
- get snapshot_taker() {
76
- return this._snapshot_taker;
77
- }
78
- set snapshot_taker(snapshot_taker) {
79
- this._snapshot_taker = snapshot_taker;
80
- }
81
- reset() {
82
- this.q = [];
83
- this.pos = -1;
84
- this.checkPoint = -1;
85
- }
86
- }
87
- exports.default = TimeCapsule;
88
- //# sourceMappingURL=timecapsule.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"timecapsule.js","names":["_logger","require","TimeCapsule","constructor","maxsize","start_state","Number","error","reset","snapshot","preserve","checkPoint","pos","hasUnpreservedChanges","dispose","state","q","splice","length","cutout","Math","max","forward","snapshot_taker","take","forwardable","warn","backward","backwardable","current","_snapshot_taker","exports","default"],"sources":["../../src/core/timecapsule.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { error, warn } from './logger.js'\n\nexport default class TimeCapsule {\n constructor(maxsize, start_state) {\n maxsize = Number(maxsize)\n\n if (!maxsize || maxsize <= 0) {\n error('TimeCapsule maxsize should be greater than 0.', maxsize)\n this.maxsize = 10\n } else {\n this.maxsize = maxsize\n }\n\n this.reset()\n\n if (start_state) {\n this.snapshot(start_state)\n this.preserve()\n }\n }\n\n /**\n * 타임캡슐의 변경 상태를 저장하였음을 알린다.\n */\n preserve() {\n this.checkPoint = this.pos\n }\n\n /**\n * 타임캡슐이 마지막 저장된 상태와 현재 상태가 같은 지 여부를 얻는다.\n */\n hasUnpreservedChanges() {\n return this.checkPoint != this.pos\n }\n\n dispose() {\n this.reset()\n }\n\n snapshot(state) {\n this.q.splice(this.pos + 1, this.q.length - (this.pos + 1), state)\n\n if (this.q.length > this.maxsize) {\n const cutout = this.q.splice(0, this.q.length - this.maxsize)\n this.checkPoint = Math.max(-1, this.checkPoint - cutout.length)\n }\n\n this.pos = this.q.length - 1\n }\n\n forward() {\n if (this.snapshot_taker) this.snapshot_taker.take()\n\n if (this.forwardable) return this.q[++this.pos]\n warn('Not forwardable.')\n }\n\n backward() {\n if (this.snapshot_taker) this.snapshot_taker.take()\n\n if (this.backwardable) return this.q[--this.pos]\n warn('Not backwardable.')\n }\n\n get current() {\n if (this.pos !== -1) return this.q[this.pos]\n\n warn('Non state has been recorded.')\n }\n\n get length() {\n return this.q.length\n }\n\n get forwardable() {\n return this.pos < this.q.length - 1\n }\n\n get backwardable() {\n return this.pos > 0\n }\n\n get snapshot_taker() {\n return this._snapshot_taker\n }\n\n set snapshot_taker(snapshot_taker) {\n this._snapshot_taker = snapshot_taker\n }\n\n reset() {\n this.q = []\n this.pos = -1\n this.checkPoint = -1\n }\n}\n"],"mappings":"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","ignoreList":[]}