@hatiolab/things-scene 3.4.38 → 3.4.41

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 (339) hide show
  1. package/db.sqlite +0 -0
  2. package/package.json +1 -1
  3. package/schema.graphql +146 -53
  4. package/things-scene-ie.js +1 -1
  5. package/things-scene-min.js +1 -1
  6. package/things-scene.mjs +2 -2
  7. package/dist/animation/animate.d.ts +0 -4
  8. package/dist/animation/animations/animation.d.ts +0 -14
  9. package/dist/animation/animations/fade.d.ts +0 -4
  10. package/dist/animation/animations/heartbeat.d.ts +0 -4
  11. package/dist/animation/animations/moving.d.ts +0 -4
  12. package/dist/animation/animations/outline.d.ts +0 -10
  13. package/dist/animation/animations/rotation.d.ts +0 -4
  14. package/dist/animation/animations/vibration.d.ts +0 -4
  15. package/dist/animation/compile.d.ts +0 -1
  16. package/dist/animation/delta.d.ts +0 -19
  17. package/dist/animation/index.d.ts +0 -1
  18. package/dist/command/command-change.d.ts +0 -7
  19. package/dist/command/command-migrate.d.ts +0 -4
  20. package/dist/command/command-migrate.js +0 -85
  21. package/dist/command/command-migrate.js.map +0 -1
  22. package/dist/command/command.d.ts +0 -5
  23. package/dist/command/snapshot-commander.d.ts +0 -15
  24. package/dist/components/anchor/anchor.d.ts +0 -128
  25. package/dist/components/anchor/ellipse-anchors.d.ts +0 -2
  26. package/dist/components/anchor/ellipse-anchors.js +0 -38
  27. package/dist/components/anchor/ellipse-anchors.js.map +0 -1
  28. package/dist/components/anchor/rect-anchors.d.ts +0 -10
  29. package/dist/components/audio.d.ts +0 -25
  30. package/dist/components/audio.js +0 -141
  31. package/dist/components/audio.js.map +0 -1
  32. package/dist/components/cloud.d.ts +0 -13
  33. package/dist/components/cloud.js +0 -31
  34. package/dist/components/cloud.js.map +0 -1
  35. package/dist/components/component.d.ts +0 -227
  36. package/dist/components/component.js +0 -912
  37. package/dist/components/component.js.map +0 -1
  38. package/dist/components/container-abstract.d.ts +0 -51
  39. package/dist/components/container-abstract.js +0 -372
  40. package/dist/components/container-abstract.js.map +0 -1
  41. package/dist/components/container.d.ts +0 -38
  42. package/dist/components/container.js +0 -75
  43. package/dist/components/container.js.map +0 -1
  44. package/dist/components/data/data-mapping.d.ts +0 -16
  45. package/dist/components/data/data.d.ts +0 -8
  46. package/dist/components/data/evaluator.d.ts +0 -1
  47. package/dist/components/donut.d.ts +0 -15
  48. package/dist/components/donut.js +0 -74
  49. package/dist/components/donut.js.map +0 -1
  50. package/dist/components/drawer/draw-image-pendable.d.ts +0 -1
  51. package/dist/components/drawer/effect.d.ts +0 -1
  52. package/dist/components/drawer/fill.d.ts +0 -14
  53. package/dist/components/drawer/format.d.ts +0 -1
  54. package/dist/components/drawer/line.d.ts +0 -3
  55. package/dist/components/drawer/stroke.d.ts +0 -1
  56. package/dist/components/drawer/text-wrapper.d.ts +0 -10
  57. package/dist/components/drawer/text.d.ts +0 -3
  58. package/dist/components/ellipse.d.ts +0 -35
  59. package/dist/components/ellipse.js +0 -99
  60. package/dist/components/ellipse.js.map +0 -1
  61. package/dist/components/file/ondropfile.d.ts +0 -1
  62. package/dist/components/fit/fit.d.ts +0 -15
  63. package/dist/components/geometry/transcoord.d.ts +0 -41
  64. package/dist/components/geometry/union.d.ts +0 -6
  65. package/dist/components/gif-view.d.ts +0 -18
  66. package/dist/components/gif-view.js +0 -116
  67. package/dist/components/gif-view.js.map +0 -1
  68. package/dist/components/global-ref.d.ts +0 -36
  69. package/dist/components/global-ref.js +0 -128
  70. package/dist/components/global-ref.js.map +0 -1
  71. package/dist/components/group.d.ts +0 -15
  72. package/dist/components/group.js +0 -145
  73. package/dist/components/group.js.map +0 -1
  74. package/dist/components/html/elements.d.ts +0 -2
  75. package/dist/components/html/fill.d.ts +0 -1
  76. package/dist/components/html/reposition.d.ts +0 -1
  77. package/dist/components/html/shadow.d.ts +0 -1
  78. package/dist/components/html-overlay-container.d.ts +0 -27
  79. package/dist/components/html-overlay-container.js +0 -14
  80. package/dist/components/html-overlay-container.js.map +0 -1
  81. package/dist/components/html-overlay-element.d.ts +0 -25
  82. package/dist/components/html-overlay-element.js +0 -9
  83. package/dist/components/html-overlay-element.js.map +0 -1
  84. package/dist/components/image-view.d.ts +0 -19
  85. package/dist/components/image-view.js +0 -180
  86. package/dist/components/image-view.js.map +0 -1
  87. package/dist/components/index.d.ts +0 -32
  88. package/dist/components/index.js +0 -39
  89. package/dist/components/index.js.map +0 -1
  90. package/dist/components/info-window.d.ts +0 -41
  91. package/dist/components/info-window.js +0 -425
  92. package/dist/components/info-window.js.map +0 -1
  93. package/dist/components/line.d.ts +0 -91
  94. package/dist/components/line.js +0 -303
  95. package/dist/components/line.js.map +0 -1
  96. package/dist/components/local-ref.d.ts +0 -47
  97. package/dist/components/local-ref.js +0 -103
  98. package/dist/components/local-ref.js.map +0 -1
  99. package/dist/components/mixins/connectable.d.ts +0 -45
  100. package/dist/components/mixins/data-source.d.ts +0 -9
  101. package/dist/components/mixins/html-element.d.ts +0 -24
  102. package/dist/components/mixins/move-handle.d.ts +0 -11
  103. package/dist/components/mixins/rect-path.d.ts +0 -13
  104. package/dist/components/mixins/value-holder.d.ts +0 -18
  105. package/dist/components/mutater/bounds.d.ts +0 -10
  106. package/dist/components/mutater/path.d.ts +0 -5
  107. package/dist/components/ortholine.d.ts +0 -21
  108. package/dist/components/ortholine.js +0 -814
  109. package/dist/components/ortholine.js.map +0 -1
  110. package/dist/components/outline/ellipse-outline.d.ts +0 -4
  111. package/dist/components/outline/ellipse-outline.js +0 -11
  112. package/dist/components/outline/ellipse-outline.js.map +0 -1
  113. package/dist/components/outline/path-outline.d.ts +0 -1
  114. package/dist/components/path.d.ts +0 -5
  115. package/dist/components/path.js +0 -40
  116. package/dist/components/path.js.map +0 -1
  117. package/dist/components/polygon.d.ts +0 -40
  118. package/dist/components/polygon.js +0 -157
  119. package/dist/components/polygon.js.map +0 -1
  120. package/dist/components/polyline.d.ts +0 -18
  121. package/dist/components/polyline.js +0 -102
  122. package/dist/components/polyline.js.map +0 -1
  123. package/dist/components/popup.d.ts +0 -48
  124. package/dist/components/popup.js +0 -138
  125. package/dist/components/popup.js.map +0 -1
  126. package/dist/components/rect.d.ts +0 -26
  127. package/dist/components/rect.js +0 -91
  128. package/dist/components/rect.js.map +0 -1
  129. package/dist/components/retention/retention-manager.d.ts +0 -8
  130. package/dist/components/root-container.d.ts +0 -90
  131. package/dist/components/root-container.js +0 -478
  132. package/dist/components/root-container.js.map +0 -1
  133. package/dist/components/ruler.d.ts +0 -16
  134. package/dist/components/ruler.js +0 -77
  135. package/dist/components/ruler.js.map +0 -1
  136. package/dist/components/shape.d.ts +0 -25
  137. package/dist/components/shape.js +0 -80
  138. package/dist/components/shape.js.map +0 -1
  139. package/dist/components/star.d.ts +0 -13
  140. package/dist/components/star.js +0 -80
  141. package/dist/components/star.js.map +0 -1
  142. package/dist/components/text/substitutor.d.ts +0 -3
  143. package/dist/components/text.d.ts +0 -8
  144. package/dist/components/text.js +0 -15
  145. package/dist/components/text.js.map +0 -1
  146. package/dist/components/three-container.d.ts +0 -60
  147. package/dist/components/three-container.js +0 -515
  148. package/dist/components/three-container.js.map +0 -1
  149. package/dist/components/triangle.d.ts +0 -15
  150. package/dist/components/triangle.js +0 -76
  151. package/dist/components/triangle.js.map +0 -1
  152. package/dist/const.d.ts +0 -39
  153. package/dist/core/collection.d.ts +0 -8
  154. package/dist/core/debug.d.ts +0 -1
  155. package/dist/core/deep-equals.d.ts +0 -1
  156. package/dist/core/dom-to-image.d.ts +0 -127
  157. package/dist/core/event.d.ts +0 -92
  158. package/dist/core/index.d.ts +0 -2
  159. package/dist/core/list.d.ts +0 -32
  160. package/dist/core/logger.d.ts +0 -3
  161. package/dist/core/memoize.d.ts +0 -6
  162. package/dist/core/mixin.d.ts +0 -1
  163. package/dist/core/obj-accessor.d.ts +0 -1
  164. package/dist/core/reference-map.d.ts +0 -14
  165. package/dist/core/round-rect.d.ts +0 -19
  166. package/dist/core/script-loader.d.ts +0 -3
  167. package/dist/core/snapshot-taker.d.ts +0 -12
  168. package/dist/core/stack.d.ts +0 -2
  169. package/dist/core/timecapsule.d.ts +0 -18
  170. package/dist/core/utils.d.ts +0 -9
  171. package/dist/decorator/anchors-decorator.d.ts +0 -31
  172. package/dist/decorator/data-spread-decorator.d.ts +0 -1
  173. package/dist/decorator/decotag-decorator.d.ts +0 -1
  174. package/dist/decorator/index.d.ts +0 -2
  175. package/dist/decorator/link-decorator.d.ts +0 -1
  176. package/dist/effect/gradation.d.ts +0 -1
  177. package/dist/effect/index.d.ts +0 -1
  178. package/dist/effect/shadow.d.ts +0 -2
  179. package/dist/effect/turn.d.ts +0 -1
  180. package/dist/event/event-engine.d.ts +0 -12
  181. package/dist/event/event-pump.d.ts +0 -11
  182. package/dist/event/event-tracker.d.ts +0 -21
  183. package/dist/event/index.d.ts +0 -2
  184. package/dist/event/ua-event-handler.d.ts +0 -32
  185. package/dist/event-map/event-map.d.ts +0 -9
  186. package/dist/event-map/index.d.ts +0 -1
  187. package/dist/event-map/move-handler.d.ts +0 -1
  188. package/dist/event-map/text-editor-lite.d.ts +0 -1
  189. package/dist/index.d.ts +0 -1
  190. package/dist/index.js +0 -3
  191. package/dist/index.js.map +0 -1
  192. package/dist/layer/action/emphasize.d.ts +0 -2
  193. package/dist/layer/action/popup.d.ts +0 -5
  194. package/dist/layer/action/pressed.d.ts +0 -2
  195. package/dist/layer/add-layer.d.ts +0 -42
  196. package/dist/layer/add-layer.js +0 -142
  197. package/dist/layer/add-layer.js.map +0 -1
  198. package/dist/layer/decotag-layer.d.ts +0 -27
  199. package/dist/layer/decotag-layer.js +0 -105
  200. package/dist/layer/decotag-layer.js.map +0 -1
  201. package/dist/layer/guide-layer.d.ts +0 -44
  202. package/dist/layer/guide-layer.js +0 -261
  203. package/dist/layer/guide-layer.js.map +0 -1
  204. package/dist/layer/index.d.ts +0 -7
  205. package/dist/layer/index.js +0 -11
  206. package/dist/layer/index.js.map +0 -1
  207. package/dist/layer/layer.d.ts +0 -32
  208. package/dist/layer/layer.js +0 -155
  209. package/dist/layer/layer.js.map +0 -1
  210. package/dist/layer/model-layer.d.ts +0 -46
  211. package/dist/layer/model-layer.js +0 -402
  212. package/dist/layer/model-layer.js.map +0 -1
  213. package/dist/layer/modeler/anchor-handler.d.ts +0 -36
  214. package/dist/layer/modeler/control-handler.d.ts +0 -18
  215. package/dist/layer/modeler/focus-outline.d.ts +0 -5
  216. package/dist/layer/modeler/group-outline.d.ts +0 -5
  217. package/dist/layer/modeler/index.d.ts +0 -7
  218. package/dist/layer/modeler/path-handler.d.ts +0 -22
  219. package/dist/layer/modeler/resizer.d.ts +0 -13
  220. package/dist/layer/modeler/rotator.d.ts +0 -15
  221. package/dist/layer/modeler/rotator.js +0 -120
  222. package/dist/layer/modeler/rotator.js.map +0 -1
  223. package/dist/layer/modeling-layer.d.ts +0 -66
  224. package/dist/layer/modeling-layer.js +0 -451
  225. package/dist/layer/modeling-layer.js.map +0 -1
  226. package/dist/layer/selection/selected-finder.d.ts +0 -1
  227. package/dist/layer/selection-layer.d.ts +0 -42
  228. package/dist/layer/selection-layer.js +0 -307
  229. package/dist/layer/selection-layer.js.map +0 -1
  230. package/dist/layer/shift-layer.d.ts +0 -18
  231. package/dist/layer/shift-layer.js +0 -61
  232. package/dist/layer/shift-layer.js.map +0 -1
  233. package/dist/layout/absolute.d.ts +0 -8
  234. package/dist/layout/card.d.ts +0 -7
  235. package/dist/layout/html-absolute.d.ts +0 -8
  236. package/dist/layout/index.d.ts +0 -8
  237. package/dist/layout/index.js +0 -12
  238. package/dist/layout/index.js.map +0 -1
  239. package/dist/layout/layout.d.ts +0 -11
  240. package/dist/layout/linear-horizontal.d.ts +0 -7
  241. package/dist/layout/linear-vertical.d.ts +0 -7
  242. package/dist/layout/table.d.ts +0 -9
  243. package/dist/layout/three.d.ts +0 -8
  244. package/dist/layout/three.js +0 -20
  245. package/dist/layout/three.js.map +0 -1
  246. package/dist/license/license.d.ts +0 -18
  247. package/dist/model/compile.d.ts +0 -1
  248. package/dist/model/compile.js +0 -28
  249. package/dist/model/compile.js.map +0 -1
  250. package/dist/model/duplicate.d.ts +0 -1
  251. package/dist/model/index.d.ts +0 -3
  252. package/dist/model/selector.d.ts +0 -2
  253. package/dist/style/compile.d.ts +0 -1
  254. package/dist/style/index.d.ts +0 -1
  255. package/dist/things-scene/api/add-start.d.ts +0 -1
  256. package/dist/things-scene/api/add.d.ts +0 -5
  257. package/dist/things-scene/api/align.d.ts +0 -1
  258. package/dist/things-scene/api/change.d.ts +0 -2
  259. package/dist/things-scene/api/clipboard.d.ts +0 -3
  260. package/dist/things-scene/api/distribute.d.ts +0 -1
  261. package/dist/things-scene/api/duplicate.d.ts +0 -4
  262. package/dist/things-scene/api/fullscreen.d.ts +0 -1
  263. package/dist/things-scene/api/group.d.ts +0 -8
  264. package/dist/things-scene/api/group.js +0 -78
  265. package/dist/things-scene/api/group.js.map +0 -1
  266. package/dist/things-scene/api/ids.d.ts +0 -4
  267. package/dist/things-scene/api/index.d.ts +0 -15
  268. package/dist/things-scene/api/listener.d.ts +0 -3
  269. package/dist/things-scene/api/remove.d.ts +0 -4
  270. package/dist/things-scene/api/symmetry.d.ts +0 -2
  271. package/dist/things-scene/api/symmetry.js +0 -39
  272. package/dist/things-scene/api/symmetry.js.map +0 -1
  273. package/dist/things-scene/api/to-data-url.d.ts +0 -1
  274. package/dist/things-scene/api/to-data-url.js +0 -69
  275. package/dist/things-scene/api/to-data-url.js.map +0 -1
  276. package/dist/things-scene/api/zorder.d.ts +0 -2
  277. package/dist/things-scene/application-context.d.ts +0 -40
  278. package/dist/things-scene/config.d.ts +0 -4
  279. package/dist/things-scene/create.d.ts +0 -20
  280. package/dist/things-scene/fps.d.ts +0 -1
  281. package/dist/things-scene/index.d.ts +0 -17
  282. package/dist/things-scene/index.js +0 -23
  283. package/dist/things-scene/index.js.map +0 -1
  284. package/dist/things-scene/polyfill.d.ts +0 -2
  285. package/dist/things-scene/scene.d.ts +0 -155
  286. package/dist/things-scene/version.d.ts +0 -2
  287. package/dist/threed/common.d.ts +0 -22
  288. package/dist/threed/control/three-controls.d.ts +0 -11
  289. package/dist/threed/control/three-controls.js +0 -620
  290. package/dist/threed/control/three-controls.js.map +0 -1
  291. package/dist/threed/html/elements.d.ts +0 -2
  292. package/dist/threed/real-object-camera-meshed.d.ts +0 -12
  293. package/dist/threed/real-object-camera-meshed.js +0 -49
  294. package/dist/threed/real-object-camera-meshed.js.map +0 -1
  295. package/dist/threed/real-object-camera.d.ts +0 -9
  296. package/dist/threed/real-object-camera.js +0 -31
  297. package/dist/threed/real-object-camera.js.map +0 -1
  298. package/dist/threed/real-object-dom-element.d.ts +0 -20
  299. package/dist/threed/real-object-dom-element.js +0 -78
  300. package/dist/threed/real-object-dom-element.js.map +0 -1
  301. package/dist/threed/real-object-dummy.d.ts +0 -6
  302. package/dist/threed/real-object-dummy.js +0 -11
  303. package/dist/threed/real-object-dummy.js.map +0 -1
  304. package/dist/threed/real-object-extrude.d.ts +0 -19
  305. package/dist/threed/real-object-extrude.js +0 -171
  306. package/dist/threed/real-object-extrude.js.map +0 -1
  307. package/dist/threed/real-object-gltf.d.ts +0 -15
  308. package/dist/threed/real-object-gltf.js +0 -97
  309. package/dist/threed/real-object-gltf.js.map +0 -1
  310. package/dist/threed/real-object-group.d.ts +0 -5
  311. package/dist/threed/real-object-group.js +0 -11
  312. package/dist/threed/real-object-group.js.map +0 -1
  313. package/dist/threed/real-object-mesh.d.ts +0 -11
  314. package/dist/threed/real-object-mesh.js +0 -55
  315. package/dist/threed/real-object-mesh.js.map +0 -1
  316. package/dist/threed/real-object-plane.d.ts +0 -6
  317. package/dist/threed/real-object-plane.js +0 -23
  318. package/dist/threed/real-object-plane.js.map +0 -1
  319. package/dist/threed/real-object-scene.d.ts +0 -21
  320. package/dist/threed/real-object-scene.js +0 -89
  321. package/dist/threed/real-object-scene.js.map +0 -1
  322. package/dist/threed/real-object-sprite.d.ts +0 -12
  323. package/dist/threed/real-object-sprite.js +0 -35
  324. package/dist/threed/real-object-sprite.js.map +0 -1
  325. package/dist/threed/real-object-text.d.ts +0 -16
  326. package/dist/threed/real-object-text.js +0 -70
  327. package/dist/threed/real-object-text.js.map +0 -1
  328. package/dist/threed/real-object.d.ts +0 -48
  329. package/dist/threed/real-object.js +0 -199
  330. package/dist/threed/real-object.js.map +0 -1
  331. package/dist/threed/texture/text-texture.d.ts +0 -8
  332. package/dist/threed/three-dimensional-container.d.ts +0 -7
  333. package/dist/threed/three-dimensional-container.js +0 -2
  334. package/dist/threed/three-dimensional-container.js.map +0 -1
  335. package/dist/threed/utils/bound-uv-generator.d.ts +0 -16
  336. package/dist/types.d.ts +0 -53
  337. package/dist/types.js +0 -368
  338. package/dist/types.js.map +0 -1
  339. package/schema.gql +0 -3753
