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

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,373 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("../components/component.js"));
8
- var _logger = require("../core/logger.js");
9
- var _layer = _interopRequireDefault(require("./layer.js"));
10
- var _selectedFinder = require("./selection/selected-finder.js");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
- /*
13
- * Copyright © HatioLab Inc. All rights reserved.
14
- */
15
-
16
- function unselectAllAncester(component, selected) {
17
- var ancester = component.parent;
18
- while (ancester) {
19
- let idx = selected.indexOf(ancester);
20
- if (idx != -1) {
21
- selected.splice(idx, 1);
22
- }
23
- ancester = ancester.parent;
24
- }
25
- }
26
- function unselectAllDecendant(component, selected) {
27
- var children = component.components || [];
28
- for (let child of children) {
29
- unselectAllDecendant(child, selected);
30
- let idx = selected.indexOf(child);
31
- if (idx != -1) {
32
- selected.splice(idx, 1);
33
- }
34
- }
35
- }
36
- class SelectionLayer extends _layer.default {
37
- // Lifecycle
38
- ready() {
39
- super.ready();
40
- var rootModel = this.rootModel;
41
- var translate = rootModel.get('translate');
42
- var scale = rootModel.get('scale');
43
- this.set('translate', translate);
44
- this.set('scale', scale);
45
- }
46
- contains(x, y) {
47
- return false;
48
- }
49
- render(ctx) {
50
- var selbox = this.selbox;
51
- if (selbox) {
52
- let {
53
- sx,
54
- sy,
55
- ex,
56
- ey
57
- } = selbox;
58
- let scale = this.get('scale') || {
59
- x: 1,
60
- y: 1
61
- };
62
- ctx.beginPath();
63
- ctx.rect(sx, sy, ex - sx, ey - sy);
64
- ctx.setLineDash([2 / scale.x, 4 / scale.y]);
65
- ctx.lineWidth = 1 / scale.x;
66
- ctx.strokeStyle = 'black';
67
- ctx.stroke();
68
- }
69
- }
70
- get eventMap() {
71
- return {
72
- '(root)': {
73
- '(self)': {
74
- keydown: this.onkeydown
75
- }
76
- },
77
- 'model-layer': {
78
- '(self)': {
79
- change: this.onchange_root_model
80
- },
81
- '(all)': {
82
- dragstart: this.ondragstart_selbox,
83
- dragmove: this.ondragmove_selbox,
84
- dragend: this.ondragend_selbox,
85
- mousedown: this.onmousedown_comp,
86
- mouseup: this.onmouseup_comp
87
- }
88
- }
89
- };
90
- }
91
- onkeydown(e, hint) {
92
- var {
93
- origin,
94
- deliverer
95
- } = hint; /* deliverer should be RootContainer */
96
-
97
- var selected = deliverer.selected;
98
- if (selected.length !== 1) {
99
- return false;
100
- }
101
- var component = selected[0];
102
- var container = component.parent;
103
- if (!container || container === deliverer) {
104
- return false;
105
- }
106
- if (e.code === 'Tab') {
107
- var capturables = container.layout.capturables(container);
108
- var idx = capturables.indexOf(component);
109
- if (idx == -1) {
110
- if (container.indexOf(component)) {
111
- idx = 0;
112
- } else {
113
- (0, _logger.warn)('Container not contains [', component, '] as a component');
114
- return false;
115
- }
116
- }
117
- var length = capturables.length;
118
- if (e.shiftKey) idx--;else idx++;
119
- component = capturables[(idx + length) % length];
120
- } else if (container.layout.keyNavigate) {
121
- component = container.layout.keyNavigate(container, component, e) || component;
122
- } else {
123
- return false;
124
- }
125
- deliverer.selected = [component];
126
- e.preventDefault();
127
- }
128
- onchange_root_model(after, before, hint) {
129
- if (after.translate) {
130
- // Model Base 레이어와 동일한 translate를 유지하도록 한다.
131
- this.set('translate', after.translate);
132
- }
133
- if (after.scale) {
134
- // Model Base 레이어와 동일한 scale 유지하도록 한다.
135
- this.set('scale', after.scale);
136
- }
137
- }
138
- _pendingDecision(e) {
139
- /* MouseUP에서 결정하도록 마우스가 눌린 위치를 기억한다. */
140
- this.downpoint = {
141
- x: e.offsetX,
142
- y: e.offsetY
143
- };
144
- }
145
- _selectGroupItem(origin, e) {
146
- var idx = this.selected.indexOf(origin);
147
-
148
- /*
149
- * 기존에 선택된 아이템 중에서 그룹내에 있는 아이템이 있다면, 바로 선택되도록 한다.
150
- * 그렇지 않으면, MouseUP에서 결정하도록 한다.
151
- */
152
- let parentOfOrigin = origin.parent;
153
-
154
- // 최상위 그룹을 찾는다.
155
- while (parentOfOrigin.parent.isGroup()) {
156
- parentOfOrigin = parentOfOrigin.parent;
157
- }
158
- let selectedSiblings = [];
159
- let foundSibling = false;
160
- let foundGroup = false;
161
- this.selected.forEach(item => {
162
- let parent = item.parent;
163
- if (item === parentOfOrigin) {
164
- foundGroup = true;
165
- return;
166
- }
167
- while (parent.parent && parent.parent.isGroup()) {
168
- parent = parent.parent;
169
- }
170
- if (parent === parentOfOrigin) {
171
- /* 최상위 그룹이 동일한 경우 sibling으로 판단한다. */
172
-
173
- selectedSiblings.push(item);
174
- foundSibling = true;
175
- }
176
- });
177
- if (foundSibling) {
178
- if (e.shiftKey) {
179
- if (idx == -1) {
180
- selectedSiblings.push(origin);
181
- } else {
182
- this._pendingDecision(e);
183
- return;
184
- }
185
- } else {
186
- if (idx == -1) {
187
- selectedSiblings = [origin];
188
- } else {
189
- this._pendingDecision(e);
190
- return;
191
- }
192
- }
193
- } /* no siblinig */else {
194
- if (!foundGroup) {
195
- /* 기존에 선택된 컴포넌트의 부모 그룹을 찾지 못했다면, 공통부모 여부를 판단해서, 최상위 그룹이 선택된다. */
196
- if (e.shiftKey) {
197
- /* (sibling이 없고) 이미 선택된 컴포넌트들이 있다면, ... */
198
- if (this.selected.length > 0) {
199
- if (this.selected.indexOf(parentOfOrigin) == -1) {
200
- /* 멀티 선택 리스트에 최상위 그룹을 추가한다. */
201
- selectedSiblings = [...this.selected, parentOfOrigin];
202
- } else {
203
- /* 멀티 선택 조건에 맞지 않아서, 아무 동작도 하지 않는다 */
204
- return;
205
- }
206
- } else {
207
- /* (sibling이 없고) 이미 선택된 컴포넌트들이 없다면, 최상위 부모 그룹이 선택된다. */
208
- selectedSiblings = [parentOfOrigin];
209
- }
210
- } else {
211
- selectedSiblings = [parentOfOrigin];
212
- }
213
- } else {
214
- /* 기존에 선택된 컴포넌트의 부모 그룹을 찾았다면, 드래깅일 수도 있으므로, 결정을 지연시킨다. */
215
- this._pendingDecision(e);
216
- return;
217
- }
218
- }
219
- this.selected = selectedSiblings;
220
- }
221
- onmousedown_comp(e, hint) {
222
- var {
223
- origin
224
- } = hint;
225
- this.downpoint = null;
226
- if (e.shiftKey) {
227
- // shiftKey 상태에서는 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.
228
-
229
- // 선택된 대상의 부모가 group인 경우
230
- if (origin.parent.isGroup()) {
231
- this._selectGroupItem(origin, e);
232
- return;
233
- }
234
- if (this.selected.indexOf(origin) == -1) {
235
- // 선택된 컴포넌트와 같은 부모를 가진 컴포넌트들로 선택리스트를 재구성한다.
236
- // 모델 노드에서 제외된 컴포넌트와 Root Model은 제외한다.
237
- let selected = this.selected.filter(c => !c.isRootModel() && !!c.parent);
238
- let parent = selected.length > 0 && selected[0].parent;
239
- if (parent && parent !== origin.parent) {
240
- // origin의 부모가 그룹이라면, 그 그룹은 분명히 선택된 상태이다.
241
- // if (origin.parent.isGroup()) {
242
- // this._pendingDecision(e)
243
-
244
- // return
245
- // }
246
-
247
- // 편집의 편의상, shift + mouseclick 하는 경우에만, 조상이 다르더라도 선택될 수 있도록 한다.
248
- // 새로선택된 컴포넌트의 조상과 자손들은 모두 선택취소한다.
249
- unselectAllAncester(origin, selected);
250
- unselectAllDecendant(origin, selected);
251
- }
252
- selected.push(origin);
253
- this.selected = selected;
254
- } else {
255
- this._pendingDecision(e);
256
- return;
257
- }
258
- } else {
259
- /* no shift-key */
260
-
261
- // 선택된 대상의 부모가 group인 경우
262
- if (origin.parent.isGroup()) {
263
- this._selectGroupItem(origin, e);
264
- return;
265
- }
266
- if (this.selected.indexOf(origin) == -1) {
267
- this.selected = [origin];
268
- this.sameParent = true;
269
- } else {
270
- return; // 변화된 것이 없다.
271
- }
272
- }
273
- }
274
- onmouseup_comp(e, hint) {
275
- /*
276
- * mouse-down 이벤트에서 결정이 pending된 경우 (this.downpoint에 값이 설정된 경우임)
277
- * 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.
278
- * 만약에, 부모가 그룹이라면, mouseup이벤트에서 선택이 처리된다.
279
- */
280
-
281
- if (!this.downpoint) {
282
- return;
283
- }
284
-
285
- /*
286
- * 마우스가 눌린 위치와 동일한 위치에서 버튼릴리즈 된 경우만 처리한다.
287
- * 선택해제 또는 그룹내 컴포넌트 선택을 위한 행동으로 간주한다.
288
- */
289
- if (this.downpoint.x !== e.offsetX || this.downpoint.y !== e.offsetY) return;
290
- var {
291
- origin
292
- } = hint;
293
- let idx = this.selected.indexOf(origin);
294
- if (idx == -1 && origin.parent.isGroup()) {
295
- idx = this.selected.indexOf(origin.parent);
296
- }
297
-
298
- /* 이미 선택되어 있는 컴포넌트를 선택리스트에서 제거 */
299
- if (idx !== -1 && e.shiftKey) {
300
- let selected = this.selected.slice();
301
- if (idx > -1) {
302
- selected.splice(idx, 1); // remove
303
- }
304
- this.selected = selected;
305
- return;
306
- }
307
-
308
- // 선택된 대상의 부모가 group인 경우
309
- if (origin.parent.isGroup()) {
310
- this.selected = [origin];
311
- return;
312
- }
313
- }
314
-
315
- /* 영역을 그려서 다중 선택을 하는 기능을 위한 이벤트 핸들러들임 */
316
-
317
- ondragstart_selbox(e, hint) {
318
- var {
319
- origin
320
- } = hint;
321
- if (!origin.stuck) return;
322
- var {
323
- x,
324
- y
325
- } = this.transcoordC2S(e.offsetX, e.offsetY);
326
-
327
- // Model Base 레이어에서 드래깅이 시작되면, 멀티선택 영역을 시작한다.
328
- // 만일, origin이 stuck된 컴포넌트이면, 선택리스트에서 제외한다.
329
-
330
- this.selbox = {
331
- sx: x,
332
- sy: y,
333
- selected: []
334
- };
335
- }
336
- ondragmove_selbox(e, hint) {
337
- var {
338
- origin
339
- } = hint;
340
- if (!origin.stuck) return;
341
- var {
342
- x,
343
- y
344
- } = this.transcoordC2S(e.offsetX, e.offsetY);
345
- var {
346
- deliverer
347
- } = hint; /* should be rootModel */
348
-
349
- // 드래그 해제 이전에 컨트롤 키를 릴리즈 하는 경우, selbox가 없을 수 있으므로 확인한다.
350
- // selbox는 여러 컴포넌트를 선택하기 위해서 마우스로 드래깅해서 만들어내는 영역임.
351
- // 드래그로는 stuck 되어있는 컨테이너의 1차 자식 컴포넌트들만 선택할 수 있다.
352
- if (this.selbox) {
353
- this.selbox.ex = x;
354
- this.selbox.ey = y;
355
- let container = origin;
356
- (0, _selectedFinder.selectedFinder)(this, origin, this.selbox, e.shiftKey);
357
- this.invalidate();
358
- }
359
- }
360
- ondragend_selbox(e, hint) {
361
- var {
362
- origin
363
- } = hint;
364
- if (!origin.stuck) return;
365
- this.last_pos = null;
366
- this.selbox = null;
367
- (0, _selectedFinder.selectedFinder)(this, null, null, false, true);
368
- this.invalidate();
369
- }
370
- }
371
- exports.default = SelectionLayer;
372
- _component.default.register('selection-layer', SelectionLayer);
373
- //# sourceMappingURL=selection-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"selection-layer.js","names":["_component","_interopRequireDefault","require","_logger","_layer","_selectedFinder","e","__esModule","default","unselectAllAncester","component","selected","ancester","parent","idx","indexOf","splice","unselectAllDecendant","children","components","child","SelectionLayer","Layer","ready","rootModel","translate","get","scale","set","contains","x","y","render","ctx","selbox","sx","sy","ex","ey","beginPath","rect","setLineDash","lineWidth","strokeStyle","stroke","eventMap","keydown","onkeydown","change","onchange_root_model","dragstart","ondragstart_selbox","dragmove","ondragmove_selbox","dragend","ondragend_selbox","mousedown","onmousedown_comp","mouseup","onmouseup_comp","hint","origin","deliverer","length","container","code","capturables","layout","warn","shiftKey","keyNavigate","preventDefault","after","before","_pendingDecision","downpoint","offsetX","offsetY","_selectGroupItem","parentOfOrigin","isGroup","selectedSiblings","foundSibling","foundGroup","forEach","item","push","filter","c","isRootModel","sameParent","slice","stuck","transcoordC2S","selectedFinder","invalidate","last_pos","exports","Component","register"],"sources":["../../src/layer/selection-layer.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component.js'\nimport { warn } from '../core/logger.js'\nimport Layer from './layer.js'\nimport { selectedFinder } from './selection/selected-finder.js'\n\nfunction unselectAllAncester(component, selected) {\n var ancester = component.parent\n while (ancester) {\n let idx = selected.indexOf(ancester)\n if (idx != -1) {\n selected.splice(idx, 1)\n }\n ancester = ancester.parent\n }\n}\n\nfunction unselectAllDecendant(component, selected) {\n var children = component.components || []\n for (let child of children) {\n unselectAllDecendant(child, selected)\n\n let idx = selected.indexOf(child)\n if (idx != -1) {\n selected.splice(idx, 1)\n }\n }\n}\n\nexport default class SelectionLayer extends Layer {\n // Lifecycle\n ready() {\n super.ready()\n var rootModel = this.rootModel\n\n var translate = rootModel.get('translate')\n var scale = rootModel.get('scale')\n\n this.set('translate', translate)\n this.set('scale', scale)\n }\n\n contains(x, y) {\n return false\n }\n\n render(ctx) {\n var selbox = this.selbox\n\n if (selbox) {\n let { sx, sy, ex, ey } = selbox\n let scale = this.get('scale') || { x: 1, y: 1 }\n\n ctx.beginPath()\n\n ctx.rect(sx, sy, ex - sx, ey - sy)\n\n ctx.setLineDash([2 / scale.x, 4 / scale.y])\n ctx.lineWidth = 1 / scale.x\n ctx.strokeStyle = 'black'\n\n ctx.stroke()\n }\n }\n\n get eventMap() {\n return {\n '(root)': {\n '(self)': {\n keydown: this.onkeydown\n }\n },\n 'model-layer': {\n '(self)': {\n change: this.onchange_root_model\n },\n '(all)': {\n dragstart: this.ondragstart_selbox,\n dragmove: this.ondragmove_selbox,\n dragend: this.ondragend_selbox,\n\n mousedown: this.onmousedown_comp,\n mouseup: this.onmouseup_comp\n }\n }\n }\n }\n\n onkeydown(e, hint) {\n var { origin, deliverer } = hint /* deliverer should be RootContainer */\n\n var selected = deliverer.selected\n\n if (selected.length !== 1) {\n return false\n }\n\n var component = selected[0]\n var container = component.parent\n\n if (!container || container === deliverer) {\n return false\n }\n\n if (e.code === 'Tab') {\n var capturables = container.layout.capturables(container)\n\n var idx = capturables.indexOf(component)\n\n if (idx == -1) {\n if (container.indexOf(component)) {\n idx = 0\n } else {\n warn('Container not contains [', component, '] as a component')\n return false\n }\n }\n\n var length = capturables.length\n\n if (e.shiftKey) idx--\n else idx++\n\n component = capturables[(idx + length) % length]\n } else if (container.layout.keyNavigate) {\n component = container.layout.keyNavigate(container, component, e) || component\n } else {\n return false\n }\n\n deliverer.selected = [component]\n e.preventDefault()\n }\n\n onchange_root_model(after, before, hint) {\n if (after.translate) {\n // Model Base 레이어와 동일한 translate를 유지하도록 한다.\n this.set('translate', after.translate)\n }\n\n if (after.scale) {\n // Model Base 레이어와 동일한 scale 유지하도록 한다.\n this.set('scale', after.scale)\n }\n }\n\n _pendingDecision(e) {\n /* MouseUP에서 결정하도록 마우스가 눌린 위치를 기억한다. */\n this.downpoint = {\n x: e.offsetX,\n y: e.offsetY\n }\n }\n\n _selectGroupItem(origin, e) {\n var idx = this.selected.indexOf(origin)\n\n /*\n * 기존에 선택된 아이템 중에서 그룹내에 있는 아이템이 있다면, 바로 선택되도록 한다.\n * 그렇지 않으면, MouseUP에서 결정하도록 한다.\n */\n let parentOfOrigin = origin.parent\n\n // 최상위 그룹을 찾는다.\n while (parentOfOrigin.parent.isGroup()) {\n parentOfOrigin = parentOfOrigin.parent\n }\n\n let selectedSiblings = []\n let foundSibling = false\n let foundGroup = false\n\n this.selected.forEach(item => {\n let parent = item.parent\n\n if (item === parentOfOrigin) {\n foundGroup = true\n return\n }\n\n while (parent.parent && parent.parent.isGroup()) {\n parent = parent.parent\n }\n\n if (parent === parentOfOrigin) {\n /* 최상위 그룹이 동일한 경우 sibling으로 판단한다. */\n\n selectedSiblings.push(item)\n foundSibling = true\n }\n })\n\n if (foundSibling) {\n if (e.shiftKey) {\n if (idx == -1) {\n selectedSiblings.push(origin)\n } else {\n this._pendingDecision(e)\n return\n }\n } else {\n if (idx == -1) {\n selectedSiblings = [origin]\n } else {\n this._pendingDecision(e)\n return\n }\n }\n } /* no siblinig */ else {\n if (!foundGroup) {\n /* 기존에 선택된 컴포넌트의 부모 그룹을 찾지 못했다면, 공통부모 여부를 판단해서, 최상위 그룹이 선택된다. */\n if (e.shiftKey) {\n /* (sibling이 없고) 이미 선택된 컴포넌트들이 있다면, ... */\n if (this.selected.length > 0) {\n if (this.selected.indexOf(parentOfOrigin) == -1) {\n /* 멀티 선택 리스트에 최상위 그룹을 추가한다. */\n selectedSiblings = [...this.selected, parentOfOrigin]\n } else {\n /* 멀티 선택 조건에 맞지 않아서, 아무 동작도 하지 않는다 */\n return\n }\n } else {\n /* (sibling이 없고) 이미 선택된 컴포넌트들이 없다면, 최상위 부모 그룹이 선택된다. */\n selectedSiblings = [parentOfOrigin]\n }\n } else {\n selectedSiblings = [parentOfOrigin]\n }\n } else {\n /* 기존에 선택된 컴포넌트의 부모 그룹을 찾았다면, 드래깅일 수도 있으므로, 결정을 지연시킨다. */\n this._pendingDecision(e)\n return\n }\n }\n\n this.selected = selectedSiblings\n }\n\n onmousedown_comp(e, hint) {\n var { origin } = hint\n this.downpoint = null\n\n if (e.shiftKey) {\n // shiftKey 상태에서는 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this._selectGroupItem(origin, e)\n return\n }\n\n if (this.selected.indexOf(origin) == -1) {\n // 선택된 컴포넌트와 같은 부모를 가진 컴포넌트들로 선택리스트를 재구성한다.\n // 모델 노드에서 제외된 컴포넌트와 Root Model은 제외한다.\n let selected = this.selected.filter(c => !c.isRootModel() && !!c.parent)\n\n let parent = selected.length > 0 && selected[0].parent\n if (parent && parent !== origin.parent) {\n // origin의 부모가 그룹이라면, 그 그룹은 분명히 선택된 상태이다.\n // if (origin.parent.isGroup()) {\n // this._pendingDecision(e)\n\n // return\n // }\n\n // 편집의 편의상, shift + mouseclick 하는 경우에만, 조상이 다르더라도 선택될 수 있도록 한다.\n // 새로선택된 컴포넌트의 조상과 자손들은 모두 선택취소한다.\n unselectAllAncester(origin, selected)\n unselectAllDecendant(origin, selected)\n }\n\n selected.push(origin)\n\n this.selected = selected\n } else {\n this._pendingDecision(e)\n return\n }\n } else {\n /* no shift-key */\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this._selectGroupItem(origin, e)\n return\n }\n\n if (this.selected.indexOf(origin) == -1) {\n this.selected = [origin]\n this.sameParent = true\n } else {\n return // 변화된 것이 없다.\n }\n }\n }\n\n onmouseup_comp(e, hint) {\n /*\n * mouse-down 이벤트에서 결정이 pending된 경우 (this.downpoint에 값이 설정된 경우임)\n * 선택은 mousedown에서 처리하고, 선택의 해제는 mouseup 이벤트에서 처리한다.\n * 만약에, 부모가 그룹이라면, mouseup이벤트에서 선택이 처리된다.\n */\n\n if (!this.downpoint) {\n return\n }\n\n /*\n * 마우스가 눌린 위치와 동일한 위치에서 버튼릴리즈 된 경우만 처리한다.\n * 선택해제 또는 그룹내 컴포넌트 선택을 위한 행동으로 간주한다.\n */\n if (this.downpoint.x !== e.offsetX || this.downpoint.y !== e.offsetY) return\n\n var { origin } = hint\n let idx = this.selected.indexOf(origin)\n if (idx == -1 && origin.parent.isGroup()) {\n idx = this.selected.indexOf(origin.parent)\n }\n\n /* 이미 선택되어 있는 컴포넌트를 선택리스트에서 제거 */\n if (idx !== -1 && e.shiftKey) {\n let selected = this.selected.slice()\n\n if (idx > -1) {\n selected.splice(idx, 1) // remove\n }\n\n this.selected = selected\n\n return\n }\n\n // 선택된 대상의 부모가 group인 경우\n if (origin.parent.isGroup()) {\n this.selected = [origin]\n return\n }\n }\n\n /* 영역을 그려서 다중 선택을 하는 기능을 위한 이벤트 핸들러들임 */\n\n ondragstart_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // Model Base 레이어에서 드래깅이 시작되면, 멀티선택 영역을 시작한다.\n // 만일, origin이 stuck된 컴포넌트이면, 선택리스트에서 제외한다.\n\n this.selbox = {\n sx: x,\n sy: y,\n selected: []\n }\n }\n\n ondragmove_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n var { deliverer } = hint /* should be rootModel */\n\n // 드래그 해제 이전에 컨트롤 키를 릴리즈 하는 경우, selbox가 없을 수 있으므로 확인한다.\n // selbox는 여러 컴포넌트를 선택하기 위해서 마우스로 드래깅해서 만들어내는 영역임.\n // 드래그로는 stuck 되어있는 컨테이너의 1차 자식 컴포넌트들만 선택할 수 있다.\n if (this.selbox) {\n this.selbox.ex = x\n this.selbox.ey = y\n\n let container = origin\n\n selectedFinder(this, origin, this.selbox, e.shiftKey)\n\n this.invalidate()\n }\n }\n\n ondragend_selbox(e, hint) {\n var { origin } = hint\n\n if (!origin.stuck) return\n\n this.last_pos = null\n this.selbox = null\n\n selectedFinder(this, null, null, false, true)\n\n this.invalidate()\n }\n}\n\nComponent.register('selection-layer', SelectionLayer)\n"],"mappings":"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","ignoreList":[]}
@@ -1,83 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _component = _interopRequireDefault(require("../components/component.js"));
8
- var Const = _interopRequireWildcard(require("../const.js"));
9
- var _layer = _interopRequireDefault(require("./layer.js"));
10
- 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); }
11
- 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; }
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
- /*
14
- * Copyright © HatioLab Inc. All rights reserved.
15
- */
16
-
17
- class ShiftLayer extends _layer.default {
18
- // Lifecycle
19
- ready() {
20
- super.ready();
21
- var translate = this.rootModel.get('translate');
22
- this.set('translate', translate);
23
- }
24
- render(ctx) {
25
- /* render nothing */
26
- }
27
- get pointerEvents() {
28
- return 'none';
29
- }
30
- contains(x, y) {
31
- return !!(this.app.mode == Const.MODE_SHIFT);
32
- }
33
- get eventMap() {
34
- return {
35
- '(root)': {
36
- '(self)': {
37
- keydown: this.onkeydown,
38
- keyup: this.onkeyup
39
- }
40
- }
41
- };
42
- }
43
- onkeydown(e) {
44
- if (e.code === 'Space' && this.before_mode === undefined) {
45
- this.before_mode = this.app.mode;
46
- this.app.mode = Const.MODE_SHIFT;
47
- }
48
- }
49
- onkeyup(e) {
50
- if (e.code === 'Space') {
51
- if (this.before_mode !== undefined) {
52
- this.app.mode = this.before_mode;
53
- }
54
- delete this.before_mode;
55
- }
56
- }
57
-
58
- /* default UI Event Handlers. */
59
-
60
- ondragstart(e) {
61
- this.last_position = this.transcoordC2S(e.offsetX, e.offsetY);
62
- }
63
- ondragmove(e) {
64
- var {
65
- x,
66
- y
67
- } = this.transcoordC2S(e.offsetX, e.offsetY);
68
-
69
- // 모델레이어의 원점을 움직인다.
70
- this.rootModel.move({
71
- x: x - this.last_position.x,
72
- y: y - this.last_position.y
73
- }, false);
74
-
75
- // 모델레이어의 translate 값이 바뀌었으므로, 이 레이어의 translate도 변경되었을 것이다.
76
- // 따라서, transcoord을 다시 해주어야 한다.
77
-
78
- this.last_position = this.transcoordC2S(e.offsetX, e.offsetY);
79
- }
80
- }
81
- exports.default = ShiftLayer;
82
- _component.default.register('shift-layer', ShiftLayer);
83
- //# sourceMappingURL=shift-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shift-layer.js","names":["_component","_interopRequireDefault","require","Const","_interopRequireWildcard","_layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShiftLayer","Layer","ready","translate","rootModel","render","ctx","pointerEvents","contains","x","y","app","mode","MODE_SHIFT","eventMap","keydown","onkeydown","keyup","onkeyup","code","before_mode","undefined","ondragstart","last_position","transcoordC2S","offsetX","offsetY","ondragmove","move","exports","Component","register"],"sources":["../../src/layer/shift-layer.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component.js'\nimport * as Const from '../const.js'\nimport Layer from './layer.js'\n\nexport default class ShiftLayer extends Layer {\n // Lifecycle\n ready() {\n super.ready()\n var translate = this.rootModel.get('translate')\n this.set('translate', translate)\n }\n\n render(ctx) {\n /* render nothing */\n }\n\n get pointerEvents() {\n return 'none'\n }\n\n contains(x, y) {\n return !!(this.app.mode == Const.MODE_SHIFT)\n }\n\n get eventMap() {\n return {\n '(root)': {\n '(self)': {\n keydown: this.onkeydown,\n keyup: this.onkeyup\n }\n }\n }\n }\n\n onkeydown(e) {\n if (e.code === 'Space' && this.before_mode === undefined) {\n this.before_mode = this.app.mode\n this.app.mode = Const.MODE_SHIFT\n }\n }\n\n onkeyup(e) {\n if (e.code === 'Space') {\n if (this.before_mode !== undefined) {\n this.app.mode = this.before_mode\n }\n delete this.before_mode\n }\n }\n\n /* default UI Event Handlers. */\n\n ondragstart(e) {\n this.last_position = this.transcoordC2S(e.offsetX, e.offsetY)\n }\n\n ondragmove(e) {\n var { x, y } = this.transcoordC2S(e.offsetX, e.offsetY)\n\n // 모델레이어의 원점을 움직인다.\n this.rootModel.move(\n {\n x: x - this.last_position.x,\n y: y - this.last_position.y\n },\n false\n )\n\n // 모델레이어의 translate 값이 바뀌었으므로, 이 레이어의 translate도 변경되었을 것이다.\n // 따라서, transcoord을 다시 해주어야 한다.\n\n this.last_position = this.transcoordC2S(e.offsetX, e.offsetY)\n }\n}\n\nComponent.register('shift-layer', ShiftLayer)\n"],"mappings":"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","ignoreList":[]}
@@ -1,30 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _layout = _interopRequireDefault(require("./layout.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- /* 대상 컴포넌트의 bounds를 계산한다. */
14
- var AbsoluteLayout = {
15
- reflow: function (container, component) {},
16
- capturables: function (container) {
17
- return container.components;
18
- },
19
- drawables: function (container) {
20
- if (!container.app.isViewMode) return container.components;
21
- return container.components.filter(c => !c.hidden);
22
- },
23
- isStuck: function (component) {
24
- return false;
25
- },
26
- ABSOLUTE: true
27
- };
28
- _layout.default.register('absolute', AbsoluteLayout);
29
- var _default = exports.default = AbsoluteLayout;
30
- //# sourceMappingURL=absolute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"absolute.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","AbsoluteLayout","reflow","container","component","capturables","components","drawables","app","isViewMode","filter","c","hidden","isStuck","ABSOLUTE","Layout","register","_default","exports"],"sources":["../../src/layout/absolute.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar AbsoluteLayout = {\n reflow: function (container, component) {},\n\n capturables: function (container) {\n return container.components\n },\n\n drawables: function (container) {\n if (!container.app.isViewMode) return container.components\n return container.components.filter(c => !c.hidden)\n },\n\n isStuck: function (component) {\n return false\n },\n\n ABSOLUTE: true\n}\n\nLayout.register('absolute', AbsoluteLayout)\n\nexport default AbsoluteLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA;AACA,IAAIG,cAAc,GAAG;EACnBC,MAAM,EAAE,SAAAA,CAAUC,SAAS,EAAEC,SAAS,EAAE,CAAC,CAAC;EAE1CC,WAAW,EAAE,SAAAA,CAAUF,SAAS,EAAE;IAChC,OAAOA,SAAS,CAACG,UAAU;EAC7B,CAAC;EAEDC,SAAS,EAAE,SAAAA,CAAUJ,SAAS,EAAE;IAC9B,IAAI,CAACA,SAAS,CAACK,GAAG,CAACC,UAAU,EAAE,OAAON,SAAS,CAACG,UAAU;IAC1D,OAAOH,SAAS,CAACG,UAAU,CAACI,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EACpD,CAAC;EAEDC,OAAO,EAAE,SAAAA,CAAUT,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd,CAAC;EAEDU,QAAQ,EAAE;AACZ,CAAC;AAEDC,eAAM,CAACC,QAAQ,CAAC,UAAU,EAAEf,cAAc,CAAC;AAAA,IAAAgB,QAAA,GAAAC,OAAA,CAAAlB,OAAA,GAE5BC,cAAc","ignoreList":[]}
@@ -1,52 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _layout = _interopRequireDefault(require("./layout.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- function getActiveArrayFromContainer(container) {
14
- var components = container.components.filter(c => !c.hidden);
15
- var config = container.getState('layoutConfig') || {};
16
- var active = components[config && config.activeIndex || 0];
17
- return active && [active] || [];
18
- }
19
-
20
- /* 대상 컴포넌트의 bounds를 계산한다. */
21
- var CardLayout = {
22
- reflow: function (container) {
23
- var container_bounds = container.bounds;
24
- var config = container.getState('layoutConfig') || {};
25
- var bounds = {
26
- left: 0,
27
- top: 0,
28
- width: container_bounds.width,
29
- height: container_bounds.height
30
- };
31
- container.forEach((component, i) => {
32
- let hidden = i != (config.activeIndex || 0);
33
- component.bounds = bounds;
34
- component.setState('rotation', 0);
35
- if (component.element) {
36
- component.element.style.visibility = hidden ? 'hidden' : 'visible';
37
- }
38
- });
39
- },
40
- capturables: function (container) {
41
- return getActiveArrayFromContainer(container);
42
- },
43
- drawables: function (container) {
44
- return getActiveArrayFromContainer(container);
45
- },
46
- isStuck: function (component) {
47
- return true;
48
- }
49
- };
50
- _layout.default.register('card', CardLayout);
51
- var _default = exports.default = CardLayout;
52
- //# sourceMappingURL=card.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"card.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","getActiveArrayFromContainer","container","components","filter","c","hidden","config","getState","active","activeIndex","CardLayout","reflow","container_bounds","bounds","left","top","width","height","forEach","component","i","setState","element","style","visibility","capturables","drawables","isStuck","Layout","register","_default","exports"],"sources":["../../src/layout/card.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\nfunction getActiveArrayFromContainer(container) {\n var components = container.components.filter(c => !c.hidden)\n var config = container.getState('layoutConfig') || {}\n\n var active = components[(config && config.activeIndex) || 0]\n\n return (active && [active]) || []\n}\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar CardLayout = {\n reflow: function (container) {\n var container_bounds = container.bounds\n var config = container.getState('layoutConfig') || {}\n\n var bounds = {\n left: 0,\n top: 0,\n width: container_bounds.width,\n height: container_bounds.height\n }\n\n container.forEach((component, i) => {\n let hidden = i != (config.activeIndex || 0)\n component.bounds = bounds\n component.setState('rotation', 0)\n if (component.element) {\n component.element.style.visibility = hidden ? 'hidden' : 'visible'\n }\n })\n },\n\n capturables: function (container) {\n return getActiveArrayFromContainer(container)\n },\n\n drawables: function (container) {\n return getActiveArrayFromContainer(container)\n },\n\n isStuck: function (component) {\n return true\n }\n}\n\nLayout.register('card', CardLayout)\n\nexport default CardLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA,SAASG,2BAA2BA,CAACC,SAAS,EAAE;EAC9C,IAAIC,UAAU,GAAGD,SAAS,CAACC,UAAU,CAACC,MAAM,CAACC,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EAC5D,IAAIC,MAAM,GAAGL,SAAS,CAACM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;EAErD,IAAIC,MAAM,GAAGN,UAAU,CAAEI,MAAM,IAAIA,MAAM,CAACG,WAAW,IAAK,CAAC,CAAC;EAE5D,OAAQD,MAAM,IAAI,CAACA,MAAM,CAAC,IAAK,EAAE;AACnC;;AAEA;AACA,IAAIE,UAAU,GAAG;EACfC,MAAM,EAAE,SAAAA,CAAUV,SAAS,EAAE;IAC3B,IAAIW,gBAAgB,GAAGX,SAAS,CAACY,MAAM;IACvC,IAAIP,MAAM,GAAGL,SAAS,CAACM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAErD,IAAIM,MAAM,GAAG;MACXC,IAAI,EAAE,CAAC;MACPC,GAAG,EAAE,CAAC;MACNC,KAAK,EAAEJ,gBAAgB,CAACI,KAAK;MAC7BC,MAAM,EAAEL,gBAAgB,CAACK;IAC3B,CAAC;IAEDhB,SAAS,CAACiB,OAAO,CAAC,CAACC,SAAS,EAAEC,CAAC,KAAK;MAClC,IAAIf,MAAM,GAAGe,CAAC,KAAKd,MAAM,CAACG,WAAW,IAAI,CAAC,CAAC;MAC3CU,SAAS,CAACN,MAAM,GAAGA,MAAM;MACzBM,SAAS,CAACE,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;MACjC,IAAIF,SAAS,CAACG,OAAO,EAAE;QACrBH,SAAS,CAACG,OAAO,CAACC,KAAK,CAACC,UAAU,GAAGnB,MAAM,GAAG,QAAQ,GAAG,SAAS;MACpE;IACF,CAAC,CAAC;EACJ,CAAC;EAEDoB,WAAW,EAAE,SAAAA,CAAUxB,SAAS,EAAE;IAChC,OAAOD,2BAA2B,CAACC,SAAS,CAAC;EAC/C,CAAC;EAEDyB,SAAS,EAAE,SAAAA,CAAUzB,SAAS,EAAE;IAC9B,OAAOD,2BAA2B,CAACC,SAAS,CAAC;EAC/C,CAAC;EAED0B,OAAO,EAAE,SAAAA,CAAUR,SAAS,EAAE;IAC5B,OAAO,IAAI;EACb;AACF,CAAC;AAEDS,eAAM,CAACC,QAAQ,CAAC,MAAM,EAAEnB,UAAU,CAAC;AAAA,IAAAoB,QAAA,GAAAC,OAAA,CAAAhC,OAAA,GAEpBW,UAAU","ignoreList":[]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _layout = _interopRequireDefault(require("./layout.js"));
8
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
- /*
10
- * Copyright © HatioLab Inc. All rights reserved.
11
- */
12
-
13
- /* 대상 컴포넌트의 bounds를 계산한다. */
14
- var HTMLAbsoluteLayout = {
15
- reflow: function (container, component) {
16
- var components = this.drawables(container);
17
- components.filter(component => component.isHTMLElement()).forEach(component => component.reposition());
18
- },
19
- capturables: function (container) {
20
- return container.components;
21
- },
22
- drawables: function (container) {
23
- return container.app && !container.app.isViewMode ? container.components : container.components.filter(c => !c.hidden);
24
- },
25
- isStuck: function (component) {
26
- return false;
27
- },
28
- ABSOLUTE: true
29
- };
30
- _layout.default.register('html-absolute', HTMLAbsoluteLayout);
31
- var _default = exports.default = HTMLAbsoluteLayout;
32
- //# sourceMappingURL=html-absolute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"html-absolute.js","names":["_layout","_interopRequireDefault","require","e","__esModule","default","HTMLAbsoluteLayout","reflow","container","component","components","drawables","filter","isHTMLElement","forEach","reposition","capturables","app","isViewMode","c","hidden","isStuck","ABSOLUTE","Layout","register","_default","exports"],"sources":["../../src/layout/html-absolute.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Layout from './layout.js'\n\n/* 대상 컴포넌트의 bounds를 계산한다. */\nvar HTMLAbsoluteLayout = {\n reflow: function (container, component) {\n var components = this.drawables(container)\n\n components.filter(component => component.isHTMLElement()).forEach(component => component.reposition())\n },\n\n capturables: function (container) {\n return container.components\n },\n\n drawables: function (container) {\n return container.app && !container.app.isViewMode\n ? container.components\n : container.components.filter(c => !c.hidden)\n },\n\n isStuck: function (component) {\n return false\n },\n\n ABSOLUTE: true\n}\n\nLayout.register('html-absolute', HTMLAbsoluteLayout)\n\nexport default HTMLAbsoluteLayout\n"],"mappings":";;;;;;AAIA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAgC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAJhC;AACA;AACA;;AAIA;AACA,IAAIG,kBAAkB,GAAG;EACvBC,MAAM,EAAE,SAAAA,CAAUC,SAAS,EAAEC,SAAS,EAAE;IACtC,IAAIC,UAAU,GAAG,IAAI,CAACC,SAAS,CAACH,SAAS,CAAC;IAE1CE,UAAU,CAACE,MAAM,CAACH,SAAS,IAAIA,SAAS,CAACI,aAAa,CAAC,CAAC,CAAC,CAACC,OAAO,CAACL,SAAS,IAAIA,SAAS,CAACM,UAAU,CAAC,CAAC,CAAC;EACxG,CAAC;EAEDC,WAAW,EAAE,SAAAA,CAAUR,SAAS,EAAE;IAChC,OAAOA,SAAS,CAACE,UAAU;EAC7B,CAAC;EAEDC,SAAS,EAAE,SAAAA,CAAUH,SAAS,EAAE;IAC9B,OAAOA,SAAS,CAACS,GAAG,IAAI,CAACT,SAAS,CAACS,GAAG,CAACC,UAAU,GAC7CV,SAAS,CAACE,UAAU,GACpBF,SAAS,CAACE,UAAU,CAACE,MAAM,CAACO,CAAC,IAAI,CAACA,CAAC,CAACC,MAAM,CAAC;EACjD,CAAC;EAEDC,OAAO,EAAE,SAAAA,CAAUZ,SAAS,EAAE;IAC5B,OAAO,KAAK;EACd,CAAC;EAEDa,QAAQ,EAAE;AACZ,CAAC;AAEDC,eAAM,CAACC,QAAQ,CAAC,eAAe,EAAElB,kBAAkB,CAAC;AAAA,IAAAmB,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAErCC,kBAAkB","ignoreList":[]}