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