@hatiolab/things-scene 3.4.39 → 3.4.42

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 (338) hide show
  1. package/db.sqlite +0 -0
  2. package/package.json +1 -1
  3. package/schema.graphql +3966 -0
  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
@@ -1,91 +0,0 @@
1
- export const NORTH: "N";
2
- export const SOUTH: "S";
3
- export const EAST: "E";
4
- export const WEST: "W";
5
- /**
6
- * LinkEndConfig definition
7
- * @typedef {Object} LinkEndConfig
8
- * @property {string} component - end component refid
9
- * @property {string} anchor - end anchor name of end component
10
- * @property {Position} position - position of the link end
11
- */
12
- /**
13
- * Line type definition
14
- * @typedef {Object} Line
15
- * @property {LinkEndConfig} from
16
- * @property {LinkEndConfig} to
17
- * @property {LinkEnd} fromEnd
18
- * @property {LinkEnd} toEnd
19
- */
20
- declare class Line extends Component {
21
- get fromEnd(): LinkEnd | undefined;
22
- _fromEnd: LinkEnd | undefined;
23
- set from(arg: any);
24
- get from(): any;
25
- get toEnd(): LinkEnd | undefined;
26
- _toEnd: LinkEnd | undefined;
27
- set to(arg: any);
28
- get to(): any;
29
- move({ x, y }: {
30
- x: any;
31
- y: any;
32
- }, absolutly: any): void;
33
- get resizable(): boolean;
34
- get mutable(): boolean;
35
- get rotatable(): boolean;
36
- set path(arg: any[]);
37
- get path(): any[];
38
- }
39
- declare namespace Line {
40
- export { getTipNeckPos };
41
- export { containedInPath };
42
- export { drawEndTips };
43
- }
44
- export default Line;
45
- /**
46
- * LinkEndConfig definition
47
- */
48
- export type LinkEndConfig = {
49
- /**
50
- * - end component refid
51
- */
52
- component: string;
53
- /**
54
- * - end anchor name of end component
55
- */
56
- anchor: string;
57
- /**
58
- * - position of the link end
59
- */
60
- position: Position;
61
- };
62
- /**
63
- * Line type definition
64
- */
65
- export type Line = {
66
- from: LinkEndConfig;
67
- to: LinkEndConfig;
68
- fromEnd: LinkEnd;
69
- toEnd: LinkEnd;
70
- };
71
- import Component from "./component";
72
- declare class LinkEnd {
73
- constructor({ component, anchor, position, self }: {
74
- component: any;
75
- anchor: any;
76
- position: any;
77
- self: any;
78
- });
79
- component: any;
80
- _anchorName: any;
81
- _position: any;
82
- self: any;
83
- set position(arg: any);
84
- get position(): any;
85
- get anchor(): any;
86
- get direction(): "N" | "S" | "E" | "W";
87
- get boundaryPosition(): any;
88
- }
89
- import { getTipNeckPos } from "./drawer/line";
90
- import { containedInPath } from "./drawer/line";
91
- import { drawEndTips } from "./drawer/line";
@@ -1,303 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import Component from './component';
5
- import { containedInPath, drawEndTips, getTipNeckPos } from './drawer/line';
6
- export const NORTH = 'N';
7
- export const SOUTH = 'S';
8
- export const EAST = 'E';
9
- export const WEST = 'W';
10
- class LinkEnd {
11
- constructor({ component, anchor, position, self }) {
12
- this.component = component; /* component */
13
- this._anchorName = anchor;
14
- this._position = position;
15
- this.self = self;
16
- }
17
- get position() {
18
- const anchor = this.anchor;
19
- if (anchor) {
20
- var { position } = anchor;
21
- const fromTop = this.component.transcoordS2T(position.x, position.y);
22
- return this.self.transcoordT2P(fromTop.x, fromTop.y);
23
- }
24
- return this._position;
25
- }
26
- set position({ x, y }) {
27
- this._position = { x, y };
28
- }
29
- get anchor() {
30
- var _a;
31
- return (_a = this.component) === null || _a === void 0 ? void 0 : _a.findAnchor(this._anchorName /* anchor name */);
32
- }
33
- get direction() {
34
- const bounds = this.component.bounds;
35
- const anchor = this.anchor;
36
- if (!anchor) {
37
- return EAST;
38
- }
39
- const position = anchor.position;
40
- if (position.y <= bounds.top) {
41
- return NORTH;
42
- }
43
- if (position.y >= bounds.top + bounds.height) {
44
- return SOUTH;
45
- }
46
- if (position.x <= bounds.left) {
47
- return WEST;
48
- }
49
- return EAST;
50
- }
51
- get boundaryPosition() {
52
- const anchor = this.anchor;
53
- if (anchor) {
54
- var { position } = anchor;
55
- var dx = 0, dy = 0;
56
- switch (this.direction) {
57
- case SOUTH:
58
- dy = 20;
59
- break;
60
- case NORTH:
61
- dy = -20;
62
- break;
63
- case WEST:
64
- dx = -20;
65
- break;
66
- case EAST:
67
- default:
68
- dx = 20;
69
- }
70
- position = {
71
- x: position.x + dx,
72
- y: position.y + dy
73
- };
74
- const fromTop = this.component.transcoordS2T(position.x, position.y);
75
- return this.self.transcoordT2P(fromTop.x, fromTop.y);
76
- }
77
- }
78
- }
79
- /**
80
- * LinkEndConfig definition
81
- * @typedef {Object} LinkEndConfig
82
- * @property {string} component - end component refid
83
- * @property {string} anchor - end anchor name of end component
84
- * @property {Position} position - position of the link end
85
- */
86
- /**
87
- * Line type definition
88
- * @typedef {Object} Line
89
- * @property {LinkEndConfig} from
90
- * @property {LinkEndConfig} to
91
- * @property {LinkEnd} fromEnd
92
- * @property {LinkEnd} toEnd
93
- */
94
- export default class Line extends Component {
95
- isLine() {
96
- return true;
97
- }
98
- replaceRefids(replaceMap) {
99
- ;
100
- ['from', 'to'].forEach(fromto => {
101
- const anchor = this.get(fromto);
102
- if (anchor === null || anchor === void 0 ? void 0 : anchor.component) {
103
- const refid = replaceMap.get(anchor.component) || anchor.component;
104
- this.set(fromto, {
105
- ...anchor,
106
- component: refid
107
- });
108
- }
109
- });
110
- }
111
- get fromEnd() {
112
- var _a;
113
- if (this.parent && !this._fromEnd) {
114
- const { component, anchor, position } = this.getState('from') || {};
115
- if (!component) {
116
- return;
117
- }
118
- const componentObject = (_a = this.root) === null || _a === void 0 ? void 0 : _a.findByRefid(component);
119
- if (!componentObject) {
120
- return;
121
- }
122
- this._fromEnd = new LinkEnd({
123
- component: componentObject,
124
- fromto: 'from',
125
- anchor,
126
- position,
127
- self: this
128
- });
129
- }
130
- return this._fromEnd;
131
- }
132
- get from() {
133
- return this.getState('from');
134
- }
135
- set from(from) {
136
- delete this._fromEnd;
137
- this.set('from', from);
138
- }
139
- get toEnd() {
140
- var _a;
141
- if (this.parent && !this._toEnd) {
142
- const { component, anchor, position } = this.getState('to') || {};
143
- if (!component) {
144
- return;
145
- }
146
- const componentObject = (_a = this.root) === null || _a === void 0 ? void 0 : _a.findByRefid(component);
147
- if (!componentObject) {
148
- return;
149
- }
150
- this._toEnd = new LinkEnd({
151
- component: componentObject,
152
- fromto: 'to',
153
- anchor,
154
- position,
155
- self: this
156
- });
157
- }
158
- return this._toEnd;
159
- }
160
- get to() {
161
- return this.getState('to');
162
- }
163
- set to(to) {
164
- delete this._toEnd;
165
- this.set('to', to);
166
- }
167
- move({ x, y }, absolutly) {
168
- var _a, _b, _c, _d;
169
- if (absolutly) {
170
- /* move시에는 먼저 anchor들을 detach한다. */
171
- this.from = {
172
- position: ((_a = this._fromEnd) === null || _a === void 0 ? void 0 : _a.position) || ((_b = this.getState('from')) === null || _b === void 0 ? void 0 : _b.position) || { x: 0, y: 0 }
173
- };
174
- this.to = {
175
- position: ((_c = this._toEnd) === null || _c === void 0 ? void 0 : _c.position) || ((_d = this.getState('to')) === null || _d === void 0 ? void 0 : _d.position) || { x: 0, y: 0 }
176
- };
177
- }
178
- super.move({ x, y }, absolutly);
179
- }
180
- render(ctx) {
181
- var { begin = 'none', end = 'none', lineWidth, round = 0 } = this.state;
182
- /* following 2 filters not to be merged */
183
- var path = this.drawPath;
184
- drawEndTips(ctx, path, this.state);
185
- ctx.beginPath();
186
- var beginPos = getTipNeckPos(begin, lineWidth, path[0], path[1]);
187
- var endPos = getTipNeckPos(end, lineWidth, path[path.length - 1], path[path.length - 2]);
188
- path = [beginPos, ...path.slice(1, -1), endPos];
189
- var cursor = { x: beginPos.x, y: beginPos.y };
190
- ctx.moveTo(beginPos.x, beginPos.y);
191
- for (var i = 1; i < path.length; i++) {
192
- const prev = cursor;
193
- cursor = path[i];
194
- const next = path[i + 1];
195
- if (prev.x === cursor.x && prev.y === cursor.y) {
196
- continue;
197
- }
198
- if (!next) {
199
- ctx.lineTo(cursor.x, cursor.y);
200
- break;
201
- }
202
- var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y));
203
- var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0;
204
- var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
205
- var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
206
- const p1 = round > 0 || length !== 0 ? { x, y } : cursor;
207
- var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y));
208
- theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0;
209
- x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x;
210
- y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y;
211
- const p2 = round > 0 || length !== 0 ? { x, y } : cursor;
212
- ctx.lineTo(p1.x, p1.y);
213
- round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y);
214
- }
215
- this.drawStroke(ctx);
216
- }
217
- contains(x, y) {
218
- // 효율을 위해서, contains를 호출하기 전에 x, y좌표값은 이 컴포넌트에 대해서 이미 transcoord 된 상태이다.
219
- // 참조 : capture(x, y)
220
- var { lineWidth } = this.state;
221
- return containedInPath(x, y, this.drawPath, lineWidth);
222
- }
223
- get resizable() {
224
- return false;
225
- }
226
- get mutable() {
227
- return true;
228
- }
229
- get rotatable() {
230
- return false;
231
- }
232
- get path() {
233
- var _a, _b;
234
- const { from, to } = this.state;
235
- var { x1, y1, x2, y2 } = this.state;
236
- return [
237
- ((_a = this.fromEnd) === null || _a === void 0 ? void 0 : _a.position) ||
238
- (from === null || from === void 0 ? void 0 : from.position) || {
239
- x: x1,
240
- y: y1
241
- },
242
- ((_b = this.toEnd) === null || _b === void 0 ? void 0 : _b.position) ||
243
- (to === null || to === void 0 ? void 0 : to.position) || {
244
- x: x2,
245
- y: y2
246
- }
247
- ];
248
- }
249
- set path(path) {
250
- const [p1, p2] = path;
251
- const { from, to } = this.state;
252
- delete this._fromEnd;
253
- delete this._toEnd;
254
- this.set({
255
- from: {
256
- ...from,
257
- position: p1
258
- },
259
- to: {
260
- ...to,
261
- position: p2
262
- }
263
- });
264
- }
265
- get textBounds() {
266
- var path = this.drawPath;
267
- var from, to;
268
- var maxLength = 0;
269
- /* Find the longest path and set its midpoint as textBounds */
270
- for (let i = 1; i < path.length; i++) {
271
- var prev = path[i - 1];
272
- var next = path[i];
273
- var length = (prev.x - next.x) * (prev.x - next.x) + (prev.y - next.y) * (prev.y - next.y);
274
- if (length > maxLength) {
275
- // In case of similar length, the front pass takes precedence.(비슷한 길이인 경우에는 앞쪽 패스를 우선시한다)
276
- maxLength = Math.ceil(length);
277
- from = prev;
278
- to = next;
279
- }
280
- }
281
- var { paddingTop, paddingLeft, paddingRight, paddingBottom } = this.state;
282
- paddingBottom || (paddingBottom = 0);
283
- paddingTop || (paddingTop = 0);
284
- paddingLeft || (paddingLeft = 0);
285
- paddingRight || (paddingRight = 0);
286
- return {
287
- left: Math.min(from.x, to.x) + paddingLeft,
288
- top: Math.min(from.y, to.y) + paddingTop,
289
- width: Math.max(Math.abs(from.x - to.x) - paddingLeft - paddingRight, 0),
290
- height: Math.max(Math.abs(from.y - to.y) - paddingTop - paddingBottom, 0)
291
- };
292
- }
293
- get decorators() {
294
- return ['decotag'];
295
- }
296
- }
297
- Line.getTipNeckPos = getTipNeckPos;
298
- Line.containedInPath = containedInPath;
299
- Line.drawEndTips = drawEndTips;
300
- /* anchor에 붙은 line은 모델의 변경없이도 position이 변화할 수 있으므로, memoize를 하지 않는다. */
301
- // Component.memoize(Line.prototype, 'path', false)
302
- Component.register('line', Line);
303
- //# sourceMappingURL=line.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"line.js","sourceRoot":"","sources":["../../src/components/line.js"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component'\nimport { containedInPath, drawEndTips, getTipNeckPos } from './drawer/line'\n\nexport const NORTH = 'N'\nexport const SOUTH = 'S'\nexport const EAST = 'E'\nexport const WEST = 'W'\n\nclass LinkEnd {\n constructor({ component, anchor, position, self }) {\n this.component = component /* component */\n this._anchorName = anchor\n this._position = position\n this.self = self\n }\n\n get position() {\n const anchor = this.anchor\n if (anchor) {\n var { position } = anchor\n\n const fromTop = this.component.transcoordS2T(position.x, position.y)\n return this.self.transcoordT2P(fromTop.x, fromTop.y)\n }\n\n return this._position\n }\n\n set position({ x, y }) {\n this._position = { x, y }\n }\n\n get anchor() {\n return this.component?.findAnchor(this._anchorName /* anchor name */)\n }\n\n get direction() {\n const bounds = this.component.bounds\n const anchor = this.anchor\n\n if (!anchor) {\n return EAST\n }\n\n const position = anchor.position\n\n if (position.y <= bounds.top) {\n return NORTH\n }\n if (position.y >= bounds.top + bounds.height) {\n return SOUTH\n }\n if (position.x <= bounds.left) {\n return WEST\n }\n\n return EAST\n }\n\n get boundaryPosition() {\n const anchor = this.anchor\n\n if (anchor) {\n var { position } = anchor\n\n var dx = 0,\n dy = 0\n switch (this.direction) {\n case SOUTH:\n dy = 20\n break\n case NORTH:\n dy = -20\n break\n case WEST:\n dx = -20\n break\n case EAST:\n default:\n dx = 20\n }\n\n position = {\n x: position.x + dx,\n y: position.y + dy\n }\n\n const fromTop = this.component.transcoordS2T(position.x, position.y)\n return this.self.transcoordT2P(fromTop.x, fromTop.y)\n }\n }\n}\n\n/**\n * LinkEndConfig definition\n * @typedef {Object} LinkEndConfig\n * @property {string} component - end component refid\n * @property {string} anchor - end anchor name of end component\n * @property {Position} position - position of the link end\n */\n\n/**\n * Line type definition\n * @typedef {Object} Line\n * @property {LinkEndConfig} from\n * @property {LinkEndConfig} to\n * @property {LinkEnd} fromEnd\n * @property {LinkEnd} toEnd\n */\nexport default class Line extends Component {\n isLine() {\n return true\n }\n\n replaceRefids(replaceMap) {\n ;['from', 'to'].forEach(fromto => {\n const anchor = this.get(fromto)\n if (anchor?.component) {\n const refid = replaceMap.get(anchor.component) || anchor.component\n this.set(fromto, {\n ...anchor,\n component: refid\n })\n }\n })\n }\n\n get fromEnd() {\n if (this.parent && !this._fromEnd) {\n const { component, anchor, position } = this.getState('from') || {}\n\n if (!component) {\n return\n }\n\n const componentObject = this.root?.findByRefid(component)\n if (!componentObject) {\n return\n }\n\n this._fromEnd = new LinkEnd({\n component: componentObject,\n fromto: 'from',\n anchor,\n position,\n self: this\n })\n }\n\n return this._fromEnd\n }\n\n get from() {\n return this.getState('from')\n }\n\n set from(from) {\n delete this._fromEnd\n this.set('from', from)\n }\n\n get toEnd() {\n if (this.parent && !this._toEnd) {\n const { component, anchor, position } = this.getState('to') || {}\n\n if (!component) {\n return\n }\n\n const componentObject = this.root?.findByRefid(component)\n if (!componentObject) {\n return\n }\n\n this._toEnd = new LinkEnd({\n component: componentObject,\n fromto: 'to',\n anchor,\n position,\n self: this\n })\n }\n\n return this._toEnd\n }\n\n get to() {\n return this.getState('to')\n }\n\n set to(to) {\n delete this._toEnd\n this.set('to', to)\n }\n\n move({ x, y }, absolutly) {\n if (absolutly) {\n /* move시에는 먼저 anchor들을 detach한다. */\n this.from = {\n position: this._fromEnd?.position || this.getState('from')?.position || { x: 0, y: 0 }\n }\n this.to = {\n position: this._toEnd?.position || this.getState('to')?.position || { x: 0, y: 0 }\n }\n }\n\n super.move({ x, y }, absolutly)\n }\n\n render(ctx) {\n var { begin = 'none', end = 'none', lineWidth, round = 0 } = this.state\n\n /* following 2 filters not to be merged */\n var path = this.drawPath\n\n drawEndTips(ctx, path, this.state)\n\n ctx.beginPath()\n\n var beginPos = getTipNeckPos(begin, lineWidth, path[0], path[1])\n var endPos = getTipNeckPos(end, lineWidth, path[path.length - 1], path[path.length - 2])\n\n path = [beginPos, ...path.slice(1, -1), endPos]\n var cursor = { x: beginPos.x, y: beginPos.y }\n ctx.moveTo(beginPos.x, beginPos.y)\n\n for (var i = 1; i < path.length; i++) {\n const prev = cursor\n cursor = path[i]\n\n const next = path[i + 1]\n if (prev.x === cursor.x && prev.y === cursor.y) {\n continue\n }\n\n if (!next) {\n ctx.lineTo(cursor.x, cursor.y)\n break\n }\n\n var length = Math.sqrt((prev.x - cursor.x) * (prev.x - cursor.x) + (prev.y - cursor.y) * (prev.y - cursor.y))\n var theta = length !== 0 ? Math.atan2(prev.x - cursor.x, prev.y - cursor.y) : 0\n var x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n var y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p1 = round > 0 || length !== 0 ? { x, y } : cursor\n\n var length = Math.sqrt((next.x - cursor.x) * (next.x - cursor.x) + (next.y - cursor.y) * (next.y - cursor.y))\n theta = length !== 0 ? Math.atan2(next.x - cursor.x, next.y - cursor.y) : 0\n x = Math.sin(theta) * Math.min(round, length / 2) + cursor.x\n y = Math.cos(theta) * Math.min(round, length / 2) + cursor.y\n\n const p2 = round > 0 || length !== 0 ? { x, y } : cursor\n\n ctx.lineTo(p1.x, p1.y)\n round > 0 && ctx.quadraticCurveTo(cursor.x, cursor.y, p2.x, p2.y)\n }\n\n this.drawStroke(ctx)\n }\n\n contains(x, y) {\n // 효율을 위해서, contains를 호출하기 전에 x, y좌표값은 이 컴포넌트에 대해서 이미 transcoord 된 상태이다.\n // 참조 : capture(x, y)\n var { lineWidth } = this.state\n\n return containedInPath(x, y, this.drawPath, lineWidth)\n }\n\n get resizable() {\n return false\n }\n\n get mutable() {\n return true\n }\n\n get rotatable() {\n return false\n }\n\n get path() {\n const { from, to } = this.state\n var { x1, y1, x2, y2 } = this.state\n\n return [\n this.fromEnd?.position ||\n from?.position || {\n x: x1,\n y: y1\n },\n this.toEnd?.position ||\n to?.position || {\n x: x2,\n y: y2\n }\n ]\n }\n\n set path(path) {\n const [p1, p2] = path\n const { from, to } = this.state\n\n delete this._fromEnd\n delete this._toEnd\n\n this.set({\n from: {\n ...from,\n position: p1\n },\n to: {\n ...to,\n position: p2\n }\n })\n }\n\n get textBounds() {\n var path = this.drawPath\n\n var from, to\n var maxLength = 0\n\n /* Find the longest path and set its midpoint as textBounds */\n for (let i = 1; i < path.length; i++) {\n var prev = path[i - 1]\n var next = path[i]\n\n var length = (prev.x - next.x) * (prev.x - next.x) + (prev.y - next.y) * (prev.y - next.y)\n if (length > maxLength) {\n // In case of similar length, the front pass takes precedence.(비슷한 길이인 경우에는 앞쪽 패스를 우선시한다)\n maxLength = Math.ceil(length)\n from = prev\n to = next\n }\n }\n\n var { paddingTop, paddingLeft, paddingRight, paddingBottom } = this.state\n\n paddingBottom ||= 0\n paddingTop ||= 0\n paddingLeft ||= 0\n paddingRight ||= 0\n\n return {\n left: Math.min(from.x, to.x) + paddingLeft,\n top: Math.min(from.y, to.y) + paddingTop,\n width: Math.max(Math.abs(from.x - to.x) - paddingLeft - paddingRight, 0),\n height: Math.max(Math.abs(from.y - to.y) - paddingTop - paddingBottom, 0)\n }\n }\n\n get decorators() {\n return ['decotag']\n }\n}\n\nLine.getTipNeckPos = getTipNeckPos\nLine.containedInPath = containedInPath\nLine.drawEndTips = drawEndTips\n\n/* anchor에 붙은 line은 모델의 변경없이도 position이 변화할 수 있으므로, memoize를 하지 않는다. */\n// Component.memoize(Line.prototype, 'path', false)\n\nComponent.register('line', Line)\n"]}
@@ -1,47 +0,0 @@
1
- declare const LocalRef_base: {
2
- new (): {
3
- [x: string]: any;
4
- contains(x: any, y: any): boolean;
5
- path: {
6
- x: any;
7
- y: any;
8
- }[];
9
- readonly anchors: import("./anchor/anchor").Anchor[];
10
- };
11
- [x: string]: any;
12
- };
13
- export default class LocalRef extends LocalRef_base {
14
- set ref(arg: any);
15
- get ref(): any;
16
- get refScale(): {
17
- x: number;
18
- y: number;
19
- };
20
- draw(ctx: any): void;
21
- _drawing: boolean | undefined;
22
- prerender(ctx: any): void;
23
- postrender(ctx: any): any;
24
- render(ctx: any): any;
25
- get nature(): {
26
- mutable: boolean;
27
- resizable: boolean;
28
- rotatable: boolean;
29
- properties: ({
30
- type: string;
31
- label: string;
32
- name: string;
33
- property?: undefined;
34
- } | {
35
- type: string;
36
- label: string;
37
- name: string;
38
- property: {
39
- options: string[];
40
- };
41
- })[];
42
- 'value-property': string;
43
- help: string;
44
- };
45
- get hasTextProperty(): boolean;
46
- }
47
- export {};
@@ -1,103 +0,0 @@
1
- /*
2
- * Copyright © HatioLab Inc. All rights reserved.
3
- */
4
- import Component from './component';
5
- import Shape from './shape';
6
- import RectPath from './mixins/rect-path';
7
- const NATURE = {
8
- mutable: false,
9
- resizable: true,
10
- rotatable: true,
11
- properties: [
12
- {
13
- type: 'id-input',
14
- label: 'ref',
15
- name: 'ref'
16
- },
17
- {
18
- type: 'select',
19
- label: 'fit',
20
- name: 'fit',
21
- property: {
22
- options: ['both', 'ratio']
23
- }
24
- }
25
- ],
26
- 'value-property': 'ref',
27
- help: 'scene/component/local-ref'
28
- };
29
- export default class LocalRef extends RectPath(Shape) {
30
- get ref() {
31
- var ref = this.getState('ref');
32
- if (!ref || typeof ref != 'string')
33
- return null;
34
- return this.root.findById(ref);
35
- }
36
- set ref(ref) {
37
- this.setState('ref', ref);
38
- }
39
- get refScale() {
40
- let targetBounds = this.ref.bounds;
41
- let bounds = this.bounds;
42
- let sx = bounds.width / targetBounds.width;
43
- let sy = bounds.height / targetBounds.height;
44
- switch (this.model.fit) {
45
- case 'both':
46
- return {
47
- x: sx,
48
- y: sy
49
- };
50
- break;
51
- case 'ratio':
52
- default:
53
- return {
54
- x: Math.min(sx, sy),
55
- y: Math.min(sx, sy)
56
- };
57
- break;
58
- }
59
- }
60
- draw(ctx) {
61
- if (this._drawing)
62
- return;
63
- this._drawing = true;
64
- super.draw(ctx);
65
- this._drawing = false;
66
- }
67
- prerender(ctx) {
68
- super.prerender(ctx);
69
- if (this.ref) {
70
- let targetCenter = this.ref.center;
71
- let center = this.center;
72
- let scale = this.refScale;
73
- ctx.translate(center.x, center.y);
74
- ctx.scale(scale.x, scale.y);
75
- ctx.translate(-targetCenter.x, -targetCenter.y);
76
- }
77
- }
78
- postrender(ctx) {
79
- if (this.ref)
80
- return this.ref.postrender(ctx);
81
- super.postrender(ctx);
82
- }
83
- render(ctx) {
84
- if (this.ref)
85
- return this.ref.render(ctx);
86
- var { round = 0 } = this.state;
87
- var { left, top, width, height } = this.bounds;
88
- // 박스 그리기
89
- ctx.beginPath();
90
- ctx.rect(left, top, width, height);
91
- // TODO Logic
92
- }
93
- get nature() {
94
- return NATURE;
95
- }
96
- get hasTextProperty() {
97
- return false;
98
- }
99
- }
100
- Component.memoize(LocalRef.prototype, 'ref', false);
101
- Component.memoize(LocalRef.prototype, 'refScale', false);
102
- Component.register('local-ref', LocalRef);
103
- //# sourceMappingURL=local-ref.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"local-ref.js","sourceRoot":"","sources":["../../src/components/local-ref.js"],"names":[],"mappings":"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","sourcesContent":["/*\n * Copyright © HatioLab Inc. All rights reserved.\n */\n\nimport Component from './component'\nimport Shape from './shape'\n\nimport RectPath from './mixins/rect-path'\n\nconst NATURE = {\n mutable: false,\n resizable: true,\n rotatable: true,\n properties: [\n {\n type: 'id-input',\n label: 'ref',\n name: 'ref'\n },\n {\n type: 'select',\n label: 'fit',\n name: 'fit',\n property: {\n options: ['both', 'ratio']\n }\n }\n ],\n 'value-property': 'ref',\n help: 'scene/component/local-ref'\n}\n\nexport default class LocalRef extends RectPath(Shape) {\n get ref() {\n var ref = this.getState('ref')\n\n if (!ref || typeof ref != 'string') return null\n\n return this.root.findById(ref)\n }\n\n set ref(ref) {\n this.setState('ref', ref)\n }\n\n get refScale() {\n let targetBounds = this.ref.bounds\n let bounds = this.bounds\n\n let sx = bounds.width / targetBounds.width\n let sy = bounds.height / targetBounds.height\n\n switch (this.model.fit) {\n case 'both':\n return {\n x: sx,\n y: sy\n }\n break\n case 'ratio':\n default:\n return {\n x: Math.min(sx, sy),\n y: Math.min(sx, sy)\n }\n break\n }\n }\n\n draw(ctx) {\n if (this._drawing) return\n\n this._drawing = true\n super.draw(ctx)\n this._drawing = false\n }\n\n prerender(ctx) {\n super.prerender(ctx)\n\n if (this.ref) {\n let targetCenter = this.ref.center\n let center = this.center\n\n let scale = this.refScale\n\n ctx.translate(center.x, center.y)\n ctx.scale(scale.x, scale.y)\n ctx.translate(-targetCenter.x, -targetCenter.y)\n }\n }\n\n postrender(ctx) {\n if (this.ref) return this.ref.postrender(ctx)\n\n super.postrender(ctx)\n }\n\n render(ctx) {\n if (this.ref) return this.ref.render(ctx)\n\n var { round = 0 } = this.state\n\n var { left, top, width, height } = this.bounds\n\n // 박스 그리기\n ctx.beginPath()\n\n ctx.rect(left, top, width, height)\n\n // TODO Logic\n }\n\n get nature() {\n return NATURE\n }\n\n get hasTextProperty() {\n return false\n }\n}\n\nComponent.memoize(LocalRef.prototype, 'ref', false)\nComponent.memoize(LocalRef.prototype, 'refScale', false)\n\nComponent.register('local-ref', LocalRef)\n"]}
@@ -1,45 +0,0 @@
1
- declare function _default(superclass: any): {
2
- new (): {
3
- [x: string]: any;
4
- isConnectable(): boolean;
5
- postrender(context: any): void;
6
- /**
7
- *
8
- * @param {CanvasRenderingContext2D} context
9
- */
10
- _draw_anchors(context: CanvasRenderingContext2D): void;
11
- contains(x: any, y: any): any;
12
- /**
13
- * @function findInOutLines
14
- * @param {string} anchorName
15
- * @return {Line[]}
16
- */
17
- findInOutLines(anchorName: string): Line[];
18
- /**
19
- * @function findOutletLines
20
- * @parameter {string} anchorName
21
- * @return {Line[]}
22
- */
23
- findOutletLines(anchorName: any): Line[];
24
- /**
25
- * @function findOutletEnds
26
- * @parameter {string} anchorName
27
- * @return {Component[]}
28
- */
29
- findOutletEnds(anchorName: any): Component[];
30
- /**
31
- * @function findInletLines
32
- * @parameter {string} anchorName
33
- * @return {Line[]}
34
- */
35
- findInletLines(anchorName: any): Line[];
36
- /**
37
- * @function findInletEnds
38
- * @parameter {string} anchorName
39
- * @return {Component[]}
40
- */
41
- findInletEnds(anchorName: any): Component[];
42
- };
43
- [x: string]: any;
44
- };
45
- export default _default;
@@ -1,9 +0,0 @@
1
- declare function _default(superclass: any): {
2
- new (): {
3
- [x: string]: any;
4
- _convertDataFormat(data: any, format: any): any;
5
- isDataSource(): boolean;
6
- };
7
- [x: string]: any;
8
- };
9
- export default _default;
@@ -1,24 +0,0 @@
1
- export const GESTURES: string[];
2
- declare function _default(superclass: any): {
3
- new (): {
4
- [x: string]: any;
5
- isHTMLElement(): boolean;
6
- isShadowable(): boolean;
7
- element: any;
8
- _element: any;
9
- readonly tagName: any;
10
- setElementProperties(element: any): void;
11
- createElement(): void;
12
- userInputEventHandler(e: any): void;
13
- reposition(): void;
14
- disposeElement(): void;
15
- ready(): void;
16
- dispose(): void;
17
- readonly hasTextProperty: boolean;
18
- readonly textHidden: boolean;
19
- onchange(after: any, before: any): void;
20
- isDescendible(container: any): any;
21
- };
22
- [x: string]: any;
23
- };
24
- export default _default;