@@ -1,75 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import { HTMLAbsoluteLayout, Layout } from '../layout';
5
- import Component from './component';
6
- import ContainerAbstract from './container-abstract';
7
- import MixinHTMLElement from './mixins/html-element';
8
- const SCALE_DEFAULT = { x: 1, y: 1 };
9
- const DEFAULT_STYLE = {
10
- boxSizing: 'border-box',
11
- margin: '0px',
12
- position: 'absolute',
13
- outline: 'none'
14
- };
15
- const NATURE = {
16
- mutable: false,
17
- resizable: true,
18
- rotatable: true,
19
- properties: [
20
- {
21
- type: 'layout',
22
- label: 'layout',
23
- name: 'layoutOption'
24
- }
25
- ],
26
- help: 'scene/component/container'
27
- };
28
- export default class Container extends MixinHTMLElement(ContainerAbstract) {
29
- get tagName() {
30
- return 'div';
31
- }
32
- get nature() {
33
- return NATURE;
34
- }
35
- setElementProperties(element) { }
36
- get layout() {
37
- return Layout.get(this.get('layout')) || HTMLAbsoluteLayout;
38
- }
39
- reposition() {
40
- if (!this.element)
41
- return;
42
- var component = this;
43
- var { id, class: className, scale = SCALE_DEFAULT } = component.state;
44
- var { rotation = 0, hidden } = component;
45
- var { left, top, width, height } = component.bounds;
46
- var cx = width / 2;
47
- var cy = height / 2;
48
- // element의 기본 속성을 설정한다.
49
- var element = component.element;
50
- element.hidden = hidden;
51
- if (id)
52
- element.id = id;
53
- if (className)
54
- element.className = className;
55
- // element의 기본 style을 설정한다.
56
- Object.assign(element.style, DEFAULT_STYLE, {
57
- left: left + 'px',
58
- top: top + 'px',
59
- width: '0px',
60
- height: '0px',
61
- backgroundColor: 'transparent'
62
- });
63
- var delta = component.delta();
64
- var sx = ((scale && scale.x) || 1) * delta.sx;
65
- var sy = ((scale && scale.y) || 1) * delta.sy;
66
- var theta = (rotation || 0) + delta.theta;
67
- var tx = delta.tx || 0;
68
- var ty = delta.ty || 0;
69
- ['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach(prefix => {
70
- element.style[prefix + 'transform'] = `translate(${tx + cx}px, ${ty + cy}px) rotate(${theta}rad) translate(${-cx}px, ${-cy}px) scale(${sx}, ${sy}) perspective(1px)`;
71
- });
72
- }
73
- }
74
- Component.register('container', Container);
75
- //# sourceMappingURL=container.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"container.js","sourceRoot":"","sources":["../../src/components/container.js"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { HTMLAbsoluteLayout, Layout } from '../layout'\n\nimport Component from './component'\nimport ContainerAbstract from './container-abstract'\nimport MixinHTMLElement from './mixins/html-element'\n\nconst SCALE_DEFAULT = { x: 1, y: 1 }\nconst DEFAULT_STYLE = {\n boxSizing: 'border-box',\n margin: '0px',\n position: 'absolute',\n outline: 'none'\n}\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'layout',\n label: 'layout',\n name: 'layoutOption'\n }\n ],\n help: 'scene/component/container'\n}\n\nexport default class Container extends MixinHTMLElement(ContainerAbstract) {\n get tagName() {\n return 'div'\n }\n\n get nature() {\n return NATURE\n }\n\n setElementProperties(element) {}\n\n get layout() {\n return Layout.get(this.get('layout')) || HTMLAbsoluteLayout\n }\n\n reposition() {\n if (!this.element) return\n\n var component = this\n\n var { id, class: className, scale = SCALE_DEFAULT } = component.state\n\n var { rotation = 0, hidden } = component\n\n var { left, top, width, height } = component.bounds\n var cx = width / 2\n var cy = height / 2\n\n // element의 기본 속성을 설정한다.\n var element = component.element\n\n element.hidden = hidden\n if (id) element.id = id\n if (className) element.className = className\n\n // element의 기본 style을 설정한다.\n\n Object.assign(element.style, DEFAULT_STYLE, {\n left: left + 'px',\n top: top + 'px',\n width: '0px',\n height: '0px',\n backgroundColor: 'transparent'\n })\n\n var delta = component.delta()\n var sx = ((scale && scale.x) || 1) * delta.sx\n var sy = ((scale && scale.y) || 1) * delta.sy\n var theta = (rotation || 0) + delta.theta\n var tx = delta.tx || 0\n var ty = delta.ty || 0\n\n /* CONFIRM-ME `transform: perspective(1px)` 스타일 설정은 scaling된 dom element를 좀 더 선명하게 보이도록 해준다. (Chrome 브라우저에서) */\n ;['-webkit-', '-moz-', '-ms-', '-o-', ''].forEach(prefix => {\n element.style[prefix + 'transform'] = `translate(${tx + cx}px, ${\n ty + cy\n }px) rotate(${theta}rad) translate(${-cx}px, ${-cy}px) scale(${sx}, ${sy}) perspective(1px)`\n })\n }\n}\n\nComponent.register('container', Container)\n"]}
@@ -1,16 +0,0 @@
1
- export default class DataMapping {
2
- constructor(model: any, owner: any);
3
- owner: any;
4
- set model(arg: any);
5
- get model(): any;
6
- dispose(): void;
7
- _model: any;
8
- evaluator: any;
9
- accessor: ((o: any) => any) | undefined;
10
- propAccessor: ((o: any) => any) | undefined;
11
- partAccessor: ((o: any) => any) | undefined;
12
- get target(): any;
13
- get property(): any;
14
- get param(): any;
15
- get ndnsp(): boolean;
16
- }
@@ -1,8 +0,0 @@
1
- export function executeMappings(force?: boolean): void;
2
- export function onchangeData(after: any, before: any): void;
3
- export function buildMappings(): void;
4
- export class buildMappings {
5
- _mappings: any;
6
- }
7
- export function disposeMappings(): void;
8
- export function onchangeMappings(after: any, before: any): void;
@@ -1 +0,0 @@
1
- export default function buildEvaluator(mapping: any, owner: any, rule: any, param: any, type: any): any;
@@ -1,15 +0,0 @@
1
- import { Component, ComponentNature } from '@hatiolab/things-scene';
2
- import Ellipse from './ellipse';
3
- export default class Donut extends Ellipse {
4
- is3dish(): boolean;
5
- render(ctx: CanvasRenderingContext2D): void;
6
- contains(x: number, y: number): boolean;
7
- get controls(): {
8
- x: any;
9
- y: any;
10
- handler: {
11
- ondragmove: (point: import("@hatiolab/things-scene").DIMENSION, index: number, component: Component) => void;
12
- };
13
- }[];
14
- get nature(): ComponentNature;
15
- }
@@ -1,74 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import { Component } from '@hatiolab/things-scene';
5
- import Ellipse from './ellipse';
6
- const NATURE = {
7
- mutable: false,
8
- resizable: true,
9
- rotatable: true,
10
- properties: [
11
- {
12
- type: 'number',
13
- label: 'ratio',
14
- name: 'ratio',
15
- property: 'ratio'
16
- }
17
- ],
18
- help: 'scene/component/donut'
19
- };
20
- var controlHandler = {
21
- ondragmove: function (point, index, component) {
22
- var { cx, rx } = component.model;
23
- rx = Math.abs(rx);
24
- var transcoorded = component.transcoordP2S(point.x, point.y);
25
- var ratio = ((transcoorded.x - cx) / rx) * 100;
26
- ratio = ratio >= 100 || ratio <= -100 ? 100 : Math.abs(ratio);
27
- component.set({ ratio });
28
- }
29
- };
30
- export default class Donut extends Ellipse {
31
- is3dish() {
32
- return false;
33
- }
34
- render(ctx) {
35
- var { ratio = 50, cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state;
36
- rx = Math.abs(rx);
37
- ry = Math.abs(ry);
38
- ctx.beginPath();
39
- ctx.ellipse(cx, cy, rx, ry, 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise);
40
- ctx.moveTo(cx + (rx / 100) * ratio, cy);
41
- // 맨 마지막 속성이 true면 원의 범위만큼 공백이 됨
42
- ctx.ellipse(cx, cy, (rx / 100) * ratio, (ry / 100) * ratio, 0, startAngle || 0, endAngle || 2 * Math.PI, true);
43
- }
44
- contains(x, y) {
45
- var { cx, cy, rx, ry, ratio } = this.state;
46
- rx = Math.abs(rx);
47
- ry = Math.abs(ry);
48
- var normx = (x - cx) / (rx * 2 - 0.5);
49
- var normy = (y - cy) / (ry * 2 - 0.5);
50
- var ratiox = (x - cx) / ((rx / 100) * ratio * 2 - 0.5);
51
- var ratioy = (y - cy) / ((ry / 100) * ratio * 2 - 0.5);
52
- var result = false;
53
- if (normx * normx + normy * normy < 0.25 && ratiox * ratiox + ratioy * ratioy > 0.25)
54
- result = !result;
55
- return result;
56
- }
57
- get controls() {
58
- var { cx, cy, rx, ratio } = this.state;
59
- rx = Math.abs(rx);
60
- return [
61
- {
62
- x: cx + (rx / 100) * ratio,
63
- y: cy,
64
- handler: controlHandler
65
- }
66
- ];
67
- }
68
- get nature() {
69
- return NATURE;
70
- }
71
- }
72
- Component.memoize(Donut.prototype, 'controls', false);
73
- Component.register('donut', Donut);
74
- //# sourceMappingURL=donut.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"donut.js","sourceRoot":"","sources":["../../src/components/donut.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, POSITION } from '@hatiolab/things-scene'\nimport Ellipse from './ellipse'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'number',\n label: 'ratio',\n name: 'ratio',\n property: 'ratio'\n }\n ],\n help: 'scene/component/donut'\n}\n\nvar controlHandler = {\n ondragmove: function (point: POSITION, index: number, component: Component) {\n var { cx, rx } = component.model\n rx = Math.abs(rx)\n\n var transcoorded = component.transcoordP2S(point.x, point.y)\n\n var ratio = ((transcoorded.x - cx) / rx) * 100\n\n ratio = ratio >= 100 || ratio <= -100 ? 100 : Math.abs(ratio)\n\n component.set({ ratio })\n }\n}\n\nexport default class Donut extends Ellipse {\n is3dish() {\n return false\n }\n\n render(ctx: CanvasRenderingContext2D) {\n var { ratio = 50, cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state\n rx = Math.abs(rx)\n ry = Math.abs(ry)\n\n ctx.beginPath()\n ctx.ellipse(cx, cy, rx, ry, 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise)\n\n ctx.moveTo(cx + (rx / 100) * ratio, cy)\n // 맨 마지막 속성이 true면 원의 범위만큼 공백이 됨\n ctx.ellipse(cx, cy, (rx / 100) * ratio, (ry / 100) * ratio, 0, startAngle || 0, endAngle || 2 * Math.PI, true)\n }\n\n contains(x: number, y: number) {\n var { cx, cy, rx, ry, ratio } = this.state\n rx = Math.abs(rx)\n ry = Math.abs(ry)\n\n var normx = (x - cx) / (rx * 2 - 0.5)\n var normy = (y - cy) / (ry * 2 - 0.5)\n var ratiox = (x - cx) / ((rx / 100) * ratio * 2 - 0.5)\n var ratioy = (y - cy) / ((ry / 100) * ratio * 2 - 0.5)\n var result = false\n\n if (normx * normx + normy * normy < 0.25 && ratiox * ratiox + ratioy * ratioy > 0.25) result = !result\n\n return result\n }\n\n get controls() {\n var { cx, cy, rx, ratio } = this.state\n rx = Math.abs(rx)\n\n return [\n {\n x: cx + (rx / 100) * ratio,\n y: cy,\n handler: controlHandler\n }\n ]\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Donut.prototype, 'controls', false)\n\nComponent.register('donut', Donut)\n"]}
@@ -1 +0,0 @@
1
- export default function drawImage(context: any, image: any, left: any, top: any, width: any, height: any): void;
@@ -1 +0,0 @@
1
- export default function effect(context: any): void;
@@ -1,14 +0,0 @@
1
- export function drawFill(context: any, bounds: any, center: any, style: any, host_component: any): void;
2
- export function prepareFill(resolve: any, reject: any): void;
3
- export class prepareFill {
4
- constructor(resolve: any, reject: any);
5
- _pattern_image_origin: any;
6
- _pattern_image: any;
7
- }
8
- export function prepareFillIf(condition: any): void;
9
- export function onchangeFill(after: any, before: any): void;
10
- export class onchangeFill {
11
- constructor(after: any, before: any);
12
- _pattern_image: any;
13
- _pattern_image_origin: any;
14
- }
@@ -1 +0,0 @@
1
- export default function format(mask: any, value: any): any;
@@ -1,3 +0,0 @@
1
- export function containedInPath(x: any, y: any, path: any, lineWidth?: number): boolean;
2
- export function getTipNeckPos(tipType: any, lineWidth: any, p1: any, p2: any): any;
3
- export function drawEndTips(ctx: any, path: any, style: any): void;
@@ -1 +0,0 @@
1
- export default function stroke(context: any, style: any, hostComponent: any): void;
@@ -1,10 +0,0 @@
1
- /**
2
- * 주어진 텍스트를 주어진 폭(width)에 맞게 줄바꿈할 때, 각 라인별 word의 배열을 제공한다.
3
- *
4
- * @param context object 사용될 폰트가 설정된 Context2D 레퍼런스
5
- * @param word string 줄바꿈 대상 문장
6
- * @param width number 줄바꿈 기준 폭
7
- * @param wrap boolean 자동 줄바꿈 여부
8
- * @return array 각 라인별 word의 배열([[word1, word2, word3], [word4, word5]] 형식임)
9
- */
10
- export default function splitTextToLines(context: any, text: any, width: any, wrap: any): string[][];
@@ -1,3 +0,0 @@
1
- export function textLines(context: any, width: any, font: any, text: any, wrap: any): string[][];
2
- export function font(style: any): string;
3
- export function drawText(context: any, bounds: any, lines: any, style: any): void;
@@ -1,35 +0,0 @@
1
- /// <reference path="../../things-scene.d.ts" />
2
- /// <reference path="../../src/component.d.ts" />
3
- import * as THREE from 'three';
4
- import { Anchor, Component, ComponentNature, Shape } from '@hatiolab/things-scene';
5
- import RealObjectExtrude from '../threed/real-object-extrude';
6
- import RealObject from '../threed/real-object';
7
- export declare class EllipseExtrude extends RealObjectExtrude {
8
- get cx(): number;
9
- get cy(): number;
10
- get shape(): THREE.Shape;
11
- }
12
- declare const Ellipse_base: (new (...args: any[]) => {
13
- findOutletLines(anchorName: string): import("@hatiolab/things-scene").Line[];
14
- findOutletEnds(anchorName: string): Component[];
15
- findInletLines(anchorName: string): import("@hatiolab/things-scene").Line[];
16
- findInletEnds(anchorName: string): Component[];
17
- }) & typeof Shape;
18
- export default class Ellipse extends Ellipse_base {
19
- is3dish(): boolean;
20
- render(context: CanvasRenderingContext2D): void;
21
- get path(): {
22
- x: any;
23
- y: any;
24
- }[];
25
- set path(path: {
26
- x: any;
27
- y: any;
28
- }[]);
29
- contains(x: number, y: number): boolean;
30
- outline(progress: number): import("@hatiolab/things-scene").DIMENSION;
31
- buildRealObject(): RealObject | undefined;
32
- get anchors(): Array<Anchor>;
33
- get nature(): ComponentNature;
34
- }
35
- export {};
@@ -1,99 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import * as THREE from 'three';
5
- import { Component, Connectable, Shape } from '@hatiolab/things-scene';
6
- import RealObjectExtrude from '../threed/real-object-extrude';
7
- import ellipseAnchors from './anchor/ellipse-anchors';
8
- import ellipseOutline from './outline/ellipse-outline';
9
- const NATURE = {
10
- mutable: false,
11
- resizable: true,
12
- rotatable: true,
13
- properties: [],
14
- 'value-property': 'text'
15
- };
16
- export class EllipseExtrude extends RealObjectExtrude {
17
- get cx() {
18
- var { cx = 0 } = this.component.state;
19
- var { width: parentWidth = 0 } = this.component.parent.bounds;
20
- return cx - parentWidth / 2;
21
- }
22
- get cy() {
23
- var { cy = 0 } = this.component.state;
24
- var { height: parentHeight = 0 } = this.component.parent.bounds;
25
- return cy - parentHeight / 2;
26
- }
27
- get shape() {
28
- var { cx = 0, cy = 0, rx = 1, ry = 1, startAngle = 0, endAngle = 2 * Math.PI, anticlockwise = false } = this.component.state;
29
- const curve = new THREE.EllipseCurve(cx, cy, // ax, aY
30
- Math.abs(rx), Math.abs(ry), // xRadius, yRadius
31
- startAngle, endAngle, // aStartAngle, aEndAngle
32
- anticlockwise, // aClockwise
33
- 0 // aRotation
34
- );
35
- return new THREE.Shape(curve.getPoints(50));
36
- }
37
- }
38
- export default class Ellipse extends Connectable(Shape) {
39
- is3dish() {
40
- return true;
41
- }
42
- render(context) {
43
- var { cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state;
44
- context.beginPath();
45
- context.ellipse(cx, cy, Math.abs(rx), Math.abs(ry), 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise);
46
- }
47
- get path() {
48
- var { cx, cy, rx, ry } = this.state;
49
- return [
50
- {
51
- x: cx - rx,
52
- y: cy - ry
53
- },
54
- {
55
- x: cx + rx,
56
- y: cy - ry
57
- },
58
- {
59
- x: cx + rx,
60
- y: cy + ry
61
- },
62
- {
63
- x: cx - rx,
64
- y: cy + ry
65
- }
66
- ];
67
- }
68
- set path(path) {
69
- var left_top = path[0];
70
- var right_bottom = path[2];
71
- this.set({
72
- cx: left_top.x + (right_bottom.x - left_top.x) / 2,
73
- cy: left_top.y + (right_bottom.y - left_top.y) / 2,
74
- rx: (right_bottom.x - left_top.x) / 2,
75
- ry: (right_bottom.y - left_top.y) / 2
76
- });
77
- }
78
- contains(x, y) {
79
- var { cx, cy, rx, ry } = this.state;
80
- var normx = (x - cx) / (rx * 2 - 0.5);
81
- var normy = (y - cy) / (ry * 2 - 0.5);
82
- return normx * normx + normy * normy < 0.25;
83
- }
84
- outline(progress) {
85
- return ellipseOutline(this, progress);
86
- }
87
- buildRealObject() {
88
- return new EllipseExtrude(this);
89
- }
90
- get anchors() {
91
- return ellipseAnchors(this);
92
- }
93
- get nature() {
94
- return NATURE;
95
- }
96
- }
97
- Component.memoize(Ellipse.prototype, 'path', false);
98
- Component.register('ellipse', Ellipse);
99
- //# sourceMappingURL=ellipse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipse.js","sourceRoot":"","sources":["../../src/components/ellipse.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport * as THREE from 'three'\nimport { Anchor, Component, ComponentNature, Connectable, Shape } from '@hatiolab/things-scene'\n\nimport RealObjectExtrude from '../threed/real-object-extrude'\nimport ellipseAnchors from './anchor/ellipse-anchors'\nimport ellipseOutline from './outline/ellipse-outline'\nimport RealObject from '../threed/real-object'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [],\n 'value-property': 'text'\n}\n\nexport class EllipseExtrude extends RealObjectExtrude {\n get cx() {\n var { cx = 0 } = this.component.state\n var { width: parentWidth = 0 } = this.component.parent.bounds\n\n return cx - parentWidth / 2\n }\n\n get cy() {\n var { cy = 0 } = this.component.state\n var { height: parentHeight = 0 } = this.component.parent.bounds\n\n return cy - parentHeight / 2\n }\n\n get shape() {\n var {\n cx = 0,\n cy = 0,\n rx = 1,\n ry = 1,\n startAngle = 0,\n endAngle = 2 * Math.PI,\n anticlockwise = false\n } = this.component.state\n\n const curve = new THREE.EllipseCurve(\n cx,\n cy, // ax, aY\n Math.abs(rx),\n Math.abs(ry), // xRadius, yRadius\n startAngle,\n endAngle, // aStartAngle, aEndAngle\n anticlockwise, // aClockwise\n 0 // aRotation\n )\n\n return new THREE.Shape(curve.getPoints(50))\n }\n}\n\nexport default class Ellipse extends Connectable(Shape) {\n is3dish() {\n return true\n }\n\n render(context: CanvasRenderingContext2D) {\n var { cx, cy, rx, ry, startAngle, endAngle, anticlockwise } = this.state\n\n context.beginPath()\n\n context.ellipse(cx, cy, Math.abs(rx), Math.abs(ry), 0, startAngle || 0, endAngle || 2 * Math.PI, anticlockwise)\n }\n\n get path() {\n var { cx, cy, rx, ry } = this.state\n\n return [\n {\n x: cx - rx,\n y: cy - ry\n },\n {\n x: cx + rx,\n y: cy - ry\n },\n {\n x: cx + rx,\n y: cy + ry\n },\n {\n x: cx - rx,\n y: cy + ry\n }\n ]\n }\n\n set path(path) {\n var left_top = path[0]\n var right_bottom = path[2]\n\n this.set({\n cx: left_top.x + (right_bottom.x - left_top.x) / 2,\n cy: left_top.y + (right_bottom.y - left_top.y) / 2,\n rx: (right_bottom.x - left_top.x) / 2,\n ry: (right_bottom.y - left_top.y) / 2\n })\n }\n\n contains(x: number, y: number) {\n var { cx, cy, rx, ry } = this.state\n\n var normx = (x - cx) / (rx * 2 - 0.5)\n var normy = (y - cy) / (ry * 2 - 0.5)\n\n return normx * normx + normy * normy < 0.25\n }\n\n outline(progress: number) {\n return ellipseOutline(this, progress)\n }\n\n buildRealObject(): RealObject | undefined {\n return new EllipseExtrude(this)\n }\n\n get anchors(): Array<Anchor> {\n return ellipseAnchors(this)\n }\n\n get nature() {\n return NATURE\n }\n}\n\nComponent.memoize(Ellipse.prototype, 'path', false)\n\nComponent.register('ellipse', Ellipse)\n"]}
@@ -1 +0,0 @@
1
- export function ondropfile(transfered: any, files: any): void;
@@ -1,15 +0,0 @@
1
- /**
2
- * !this should be root-container
3
- *
4
- * @param {String} type assigns fitMode property of root container before fitting
5
- */
6
- export default function fit(type: string): void;
7
- export default class fit {
8
- /**
9
- * !this should be root-container
10
- *
11
- * @param {String} type assigns fitMode property of root container before fitting
12
- */
13
- constructor(type: string);
14
- fitMode: any;
15
- }
@@ -1,41 +0,0 @@
1
- export function transcoordR(x: any, y: any, rotatePoint?: {
2
- x: number;
3
- y: number;
4
- }, rotation?: number, scale?: {
5
- x: number;
6
- y: number;
7
- }): {
8
- x: number;
9
- y: number;
10
- };
11
- export function transcoordRR(x: any, y: any, rotatePoint?: {
12
- x: number;
13
- y: number;
14
- }, rotation?: number, scale?: {
15
- x: number;
16
- y: number;
17
- }): {
18
- x: number;
19
- y: number;
20
- };
21
- export function transcoordP2S(x: any, y: any, rotatePoint: any): {
22
- x: any;
23
- y: any;
24
- };
25
- export function transcoordS2P(x: any, y: any, rotatePoint: any): {
26
- x: any;
27
- y: any;
28
- };
29
- export function transcoordS2TR(x: any, y: any, top: any): {
30
- x: number;
31
- y: number;
32
- };
33
- export function transcoordS2T(x: any, y: any, top: any): any;
34
- export function transcoordT2P(x: any, y: any, top: any): {
35
- x: any;
36
- y: any;
37
- };
38
- export function transcoordT2S(x: any, y: any, top: any): any;
39
- export function transcoordS2O(x: any, y: any, to: any): any;
40
- export function transcoordC2S(x: any, y: any, top: any): any;
41
- export function transcoordS2C(x: any, y: any, top: any): any;
@@ -1,6 +0,0 @@
1
- export default function union(boundsList: any): {
2
- left: undefined;
3
- top: undefined;
4
- width: number;
5
- height: number;
6
- };
@@ -1,18 +0,0 @@
1
- import { ComponentNature, HTMLOverlayElement, Properties } from '@hatiolab/things-scene';
2
- import { SuperGif } from '@wizpanda/super-gif';
3
- export default class GifView extends HTMLOverlayElement {
4
- _superGif?: SuperGif;
5
- oncreate_element(div: HTMLDivElement): Promise<void>;
6
- buildImg(): HTMLImageElement;
7
- onchange(after: Properties, before: Properties): void;
8
- setElementProperties(div: HTMLDivElement): void;
9
- onchangeplay(play: boolean): void;
10
- onchangesrc(src: string): void;
11
- ondropfile(transfered: DataTransferItemList, files: FileList): void;
12
- get src(): any;
13
- set src(src: any);
14
- get play(): any;
15
- set play(play: any);
16
- get nature(): ComponentNature;
17
- get tagName(): string;
18
- }
@@ -1,116 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import { Component, HTMLOverlayElement } from '@hatiolab/things-scene';
5
- import { SuperGif } from '@wizpanda/super-gif';
6
- const NATURE = {
7
- mutable: false,
8
- resizable: true,
9
- rotatable: true,
10
- properties: [
11
- {
12
- type: 'string',
13
- label: 'src',
14
- name: 'src'
15
- },
16
- {
17
- type: 'checkbox',
18
- label: 'play',
19
- name: 'play'
20
- }
21
- ],
22
- 'value-property': 'src',
23
- help: 'scene/component/gif-view'
24
- };
25
- const NOIMAGE_DATA_URI = 'data:image/gif;base64,R0lGODlhYABIAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKio+Pj5iYmKCgoKampqurq66urrCwsLGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrOzs7S0tLa2tre3t7m5ubu7u7+/v8DAwMHBwcPDw8XFxcfHx8vLy8/Pz9LS0tXV1dfX193d3eTk5Onp6fj4+Pz8/P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////yH5BAkAAPUAIf47R2VuZXJhdGVkIGJ5IGpzZ2lmIChodHRwczovL2dpdGh1Yi5jb20vYW50aW1hdHRlcjE1L2pzZ2lmLykALAAAAABgAEgAAAj+AGcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmR9VKqXMmypcuXMGPKnJkSIs2bOHPqZGlzp8+fQOv1DEq0KMyhRpMmRaq0KVCmTqPmhCq1qkyqLrFRSyYwGTVsVo1iZXmNa8Fk18ISHasSm1mDycCq/ck2JTWF1ObSfTjz7cFken3WFbow8M7BDA3rHOwXruKpfGXeTZg3qDVrUge7RRg3KLZjx+Q2HVyvLNy0QaMJjBaVdD2tZr2K/mmNIObRkR+n9AsYt0Pddg1WXppb8bWDx1CLLW74GcJnSl3TtDY8Zu2Et4tKl7n52eyWnxXvhl7+26jqrspbnlfIWjtz2gWPZV95neH8veU9NxZYfbfD3kFt99J6Bnmn0mQO9XfYezrVxxlmx0GUXIAM4hSeffsxBN1TFd5E4Ef3QZbfTg6CNJ5gHXJ3TEntLThiTh+KFCJNAqZU4kgAitjQTheepOBMNcZI0oQ6JpbTjSZtiNN2PZ400IxHpdiSc07G911M0iFZZYtAStnWilUeBGVLrlEZpmM0elmPlmfO8iOZXl4DZpsGEYmll2bSWWCXLwJXVY1+urhjoGEBSuiSah6K36CKtpZoo4s9CimielZq6aWYZqrpppx26umnoIZ6UkAAOw==';
26
- export default class GifView extends HTMLOverlayElement {
27
- async oncreate_element(div) {
28
- var { src, play } = this.state;
29
- this.onchangesrc(src);
30
- this.onchangeplay(play);
31
- }
32
- buildImg() {
33
- /* clear first */
34
- var div = this.element;
35
- div.innerHTML = '';
36
- var gif = document.createElement('img');
37
- gif.style.width = '100%';
38
- gif.style.height = '100%';
39
- div.appendChild(gif);
40
- return gif;
41
- }
42
- onchange(after, before) {
43
- super.onchange(after, before);
44
- 'src' in after && this.onchangesrc(after.src);
45
- 'play' in after && this.onchangeplay(after.play);
46
- }
47
- setElementProperties(div) { }
48
- onchangeplay(play) {
49
- var superGif = this._superGif;
50
- if (!superGif || !superGif.isReady()) {
51
- return;
52
- }
53
- if (play) {
54
- superGif.play();
55
- }
56
- else {
57
- superGif.pause();
58
- }
59
- }
60
- onchangesrc(src) {
61
- var gif = this.buildImg();
62
- if (!src)
63
- src = NOIMAGE_DATA_URI;
64
- gif.src = src;
65
- gif.setAttribute('rel:animated_src', src);
66
- gif.setAttribute('rel:auto_play', '0');
67
- this._superGif = new SuperGif(gif, {
68
- autoPlay: false /* Without this setting, the first play's framerate is too fast. */
69
- });
70
- //@ts-ignore
71
- this._superGif.init();
72
- for (const child of this.element.children) {
73
- child.style.width = '100%';
74
- child.style.height = '100%';
75
- }
76
- var canvas = this._superGif.getCanvas();
77
- canvas.style.width = '100%';
78
- canvas.style.height = '100%';
79
- this._superGif.load(() => {
80
- this._superGif.moveTo(0);
81
- /*
82
- * FIXME. this.play 는 컴포넌트의 getState()를 통해서 가져오게 되는데, 체크박스의 경우 문제가 있는 것 같다.
83
- * 문제 해결 후 this.get("play") => this.play로 수정할 것.
84
- */
85
- this.play && this._superGif.play();
86
- });
87
- }
88
- ondropfile(transfered, files) {
89
- for (let i = 0; i < transfered.length; i++) {
90
- if (/\.gif$/.test(transfered[i].name)) {
91
- this.src = files[i];
92
- return;
93
- }
94
- }
95
- }
96
- get src() {
97
- return this.getState('src');
98
- }
99
- set src(src) {
100
- this.set('src', src);
101
- }
102
- get play() {
103
- return this.getState('play');
104
- }
105
- set play(play) {
106
- this.setState('play', play);
107
- }
108
- get nature() {
109
- return NATURE;
110
- }
111
- get tagName() {
112
- return 'div';
113
- }
114
- }
115
- Component.register('gif-view', GifView);
116
- //# sourceMappingURL=gif-view.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gif-view.js","sourceRoot":"","sources":["../../src/components/gif-view.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\nimport { Component, ComponentNature, HTMLOverlayElement, Properties, RectPath, Shape } from '@hatiolab/things-scene'\nimport { SuperGif } from '@wizpanda/super-gif'\n\nconst NATURE: ComponentNature = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'string',\n label: 'src',\n name: 'src'\n },\n {\n type: 'checkbox',\n label: 'play',\n name: 'play'\n }\n ],\n 'value-property': 'src',\n help: 'scene/component/gif-view'\n}\n\nconst NOIMAGE_DATA_URI =\n 'data:image/gif;base64,R0lGODlhYABIAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKio+Pj5iYmKCgoKampqurq66urrCwsLGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrOzs7S0tLa2tre3t7m5ubu7u7+/v8DAwMHBwcPDw8XFxcfHx8vLy8/Pz9LS0tXV1dfX193d3eTk5Onp6fj4+Pz8/P7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v7+/v///////////////////////////////////////////////////////////////////////////////yH5BAkAAPUAIf47R2VuZXJhdGVkIGJ5IGpzZ2lmIChodHRwczovL2dpdGh1Yi5jb20vYW50aW1hdHRlcjE1L2pzZ2lmLykALAAAAABgAEgAAAj+AGcJHEiwoMGDCBMqXMiwocOHECNKnEixosWLGDNq3Mixo8ePIEOKHEmypMmR9VKqXMmypcuXMGPKnJkSIs2bOHPqZGlzp8+fQOv1DEq0KMyhRpMmRaq0KVCmTqPmhCq1qkyqLrFRSyYwGTVsVo1iZXmNa8Fk18ISHasSm1mDycCq/ck2JTWF1ObSfTjz7cFken3WFbow8M7BDA3rHOwXruKpfGXeTZg3qDVrUge7RRg3KLZjx+Q2HVyvLNy0QaMJjBaVdD2tZr2K/mmNIObRkR+n9AsYt0Pddg1WXppb8bWDx1CLLW74GcJnSl3TtDY8Zu2Et4tKl7n52eyWnxXvhl7+26jqrspbnlfIWjtz2gWPZV95neH8veU9NxZYfbfD3kFt99J6Bnmn0mQO9XfYezrVxxlmx0GUXIAM4hSeffsxBN1TFd5E4Ef3QZbfTg6CNJ5gHXJ3TEntLThiTh+KFCJNAqZU4kgAitjQTheepOBMNcZI0oQ6JpbTjSZtiNN2PZ400IxHpdiSc07G911M0iFZZYtAStnWilUeBGVLrlEZpmM0elmPlmfO8iOZXl4DZpsGEYmll2bSWWCXLwJXVY1+urhjoGEBSuiSah6K36CKtpZoo4s9CimielZq6aWYZqrpppx26umnoIZ6UkAAOw=='\n\nexport default class GifView extends HTMLOverlayElement {\n _superGif?: SuperGif\n\n async oncreate_element(div: HTMLDivElement) {\n var { src, play } = this.state\n\n this.onchangesrc(src)\n this.onchangeplay(play)\n }\n\n buildImg() {\n /* clear first */\n var div = this.element\n div.innerHTML = ''\n\n var gif = document.createElement('img')\n gif.style.width = '100%'\n gif.style.height = '100%'\n\n div.appendChild(gif)\n\n return gif\n }\n\n onchange(after: Properties, before: Properties) {\n super.onchange(after, before)\n\n 'src' in after && this.onchangesrc(after.src)\n 'play' in after && this.onchangeplay(after.play)\n }\n\n setElementProperties(div: HTMLDivElement) {}\n\n onchangeplay(play: boolean) {\n var superGif = this._superGif\n\n if (!superGif || !superGif.isReady()) {\n return\n }\n\n if (play) {\n superGif.play()\n } else {\n superGif.pause()\n }\n }\n\n onchangesrc(src: string) {\n var gif = this.buildImg()\n\n if (!src) src = NOIMAGE_DATA_URI\n\n gif.src = src\n gif.setAttribute('rel:animated_src', src)\n gif.setAttribute('rel:auto_play', '0')\n\n this._superGif = new SuperGif(gif, {\n autoPlay: false /* Without this setting, the first play's framerate is too fast. */\n })\n //@ts-ignore\n this._superGif!.init()\n\n for (const child of this.element.children as any) {\n child.style.width = '100%'\n child.style.height = '100%'\n }\n\n var canvas = this._superGif!.getCanvas()\n canvas.style.width = '100%'\n canvas.style.height = '100%'\n\n this._superGif.load(() => {\n this._superGif!.moveTo(0)\n\n /*\n * FIXME. this.play 는 컴포넌트의 getState()를 통해서 가져오게 되는데, 체크박스의 경우 문제가 있는 것 같다.\n * 문제 해결 후 this.get(\"play\") => this.play로 수정할 것.\n */\n this.play && this._superGif!.play()\n })\n }\n\n ondropfile(transfered: DataTransferItemList, files: FileList) {\n for (let i = 0; i < transfered.length; i++) {\n if (/\\.gif$/.test((transfered[i] as any).name)) {\n this.src = files[i]\n return\n }\n }\n }\n\n get src() {\n return this.getState('src')\n }\n\n set src(src) {\n this.set('src', src)\n }\n\n get play() {\n return this.getState('play')\n }\n\n set play(play) {\n this.setState('play', play)\n }\n\n get nature() {\n return NATURE\n }\n\n get tagName() {\n return 'div'\n }\n}\n\nComponent.register('gif-view', GifView)\n"]}