@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,4 +0,0 @@
1
- export default function animate(config: any): {
2
- start: () => any;
3
- stop: () => any;
4
- };
@@ -1,14 +0,0 @@
1
- export default class Animation {
2
- constructor(client: any, config: any);
3
- client: any;
4
- config: any;
5
- _started: boolean;
6
- delta: any;
7
- dispose(): void;
8
- init(): void;
9
- start(): void;
10
- _raf: number | null | undefined;
11
- stop(): void;
12
- set started(arg: boolean);
13
- get started(): boolean;
14
- }
@@ -1,4 +0,0 @@
1
- export default class Fade extends Animation {
2
- step(delta: any): void;
3
- }
4
- import Animation from "./animation";
@@ -1,4 +0,0 @@
1
- export default class HeartBeat extends Animation {
2
- step(delta: any): void;
3
- }
4
- import Animation from "./animation";
@@ -1,4 +0,0 @@
1
- export default class Moving extends Animation {
2
- step(delta: any): void;
3
- }
4
- import Animation from "./animation";
@@ -1,10 +0,0 @@
1
- /**
2
- outline 애니메이션은 정지해있는 컴포넌트의 outline을 따라 움직이는 효과를 만들어낸다.
3
- 만일 아웃라인을 제공하는 컴포넌트가 애니메이션 동작중이면, 애니메이션 동작에 의한 아웃라인의 변화는 반영되지 않는다.
4
- 애니메이션이 아닌 실제 위치가 변경되는 경우에는 반영된다.
5
- 아웃라인 컴포넌트와 애니메이션 컴포넌트가 동일 부모 아래서 적용된다면, 부모의 움직임이 반영되는 효과를 만들어 낼 수 있다.
6
- */
7
- export default class Outline extends Animation {
8
- step(delta: any): void;
9
- }
10
- import Animation from "./animation";
@@ -1,4 +0,0 @@
1
- export default class Rotation extends Animation {
2
- step(delta: any): void;
3
- }
4
- import Animation from "./animation";
@@ -1,4 +0,0 @@
1
- export default class Vibration extends Animation {
2
- step(delta: any): void;
3
- }
4
- import Animation from "./animation";
@@ -1 +0,0 @@
1
- export default function compile(client: any, animationConfig: any): any;
@@ -1,19 +0,0 @@
1
- export function linear(progress: any): any;
2
- export function quad(progress: any): number;
3
- export function circ(progress: any): number;
4
- export function back(progress: any, options?: {
5
- x: number;
6
- }): number;
7
- export function bounce(progress: any): number | undefined;
8
- export function elastic(progress: any, options?: {
9
- x: number;
10
- }): number;
11
- declare namespace _default {
12
- export { linear };
13
- export { quad };
14
- export { circ };
15
- export { back };
16
- export { bounce };
17
- export { elastic };
18
- }
19
- export default _default;
@@ -1 +0,0 @@
1
- export { default as compile } from "./compile";
@@ -1,7 +0,0 @@
1
- export default class CommandChange extends Command {
2
- static before(components: any): any;
3
- static after(changes: any, commander: any): void;
4
- static around(commander: any, changeFunc: any, self: any): void;
5
- execute(): void;
6
- }
7
- import Command from "./command";
@@ -1,4 +0,0 @@
1
- export default class CommandMigrate extends Command {
2
- execute(): void;
3
- }
4
- import Command from "./command";
@@ -1,85 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import Component from '../components/component';
5
- import Command from './command';
6
- function calculate_bounds_on_root(component) {
7
- if (component.isRootModel())
8
- return component.bounds;
9
- var { bounds, rotatePoint } = component;
10
- var pointOnTop = rotatePoint;
11
- // if(component.parent && !component.parent.isRootModel())
12
- // pointOnTop = recursive_transcoordS2P(pointOnTop, component.parent)
13
- // TODO 목적상 아래 로직으로 대체 가능할 것이다. 검토하라. (스케일된 컴포넌트에 대해서 이상작동한다.)
14
- pointOnTop = component.transcoordS2T(pointOnTop.x, pointOnTop.y);
15
- return {
16
- left: pointOnTop.x - (rotatePoint.x - bounds.left),
17
- top: pointOnTop.y - (rotatePoint.y - bounds.top),
18
- width: bounds.width,
19
- height: bounds.height
20
- };
21
- }
22
- function calculate_bounds_on_container(component, container) {
23
- if (container.isRootModel())
24
- return component.bounds;
25
- var { bounds, rotatePoint } = component;
26
- var pointOnContainer = container.transcoordT2S(rotatePoint.x, rotatePoint.y);
27
- var container_bounds = container.bounds;
28
- return {
29
- left: pointOnContainer.x - (rotatePoint.x - bounds.left) - container_bounds.left,
30
- top: pointOnContainer.y - (rotatePoint.y - bounds.top) - container_bounds.top,
31
- width: bounds.width,
32
- height: bounds.height
33
- };
34
- }
35
- function calculate_rotation_on_root(component) {
36
- var rotation = 0;
37
- while (component && !component.isRootModel()) {
38
- rotation += component.get('rotation') || 0;
39
- component = component.parent;
40
- }
41
- return rotation % (Math.PI * 2);
42
- }
43
- function calculate_rotation_on_container(component, container) {
44
- var rotation = component.get('rotation') || 0;
45
- var container_rotation = calculate_rotation_on_root(container);
46
- return (rotation - container_rotation) % (Math.PI * 2);
47
- }
48
- /*
49
- * 컴포넌트가 추가, 삭제되거나 부모컨테이너를 바꿔서 이동하는 경우.
50
- * 새로운 그룹을 만들거나, 그룹해제 되는 경우도 포함됨.
51
- *
52
- * to_container, component, to_index
53
- *
54
- */
55
- export default class CommandMigrate extends Command {
56
- execute() {
57
- var changes = this.params.changes;
58
- changes.forEach(change => {
59
- let { component, to_container, to_index, to_left, to_top, hint } = change;
60
- let bounds = calculate_bounds_on_root(component);
61
- let rotation = calculate_rotation_on_root(component);
62
- /* to_container가 없으면, 완전히 제거함 */
63
- component.removeSelf(!to_container);
64
- component.bounds = bounds;
65
- component.set('rotation', rotation);
66
- if (to_container) {
67
- component.set('rotation', calculate_rotation_on_container(component, to_container));
68
- let bounds = calculate_bounds_on_container(component, to_container);
69
- change.to_left = to_left !== undefined ? to_left : bounds.left;
70
- change.to_top = to_top !== undefined ? to_top : bounds.top;
71
- component.bounds = {
72
- left: change.to_left,
73
- top: change.to_top,
74
- width: bounds.width,
75
- height: bounds.height
76
- };
77
- if (typeof to_index === 'undefined')
78
- to_container.addComponent(component);
79
- else
80
- to_container.insertComponentAt(component, to_index);
81
- }
82
- });
83
- }
84
- }
85
- //# sourceMappingURL=command-migrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"command-migrate.js","sourceRoot":"","sources":["../../src/command/command-migrate.js"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from '../components/component'\nimport Command from './command'\n\nfunction calculate_bounds_on_root(component) {\n if (component.isRootModel()) return component.bounds\n\n var { bounds, rotatePoint } = component\n\n var pointOnTop = rotatePoint\n // if(component.parent && !component.parent.isRootModel())\n // pointOnTop = recursive_transcoordS2P(pointOnTop, component.parent)\n // TODO 목적상 아래 로직으로 대체 가능할 것이다. 검토하라. (스케일된 컴포넌트에 대해서 이상작동한다.)\n pointOnTop = component.transcoordS2T(pointOnTop.x, pointOnTop.y)\n\n return {\n left: pointOnTop.x - (rotatePoint.x - bounds.left),\n top: pointOnTop.y - (rotatePoint.y - bounds.top),\n width: bounds.width,\n height: bounds.height\n }\n}\n\nfunction calculate_bounds_on_container(component, container) {\n if (container.isRootModel()) return component.bounds\n\n var { bounds, rotatePoint } = component\n\n var pointOnContainer = container.transcoordT2S(rotatePoint.x, rotatePoint.y)\n\n var container_bounds = container.bounds\n\n return {\n left: pointOnContainer.x - (rotatePoint.x - bounds.left) - container_bounds.left,\n top: pointOnContainer.y - (rotatePoint.y - bounds.top) - container_bounds.top,\n width: bounds.width,\n height: bounds.height\n }\n}\n\nfunction calculate_rotation_on_root(component) {\n var rotation = 0\n\n while (component && !component.isRootModel()) {\n rotation += component.get('rotation') || 0\n\n component = component.parent\n }\n\n return rotation % (Math.PI * 2)\n}\n\nfunction calculate_rotation_on_container(component, container) {\n var rotation = component.get('rotation') || 0\n var container_rotation = calculate_rotation_on_root(container)\n\n return (rotation - container_rotation) % (Math.PI * 2)\n}\n\n/*\n * 컴포넌트가 추가, 삭제되거나 부모컨테이너를 바꿔서 이동하는 경우.\n * 새로운 그룹을 만들거나, 그룹해제 되는 경우도 포함됨.\n *\n * to_container, component, to_index\n *\n */\nexport default class CommandMigrate extends Command {\n execute() {\n var changes = this.params.changes\n\n changes.forEach(change => {\n let { component, to_container, to_index, to_left, to_top, hint } = change\n\n let bounds = calculate_bounds_on_root(component)\n let rotation = calculate_rotation_on_root(component)\n\n /* to_container가 없으면, 완전히 제거함 */\n component.removeSelf(!to_container)\n\n component.bounds = bounds\n component.set('rotation', rotation)\n\n if (to_container) {\n component.set('rotation', calculate_rotation_on_container(component, to_container))\n let bounds = calculate_bounds_on_container(component, to_container)\n\n change.to_left = to_left !== undefined ? to_left : bounds.left\n change.to_top = to_top !== undefined ? to_top : bounds.top\n\n component.bounds = {\n left: change.to_left,\n top: change.to_top,\n width: bounds.width,\n height: bounds.height\n }\n\n if (typeof to_index === 'undefined') to_container.addComponent(component)\n else to_container.insertComponentAt(component, to_index)\n }\n })\n }\n}\n"]}
@@ -1,5 +0,0 @@
1
- export default class Command {
2
- constructor(params: any);
3
- params: any;
4
- excute(): void;
5
- }
@@ -1,15 +0,0 @@
1
- export default class SnapshotCommander {
2
- constructor(container: any);
3
- container: any;
4
- timecapsule: TimeCapsule;
5
- snapshot_taker: SnapshotTaker;
6
- dispose(): void;
7
- execute(command: any, doit: any): void;
8
- undo(): void;
9
- redo(): void;
10
- undoable(): boolean;
11
- redoable(): boolean;
12
- reset(): void;
13
- }
14
- import TimeCapsule from "../core/timecapsule";
15
- import SnapshotTaker from "../core/snapshot-taker";
@@ -1,128 +0,0 @@
1
- /**
2
- * Position definition
3
- * @typedef {Object} Position
4
- * @property {number} x - x position
5
- * @property {number} y - y position
6
- */
7
- /**
8
- * Bounds definition
9
- * @typedef {Object} Bounds
10
- * @property {number} left - left position
11
- * @property {number} top - top position
12
- * @property {number} width - width
13
- * @property {number} height - height
14
- */
15
- /**
16
- * anchorDrawFunction
17
- * @param {CanvasRenderingContext2D} context
18
- * @param {Component} component
19
- */
20
- /**
21
- * Anchor definition
22
- * @typedef {Object} Anchor
23
- * @property {string} name - name of the anchor
24
- * @property {string} type - type of the anchor
25
- * @property {string} inout - inout direction of the anchor 'in', 'out', 'inout'
26
- * @property {Position} position - position of the anchor
27
- * @property {Bounds} bounds - bounds of the anchor
28
- * @property {boolean} multiplicity - multiplicity
29
- * @property {anchorDrawFunction} draw
30
- */
31
- /**
32
- * @function findInOutLines
33
- * @param {Component} component
34
- * @param {string} anchorName
35
- * @return {Line[]}
36
- */
37
- export function findInOutLines(component: Component, anchorName: string): Line[];
38
- /**
39
- * @function findOutletLines
40
- * @param {Component} component
41
- * @param {string} anchorName
42
- * @return {Line[]}
43
- */
44
- export function findOutletLines(component: Component, anchorName: string): Line[];
45
- /**
46
- * @function findOutletEnds
47
- * @param {Component} component
48
- * @param {string} anchorName
49
- * @return {Component[]}
50
- */
51
- export function findOutletEnds(component: Component, anchorName: string): Component[];
52
- /**
53
- * @function findInletLines
54
- * @param {Component} component
55
- * @return {Line[]}
56
- */
57
- export function findInletLines(component: Component, anchorName: any): Line[];
58
- /**
59
- * @function findInletEnds
60
- * @param {Component} component
61
- * @param {string} anchorName
62
- * @return {Component[]}
63
- */
64
- export function findInletEnds(component: Component, anchorName: string): Component[];
65
- /**
66
- * Position definition
67
- */
68
- export type Position = {
69
- /**
70
- * - x position
71
- */
72
- x: number;
73
- /**
74
- * - y position
75
- */
76
- y: number;
77
- };
78
- /**
79
- * Bounds definition
80
- */
81
- export type Bounds = {
82
- /**
83
- * - left position
84
- */
85
- left: number;
86
- /**
87
- * - top position
88
- */
89
- top: number;
90
- /**
91
- * - width
92
- */
93
- width: number;
94
- /**
95
- * - height
96
- */
97
- height: number;
98
- };
99
- /**
100
- * Anchor definition
101
- */
102
- export type Anchor = {
103
- /**
104
- * - name of the anchor
105
- */
106
- name: string;
107
- /**
108
- * - type of the anchor
109
- */
110
- type: string;
111
- /**
112
- * - inout direction of the anchor 'in', 'out', 'inout'
113
- */
114
- inout: string;
115
- /**
116
- * - position of the anchor
117
- */
118
- position: Position;
119
- /**
120
- * - bounds of the anchor
121
- */
122
- bounds: Bounds;
123
- /**
124
- * - multiplicity
125
- */
126
- multiplicity: boolean;
127
- draw: anchorDrawFunction;
128
- };
@@ -1,2 +0,0 @@
1
- import { Anchor, Component } from '@hatiolab/things-scene';
2
- export default function ellipseAnchors(component: Component): Anchor[];
@@ -1,38 +0,0 @@
1
- export default function ellipseAnchors(component) {
2
- var { left, top, width, height } = component.bounds;
3
- var centerx = left + width / 2;
4
- var centery = top + height / 2;
5
- var right = left + width;
6
- var bottom = top + height;
7
- return [
8
- {
9
- name: 'TOP',
10
- position: {
11
- x: centerx,
12
- y: top
13
- }
14
- },
15
- {
16
- name: 'RIGHT',
17
- position: {
18
- x: right,
19
- y: centery
20
- }
21
- },
22
- {
23
- name: 'BOTTOM',
24
- position: {
25
- x: centerx,
26
- y: bottom
27
- }
28
- },
29
- {
30
- name: 'LEFT',
31
- position: {
32
- x: left,
33
- y: centery
34
- }
35
- }
36
- ];
37
- }
38
- //# sourceMappingURL=ellipse-anchors.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ellipse-anchors.js","sourceRoot":"","sources":["../../../src/components/anchor/ellipse-anchors.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,SAAoB;IACzD,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,MAAM,CAAA;IAEnD,IAAI,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,CAAC,CAAA;IAC9B,IAAI,OAAO,GAAG,GAAG,GAAG,MAAM,GAAG,CAAC,CAAA;IAC9B,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAA;IACxB,IAAI,MAAM,GAAG,GAAG,GAAG,MAAM,CAAA;IAEzB,OAAO;QACL;YACE,IAAI,EAAE,KAAK;YACX,QAAQ,EAAE;gBACR,CAAC,EAAE,OAAO;gBACV,CAAC,EAAE,GAAG;aACP;SACF;QACD;YACE,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE;gBACR,CAAC,EAAE,KAAK;gBACR,CAAC,EAAE,OAAO;aACX;SACF;QACD;YACE,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE;gBACR,CAAC,EAAE,OAAO;gBACV,CAAC,EAAE,MAAM;aACV;SACF;QACD;YACE,IAAI,EAAE,MAAM;YACZ,QAAQ,EAAE;gBACR,CAAC,EAAE,IAAI;gBACP,CAAC,EAAE,OAAO;aACX;SACF;KACF,CAAA;AACH,CAAC","sourcesContent":["import { Anchor, Component } from '@hatiolab/things-scene'\n\nexport default function ellipseAnchors(component: Component): Anchor[] {\n var { left, top, width, height } = component.bounds\n\n var centerx = left + width / 2\n var centery = top + height / 2\n var right = left + width\n var bottom = top + height\n\n return [\n {\n name: 'TOP',\n position: {\n x: centerx,\n y: top\n }\n },\n {\n name: 'RIGHT',\n position: {\n x: right,\n y: centery\n }\n },\n {\n name: 'BOTTOM',\n position: {\n x: centerx,\n y: bottom\n }\n },\n {\n name: 'LEFT',\n position: {\n x: left,\n y: centery\n }\n }\n ]\n}\n"]}
@@ -1,10 +0,0 @@
1
- /**
2
- * @typedef {import('./anchor.js').Anchor} Anchor
3
- */
4
- /**
5
- * @function rectAnchors
6
- * @param {Component} component
7
- * @return {Anchor[]}
8
- */
9
- export default function rectAnchors(component: Component): Anchor[];
10
- export type Anchor = import('./anchor.js').Anchor;
@@ -1,25 +0,0 @@
1
- import { ComponentNature, Properties, Shape } from '@hatiolab/things-scene';
2
- declare const AudioPlayer_base: typeof Shape;
3
- export default class AudioPlayer extends AudioPlayer_base {
4
- static IMAGE: HTMLImageElement;
5
- static get image(): HTMLImageElement;
6
- _audio: any;
7
- dispose(): void;
8
- ready(): void;
9
- render(ctx: CanvasRenderingContext2D): void;
10
- get nature(): ComponentNature;
11
- get hasTextProperty(): boolean;
12
- get src(): any;
13
- set src(src: any);
14
- get started(): boolean;
15
- set started(started: boolean);
16
- start(): void;
17
- pause(): void;
18
- onchangeSrc(src: string): void;
19
- onchangeStarted(started: boolean): void;
20
- onchangeLoop(loop: boolean): void;
21
- onchange(after: Properties, before: Properties): void;
22
- ondblclick(e: MouseEvent): void;
23
- ondropfile(transfered: DataTransferItemList, files: FileList): void;
24
- }
25
- export {};
@@ -1,141 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import { Component, RectPath, Shape } from '@hatiolab/things-scene';
5
- const NATURE = {
6
- mutable: false,
7
- resizable: true,
8
- rotatable: true,
9
- properties: [
10
- {
11
- type: 'string',
12
- label: 'src',
13
- name: 'src'
14
- },
15
- {
16
- type: 'checkbox',
17
- label: 'started',
18
- name: 'started'
19
- },
20
- {
21
- type: 'checkbox',
22
- label: 'loop',
23
- name: 'loop'
24
- }
25
- ],
26
- 'value-property': 'src',
27
- help: 'scene/component/audio'
28
- };
29
- const AUDIO_IMAGE = 'data:image/png;base64,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';
30
- export default class AudioPlayer extends RectPath(Shape) {
31
- static get image() {
32
- if (!AudioPlayer.IMAGE) {
33
- AudioPlayer.IMAGE = new Image();
34
- AudioPlayer.IMAGE.src = AUDIO_IMAGE;
35
- }
36
- return AudioPlayer.IMAGE;
37
- }
38
- dispose() {
39
- super.dispose();
40
- this.started = false;
41
- delete this._audio;
42
- }
43
- ready() {
44
- super.ready();
45
- this._audio = new Audio();
46
- this._audio.addEventListener('canplay', () => {
47
- this.started && this._audio.play();
48
- });
49
- var { src = '', loop = false, started = false } = this.state;
50
- this.onchangeSrc(src);
51
- this.onchangeLoop(loop);
52
- this.onchangeStarted(started);
53
- }
54
- render(ctx) {
55
- var { left, top, width, height, src } = this.state;
56
- ctx.beginPath();
57
- this.drawImage(ctx, AudioPlayer.image, left, top, width, height);
58
- }
59
- get nature() {
60
- return NATURE;
61
- }
62
- get hasTextProperty() {
63
- return false;
64
- }
65
- get src() {
66
- return this.get('src');
67
- }
68
- set src(src) {
69
- this.set('src', src);
70
- }
71
- get started() {
72
- return !!this.get('started');
73
- }
74
- set started(started) {
75
- this.set('started', started);
76
- }
77
- start() {
78
- if (!this._audio)
79
- return;
80
- this._audio.classList.add('active');
81
- this._audio.play();
82
- }
83
- pause() {
84
- if (!this._audio)
85
- return;
86
- this._audio.classList.remove('active');
87
- this._audio.pause();
88
- }
89
- onchangeSrc(src) {
90
- try {
91
- // this._audio.crossOrigin = "anonymous";
92
- if (String(src).substring(0, 4) !== 'data')
93
- this._audio.crossOrigin = 'use-credentials';
94
- else
95
- this._audio.crossOrigin = null;
96
- this._audio.src = typeof src === 'string' ? this.app.url(src) : src;
97
- }
98
- catch (e) {
99
- console.error(e);
100
- return;
101
- }
102
- }
103
- onchangeStarted(started) {
104
- const audio = this._audio;
105
- if (started) {
106
- /*
107
- [ audio/video.readyState ]
108
- 0 = HAVE_NOTHING - no information whether or not the audio/video is ready
109
- 1 = HAVE_METADATA - metadata for the audio/video is ready
110
- 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond
111
- 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available
112
- 4 = HAVE_ENOUGH_DATA - enough data available to start playing
113
- */
114
- audio.readyState == 4 && audio.play();
115
- }
116
- else {
117
- audio.pause();
118
- }
119
- }
120
- onchangeLoop(loop) {
121
- this._audio.loop = loop;
122
- }
123
- onchange(after, before) {
124
- 'src' in after && this.onchangeSrc(after.src);
125
- 'started' in after && this.onchangeStarted(after.started);
126
- 'loop' in after && this.onchangeLoop(after.loop);
127
- }
128
- ondblclick(e) {
129
- this.started = !this.started;
130
- }
131
- ondropfile(transfered, files) {
132
- for (let i = 0; i < transfered.length; i++) {
133
- if (transfered[i].type.startsWith('audio/')) {
134
- this.src = files[i];
135
- return;
136
- }
137
- }
138
- }
139
- }
140
- Component.register('audio', AudioPlayer);
141
- //# sourceMappingURL=audio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio.js","sourceRoot":"","sources":["../../src/components/audio.ts"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport { Component, ComponentNature, Properties, RectPath, Shape } from '@hatiolab/things-scene'\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: 'started',\n name: 'started'\n },\n {\n type: 'checkbox',\n label: 'loop',\n name: 'loop'\n }\n ],\n 'value-property': 'src',\n help: 'scene/component/audio'\n}\n\nconst AUDIO_IMAGE =\n 'data:image/png;base64,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'\n\nexport default class AudioPlayer extends RectPath(Shape) {\n static IMAGE: HTMLImageElement\n\n static get image() {\n if (!AudioPlayer.IMAGE) {\n AudioPlayer.IMAGE = new Image()\n AudioPlayer.IMAGE.src = AUDIO_IMAGE\n }\n\n return AudioPlayer.IMAGE\n }\n\n _audio: any\n\n dispose() {\n super.dispose()\n\n this.started = false\n delete this._audio\n }\n\n ready() {\n super.ready()\n\n this._audio = new Audio()\n\n this._audio.addEventListener('canplay', () => {\n this.started && this._audio.play()\n })\n\n var { src = '', loop = false, started = false } = this.state\n\n this.onchangeSrc(src)\n this.onchangeLoop(loop)\n this.onchangeStarted(started)\n }\n\n render(ctx: CanvasRenderingContext2D) {\n var { left, top, width, height, src } = this.state\n\n ctx.beginPath()\n\n this.drawImage(ctx, AudioPlayer.image, left, top, width, height)\n }\n\n get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return false\n }\n\n get src() {\n return this.get('src')\n }\n\n set src(src) {\n this.set('src', src)\n }\n\n get started() {\n return !!this.get('started')\n }\n\n set started(started) {\n this.set('started', started)\n }\n\n start() {\n if (!this._audio) return\n\n this._audio.classList.add('active')\n this._audio.play()\n }\n\n pause() {\n if (!this._audio) return\n\n this._audio.classList.remove('active')\n this._audio.pause()\n }\n\n onchangeSrc(src: string) {\n try {\n // this._audio.crossOrigin = \"anonymous\";\n if (String(src).substring(0, 4) !== 'data') this._audio.crossOrigin = 'use-credentials'\n else this._audio.crossOrigin = null\n\n this._audio.src = typeof src === 'string' ? this.app.url(src) : src\n } catch (e) {\n console.error(e)\n return\n }\n }\n\n onchangeStarted(started: boolean) {\n const audio = this._audio\n\n if (started) {\n /* \n [ audio/video.readyState ]\n 0 = HAVE_NOTHING - no information whether or not the audio/video is ready\n 1 = HAVE_METADATA - metadata for the audio/video is ready\n 2 = HAVE_CURRENT_DATA - data for the current playback position is available, but not enough data to play next frame/millisecond\n 3 = HAVE_FUTURE_DATA - data for the current and at least the next frame is available\n 4 = HAVE_ENOUGH_DATA - enough data available to start playing\n */\n audio.readyState == 4 && audio.play()\n } else {\n audio.pause()\n }\n }\n\n onchangeLoop(loop: boolean) {\n this._audio.loop = loop\n }\n\n onchange(after: Properties, before: Properties) {\n 'src' in after && this.onchangeSrc(after.src)\n 'started' in after && this.onchangeStarted(after.started)\n 'loop' in after && this.onchangeLoop(after.loop)\n }\n\n ondblclick(e: MouseEvent) {\n this.started = !this.started\n }\n\n ondropfile(transfered: DataTransferItemList, files: FileList) {\n for (let i = 0; i < transfered.length; i++) {\n if (transfered[i].type.startsWith('audio/')) {\n this.src = files[i]\n return\n }\n }\n }\n}\n\nComponent.register('audio', AudioPlayer)\n"]}
@@ -1,13 +0,0 @@
1
- import { Component } from '@hatiolab/things-scene';
2
- export default class Cloud extends Component {
3
- prerender(ctx: CanvasRenderingContext2D): void;
4
- render(ctx: CanvasRenderingContext2D): void;
5
- get path(): {
6
- x: any;
7
- y: any;
8
- }[];
9
- set path(path: {
10
- x: any;
11
- y: any;
12
- }[]);
13
- }