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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/babel.config.js +4 -3
  2. package/db.sqlite +0 -0
  3. package/dist/animation/animate.js +63 -0
  4. package/dist/animation/animate.js.map +1 -0
  5. package/dist/animation/animations/animation.js +122 -0
  6. package/dist/animation/animations/animation.js.map +1 -0
  7. package/dist/animation/animations/fade.js +28 -0
  8. package/dist/animation/animations/fade.js.map +1 -0
  9. package/dist/animation/animations/heartbeat.js +28 -0
  10. package/dist/animation/animations/heartbeat.js.map +1 -0
  11. package/dist/animation/animations/moving.js +24 -0
  12. package/dist/animation/animations/moving.js.map +1 -0
  13. package/dist/animation/animations/outline.js +47 -0
  14. package/dist/animation/animations/outline.js.map +1 -0
  15. package/dist/animation/animations/rotation.js +22 -0
  16. package/dist/animation/animations/rotation.js.map +1 -0
  17. package/dist/animation/animations/vibration.js +31 -0
  18. package/dist/animation/animations/vibration.js.map +1 -0
  19. package/dist/animation/compile.js +31 -0
  20. package/dist/animation/compile.js.map +1 -0
  21. package/dist/animation/delta.js +51 -0
  22. package/dist/animation/delta.js.map +1 -0
  23. package/dist/animation/index.js +14 -0
  24. package/dist/animation/index.js.map +1 -0
  25. package/dist/command/command-change.js +33 -0
  26. package/dist/command/command-change.js.map +1 -0
  27. package/dist/command/command-migrate.js +103 -0
  28. package/dist/command/command-migrate.js.map +1 -0
  29. package/dist/command/command.js +18 -0
  30. package/dist/command/command.js.map +1 -0
  31. package/dist/command/snapshot-commander.js +84 -0
  32. package/dist/command/snapshot-commander.js.map +1 -0
  33. package/dist/components/anchor/anchor.js +105 -0
  34. package/dist/components/anchor/anchor.js.map +1 -0
  35. package/dist/components/anchor/ellipse-anchors.js +53 -0
  36. package/dist/components/anchor/ellipse-anchors.js.map +1 -0
  37. package/dist/components/anchor/rect-anchors.js +53 -0
  38. package/dist/components/anchor/rect-anchors.js.map +1 -0
  39. package/dist/components/audio.js +154 -0
  40. package/dist/components/audio.js.map +1 -0
  41. package/dist/components/cloud.js +44 -0
  42. package/dist/components/cloud.js.map +1 -0
  43. package/dist/components/component.js +1086 -0
  44. package/dist/components/component.js.map +1 -0
  45. package/dist/components/container-abstract.js +387 -0
  46. package/dist/components/container-abstract.js.map +1 -0
  47. package/dist/components/container.js +331 -0
  48. package/dist/components/container.js.map +1 -0
  49. package/dist/components/data/data-mapping.js +82 -0
  50. package/dist/components/data/data-mapping.js.map +1 -0
  51. package/dist/components/data/data.js +166 -0
  52. package/dist/components/data/data.js.map +1 -0
  53. package/dist/components/data/evaluator.js +103 -0
  54. package/dist/components/data/evaluator.js.map +1 -0
  55. package/dist/components/donut.js +104 -0
  56. package/dist/components/donut.js.map +1 -0
  57. package/dist/components/drawer/draw-image-pendable.js +20 -0
  58. package/dist/components/drawer/draw-image-pendable.js.map +1 -0
  59. package/dist/components/drawer/effect.js +19 -0
  60. package/dist/components/drawer/effect.js.map +1 -0
  61. package/dist/components/drawer/fill.js +228 -0
  62. package/dist/components/drawer/fill.js.map +1 -0
  63. package/dist/components/drawer/format.js +115 -0
  64. package/dist/components/drawer/format.js.map +1 -0
  65. package/dist/components/drawer/line.js +191 -0
  66. package/dist/components/drawer/line.js.map +1 -0
  67. package/dist/components/drawer/stroke.js +62 -0
  68. package/dist/components/drawer/stroke.js.map +1 -0
  69. package/dist/components/drawer/text-wrapper.js +51 -0
  70. package/dist/components/drawer/text-wrapper.js.map +1 -0
  71. package/dist/components/drawer/text.js +269 -0
  72. package/dist/components/drawer/text.js.map +1 -0
  73. package/dist/components/ellipse.js +110 -0
  74. package/dist/components/ellipse.js.map +1 -0
  75. package/dist/components/file/ondropfile.js +19 -0
  76. package/dist/components/file/ondropfile.js.map +1 -0
  77. package/dist/components/fit/fit.js +137 -0
  78. package/dist/components/fit/fit.js.map +1 -0
  79. package/dist/components/geometry/transcoord.js +339 -0
  80. package/dist/components/geometry/transcoord.js.map +1 -0
  81. package/dist/components/geometry/union.js +35 -0
  82. package/dist/components/geometry/union.js.map +1 -0
  83. package/dist/components/gif-view.js +128 -0
  84. package/dist/components/gif-view.js.map +1 -0
  85. package/dist/components/global-ref.js +154 -0
  86. package/dist/components/global-ref.js.map +1 -0
  87. package/dist/components/group.js +171 -0
  88. package/dist/components/group.js.map +1 -0
  89. package/dist/components/html/elements.js +24 -0
  90. package/dist/components/html/elements.js.map +1 -0
  91. package/dist/components/html/fill.js +126 -0
  92. package/dist/components/html/fill.js.map +1 -0
  93. package/dist/components/html/reposition.js +119 -0
  94. package/dist/components/html/reposition.js.map +1 -0
  95. package/dist/components/html/shadow.js +24 -0
  96. package/dist/components/html/shadow.js.map +1 -0
  97. package/dist/components/html-overlay-container.js +27 -0
  98. package/dist/components/html-overlay-container.js.map +1 -0
  99. package/dist/components/html-overlay-element.js +22 -0
  100. package/dist/components/html-overlay-element.js.map +1 -0
  101. package/dist/components/image-view.js +193 -0
  102. package/dist/components/image-view.js.map +1 -0
  103. package/dist/components/index.js +231 -0
  104. package/dist/components/index.js.map +1 -0
  105. package/dist/components/info-window.js +416 -0
  106. package/dist/components/info-window.js.map +1 -0
  107. package/dist/components/line.js +374 -0
  108. package/dist/components/line.js.map +1 -0
  109. package/dist/components/local-ref.js +114 -0
  110. package/dist/components/local-ref.js.map +1 -0
  111. package/dist/components/mixins/connectable.js +128 -0
  112. package/dist/components/mixins/connectable.js.map +1 -0
  113. package/dist/components/mixins/data-source.js +34 -0
  114. package/dist/components/mixins/data-source.js.map +1 -0
  115. package/dist/components/mixins/html-element.js +107 -0
  116. package/dist/components/mixins/html-element.js.map +1 -0
  117. package/dist/components/mixins/move-handle.js +73 -0
  118. package/dist/components/mixins/move-handle.js.map +1 -0
  119. package/dist/components/mixins/rect-path.js +113 -0
  120. package/dist/components/mixins/rect-path.js.map +1 -0
  121. package/dist/components/mixins/value-holder.js +81 -0
  122. package/dist/components/mixins/value-holder.js.map +1 -0
  123. package/dist/components/mutater/bounds.js +68 -0
  124. package/dist/components/mutater/bounds.js.map +1 -0
  125. package/dist/components/mutater/path.js +73 -0
  126. package/dist/components/mutater/path.js.map +1 -0
  127. package/dist/components/ortholine.js +763 -0
  128. package/dist/components/ortholine.js.map +1 -0
  129. package/dist/components/outline/ellipse-outline.js +23 -0
  130. package/dist/components/outline/ellipse-outline.js.map +1 -0
  131. package/dist/components/outline/path-outline.js +48 -0
  132. package/dist/components/outline/path-outline.js.map +1 -0
  133. package/dist/components/path.js +49 -0
  134. package/dist/components/path.js.map +1 -0
  135. package/dist/components/polygon.js +91 -0
  136. package/dist/components/polygon.js.map +1 -0
  137. package/dist/components/polyline.js +114 -0
  138. package/dist/components/polyline.js.map +1 -0
  139. package/dist/components/popup.js +160 -0
  140. package/dist/components/popup.js.map +1 -0
  141. package/dist/components/rect.js +72 -0
  142. package/dist/components/rect.js.map +1 -0
  143. package/dist/components/retention/retention-manager.js +81 -0
  144. package/dist/components/retention/retention-manager.js.map +1 -0
  145. package/dist/components/root-container.js +519 -0
  146. package/dist/components/root-container.js.map +1 -0
  147. package/dist/components/ruler.js +103 -0
  148. package/dist/components/ruler.js.map +1 -0
  149. package/dist/components/shape.js +97 -0
  150. package/dist/components/shape.js.map +1 -0
  151. package/dist/components/star.js +103 -0
  152. package/dist/components/star.js.map +1 -0
  153. package/dist/components/text/substitutor.js +92 -0
  154. package/dist/components/text/substitutor.js.map +1 -0
  155. package/dist/components/text.js +21 -0
  156. package/dist/components/text.js.map +1 -0
  157. package/dist/components/triangle.js +92 -0
  158. package/dist/components/triangle.js.map +1 -0
  159. package/dist/const.js +71 -0
  160. package/dist/const.js.map +1 -0
  161. package/dist/core/collection.js +28 -0
  162. package/dist/core/collection.js.map +1 -0
  163. package/dist/core/debug.js +12 -0
  164. package/dist/core/debug.js.map +1 -0
  165. package/dist/core/deep-equals.js +112 -0
  166. package/dist/core/deep-equals.js.map +1 -0
  167. package/dist/core/dom-to-image.js +617 -0
  168. package/dist/core/dom-to-image.js.map +1 -0
  169. package/dist/core/event.js +205 -0
  170. package/dist/core/event.js.map +1 -0
  171. package/dist/core/index.js +21 -0
  172. package/dist/core/index.js.map +1 -0
  173. package/dist/core/list.js +87 -0
  174. package/dist/core/list.js.map +1 -0
  175. package/dist/core/logger.js +29 -0
  176. package/dist/core/logger.js.map +1 -0
  177. package/dist/core/memoize.js +40 -0
  178. package/dist/core/memoize.js.map +1 -0
  179. package/dist/core/mixin.js +26 -0
  180. package/dist/core/mixin.js.map +1 -0
  181. package/dist/core/obj-accessor.js +26 -0
  182. package/dist/core/obj-accessor.js.map +1 -0
  183. package/dist/core/reference-map.js +147 -0
  184. package/dist/core/reference-map.js.map +1 -0
  185. package/dist/core/round-rect.js +62 -0
  186. package/dist/core/round-rect.js.map +1 -0
  187. package/dist/core/safe-round.js +10 -0
  188. package/dist/core/safe-round.js.map +1 -0
  189. package/dist/core/script-loader.js +148 -0
  190. package/dist/core/script-loader.js.map +1 -0
  191. package/dist/core/snapshot-taker.js +59 -0
  192. package/dist/core/snapshot-taker.js.map +1 -0
  193. package/dist/core/stack.js +18 -0
  194. package/dist/core/stack.js.map +1 -0
  195. package/dist/core/timecapsule.js +88 -0
  196. package/dist/core/timecapsule.js.map +1 -0
  197. package/dist/core/utils.js +309 -0
  198. package/dist/core/utils.js.map +1 -0
  199. package/dist/decorator/anchors-decorator.js +53 -0
  200. package/dist/decorator/anchors-decorator.js.map +1 -0
  201. package/dist/decorator/bouncing-arrow-decorator.js +52 -0
  202. package/dist/decorator/bouncing-arrow-decorator.js.map +1 -0
  203. package/dist/decorator/data-spread-decorator.js +69 -0
  204. package/dist/decorator/data-spread-decorator.js.map +1 -0
  205. package/dist/decorator/decotag-decorator.js +33 -0
  206. package/dist/decorator/decotag-decorator.js.map +1 -0
  207. package/dist/decorator/index.js +31 -0
  208. package/dist/decorator/index.js.map +1 -0
  209. package/dist/decorator/link-decorator.js +66 -0
  210. package/dist/decorator/link-decorator.js.map +1 -0
  211. package/dist/effect/gradation.js +37 -0
  212. package/dist/effect/gradation.js.map +1 -0
  213. package/dist/effect/index.js +23 -0
  214. package/dist/effect/index.js.map +1 -0
  215. package/dist/effect/shadow.js +33 -0
  216. package/dist/effect/shadow.js.map +1 -0
  217. package/dist/effect/turn.js +25 -0
  218. package/dist/effect/turn.js.map +1 -0
  219. package/dist/event/event-engine.js +76 -0
  220. package/dist/event/event-engine.js.map +1 -0
  221. package/dist/event/event-pump.js +92 -0
  222. package/dist/event/event-pump.js.map +1 -0
  223. package/dist/event/event-tracker.js +97 -0
  224. package/dist/event/event-tracker.js.map +1 -0
  225. package/dist/event/index.js +21 -0
  226. package/dist/event/index.js.map +1 -0
  227. package/dist/event/ua-event-handler.js +453 -0
  228. package/dist/event/ua-event-handler.js.map +1 -0
  229. package/dist/event-map/animator-handler.js +225 -0
  230. package/dist/event-map/animator-handler.js.map +1 -0
  231. package/dist/event-map/animators/animated-icon.js +265 -0
  232. package/dist/event-map/animators/animated-icon.js.map +1 -0
  233. package/dist/event-map/animators/border-highlighting.js +476 -0
  234. package/dist/event-map/animators/border-highlighting.js.map +1 -0
  235. package/dist/event-map/animators/bouncing-arrow.js +226 -0
  236. package/dist/event-map/animators/bouncing-arrow.js.map +1 -0
  237. package/dist/event-map/event-map.js +36 -0
  238. package/dist/event-map/event-map.js.map +1 -0
  239. package/dist/event-map/index.js +20 -0
  240. package/dist/event-map/index.js.map +1 -0
  241. package/dist/event-map/move-handler.js +233 -0
  242. package/dist/event-map/move-handler.js.map +1 -0
  243. package/dist/event-map/paste-handler.js +176 -0
  244. package/dist/event-map/paste-handler.js.map +1 -0
  245. package/dist/event-map/shift-handler.js +55 -0
  246. package/dist/event-map/shift-handler.js.map +1 -0
  247. package/dist/event-map/text-editor-lite.js +276 -0
  248. package/dist/event-map/text-editor-lite.js.map +1 -0
  249. package/dist/event-map/zoom-handler.js +49 -0
  250. package/dist/event-map/zoom-handler.js.map +1 -0
  251. package/dist/index.js +20 -0
  252. package/dist/index.js.map +1 -0
  253. package/dist/layer/action/emphasize.js +42 -0
  254. package/dist/layer/action/emphasize.js.map +1 -0
  255. package/dist/layer/action/popup.js +461 -0
  256. package/dist/layer/action/popup.js.map +1 -0
  257. package/dist/layer/action/pressed.js +31 -0
  258. package/dist/layer/action/pressed.js.map +1 -0
  259. package/dist/layer/add-layer.js +180 -0
  260. package/dist/layer/add-layer.js.map +1 -0
  261. package/dist/layer/decotag-layer.js +121 -0
  262. package/dist/layer/decotag-layer.js.map +1 -0
  263. package/dist/layer/guide-layer.js +292 -0
  264. package/dist/layer/guide-layer.js.map +1 -0
  265. package/dist/layer/index.js +70 -0
  266. package/dist/layer/index.js.map +1 -0
  267. package/dist/layer/layer.js +230 -0
  268. package/dist/layer/layer.js.map +1 -0
  269. package/dist/layer/minimap-layer.js +84 -0
  270. package/dist/layer/minimap-layer.js.map +1 -0
  271. package/dist/layer/model-layer.js +465 -0
  272. package/dist/layer/model-layer.js.map +1 -0
  273. package/dist/layer/modeler/anchor-handler.js +193 -0
  274. package/dist/layer/modeler/anchor-handler.js.map +1 -0
  275. package/dist/layer/modeler/control-handler.js +95 -0
  276. package/dist/layer/modeler/control-handler.js.map +1 -0
  277. package/dist/layer/modeler/focus-outline.js +41 -0
  278. package/dist/layer/modeler/focus-outline.js.map +1 -0
  279. package/dist/layer/modeler/group-outline.js +30 -0
  280. package/dist/layer/modeler/group-outline.js.map +1 -0
  281. package/dist/layer/modeler/index.js +56 -0
  282. package/dist/layer/modeler/index.js.map +1 -0
  283. package/dist/layer/modeler/path-handler.js +300 -0
  284. package/dist/layer/modeler/path-handler.js.map +1 -0
  285. package/dist/layer/modeler/resizer.js +333 -0
  286. package/dist/layer/modeler/resizer.js.map +1 -0
  287. package/dist/layer/modeler/rotator.js +134 -0
  288. package/dist/layer/modeler/rotator.js.map +1 -0
  289. package/dist/layer/modeling-layer.js +491 -0
  290. package/dist/layer/modeling-layer.js.map +1 -0
  291. package/dist/layer/reaction-layer.js +111 -0
  292. package/dist/layer/reaction-layer.js.map +1 -0
  293. package/dist/layer/scroll-layer.js +191 -0
  294. package/dist/layer/scroll-layer.js.map +1 -0
  295. package/dist/layer/selection/selected-finder.js +96 -0
  296. package/dist/layer/selection/selected-finder.js.map +1 -0
  297. package/dist/layer/selection-layer.js +373 -0
  298. package/dist/layer/selection-layer.js.map +1 -0
  299. package/dist/layer/shift-layer.js +83 -0
  300. package/dist/layer/shift-layer.js.map +1 -0
  301. package/dist/layout/absolute.js +30 -0
  302. package/dist/layout/absolute.js.map +1 -0
  303. package/dist/layout/card.js +52 -0
  304. package/dist/layout/card.js.map +1 -0
  305. package/dist/layout/html-absolute.js +32 -0
  306. package/dist/layout/html-absolute.js.map +1 -0
  307. package/dist/layout/index.js +56 -0
  308. package/dist/layout/index.js.map +1 -0
  309. package/dist/layout/layout.js +36 -0
  310. package/dist/layout/layout.js.map +1 -0
  311. package/dist/layout/linear-horizontal.js +56 -0
  312. package/dist/layout/linear-horizontal.js.map +1 -0
  313. package/dist/layout/linear-vertical.js +56 -0
  314. package/dist/layout/linear-vertical.js.map +1 -0
  315. package/dist/layout/table.js +106 -0
  316. package/dist/layout/table.js.map +1 -0
  317. package/dist/license/license.js +170 -0
  318. package/dist/license/license.js.map +1 -0
  319. package/dist/model/compile.js +40 -0
  320. package/dist/model/compile.js.map +1 -0
  321. package/dist/model/duplicate.js +19 -0
  322. package/dist/model/duplicate.js.map +1 -0
  323. package/dist/model/index.js +34 -0
  324. package/dist/model/index.js.map +1 -0
  325. package/dist/model/selector.js +104 -0
  326. package/dist/model/selector.js.map +1 -0
  327. package/dist/style/compile.js +14 -0
  328. package/dist/style/compile.js.map +1 -0
  329. package/dist/style/index.js +14 -0
  330. package/dist/style/index.js.map +1 -0
  331. package/dist/things-scene/api/add-start.js +18 -0
  332. package/dist/things-scene/api/add-start.js.map +1 -0
  333. package/dist/things-scene/api/add.js +71 -0
  334. package/dist/things-scene/api/add.js.map +1 -0
  335. package/dist/things-scene/api/align.js +116 -0
  336. package/dist/things-scene/api/align.js.map +1 -0
  337. package/dist/things-scene/api/center-to.js +50 -0
  338. package/dist/things-scene/api/center-to.js.map +1 -0
  339. package/dist/things-scene/api/change.js +27 -0
  340. package/dist/things-scene/api/change.js.map +1 -0
  341. package/dist/things-scene/api/clipboard.js +45 -0
  342. package/dist/things-scene/api/clipboard.js.map +1 -0
  343. package/dist/things-scene/api/distribute.js +57 -0
  344. package/dist/things-scene/api/distribute.js.map +1 -0
  345. package/dist/things-scene/api/duplicate.js +47 -0
  346. package/dist/things-scene/api/duplicate.js.map +1 -0
  347. package/dist/things-scene/api/fullscreen.js +26 -0
  348. package/dist/things-scene/api/fullscreen.js.map +1 -0
  349. package/dist/things-scene/api/group.js +91 -0
  350. package/dist/things-scene/api/group.js.map +1 -0
  351. package/dist/things-scene/api/ids.js +28 -0
  352. package/dist/things-scene/api/ids.js.map +1 -0
  353. package/dist/things-scene/api/index.js +192 -0
  354. package/dist/things-scene/api/index.js.map +1 -0
  355. package/dist/things-scene/api/listener.js +69 -0
  356. package/dist/things-scene/api/listener.js.map +1 -0
  357. package/dist/things-scene/api/paste-start.js +27 -0
  358. package/dist/things-scene/api/paste-start.js.map +1 -0
  359. package/dist/things-scene/api/place.js +98 -0
  360. package/dist/things-scene/api/place.js.map +1 -0
  361. package/dist/things-scene/api/remove.js +57 -0
  362. package/dist/things-scene/api/remove.js.map +1 -0
  363. package/dist/things-scene/api/symmetry.js +47 -0
  364. package/dist/things-scene/api/symmetry.js.map +1 -0
  365. package/dist/things-scene/api/to-data-url.js +76 -0
  366. package/dist/things-scene/api/to-data-url.js.map +1 -0
  367. package/dist/things-scene/api/zorder.js +68 -0
  368. package/dist/things-scene/api/zorder.js.map +1 -0
  369. package/dist/things-scene/application-context.js +168 -0
  370. package/dist/things-scene/application-context.js.map +1 -0
  371. package/dist/things-scene/config.js +18 -0
  372. package/dist/things-scene/config.js.map +1 -0
  373. package/dist/things-scene/create.js +67 -0
  374. package/dist/things-scene/create.js.map +1 -0
  375. package/dist/things-scene/fps.js +26 -0
  376. package/dist/things-scene/fps.js.map +1 -0
  377. package/dist/things-scene/index.js +152 -0
  378. package/dist/things-scene/index.js.map +1 -0
  379. package/dist/things-scene/polyfill.js +111 -0
  380. package/dist/things-scene/polyfill.js.map +1 -0
  381. package/dist/things-scene/scene.js +442 -0
  382. package/dist/things-scene/scene.js.map +1 -0
  383. package/dist/things-scene/version.js +12 -0
  384. package/dist/things-scene/version.js.map +1 -0
  385. package/package.json +8 -6
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.emphasize = emphasize;
7
+ exports.normalize = normalize;
8
+ /*
9
+ * Copyright © HatioLab Inc. All rights reserved.
10
+ */
11
+
12
+ function emphasize(component) {
13
+ const {
14
+ hover
15
+ } = component.state.event || {};
16
+ const {
17
+ emphasize
18
+ } = hover || {};
19
+ if (component.hasOwnProperty('_backupStrokeStyle')) return;
20
+ if ('__backup_emphasize' in component) {
21
+ return;
22
+ }
23
+ const {
24
+ strokeStyle,
25
+ lineWidth,
26
+ fillStyle
27
+ } = component.state;
28
+ component.__backup_emphasize = {
29
+ strokeStyle,
30
+ lineWidth,
31
+ fillStyle
32
+ };
33
+ component.setState(emphasize);
34
+ }
35
+ function normalize(component) {
36
+ if (!('__backup_emphasize' in component)) {
37
+ return;
38
+ }
39
+ component.setState(component.__backup_emphasize);
40
+ delete component.__backup_emphasize;
41
+ }
42
+ //# sourceMappingURL=emphasize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emphasize.js","names":["emphasize","component","hover","state","event","hasOwnProperty","strokeStyle","lineWidth","fillStyle","__backup_emphasize","setState","normalize"],"sources":["../../../src/layer/action/emphasize.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function emphasize(component) {\n const { hover } = component.state.event || {}\n const { emphasize } = hover || {}\n\n if (component.hasOwnProperty('_backupStrokeStyle')) return\n\n if ('__backup_emphasize' in component) {\n return\n }\n\n const { strokeStyle, lineWidth, fillStyle } = component.state\n\n component.__backup_emphasize = { strokeStyle, lineWidth, fillStyle }\n component.setState(emphasize)\n}\n\nexport function normalize(component) {\n if (!('__backup_emphasize' in component)) {\n return\n }\n\n component.setState(component.__backup_emphasize)\n delete component.__backup_emphasize\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEO,SAASA,SAASA,CAACC,SAAS,EAAE;EACnC,MAAM;IAAEC;EAAM,CAAC,GAAGD,SAAS,CAACE,KAAK,CAACC,KAAK,IAAI,CAAC,CAAC;EAC7C,MAAM;IAAEJ;EAAU,CAAC,GAAGE,KAAK,IAAI,CAAC,CAAC;EAEjC,IAAID,SAAS,CAACI,cAAc,CAAC,oBAAoB,CAAC,EAAE;EAEpD,IAAI,oBAAoB,IAAIJ,SAAS,EAAE;IACrC;EACF;EAEA,MAAM;IAAEK,WAAW;IAAEC,SAAS;IAAEC;EAAU,CAAC,GAAGP,SAAS,CAACE,KAAK;EAE7DF,SAAS,CAACQ,kBAAkB,GAAG;IAAEH,WAAW;IAAEC,SAAS;IAAEC;EAAU,CAAC;EACpEP,SAAS,CAACS,QAAQ,CAACV,SAAS,CAAC;AAC/B;AAEO,SAASW,SAASA,CAACV,SAAS,EAAE;EACnC,IAAI,EAAE,oBAAoB,IAAIA,SAAS,CAAC,EAAE;IACxC;EACF;EAEAA,SAAS,CAACS,QAAQ,CAACT,SAAS,CAACQ,kBAAkB,CAAC;EAChD,OAAOR,SAAS,CAACQ,kBAAkB;AACrC","ignoreList":[]}
@@ -0,0 +1,461 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _const = require("../../const.js");
8
+ /*
9
+ * Copyright © HatioLab Inc. All rights reserved.
10
+ */
11
+
12
+ const SCENE_EVENT = ['run', 'goto', 'goto-playlist', 'link-open', 'link-move', 'route-page', 'start-scenario', 'run-scenario', 'export-data', 'import-data'];
13
+ const CENTER = 'center';
14
+ const LEFTTOP = 'left-top';
15
+ const RIGHTTOP = 'right-top';
16
+ const LEFTBOTTOM = 'left-bottom';
17
+ const RIGHTBOTTOM = 'right-bottom';
18
+ const AUTO = 'auto';
19
+ const TEMPLATE_WITH_CLOSE_TITLE = `
20
+ <div class="popup-wrap">
21
+ <div class="popup-title-bar">
22
+ <div class="popup-title"></div>
23
+ <button class="draggable-1945">drag_pan</button>
24
+ <button class="minimizable-1945">minimize</button>
25
+ <button class="closable-1945">close</button>
26
+ </div>
27
+ <div class="popup-content"></div>
28
+ </div>
29
+ `;
30
+ const TEMPLATE_WITH_CLOSE = `
31
+ <div class="popup-content">
32
+ <button class="draggable-1945">drag_pan</button>
33
+ <button class="minimizable-1945">minimize</button>
34
+ <button class="closable-1945">close</button>
35
+ </div>
36
+ `;
37
+ const POPUP_STYLE = `
38
+ .popup-title-bar {
39
+ display: flex;
40
+ align-items: center;
41
+ top: 0;
42
+ left: 0;
43
+ width: 100%;
44
+ height: 30px;
45
+ background-color: var(--md-sys-color-primary, #f1f1f1);
46
+ color: var(--md-sys-color-on-primary, black);
47
+ padding: 5px;
48
+ box-sizing: border-box;
49
+ border-bottom: 1px solid #ccc;
50
+ }
51
+
52
+ .popup-title {
53
+ flex: 1;
54
+ text-align: center;
55
+ }
56
+
57
+ button.closable-1945, button.minimizable-1945, button.draggable-1945 {
58
+ position: absolute;
59
+ display: none;
60
+ color: white;
61
+ background-color: black;
62
+ opacity: .3;
63
+ width: 20px;
64
+ height: 20px;
65
+ top: 5px;
66
+ z-index: 1;
67
+ padding: 0;
68
+ margin: 0;
69
+ border: 0px;
70
+ text-align: center;
71
+ cursor: pointer;
72
+ border-radius: 4px;
73
+ font-family: Material Symbols Outlined;
74
+ font-size: 12px;
75
+ }
76
+
77
+ button.draggable-1945 {
78
+ right: 55px;
79
+ cursor: move;
80
+ }
81
+
82
+ button.minimizable-1945 {
83
+ right: 30px;
84
+ }
85
+
86
+ button.closable-1945 {
87
+ right: 5px;
88
+ }
89
+
90
+ button.closable-1945:hover, button.minimizable-1945:hover, button.draggable-1945:hover {
91
+ opacity: .6;
92
+ }
93
+ `;
94
+ const POPUP_GAP = 20;
95
+ const FADE_DURATION = 200;
96
+ function fadeIn(element, callback) {
97
+ element.style.opacity = 0;
98
+ element.style.transform = 'scale(0)';
99
+ element.style.display = 'block';
100
+ let last = +new Date();
101
+ const tick = () => {
102
+ const progress = Math.min((new Date() - last) / FADE_DURATION, 1);
103
+ element.style.opacity = progress;
104
+ element.style.transform = `scale(${progress})`;
105
+ if (progress < 1) {
106
+ requestAnimationFrame(tick);
107
+ } else if (callback) {
108
+ callback();
109
+ }
110
+ };
111
+ tick();
112
+ }
113
+ function fadeOut(element, callback) {
114
+ element.style.opacity = 1;
115
+ element.style.transform = 'scale(1)';
116
+ let last = +new Date();
117
+ const tick = () => {
118
+ const progress = Math.min((new Date() - last) / FADE_DURATION, 1);
119
+ element.style.opacity = 1 - progress;
120
+ element.style.transform = `scale(${1 - progress})`;
121
+ if (progress < 1) {
122
+ requestAnimationFrame(tick);
123
+ } else {
124
+ element.style.display = 'none';
125
+ if (callback) callback();
126
+ }
127
+ };
128
+ tick();
129
+ }
130
+ function makeDraggable(element, handle, component) {
131
+ let startX, startY, initialX, initialY;
132
+ handle.addEventListener('mousedown', e => {
133
+ e.preventDefault();
134
+ e.stopPropagation();
135
+ startX = e.clientX;
136
+ startY = e.clientY;
137
+ initialX = parseInt(element.style.left, 10) || 0;
138
+ initialY = parseInt(element.style.top, 10) || 0;
139
+ function onMouseMove(e) {
140
+ e.preventDefault();
141
+ e.stopPropagation();
142
+ const dx = e.clientX - startX;
143
+ const dy = e.clientY - startY;
144
+ const transform = component.rootModel.overlay.style.transform;
145
+ const scaleMatch = transform.match(/scale\(([^,]+),\s*([^)]+)\)/);
146
+ const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1;
147
+ const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx;
148
+ element.style.left = `${initialX + dx / sx}px`;
149
+ element.style.top = `${initialY + dy / sy}px`;
150
+ }
151
+ function onMouseUp(e) {
152
+ e.preventDefault();
153
+ e.stopPropagation();
154
+ document.removeEventListener('mousemove', onMouseMove, true);
155
+ document.removeEventListener('mouseup', onMouseUp, true);
156
+ }
157
+ document.addEventListener('mousemove', onMouseMove, true);
158
+ document.addEventListener('mouseup', onMouseUp, true);
159
+ });
160
+ }
161
+ const popups = new WeakMap();
162
+ function addPopup(component, div, scene) {
163
+ const root = component.root;
164
+ if (root === component) {
165
+ return;
166
+ }
167
+ removePopup(component);
168
+ let components = popups.get(root) || [];
169
+ components = [...components, [component, {
170
+ div,
171
+ scene
172
+ }]];
173
+ popups.set(root, components);
174
+ }
175
+ function removePopup(component) {
176
+ const root = component.root;
177
+ const components = popups.get(root);
178
+ if (!components) {
179
+ return;
180
+ }
181
+ if (root === component) {
182
+ components.forEach(item => removePopup(item[0]));
183
+ popups.delete(root);
184
+ return;
185
+ }
186
+ const idx = components.findIndex(item => item[0] === component);
187
+ if (idx === -1) {
188
+ return;
189
+ }
190
+ const popup = components[idx][1];
191
+ popup.div.parentNode?.removeChild(popup.div);
192
+ popup.scene.target = null;
193
+ popup.scene.release?.();
194
+ components.splice(idx, 1);
195
+ }
196
+ function position(scene_root, popup_scene_root, point, options) {
197
+ const {
198
+ location = AUTO,
199
+ title = ''
200
+ } = options || {};
201
+ const scene_bounds = scene_root.bounds;
202
+ let popup_scene_bounds = popup_scene_root.bounds;
203
+ if (title) {
204
+ popup_scene_bounds.height += 30; // assuming title bar height is 30px
205
+ }
206
+ const left_side = Math.max(scene_bounds.width / 4 - popup_scene_bounds.width / 2, POPUP_GAP);
207
+ const right_side = Math.min(scene_bounds.width * 3 / 4 + popup_scene_bounds.width / 2, scene_bounds.width - POPUP_GAP) - popup_scene_bounds.width;
208
+ const top_side = Math.max(scene_bounds.height / 4 - popup_scene_bounds.height / 2, POPUP_GAP) + (title ? 30 : 0);
209
+ const bottom_side = Math.min(scene_bounds.height * 3 / 4 + popup_scene_bounds.height / 2, scene_bounds.height - POPUP_GAP) - popup_scene_bounds.height + (title ? 30 : 0);
210
+ switch (location) {
211
+ case AUTO:
212
+ return {
213
+ x: point.x < scene_bounds.width / 2 ? Math.min(right_side, point.x + 20) : Math.max(left_side, point.x - (popup_scene_bounds.width + 20)),
214
+ y: point.y < scene_bounds.height / 2 ? Math.min(bottom_side, point.y + 20 + (title ? 30 : 0)) : Math.max(top_side, point.y - (popup_scene_bounds.height + 20 + (title ? 30 : 0)))
215
+ };
216
+ case LEFTTOP:
217
+ return {
218
+ x: left_side,
219
+ y: top_side
220
+ };
221
+ case RIGHTTOP:
222
+ return {
223
+ x: right_side,
224
+ y: top_side
225
+ };
226
+ case LEFTBOTTOM:
227
+ return {
228
+ x: left_side,
229
+ y: bottom_side
230
+ };
231
+ case RIGHTBOTTOM:
232
+ return {
233
+ x: right_side,
234
+ y: bottom_side
235
+ };
236
+ case CENTER:
237
+ default:
238
+ return {
239
+ x: (scene_bounds.width - popup_scene_bounds.width) / 2,
240
+ y: (scene_bounds.height - popup_scene_bounds.height + (title ? 30 : 0)) / 2
241
+ };
242
+ }
243
+ }
244
+ function toggleMinimize(popup, isMinimized) {
245
+ const minimizeButton = popup.querySelector('.minimizable-1945');
246
+ if (isMinimized) {
247
+ minimizeButton.innerHTML = 'crop_square'; // maximize icon
248
+ popup.style.height = '30px';
249
+ popup.style.overflow = 'hidden';
250
+ } else {
251
+ minimizeButton.innerHTML = 'minimize'; // minimize icon
252
+ popup.style.height = '';
253
+ popup.style.overflow = 'visible';
254
+ }
255
+ }
256
+ class ScenePopup {
257
+ static hideAll(root) {
258
+ const popups4root = popups.get(root) || [];
259
+ popups4root.forEach(([component]) => removePopup(component));
260
+ }
261
+ static hide(component) {
262
+ const root = component.root;
263
+ const components = popups.get(root);
264
+ if (!components) {
265
+ return;
266
+ }
267
+ const idx = components.findIndex(item => item[0] === component);
268
+ if (idx === -1) {
269
+ return;
270
+ }
271
+ const popup = components[idx][1];
272
+ popup.div.style.backgroundColor = 'transparent';
273
+ fadeOut(popup.div, () => {
274
+ removePopup(component);
275
+ });
276
+ }
277
+ static show(component, ref, options = {}) {
278
+ const {
279
+ data,
280
+ modal = false,
281
+ closable = true,
282
+ minimizable = false,
283
+ draggable = false,
284
+ output = true,
285
+ title = ''
286
+ } = options;
287
+ const provider = component.app.refProvider;
288
+ provider?.get(ref, true).then(scene => {
289
+ const div = document.createElement('div');
290
+ const divStyle = div.style;
291
+ div.setAttribute('popup', '');
292
+ if (modal) {
293
+ const {
294
+ width,
295
+ height
296
+ } = component.rootModel.bounds;
297
+ Object.assign(divStyle, {
298
+ position: 'fixed',
299
+ zIndex: 1,
300
+ left: 0,
301
+ top: 0,
302
+ width: `${width}px`,
303
+ height: `${height}px`,
304
+ overflow: 'hidden',
305
+ backgroundColor: 'transparent'
306
+ });
307
+ } else {
308
+ Object.assign(divStyle, {
309
+ position: 'absolute',
310
+ display: 'inline-block',
311
+ overflow: 'hidden'
312
+ });
313
+ }
314
+ div.innerHTML = title ? TEMPLATE_WITH_CLOSE_TITLE : TEMPLATE_WITH_CLOSE;
315
+ const innerdiv = div.querySelector('.popup-content');
316
+ const {
317
+ width,
318
+ height
319
+ } = scene.root.model;
320
+ Object.assign(innerdiv.style, {
321
+ width: `${width}px`,
322
+ height: `${height}px`
323
+ });
324
+ const styleElement = document.createElement('style');
325
+ styleElement.type = 'text/css';
326
+ styleElement.appendChild(document.createTextNode(POPUP_STYLE));
327
+ div.appendChild(styleElement);
328
+ SCENE_EVENT.forEach(action => {
329
+ scene.on(action, (...args) => {
330
+ component.trigger(action, ...args);
331
+ });
332
+ });
333
+ const popup = div.querySelector('.popup-content');
334
+ const dragHandle = div.querySelector('.draggable-1945');
335
+ [..._const.GESTURES, ..._const.KEYEVENTS].forEach(event => {
336
+ popup.addEventListener(event, e => {
337
+ e.stopPropagation();
338
+ });
339
+ });
340
+ [..._const.GESTURES, ..._const.KEYEVENTS].forEach(event => {
341
+ div.addEventListener(event, e => {
342
+ e.stopPropagation();
343
+ });
344
+ });
345
+ if (modal && closable) {
346
+ div.addEventListener('click', e => {
347
+ if (e.target === div) ScenePopup.hide(component);
348
+ });
349
+ }
350
+ const targetElement = component.root.model_layer.overlay;
351
+ targetElement.appendChild(div);
352
+ addPopup(component, div, scene);
353
+ if (title) {
354
+ const titleDiv = div.querySelector('.popup-title-bar .popup-title');
355
+ titleDiv.textContent = title;
356
+ }
357
+ if (draggable) {
358
+ makeDraggable(modal ? div.querySelector('.popup-wrap') : div, div.querySelector('.popup-title-bar'), component);
359
+ if (!title) {
360
+ popup.addEventListener('mouseenter', () => {
361
+ if (dragHandle) dragHandle.style.display = 'block';
362
+ });
363
+ popup.addEventListener('mouseleave', () => {
364
+ if (dragHandle) dragHandle.style.display = 'none';
365
+ });
366
+ } else {
367
+ if (dragHandle) dragHandle.style.display = 'block';
368
+ }
369
+ }
370
+ if (minimizable) {
371
+ const minimizeButton = div.querySelector('.minimizable-1945');
372
+ let isMinimized = false;
373
+ minimizeButton.addEventListener('click', e => {
374
+ e.preventDefault();
375
+ isMinimized = !isMinimized;
376
+ const popupWrap = div.querySelector('.popup-wrap');
377
+ toggleMinimize(modal ? popupWrap : div, isMinimized);
378
+ });
379
+ if (!title) {
380
+ popup.addEventListener('mouseenter', () => {
381
+ if (minimizeButton) minimizeButton.style.display = 'block';
382
+ });
383
+ popup.addEventListener('mouseleave', () => {
384
+ if (minimizeButton) minimizeButton.style.display = 'none';
385
+ });
386
+ } else {
387
+ if (minimizeButton) minimizeButton.style.display = 'block';
388
+ }
389
+ }
390
+ if (closable) {
391
+ const closeButton = div.querySelector('.closable-1945');
392
+ if (!title) {
393
+ popup.addEventListener('mouseenter', () => {
394
+ if (closeButton) closeButton.style.display = 'block';
395
+ });
396
+ popup.addEventListener('mouseleave', () => {
397
+ if (closeButton) closeButton.style.display = 'none';
398
+ });
399
+ } else {
400
+ if (closeButton) closeButton.style.display = 'block';
401
+ }
402
+ }
403
+ div.querySelector('.closable-1945')?.addEventListener('click', e => {
404
+ e.preventDefault();
405
+ ScenePopup.hide(component);
406
+ });
407
+ div.addEventListener('close-scene', e => {
408
+ e.preventDefault();
409
+ e.stopPropagation();
410
+ ScenePopup.hide(component);
411
+ if (output) {
412
+ component.data = e.detail;
413
+ }
414
+ });
415
+ scene.target = innerdiv;
416
+ scene.data = data || component.data;
417
+ scene.fit('both');
418
+ const {
419
+ x,
420
+ y
421
+ } = component.center;
422
+ const point = component.transcoordS2T(x, y, component.rootModel);
423
+ const loc = position(component.rootModel, scene.root, point, options);
424
+ if (modal) {
425
+ if (title) {
426
+ const wrapdiv = div.querySelector('.popup-wrap');
427
+ Object.assign(wrapdiv.style, {
428
+ position: 'absolute',
429
+ left: `${loc.x}px`,
430
+ top: `${loc.y}px`,
431
+ width: `${width}px`,
432
+ height: `${height}px`
433
+ });
434
+ } else {
435
+ Object.assign(innerdiv.style, {
436
+ left: `${loc.x}px`,
437
+ top: `${loc.y}px`,
438
+ width: `${width}px`,
439
+ height: `${height}px`
440
+ });
441
+ }
442
+ } else {
443
+ Object.assign(div.style, {
444
+ left: `${loc.x}px`,
445
+ top: `${loc.y}px`,
446
+ width: `${width}px`,
447
+ height: `${title ? height + 30 : height}px`
448
+ });
449
+ }
450
+ fadeIn(div, () => {
451
+ if (modal) {
452
+ div.style.backgroundColor = 'rgba(0,0,0,0.3)';
453
+ }
454
+ });
455
+ }, e => {
456
+ console.error('cannot fetch board: ' + ref, e);
457
+ });
458
+ }
459
+ }
460
+ exports.default = ScenePopup;
461
+ //# sourceMappingURL=popup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.js","names":["_const","require","SCENE_EVENT","CENTER","LEFTTOP","RIGHTTOP","LEFTBOTTOM","RIGHTBOTTOM","AUTO","TEMPLATE_WITH_CLOSE_TITLE","TEMPLATE_WITH_CLOSE","POPUP_STYLE","POPUP_GAP","FADE_DURATION","fadeIn","element","callback","style","opacity","transform","display","last","Date","tick","progress","Math","min","requestAnimationFrame","fadeOut","makeDraggable","handle","component","startX","startY","initialX","initialY","addEventListener","e","preventDefault","stopPropagation","clientX","clientY","parseInt","left","top","onMouseMove","dx","dy","rootModel","overlay","scaleMatch","match","sx","parseFloat","sy","onMouseUp","document","removeEventListener","popups","WeakMap","addPopup","div","scene","root","removePopup","components","get","set","forEach","item","delete","idx","findIndex","popup","parentNode","removeChild","target","release","splice","position","scene_root","popup_scene_root","point","options","location","title","scene_bounds","bounds","popup_scene_bounds","height","left_side","max","width","right_side","top_side","bottom_side","x","y","toggleMinimize","isMinimized","minimizeButton","querySelector","innerHTML","overflow","ScenePopup","hideAll","popups4root","hide","backgroundColor","show","ref","data","modal","closable","minimizable","draggable","output","provider","app","refProvider","then","createElement","divStyle","setAttribute","Object","assign","zIndex","innerdiv","model","styleElement","type","appendChild","createTextNode","action","on","args","trigger","dragHandle","GESTURES","KEYEVENTS","event","targetElement","model_layer","titleDiv","textContent","popupWrap","closeButton","detail","fit","center","transcoordS2T","loc","wrapdiv","console","error","exports","default"],"sources":["../../../src/layer/action/popup.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { GESTURES, KEYEVENTS } from '../../const.js'\n\nconst SCENE_EVENT = [\n 'run',\n 'goto',\n 'goto-playlist',\n 'link-open',\n 'link-move',\n 'route-page',\n 'start-scenario',\n 'run-scenario',\n 'export-data',\n 'import-data'\n]\n\nconst CENTER = 'center'\nconst LEFTTOP = 'left-top'\nconst RIGHTTOP = 'right-top'\nconst LEFTBOTTOM = 'left-bottom'\nconst RIGHTBOTTOM = 'right-bottom'\nconst AUTO = 'auto'\n\nconst TEMPLATE_WITH_CLOSE_TITLE = `\n<div class=\"popup-wrap\">\n <div class=\"popup-title-bar\">\n <div class=\"popup-title\"></div>\n <button class=\"draggable-1945\">drag_pan</button>\n <button class=\"minimizable-1945\">minimize</button>\n <button class=\"closable-1945\">close</button>\n </div>\n <div class=\"popup-content\"></div>\n</div>\n`\n\nconst TEMPLATE_WITH_CLOSE = `\n<div class=\"popup-content\">\n <button class=\"draggable-1945\">drag_pan</button>\n <button class=\"minimizable-1945\">minimize</button>\n <button class=\"closable-1945\">close</button>\n</div>\n`\n\nconst POPUP_STYLE = `\n.popup-title-bar {\n display: flex;\n align-items: center;\n top: 0;\n left: 0;\n width: 100%;\n height: 30px;\n background-color: var(--md-sys-color-primary, #f1f1f1);\n color: var(--md-sys-color-on-primary, black);\n padding: 5px;\n box-sizing: border-box;\n border-bottom: 1px solid #ccc;\n}\n\n.popup-title {\n flex: 1;\n text-align: center;\n}\n\nbutton.closable-1945, button.minimizable-1945, button.draggable-1945 {\n position: absolute;\n display: none;\n color: white; \n background-color: black; \n opacity: .3;\n width: 20px;\n height: 20px;\n top: 5px; \n z-index: 1;\n padding: 0;\n margin: 0;\n border: 0px;\n text-align: center;\n cursor: pointer;\n border-radius: 4px;\n font-family: Material Symbols Outlined;\n font-size: 12px;\n}\n\nbutton.draggable-1945 {\n right: 55px;\n cursor: move;\n}\n\nbutton.minimizable-1945 {\n right: 30px;\n}\n\nbutton.closable-1945 {\n right: 5px;\n}\n\nbutton.closable-1945:hover, button.minimizable-1945:hover, button.draggable-1945:hover {\n opacity: .6; \n}\n`\n\nconst POPUP_GAP = 20\nconst FADE_DURATION = 200\n\nfunction fadeIn(element, callback) {\n element.style.opacity = 0\n element.style.transform = 'scale(0)'\n element.style.display = 'block'\n\n let last = +new Date()\n const tick = () => {\n const progress = Math.min((new Date() - last) / FADE_DURATION, 1)\n element.style.opacity = progress\n element.style.transform = `scale(${progress})`\n\n if (progress < 1) {\n requestAnimationFrame(tick)\n } else if (callback) {\n callback()\n }\n }\n\n tick()\n}\n\nfunction fadeOut(element, callback) {\n element.style.opacity = 1\n element.style.transform = 'scale(1)'\n\n let last = +new Date()\n const tick = () => {\n const progress = Math.min((new Date() - last) / FADE_DURATION, 1)\n element.style.opacity = 1 - progress\n element.style.transform = `scale(${1 - progress})`\n\n if (progress < 1) {\n requestAnimationFrame(tick)\n } else {\n element.style.display = 'none'\n if (callback) callback()\n }\n }\n\n tick()\n}\n\nfunction makeDraggable(element, handle, component) {\n let startX, startY, initialX, initialY\n\n handle.addEventListener('mousedown', e => {\n e.preventDefault()\n e.stopPropagation()\n\n startX = e.clientX\n startY = e.clientY\n initialX = parseInt(element.style.left, 10) || 0\n initialY = parseInt(element.style.top, 10) || 0\n\n function onMouseMove(e) {\n e.preventDefault()\n e.stopPropagation()\n\n const dx = e.clientX - startX\n const dy = e.clientY - startY\n\n const transform = component.rootModel.overlay.style.transform\n const scaleMatch = transform.match(/scale\\(([^,]+),\\s*([^)]+)\\)/)\n\n const sx = scaleMatch ? parseFloat(scaleMatch[1]) : 1\n const sy = scaleMatch ? parseFloat(scaleMatch[2]) : sx\n\n element.style.left = `${initialX + dx / sx}px`\n element.style.top = `${initialY + dy / sy}px`\n }\n\n function onMouseUp(e) {\n e.preventDefault()\n e.stopPropagation()\n\n document.removeEventListener('mousemove', onMouseMove, true)\n document.removeEventListener('mouseup', onMouseUp, true)\n }\n\n document.addEventListener('mousemove', onMouseMove, true)\n document.addEventListener('mouseup', onMouseUp, true)\n })\n}\n\nconst popups = new WeakMap()\n\nfunction addPopup(component, div, scene) {\n const root = component.root\n\n if (root === component) {\n return\n }\n\n removePopup(component)\n\n let components = popups.get(root) || []\n components = [...components, [component, { div, scene }]]\n popups.set(root, components)\n}\n\nfunction removePopup(component) {\n const root = component.root\n const components = popups.get(root)\n\n if (!components) {\n return\n }\n\n if (root === component) {\n components.forEach(item => removePopup(item[0]))\n popups.delete(root)\n return\n }\n\n const idx = components.findIndex(item => item[0] === component)\n if (idx === -1) {\n return\n }\n\n const popup = components[idx][1]\n popup.div.parentNode?.removeChild(popup.div)\n popup.scene.target = null\n popup.scene.release?.()\n\n components.splice(idx, 1)\n}\n\nfunction position(scene_root, popup_scene_root, point, options) {\n const { location = AUTO, title = '' } = options || {}\n const scene_bounds = scene_root.bounds\n let popup_scene_bounds = popup_scene_root.bounds\n\n if (title) {\n popup_scene_bounds.height += 30 // assuming title bar height is 30px\n }\n\n const left_side = Math.max(scene_bounds.width / 4 - popup_scene_bounds.width / 2, POPUP_GAP)\n const right_side =\n Math.min((scene_bounds.width * 3) / 4 + popup_scene_bounds.width / 2, scene_bounds.width - POPUP_GAP) -\n popup_scene_bounds.width\n const top_side = Math.max(scene_bounds.height / 4 - popup_scene_bounds.height / 2, POPUP_GAP) + (title ? 30 : 0)\n const bottom_side =\n Math.min((scene_bounds.height * 3) / 4 + popup_scene_bounds.height / 2, scene_bounds.height - POPUP_GAP) -\n popup_scene_bounds.height +\n (title ? 30 : 0)\n\n switch (location) {\n case AUTO:\n return {\n x:\n point.x < scene_bounds.width / 2\n ? Math.min(right_side, point.x + 20)\n : Math.max(left_side, point.x - (popup_scene_bounds.width + 20)),\n y:\n point.y < scene_bounds.height / 2\n ? Math.min(bottom_side, point.y + 20 + (title ? 30 : 0))\n : Math.max(top_side, point.y - (popup_scene_bounds.height + 20 + (title ? 30 : 0)))\n }\n case LEFTTOP:\n return { x: left_side, y: top_side }\n case RIGHTTOP:\n return { x: right_side, y: top_side }\n case LEFTBOTTOM:\n return { x: left_side, y: bottom_side }\n case RIGHTBOTTOM:\n return { x: right_side, y: bottom_side }\n case CENTER:\n default:\n return {\n x: (scene_bounds.width - popup_scene_bounds.width) / 2,\n y: (scene_bounds.height - popup_scene_bounds.height + (title ? 30 : 0)) / 2\n }\n }\n}\n\nfunction toggleMinimize(popup, isMinimized) {\n const minimizeButton = popup.querySelector('.minimizable-1945')\n\n if (isMinimized) {\n minimizeButton.innerHTML = 'crop_square' // maximize icon\n popup.style.height = '30px'\n popup.style.overflow = 'hidden'\n } else {\n minimizeButton.innerHTML = 'minimize' // minimize icon\n popup.style.height = ''\n popup.style.overflow = 'visible'\n }\n}\n\nexport default class ScenePopup {\n static hideAll(root) {\n const popups4root = popups.get(root) || []\n popups4root.forEach(([component]) => removePopup(component))\n }\n\n static hide(component) {\n const root = component.root\n const components = popups.get(root)\n\n if (!components) {\n return\n }\n\n const idx = components.findIndex(item => item[0] === component)\n if (idx === -1) {\n return\n }\n\n const popup = components[idx][1]\n popup.div.style.backgroundColor = 'transparent'\n fadeOut(popup.div, () => {\n removePopup(component)\n })\n }\n\n static show(component, ref, options = {}) {\n const {\n data,\n modal = false,\n closable = true,\n minimizable = false,\n draggable = false,\n output = true,\n title = ''\n } = options\n const provider = component.app.refProvider\n\n provider?.get(ref, true).then(\n scene => {\n const div = document.createElement('div')\n const divStyle = div.style\n div.setAttribute('popup', '')\n\n if (modal) {\n const { width, height } = component.rootModel.bounds\n\n Object.assign(divStyle, {\n position: 'fixed',\n zIndex: 1,\n left: 0,\n top: 0,\n width: `${width}px`,\n height: `${height}px`,\n overflow: 'hidden',\n backgroundColor: 'transparent'\n })\n } else {\n Object.assign(divStyle, {\n position: 'absolute',\n display: 'inline-block',\n overflow: 'hidden'\n })\n }\n\n div.innerHTML = title ? TEMPLATE_WITH_CLOSE_TITLE : TEMPLATE_WITH_CLOSE\n\n const innerdiv = div.querySelector('.popup-content')\n const { width, height } = scene.root.model\n Object.assign(innerdiv.style, {\n width: `${width}px`,\n height: `${height}px`\n })\n\n const styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n styleElement.appendChild(document.createTextNode(POPUP_STYLE))\n div.appendChild(styleElement)\n\n SCENE_EVENT.forEach(action => {\n scene.on(action, (...args) => {\n component.trigger(action, ...args)\n })\n })\n\n const popup = div.querySelector('.popup-content')\n const dragHandle = div.querySelector('.draggable-1945')\n\n ;[...GESTURES, ...KEYEVENTS].forEach(event => {\n popup.addEventListener(event, e => {\n e.stopPropagation()\n })\n })\n ;[...GESTURES, ...KEYEVENTS].forEach(event => {\n div.addEventListener(event, e => {\n e.stopPropagation()\n })\n })\n\n if (modal && closable) {\n div.addEventListener('click', e => {\n if (e.target === div) ScenePopup.hide(component)\n })\n }\n\n const targetElement = component.root.model_layer.overlay\n targetElement.appendChild(div)\n\n addPopup(component, div, scene)\n\n if (title) {\n const titleDiv = div.querySelector('.popup-title-bar .popup-title')\n titleDiv.textContent = title\n }\n\n if (draggable) {\n makeDraggable(\n modal ? div.querySelector('.popup-wrap') : div,\n div.querySelector('.popup-title-bar'),\n component\n )\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (dragHandle) dragHandle.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (dragHandle) dragHandle.style.display = 'none'\n })\n } else {\n if (dragHandle) dragHandle.style.display = 'block'\n }\n }\n\n if (minimizable) {\n const minimizeButton = div.querySelector('.minimizable-1945')\n let isMinimized = false\n\n minimizeButton.addEventListener('click', e => {\n e.preventDefault()\n isMinimized = !isMinimized\n const popupWrap = div.querySelector('.popup-wrap')\n\n toggleMinimize(modal ? popupWrap : div, isMinimized)\n })\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (minimizeButton) minimizeButton.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (minimizeButton) minimizeButton.style.display = 'none'\n })\n } else {\n if (minimizeButton) minimizeButton.style.display = 'block'\n }\n }\n\n if (closable) {\n const closeButton = div.querySelector('.closable-1945')\n\n if (!title) {\n popup.addEventListener('mouseenter', () => {\n if (closeButton) closeButton.style.display = 'block'\n })\n\n popup.addEventListener('mouseleave', () => {\n if (closeButton) closeButton.style.display = 'none'\n })\n } else {\n if (closeButton) closeButton.style.display = 'block'\n }\n }\n\n div.querySelector('.closable-1945')?.addEventListener('click', e => {\n e.preventDefault()\n ScenePopup.hide(component)\n })\n\n div.addEventListener('close-scene', e => {\n e.preventDefault()\n e.stopPropagation()\n ScenePopup.hide(component)\n if (output) {\n component.data = e.detail\n }\n })\n\n scene.target = innerdiv\n scene.data = data || component.data\n scene.fit('both')\n\n const { x, y } = component.center\n const point = component.transcoordS2T(x, y, component.rootModel)\n\n const loc = position(component.rootModel, scene.root, point, options)\n\n if (modal) {\n if (title) {\n const wrapdiv = div.querySelector('.popup-wrap')\n\n Object.assign(wrapdiv.style, {\n position: 'absolute',\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${height}px`\n })\n } else {\n Object.assign(innerdiv.style, {\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${height}px`\n })\n }\n } else {\n Object.assign(div.style, {\n left: `${loc.x}px`,\n top: `${loc.y}px`,\n width: `${width}px`,\n height: `${title ? height + 30 : height}px`\n })\n }\n\n fadeIn(div, () => {\n if (modal) {\n div.style.backgroundColor = 'rgba(0,0,0,0.3)'\n }\n })\n },\n e => {\n console.error('cannot fetch board: ' + ref, e)\n }\n )\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.normalize = normalize;
7
+ exports.pressed = pressed;
8
+ /*
9
+ * Copyright © HatioLab Inc. All rights reserved.
10
+ */
11
+
12
+ function pressed(component) {
13
+ if (component.hasOwnProperty('_backupShadow')) return;
14
+ var shadow = component.get('shadow');
15
+ component._backupShadow = shadow;
16
+ var {
17
+ left = 0,
18
+ top = 0
19
+ } = shadow || {};
20
+ component.delta('tx', left);
21
+ component.delta('ty', top);
22
+ component.set('shadow', {});
23
+ }
24
+ function normalize(component) {
25
+ if (!component.hasOwnProperty('_backupShadow')) return;
26
+ component.delta('tx', 0);
27
+ component.delta('ty', 0);
28
+ component.set('shadow', component._backupShadow);
29
+ delete component._backupShadow;
30
+ }
31
+ //# sourceMappingURL=pressed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pressed.js","names":["pressed","component","hasOwnProperty","shadow","get","_backupShadow","left","top","delta","set","normalize"],"sources":["../../../src/layer/action/pressed.js"],"sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nexport function pressed(component) {\n if (component.hasOwnProperty('_backupShadow')) return\n var shadow = component.get('shadow')\n component._backupShadow = shadow\n var { left = 0, top = 0 } = shadow || {}\n\n component.delta('tx', left)\n component.delta('ty', top)\n component.set('shadow', {})\n}\n\nexport function normalize(component) {\n if (!component.hasOwnProperty('_backupShadow')) return\n component.delta('tx', 0)\n component.delta('ty', 0)\n component.set('shadow', component._backupShadow)\n delete component._backupShadow\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;;AAEO,SAASA,OAAOA,CAACC,SAAS,EAAE;EACjC,IAAIA,SAAS,CAACC,cAAc,CAAC,eAAe,CAAC,EAAE;EAC/C,IAAIC,MAAM,GAAGF,SAAS,CAACG,GAAG,CAAC,QAAQ,CAAC;EACpCH,SAAS,CAACI,aAAa,GAAGF,MAAM;EAChC,IAAI;IAAEG,IAAI,GAAG,CAAC;IAAEC,GAAG,GAAG;EAAE,CAAC,GAAGJ,MAAM,IAAI,CAAC,CAAC;EAExCF,SAAS,CAACO,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC;EAC3BL,SAAS,CAACO,KAAK,CAAC,IAAI,EAAED,GAAG,CAAC;EAC1BN,SAAS,CAACQ,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AAC7B;AAEO,SAASC,SAASA,CAACT,SAAS,EAAE;EACnC,IAAI,CAACA,SAAS,CAACC,cAAc,CAAC,eAAe,CAAC,EAAE;EAChDD,SAAS,CAACO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;EACxBP,SAAS,CAACO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;EACxBP,SAAS,CAACQ,GAAG,CAAC,QAAQ,EAAER,SAAS,CAACI,aAAa,CAAC;EAChD,OAAOJ,SAAS,CAACI,aAAa;AAChC","ignoreList":[]}