@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,465 +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 _infoWindow = _interopRequireDefault(require("../components/info-window.js"));
9
- var _htmlAbsolute = _interopRequireDefault(require("../layout/html-absolute.js"));
10
- var Emphasize = _interopRequireWildcard(require("./action/emphasize.js"));
11
- var _popup = _interopRequireDefault(require("./action/popup.js"));
12
- var Pressed = _interopRequireWildcard(require("./action/pressed.js"));
13
- var _layer = _interopRequireDefault(require("./layer.js"));
14
- 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); }
15
- 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; }
16
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
17
- /*
18
- * Copyright © HatioLab Inc. All rights reserved.
19
- */
20
-
21
- const SCALE_DEFAULT = {
22
- x: 1,
23
- y: 1
24
- };
25
- const TRANSLATE_DEFAULT = {
26
- x: 0,
27
- y: 0
28
- };
29
- class ModelLayer extends _layer.default {
30
- dispose() {
31
- super.dispose();
32
- delete this._canvas;
33
- delete this._overlay;
34
- }
35
- contains(x, y) {
36
- return true;
37
- }
38
- isRootModel() {
39
- return true;
40
- }
41
- get stuck() {
42
- return true;
43
- }
44
- get layout() {
45
- /* reflow 시 하위 html-component들의 reposition을 수행하도록 함. */
46
- return _htmlAbsolute.default;
47
- }
48
- get overlay() {
49
- if (!this._overlay) {
50
- var overlay = document.createElement('div');
51
- overlay.style.position = 'absolute';
52
- overlay.style.width = 0;
53
- overlay.style.height = 0;
54
- overlay.style.overflow = 'initial';
55
- overlay.style['user-select'] = 'none';
56
- overlay.style['transform-origin'] = 'top left';
57
- this.element && this.element.appendChild(overlay);
58
- this._overlay = overlay;
59
- this._repositionOverlay();
60
- }
61
- return this._overlay;
62
- }
63
- createElement() {
64
- var anchor = document.createElement('div');
65
- anchor.style.position = 'absolute';
66
- anchor.setAttribute('scene', this.state.type);
67
- anchor.style['user-select'] = 'none';
68
- anchor.style.overflow = 'hidden';
69
- this._canvas = _component.default.createCanvas(1, 1);
70
- this._canvas.style.position = 'absolute';
71
- anchor.appendChild(this._canvas);
72
- if (this._overlay) anchor.appendChild(this._overlay);
73
- return anchor;
74
- }
75
- resize() {
76
- if (!this.target) {
77
- return;
78
- }
79
- var {
80
- width: modelWidth,
81
- height: modelHeight,
82
- fitMode
83
- } = this.model;
84
- if (this.root.fitMode) {
85
- fitMode = this.root.fitMode;
86
- } else if (!fitMode) {
87
- fitMode = 'ratio';
88
- }
89
- try {
90
- var style = getComputedStyle(this.target);
91
- } catch (e) {
92
- console.error(e, this.target);
93
- return;
94
- }
95
- var width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth;
96
- var height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight;
97
- switch (fitMode) {
98
- case 'both':
99
- case 'ratio':
100
- // width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth
101
- // height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight
102
- break;
103
- case 'width':
104
- // width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth
105
- height = modelHeight * width / modelWidth;
106
- break;
107
- case 'height':
108
- // height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight
109
- width = modelWidth * height / modelHeight;
110
- break;
111
- case 'center':
112
- case 'none':
113
- default:
114
- width = Math.max(modelWidth, width);
115
- height = Math.max(modelHeight, height);
116
- }
117
- this.fitSize(this.canvas, true, width, height);
118
- switch (fitMode) {
119
- case 'ratio':
120
- case 'both':
121
- break;
122
- case 'width':
123
- this.element.style.overflowX = 'hidden';
124
- this.element.style.overflowY = 'auto';
125
- break;
126
- case 'height':
127
- this.element.style.overflowX = 'auto';
128
- this.element.style.overflowY = 'hidden';
129
- break;
130
- case 'center':
131
- case 'none':
132
- default:
133
- this.element.style.overflowX = width > modelWidth ? 'hidden' : 'auto';
134
- this.element.style.overflowY = height > modelHeight ? 'hidden' : 'auto';
135
- }
136
-
137
- /* element는 항상 부모의 크기에 맞춘다. */
138
- this.fitSize(this.element, true);
139
- }
140
- get canvas() {
141
- return this._canvas;
142
- }
143
-
144
- /* Pixel하나가 차지하는 길이의 값 환산 */
145
- get MPP() {
146
- var {
147
- scale = {
148
- x: 1,
149
- y: 1
150
- },
151
- unit
152
- } = this.model;
153
- switch (unit) {
154
- case 'mm':
155
- case 'cm':
156
- return 1 / this.app.PPM / scale.x;
157
- case 'in':
158
- return 1 / this.app.PPI / scale.x;
159
- case 'px':
160
- default:
161
- return 1 / scale.x;
162
- }
163
- }
164
-
165
- /*
166
- * capturePath(path) 파라미터로 주어진 path를 포함하는 컨테이너를 찾는다.
167
- * @path
168
- * @excepts 컨테이너를 찾을 때 제외되는 대상이다.
169
- */
170
-
171
- capturePath(path, excepts) {
172
- var capturables = this.layout.capturables(this);
173
- for (let i = capturables.length - 1; i >= 0; i--) {
174
- let capturable = capturables[i];
175
- if (!capturable.isContainer()) continue;
176
- let found = capturable.capturePath(path, excepts);
177
- if (found) return found;
178
- }
179
- return false;
180
- }
181
- get eventMap() {
182
- return {
183
- '(self)': {
184
- '(all)': {
185
- change: this._onchanged_all,
186
- mouseenter: this._onmouseenter_all,
187
- mouseleave: this._onmouseleave_all,
188
- click: this._onclick,
189
- mousedown: this._onmousedownup,
190
- mouseup: this._onmousedownup,
191
- touchstart: this._onmousedownup,
192
- touchend: this._onmousedownup
193
- }
194
- }
195
- };
196
- }
197
- closeScene(data) {
198
- requestAnimationFrame(() => this.overlay.dispatchEvent(new CustomEvent('close-scene', {
199
- bubbles: true,
200
- composed: true,
201
- detail: data
202
- })));
203
- }
204
- _repositionOverlay() {
205
- var overlay = this._overlay;
206
- if (!overlay) return;
207
- var {
208
- translate = TRANSLATE_DEFAULT,
209
- scale = SCALE_DEFAULT,
210
- rotation = 0
211
- } = this.model;
212
- var {
213
- left,
214
- top,
215
- width,
216
- height
217
- } = this.bounds;
218
- overlay.style.left = left + 'px';
219
- overlay.style.top = top + 'px';
220
- /*
221
- * overlay가 마우스 이벤트를 받게되면, scale이 반영되지 않은 좌표로 이벤트가 발생하므로,
222
- * 마우스 이벤트를 직접 받지 못하도록 크기를 0로 유지한다.
223
- */
224
- // overlay.style['user-select'] = 'none';
225
- // overlay.style.width = 0 + 'px';
226
- // overlay.style.height = 0 + 'px';
227
-
228
- /* CONFIRM-ME `transform: perspective(1px)` 스타일 설정은 scaling된 dom element를 좀 더 선명하게 보이도록 해준다. (Chrome 브라우저에서) */
229
- overlay.style.transform = `rotate(${rotation}rad) scale(${scale.x}, ${scale.y}) perspective(1px)`;
230
- overlay.style.marginLeft = `${translate.x}px`;
231
- overlay.style.marginTop = `${translate.y}px`;
232
- }
233
- onchange(after) {
234
- // Root Component는 id, class, text 속성을 가지지 않는다.
235
- var model = this._model;
236
- delete model.id;
237
- delete model.text;
238
- delete model.class;
239
- this._repositionOverlay();
240
- }
241
- _onchanged_all(after, before, hint) {
242
- this.invalidate();
243
- }
244
- _onmouseenter_all(event, hint) {
245
- event.stopPropagation();
246
- if (!this.app || this.app.isEditMode) return;
247
- if (!hint) return;
248
- var source = hint.origin;
249
-
250
- // model-layer는 hover event를 처리하지 않는다.
251
- if (source instanceof ModelLayer || !source.model.event || !source.model.event.hover) return;
252
- if (source.hidden) return;
253
- var hoverEvtModel = source.model.event.hover;
254
- hoverEvtModel && this._doEventAction(hoverEvtModel, source, true, event);
255
- }
256
- _onmouseleave_all(event, hint) {
257
- event.stopPropagation();
258
- if (!hint) {
259
- return;
260
- }
261
- var source = hint.origin;
262
- if (!this.app || this.app.isEditMode) {
263
- return;
264
- }
265
- var hoverEvtModel = source.model.event && source.model.event.hover;
266
- hoverEvtModel && this._doEventAction(hoverEvtModel, source, false, event);
267
- }
268
- _onclick(event, hint) {
269
- event.stopPropagation();
270
- if (this.app.isEditMode) return;
271
- if (!hint) return;
272
- var source = hint.origin;
273
- var tapEvtModel = source.model.event?.tap;
274
- tapEvtModel && this._doEventAction(tapEvtModel, source, true, event);
275
- }
276
- _onmousedownup(event, hint) {
277
- event.stopPropagation();
278
- if (this.app.isEditMode) return;
279
- if (!hint) return;
280
- var source = hint.origin;
281
- var tapEvtModel = source.model.event?.tap;
282
- tapEvtModel && tapEvtModel.pressed && this._doMouseDownUpEventAction(tapEvtModel, source, event.type == 'mousedown' || event.type == 'touchstart', event);
283
- }
284
- _doMouseDownUpEventAction(event, component, enter, org_event) {
285
- var {
286
- pressed = false
287
- } = event;
288
- if (!pressed) {
289
- return;
290
- }
291
- if (enter) {
292
- Pressed.pressed(component);
293
- } else {
294
- Pressed.normalize(component);
295
- }
296
- }
297
- _doEventAction(event, component, enter, org_event) {
298
- var {
299
- action,
300
- target,
301
- value,
302
- emphasize = false,
303
- restore = false,
304
- pressed = false,
305
- options
306
- } = event;
307
- if (target) {
308
- target = component.access(target);
309
- }
310
- if (value) {
311
- value = component.access(value);
312
- }
313
- if (emphasize) {
314
- if (enter) {
315
- Emphasize.emphasize(component);
316
- } else if (restore) {
317
- Emphasize.normalize(component);
318
- }
319
- }
320
- if (!action) return;
321
- switch (action) {
322
- case 'data-toggle':
323
- if (!target) return;
324
- (enter || restore) && this.root.findAll(target, component).forEach(component => {
325
- component.data = !component.data;
326
- });
327
- break;
328
- case 'data-tristate':
329
- if (!target) return;
330
- (enter || restore) && this.root.findAll(target, component).forEach(component => {
331
- let number = Math.round(Math.max(Number(component.data) || 0, 0));
332
- component.data = (number + (enter ? 1 : 2)) % 3;
333
- });
334
- break;
335
- case 'data-spreading':
336
- if (!target) return;
337
- if (enter) {
338
- var data = component.access(value);
339
- this.root.findAll(target, component).forEach(comp => {
340
- comp.executeMappings(true);
341
- });
342
- }
343
- break;
344
- case 'data-set':
345
- if (!target) return;
346
- if (enter) {
347
- var data = component.access(value);
348
- this.root.findAll(target, component).forEach(comp => {
349
- comp.data = data;
350
- });
351
- } else if (restore) {
352
- // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.
353
- // data-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.
354
- }
355
- break;
356
- case 'partial-data-set':
357
- if (!target) return;
358
- if (enter) {
359
- var data = component.access(value);
360
- this.root.findAll(target, component).forEach(comp => {
361
- comp.data = {
362
- ...comp.data,
363
- ...data
364
- };
365
- });
366
- } else if (restore) {
367
- // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.
368
- // data-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.
369
- }
370
- break;
371
- case 'value-set':
372
- if (!target) return;
373
- if (enter) {
374
- var data = component.access(value);
375
- this.root.findAll(target, component).forEach(comp => {
376
- comp.value = data;
377
- });
378
- } else if (restore) {
379
- // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.
380
- // value-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.
381
- }
382
- break;
383
- case 'partial-value-set':
384
- if (!target) return;
385
- if (enter) {
386
- var data = component.access(value);
387
- this.root.findAll(target, component).forEach(comp => {
388
- comp.value = {
389
- ...comp.value,
390
- ...data
391
- };
392
- });
393
- } else if (restore) {
394
- // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.
395
- // value-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.
396
- }
397
- break;
398
- case 'infoWindow':
399
- case 'info-window':
400
- if (!target) return;
401
- if (org_event.type == 'click') {
402
- _infoWindow.default.show(component, target, restore /* close button */, {
403
- x: org_event.offsetX,
404
- y: org_event.offsetY
405
- });
406
- } else {
407
- if (enter) {
408
- _infoWindow.default.show(component, target, restore /* auto close - no close button */, {
409
- x: org_event.offsetX,
410
- y: org_event.offsetY
411
- });
412
- } else if (restore) {
413
- _infoWindow.default.hide(component, target);
414
- }
415
- }
416
- break;
417
- case 'toggle-info-window':
418
- if (!target) return;
419
- _infoWindow.default.toggle(component, target, false, {
420
- x: org_event.offsetX,
421
- y: org_event.offsetY
422
- });
423
- break;
424
- case 'popup':
425
- case 'modal-popup':
426
- if (!target) return;
427
-
428
- /*
429
- For backward compatibility,
430
- if the option is not set, it is assumed that the component's own data is input and the result output is received.
431
- */
432
- let input = !options ? '(self)' : 'input' in options ? options.input : '(self)';
433
- let output = !options ? true : 'output' in options ? options.output : true;
434
-
435
- // for things-scene model version >= 1.1
436
- _popup.default.show(component, target, {
437
- data: input && this.root.findFirst(input, component)?.data,
438
- output /* boolean - specifies whether to receive a return value from the popup or not. */,
439
- modal: action === 'modal-popup'
440
- });
441
- break;
442
- case 'close-scene':
443
- this.closeScene(component.data);
444
- break;
445
- case 'goto':
446
- case 'goto-playlist':
447
- this.trigger(action, target, options, component);
448
- break;
449
- case 'mouse-cursor':
450
- if (enter) {
451
- this.target.style.cursor = target || 'auto';
452
- } else if (restore) {
453
- /* stack 기능은 지원되지 않는다. */
454
- this.target.style.cursor = 'auto';
455
- }
456
- break;
457
- default:
458
- this.trigger(action, target, value, component);
459
- }
460
- }
461
- }
462
- exports.default = ModelLayer;
463
- ModelLayer.Popup = _popup.default;
464
- _component.default.register('model-layer', ModelLayer);
465
- //# sourceMappingURL=model-layer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-layer.js","names":["_component","_interopRequireDefault","require","_infoWindow","_htmlAbsolute","Emphasize","_interopRequireWildcard","_popup","Pressed","_layer","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SCALE_DEFAULT","x","y","TRANSLATE_DEFAULT","ModelLayer","Layer","dispose","_canvas","_overlay","contains","isRootModel","stuck","layout","HTMLAbsoluteLayout","overlay","document","createElement","style","position","width","height","overflow","element","appendChild","_repositionOverlay","anchor","setAttribute","state","type","Component","createCanvas","resize","target","modelWidth","modelHeight","fitMode","model","root","getComputedStyle","console","error","parseFloat","getPropertyValue","clientWidth","clientHeight","Math","max","fitSize","canvas","overflowX","overflowY","MPP","scale","unit","app","PPM","PPI","capturePath","path","excepts","capturables","length","capturable","isContainer","found","eventMap","change","_onchanged_all","mouseenter","_onmouseenter_all","mouseleave","_onmouseleave_all","click","_onclick","mousedown","_onmousedownup","mouseup","touchstart","touchend","closeScene","data","requestAnimationFrame","dispatchEvent","CustomEvent","bubbles","composed","detail","translate","rotation","left","top","bounds","transform","marginLeft","marginTop","onchange","after","_model","id","text","class","before","hint","invalidate","event","stopPropagation","isEditMode","source","origin","hover","hidden","hoverEvtModel","_doEventAction","tapEvtModel","tap","pressed","_doMouseDownUpEventAction","component","enter","org_event","normalize","action","value","emphasize","restore","options","access","findAll","forEach","number","round","Number","comp","executeMappings","InfoWindow","show","offsetX","offsetY","hide","toggle","input","output","ScenePopup","findFirst","modal","trigger","cursor","exports","Popup","register"],"sources":["../../src/layer/model-layer.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component.js'\nimport InfoWindow from '../components/info-window.js'\nimport HTMLAbsoluteLayout from '../layout/html-absolute.js'\nimport * as Emphasize from './action/emphasize.js'\nimport ScenePopup from './action/popup.js'\nimport * as Pressed from './action/pressed.js'\nimport Layer from './layer.js'\n\nconst SCALE_DEFAULT = { x: 1, y: 1 }\nconst TRANSLATE_DEFAULT = { x: 0, y: 0 }\n\nexport default class ModelLayer extends Layer {\n dispose() {\n super.dispose()\n\n delete this._canvas\n delete this._overlay\n }\n\n contains(x, y) {\n return true\n }\n\n isRootModel() {\n return true\n }\n\n get stuck() {\n return true\n }\n\n get layout() {\n /* reflow 시 하위 html-component들의 reposition을 수행하도록 함. */\n return HTMLAbsoluteLayout\n }\n\n get overlay() {\n if (!this._overlay) {\n var overlay = document.createElement('div')\n overlay.style.position = 'absolute'\n overlay.style.width = 0\n overlay.style.height = 0\n overlay.style.overflow = 'initial'\n\n overlay.style['user-select'] = 'none'\n overlay.style['transform-origin'] = 'top left'\n\n this.element && this.element.appendChild(overlay)\n this._overlay = overlay\n this._repositionOverlay()\n }\n\n return this._overlay\n }\n\n createElement() {\n var anchor = document.createElement('div')\n anchor.style.position = 'absolute'\n anchor.setAttribute('scene', this.state.type)\n\n anchor.style['user-select'] = 'none'\n anchor.style.overflow = 'hidden'\n\n this._canvas = Component.createCanvas(1, 1)\n\n this._canvas.style.position = 'absolute'\n anchor.appendChild(this._canvas)\n\n if (this._overlay) anchor.appendChild(this._overlay)\n\n return anchor\n }\n\n resize() {\n if (!this.target) {\n return\n }\n\n var { width: modelWidth, height: modelHeight, fitMode } = this.model\n\n if (this.root.fitMode) {\n fitMode = this.root.fitMode\n } else if (!fitMode) {\n fitMode = 'ratio'\n }\n\n try {\n var style = getComputedStyle(this.target)\n } catch (e) {\n console.error(e, this.target)\n return\n }\n var width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth\n var height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight\n\n switch (fitMode) {\n case 'both':\n case 'ratio':\n // width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth\n // height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight\n break\n case 'width':\n // width = style ? parseFloat(style.getPropertyValue('width')) : this.target.clientWidth\n height = (modelHeight * width) / modelWidth\n break\n case 'height':\n // height = style ? parseFloat(style.getPropertyValue('height')) : this.target.clientHeight\n width = (modelWidth * height) / modelHeight\n break\n case 'center':\n case 'none':\n default:\n width = Math.max(modelWidth, width)\n height = Math.max(modelHeight, height)\n }\n\n this.fitSize(this.canvas, true, width, height)\n\n switch (fitMode) {\n case 'ratio':\n case 'both':\n break\n case 'width':\n this.element.style.overflowX = 'hidden'\n this.element.style.overflowY = 'auto'\n break\n case 'height':\n this.element.style.overflowX = 'auto'\n this.element.style.overflowY = 'hidden'\n break\n case 'center':\n case 'none':\n default:\n this.element.style.overflowX = width > modelWidth ? 'hidden' : 'auto'\n this.element.style.overflowY = height > modelHeight ? 'hidden' : 'auto'\n }\n\n /* element는 항상 부모의 크기에 맞춘다. */\n this.fitSize(this.element, true)\n }\n\n get canvas() {\n return this._canvas\n }\n\n /* Pixel하나가 차지하는 길이의 값 환산 */\n get MPP() {\n var { scale = { x: 1, y: 1 }, unit } = this.model\n\n switch (unit) {\n case 'mm':\n case 'cm':\n return 1 / this.app.PPM / scale.x\n case 'in':\n return 1 / this.app.PPI / scale.x\n case 'px':\n default:\n return 1 / scale.x\n }\n }\n\n /*\n * capturePath(path) 파라미터로 주어진 path를 포함하는 컨테이너를 찾는다.\n * @path\n * @excepts 컨테이너를 찾을 때 제외되는 대상이다.\n */\n\n capturePath(path, excepts) {\n var capturables = this.layout.capturables(this)\n\n for (let i = capturables.length - 1; i >= 0; i--) {\n let capturable = capturables[i]\n if (!capturable.isContainer()) continue\n\n let found = capturable.capturePath(path, excepts)\n if (found) return found\n }\n\n return false\n }\n\n get eventMap() {\n return {\n '(self)': {\n '(all)': {\n change: this._onchanged_all,\n mouseenter: this._onmouseenter_all,\n mouseleave: this._onmouseleave_all,\n click: this._onclick,\n mousedown: this._onmousedownup,\n mouseup: this._onmousedownup,\n touchstart: this._onmousedownup,\n touchend: this._onmousedownup\n }\n }\n }\n }\n\n closeScene(data) {\n requestAnimationFrame(() =>\n this.overlay.dispatchEvent(\n new CustomEvent('close-scene', {\n bubbles: true,\n composed: true,\n detail: data\n })\n )\n )\n }\n\n _repositionOverlay() {\n var overlay = this._overlay\n\n if (!overlay) return\n\n var { translate = TRANSLATE_DEFAULT, scale = SCALE_DEFAULT, rotation = 0 } = this.model\n\n var { left, top, width, height } = this.bounds\n\n overlay.style.left = left + 'px'\n overlay.style.top = top + 'px'\n /*\n * overlay가 마우스 이벤트를 받게되면, scale이 반영되지 않은 좌표로 이벤트가 발생하므로,\n * 마우스 이벤트를 직접 받지 못하도록 크기를 0로 유지한다.\n */\n // overlay.style['user-select'] = 'none';\n // overlay.style.width = 0 + 'px';\n // overlay.style.height = 0 + 'px';\n\n /* CONFIRM-ME `transform: perspective(1px)` 스타일 설정은 scaling된 dom element를 좀 더 선명하게 보이도록 해준다. (Chrome 브라우저에서) */\n overlay.style.transform = `rotate(${rotation}rad) scale(${scale.x}, ${scale.y}) perspective(1px)`\n overlay.style.marginLeft = `${translate.x}px`\n overlay.style.marginTop = `${translate.y}px`\n }\n\n onchange(after) {\n // Root Component는 id, class, text 속성을 가지지 않는다.\n var model = this._model\n\n delete model.id\n delete model.text\n delete model.class\n\n this._repositionOverlay()\n }\n\n _onchanged_all(after, before, hint) {\n this.invalidate()\n }\n\n _onmouseenter_all(event, hint) {\n event.stopPropagation()\n\n if (!this.app || this.app.isEditMode) return\n\n if (!hint) return\n\n var source = hint.origin\n\n // model-layer는 hover event를 처리하지 않는다.\n if (source instanceof ModelLayer || !source.model.event || !source.model.event.hover) return\n\n if (source.hidden) return\n\n var hoverEvtModel = source.model.event.hover\n\n hoverEvtModel && this._doEventAction(hoverEvtModel, source, true, event)\n }\n\n _onmouseleave_all(event, hint) {\n event.stopPropagation()\n\n if (!hint) {\n return\n }\n\n var source = hint.origin\n\n if (!this.app || this.app.isEditMode) {\n return\n }\n\n var hoverEvtModel = source.model.event && source.model.event.hover\n\n hoverEvtModel && this._doEventAction(hoverEvtModel, source, false, event)\n }\n\n _onclick(event, hint) {\n event.stopPropagation()\n\n if (this.app.isEditMode) return\n\n if (!hint) return\n\n var source = hint.origin\n\n var tapEvtModel = source.model.event?.tap\n\n tapEvtModel && this._doEventAction(tapEvtModel, source, true, event)\n }\n\n _onmousedownup(event, hint) {\n event.stopPropagation()\n\n if (this.app.isEditMode) return\n\n if (!hint) return\n\n var source = hint.origin\n\n var tapEvtModel = source.model.event?.tap\n\n tapEvtModel &&\n tapEvtModel.pressed &&\n this._doMouseDownUpEventAction(\n tapEvtModel,\n source,\n event.type == 'mousedown' || event.type == 'touchstart',\n event\n )\n }\n\n _doMouseDownUpEventAction(event, component, enter, org_event) {\n var { pressed = false } = event\n if (!pressed) {\n return\n }\n\n if (enter) {\n Pressed.pressed(component)\n } else {\n Pressed.normalize(component)\n }\n }\n\n _doEventAction(event, component, enter, org_event) {\n var { action, target, value, emphasize = false, restore = false, pressed = false, options } = event\n\n if (target) {\n target = component.access(target)\n }\n if (value) {\n value = component.access(value)\n }\n\n if (emphasize) {\n if (enter) {\n Emphasize.emphasize(component)\n } else if (restore) {\n Emphasize.normalize(component)\n }\n }\n\n if (!action) return\n\n switch (action) {\n case 'data-toggle':\n if (!target) return\n ;(enter || restore) &&\n this.root.findAll(target, component).forEach(component => {\n component.data = !component.data\n })\n break\n\n case 'data-tristate':\n if (!target) return\n ;(enter || restore) &&\n this.root.findAll(target, component).forEach(component => {\n let number = Math.round(Math.max(Number(component.data) || 0, 0))\n component.data = (number + (enter ? 1 : 2)) % 3\n })\n break\n\n case 'data-spreading':\n if (!target) return\n\n if (enter) {\n var data = component.access(value)\n\n this.root.findAll(target, component).forEach(comp => {\n comp.executeMappings(true)\n })\n }\n break\n\n case 'data-set':\n if (!target) return\n\n if (enter) {\n var data = component.access(value)\n\n this.root.findAll(target, component).forEach(comp => {\n comp.data = data\n })\n } else if (restore) {\n // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.\n // data-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.\n }\n break\n\n case 'partial-data-set':\n if (!target) return\n\n if (enter) {\n var data = component.access(value)\n\n this.root.findAll(target, component).forEach(comp => {\n comp.data = { ...comp.data, ...data }\n })\n } else if (restore) {\n // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.\n // data-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.\n }\n break\n\n case 'value-set':\n if (!target) return\n\n if (enter) {\n var data = component.access(value)\n\n this.root.findAll(target, component).forEach(comp => {\n comp.value = data\n })\n } else if (restore) {\n // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.\n // value-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.\n }\n break\n\n case 'partial-value-set':\n if (!target) return\n\n if (enter) {\n var data = component.access(value)\n\n this.root.findAll(target, component).forEach(comp => {\n comp.value = { ...comp.value, ...data }\n })\n } else if (restore) {\n // TODO restore 설정은 leave 시점에 enter 시점의 상태로 되돌린다는 뜻이다.\n // value-set에서는 어떻게 할 것인가 ? 참고로 enter - leave 는 stack 처럼 중복될 수 있다.\n }\n break\n\n case 'infoWindow':\n case 'info-window':\n if (!target) return\n\n if (org_event.type == 'click') {\n InfoWindow.show(component, target, restore /* close button */, {\n x: org_event.offsetX,\n y: org_event.offsetY\n })\n } else {\n if (enter) {\n InfoWindow.show(component, target, restore /* auto close - no close button */, {\n x: org_event.offsetX,\n y: org_event.offsetY\n })\n } else if (restore) {\n InfoWindow.hide(component, target)\n }\n }\n break\n\n case 'toggle-info-window':\n if (!target) return\n\n InfoWindow.toggle(component, target, false, {\n x: org_event.offsetX,\n y: org_event.offsetY\n })\n break\n\n case 'popup':\n case 'modal-popup':\n if (!target) return\n\n /* \n For backward compatibility, \n if the option is not set, it is assumed that the component's own data is input and the result output is received. \n */\n let input = !options ? '(self)' : 'input' in options ? options.input : '(self)'\n let output = !options ? true : 'output' in options ? options.output : true\n\n // for things-scene model version >= 1.1\n ScenePopup.show(component, target, {\n data: input && this.root.findFirst(input, component)?.data,\n output /* boolean - specifies whether to receive a return value from the popup or not. */,\n modal: action === 'modal-popup'\n })\n break\n\n case 'close-scene':\n this.closeScene(component.data)\n break\n\n case 'goto':\n case 'goto-playlist':\n this.trigger(action, target, options, component)\n break\n\n case 'mouse-cursor':\n if (enter) {\n this.target.style.cursor = target || 'auto'\n } else if (restore) {\n /* stack 기능은 지원되지 않는다. */\n this.target.style.cursor = 'auto'\n }\n break\n\n default:\n this.trigger(action, target, value, component)\n }\n }\n}\n\nModelLayer.Popup = ScenePopup\n\nComponent.register('model-layer', ModelLayer)\n"],"mappings":"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","ignoreList":[]}